PAKFIRE_PKG_FILENAME,
PAKFIRE_PKG_BUILD_HOST,
PAKFIRE_PKG_BUILD_ID,
+ PAKFIRE_PKG_SOURCE_PKG,
};
int pakfire_package_create(struct pakfire_package** package, struct pakfire* pakfire,
void pakfire_package_set_build_time(struct pakfire_package* pkg, time_t build_time);
time_t pakfire_package_get_install_time(struct pakfire_package* pkg);
void pakfire_package_set_install_time(struct pakfire_package* pkg, time_t install_time);
-const char* pakfire_package_get_source_package(struct pakfire_package* pkg);
const char* pakfire_package_get_source_name(struct pakfire_package* pkg);
void pakfire_package_set_source_name(struct pakfire_package* pkg, const char* name);
const char* pakfire_package_get_source_evr(struct pakfire_package* pkg);
case PAKFIRE_PKG_BUILD_ID:
ret = solvable_lookup_str(s, SOLVABLE_BUILDVERSION);
break;
+
+ case PAKFIRE_PKG_SOURCE_PKG:
+ if (!*pkg->source_nevra) {
+ const char* name = pakfire_package_get_source_name(pkg);
+ const char* evr = pakfire_package_get_source_evr(pkg);
+ const char* arch = pakfire_package_get_source_arch(pkg);
+
+ // Return nothing if we don't have all information
+ if (!name || !evr || !arch)
+ return NULL;
+
+ // Format package name
+ r = pakfire_string_format(pkg->source_nevra, "%s-%s.%s", name, evr, arch);
+ if (r)
+ return NULL;
+ }
+
+ return pkg->source_nevra;
}
return ret;
case PAKFIRE_PKG_BUILD_ID:
id = SOLVABLE_BUILDVERSION;
break;
+
+ case PAKFIRE_PKG_SOURCE_PKG:
+ // The source package name cannot be set
+ break;
}
// Check if we have found a valid ID
pakfire_package_set_num(pkg, SOLVABLE_INSTALLTIME, install_time);
}
-PAKFIRE_EXPORT const char* pakfire_package_get_source_package(struct pakfire_package* pkg) {
- if (!*pkg->source_nevra) {
- const char* name = pakfire_package_get_source_name(pkg);
- const char* evr = pakfire_package_get_source_evr(pkg);
- const char* arch = pakfire_package_get_source_arch(pkg);
-
- // Return nothing if we don't have all information
- if (!name || !evr || !arch)
- return NULL;
-
- // Format package name
- pakfire_string_format(pkg->source_nevra, "%s-%s.%s", name, evr, arch);
- }
-
- return pkg->source_nevra;
-}
-
PAKFIRE_EXPORT const char* pakfire_package_get_source_name(struct pakfire_package* pkg) {
return pakfire_package_get_string(pkg, SOLVABLE_SOURCENAME);
}
}
// Source package
- const char* source_package = pakfire_package_get_source_package(pkg);
+ const char* source_package = pakfire_package_get_string(pkg, PAKFIRE_PKG_SOURCE_PKG);
if (source_package)
pakfire_package_dump_add_line(&string, _("Source Package"), source_package);