From cb9b4eba1f4375bf849f94eec1e22421528060dd Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 18 Oct 2022 18:46:58 +0000 Subject: [PATCH] packages: Write/read distro tag from metadata Signed-off-by: Michael Tremer --- src/libpakfire/archive.c | 5 +++++ src/libpakfire/package.c | 13 +++++++++++++ src/libpakfire/packager.c | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/src/libpakfire/archive.c b/src/libpakfire/archive.c index d9e2b8a45..6d742226b 100644 --- a/src/libpakfire/archive.c +++ b/src/libpakfire/archive.c @@ -1039,6 +1039,11 @@ static int pakfire_archive_make_package_from_json(struct pakfire_archive* archiv if (groups) pakfire_package_set_groups(pkg, groups); + // Distribution + const char* distro = pakfire_archive_metadata_get(archive, "distribution", NULL); + if (distro) + pakfire_package_set_distribution(pkg, distro); + // Maintainer const char* maintainer = pakfire_archive_metadata_get(archive, "maintainer", NULL); if (maintainer) diff --git a/src/libpakfire/package.c b/src/libpakfire/package.c index f393637f7..e0f9fc3ea 100644 --- a/src/libpakfire/package.c +++ b/src/libpakfire/package.c @@ -1106,6 +1106,11 @@ PAKFIRE_EXPORT char* pakfire_package_dump(struct pakfire_package* pkg, int flags pakfire_package_dump_add_line_date(&string, _("Install Time"), install_time); } + // Distribution + const char* distro = pakfire_package_get_distribution(pkg); + if (distro) + pakfire_package_dump_add_line(&string, _("Distribution"), distro); + // Maintainer const char* maintainer = pakfire_package_get_maintainer(pkg); pakfire_package_dump_add_line(&string, _("Maintainer"), maintainer); @@ -1677,6 +1682,14 @@ struct json_object* pakfire_package_to_json(struct pakfire_package* pkg) { goto ERROR; } + // Distribution + const char* distro = pakfire_package_get_distribution(pkg); + if (distro) { + r = pakfire_json_add_string(pkg->pakfire, md, "distribution", distro); + if (r) + goto ERROR; + } + // Maintainer const char* maintainer = pakfire_package_get_maintainer(pkg); if (maintainer) { diff --git a/src/libpakfire/packager.c b/src/libpakfire/packager.c index c85a18658..ecc3b4eb6 100644 --- a/src/libpakfire/packager.c +++ b/src/libpakfire/packager.c @@ -106,6 +106,15 @@ int pakfire_packager_create(struct pakfire_packager** packager, // Use the default digests p->digests = PAKFIRE_PACKAGER_DIGESTS; + // Set distribution + const char* tag = pakfire_get_distro_tag(p->pakfire); + if (!tag) { + ERROR(p->pakfire, "Distribution tag is not configured: %m\n"); + goto ERROR; + } + + pakfire_package_set_distribution(pkg, tag); + // Set build host pakfire_package_set_build_host(pkg, pakfire_hostname()); -- 2.39.5