]> git.ipfire.org Git - pakfire.git/commitdiff
packages: Write/read distro tag from metadata
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 18 Oct 2022 18:46:58 +0000 (18:46 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 18 Oct 2022 18:46:58 +0000 (18:46 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/archive.c
src/libpakfire/package.c
src/libpakfire/packager.c

index d9e2b8a4586fb0b1930e240b19d93ce512af825c..6d742226b6427bf4045ef67679ae8b4d49beab99 100644 (file)
@@ -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)
index f393637f7abc1da0b49f02b08ce03d718ae967ab..e0f9fc3eaede1687489e80a52d751beb2334b514 100644 (file)
@@ -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) {
index c85a18658dab10d499f2d7a92c0160be7d4040af..ecc3b4eb67f1b7571e28020963db8c9bd05fffda 100644 (file)
@@ -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());