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