Fix long-standing bug causing install prefixes not to be recorded
authorJ. Ali Harlow <ali@juiblex.co.uk>
Mon, 17 Nov 2014 11:30:24 +0000 (11:30 +0000)
committerJ. Ali Harlow <ali@juiblex.co.uk>
Mon, 17 Nov 2014 11:30:24 +0000 (11:30 +0000)
plover/packageset.c

index 22c6559..507876d 100644 (file)
@@ -241,17 +241,19 @@ static gboolean
   struct razor_relocations *relocations,struct razor_importer *importer,
   PloverPackage *package,GError **error)
 {
+    int i;
     struct razor_property_iterator *prop_iter;
     struct razor_file_iterator *file_iter;
     struct razor_rpm *rpm;
     struct razor_property *prop;
     const char *name,*version,*arch,*summary,*desc,*url,*license;
+    const char *install_prefix;
+    const char *const *prefixes;
     uint32_t flags;
     rpm=plover_repository_open_rpm(repository,package,error);
     if (!rpm)
        return FALSE;
     razor_relocations_set_rpm(relocations,rpm);
-    razor_rpm_close(rpm);
     name=plover_package_get_name(package);
     version=plover_package_get_version(package);
     arch=plover_package_get_arch(package);
@@ -261,6 +263,14 @@ static gboolean
     url=plover_package_get_URL(package);
     license=plover_package_get_license(package);
     razor_importer_add_details(importer,summary,desc,url,license);
+    razor_rpm_get_details(rpm,RAZOR_DETAIL_PREFIXES,&prefixes,
+      RAZOR_DETAIL_LAST);
+    for(i=0;prefixes && prefixes[i];i++)
+    {
+       install_prefix=razor_relocations_apply(relocations,prefixes[i]);
+       razor_importer_add_install_prefix(importer,install_prefix);
+    }
+    razor_rpm_close(rpm);
     prop_iter=plover_package_property_iterator_create(package);
     while (razor_property_iterator_next(prop_iter,&prop,&name,&flags,&version))
        razor_importer_add_property(importer,name,flags,version);