[ABRT PATCH] retrace-client: build correct release for Fedora Rawhide

Michal Toman mtoman at redhat.com
Tue Jul 16 12:01:43 UTC 2013


Works, pushed.

On 16.07.2013 11:35, Jakub Filak  wrote:
> Related to rhbz#958933
>
> Signed-off-by: Jakub Filak <jfilak at redhat.com>
> ---
>   src/plugins/abrt-retrace-client.c | 51 ++++++++++++++++++++++++++-------------
>   1 file changed, 34 insertions(+), 17 deletions(-)
>
> diff --git a/src/plugins/abrt-retrace-client.c b/src/plugins/abrt-retrace-client.c
> index e5f95a9..9c2c551 100644
> --- a/src/plugins/abrt-retrace-client.c
> +++ b/src/plugins/abrt-retrace-client.c
> @@ -324,26 +324,43 @@ static char *get_release_id(map_string_t *osinfo, const char *architecture)
>       }
>
>       char *result = NULL;
> -    const char *release = get_map_string_item_or_NULL(osinfo, OSINFO_ID);
> -    const char *version = get_map_string_item_or_NULL(osinfo, OSINFO_VERSION_ID);
> -    if (release != NULL && version != NULL)
> -        result = xasprintf("%s-%s-%s", release, version, arch);
> -    else
> +    char *release = NULL;
> +    char *version = NULL;
> +    parse_osinfo_for_rhts(osinfo, (char **)&release, (char **)&version);
> +
> +    if (release == NULL || version == NULL)
> +        error_msg_and_die("Can't parse OS release name or version");
> +
> +    char *space = strchr(version, ' ');
> +    if (space)
> +        *space = '\0';
> +
> +    if (strcmp("Fedora", release) == 0)
>       {
> -        parse_osinfo_for_rhts(osinfo, (char **)&release, (char **)&version);
> -        char *space = strchr(version, ' ');
> -        if (space)
> -            *space = '\0';
> -
> -        if (strcmp("Fedora", release) == 0)
> -            result = xasprintf("fedora-%s-%s", version, arch);
> -        else if (strcmp("Red Hat Enterprise Linux", release) == 0)
> -            result = xasprintf("rhel-%s-%s", version, arch);
> -
> -        free((void *)release);
> -        free((void *)version);
> +        /* Because of inconsistency between Fedora's os-release and retrace
> +         * server.
> +         *
> +         * Adding the reporting fields to Fedora's os-release was a bit
> +         * frustrating for all participants and fixing it on the retrace server
> +         * side is neither feasible nor acceptable.
> +         *
> +         * Therefore, we have decided to add the following hack.
> +         */
> +        if (strcmp("Rawhide", version) == 0)
> +        {
> +            /* Rawhide -> rawhide */
> +            version[0] = 'r';
> +        }
> +        /* Fedora -> fedora */
> +        release[0] = 'f';
>       }
> +    else if (strcmp("Red Hat Enterprise Linux", release) == 0)
> +        strcpy(release, "rhel");
> +
> +    result = xasprintf("%s-%s-%s", release, version, arch);
>
> +    free(release);
> +    free(version);
>       free(arch);
>       return result;
>   }
>


More information about the Crash-catcher mailing list