From f07ea08ac4fc96162f7b583dc9a14183f1dcec69 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Tue, 16 Jul 2013 11:35:35 +0200
Subject: [ABRT PATCH 35/36] retrace-client: build correct release for Fedora
Rawhide
Related to rhbz#958933
Signed-off-by: Jakub Filak <jfilak@redhat.com>
Signed-off-by: Michal Toman <mtoman@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;
}
--
1.8.3.1