]> git.ipfire.org Git - pakfire.git/commitdiff
packages: Add weak dependencies supplements/enhances
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 11 Feb 2021 15:44:37 +0000 (15:44 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 11 Feb 2021 15:44:37 +0000 (15:44 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/db.c
src/libpakfire/include/pakfire/package.h
src/libpakfire/libpakfire.sym
src/libpakfire/package.c

index 35743d54a44e5607f84eb4223771f7b9a3625941..1ed27c6ffbe32c75ecf3a73ed341f99e3e19baff 100644 (file)
@@ -683,6 +683,8 @@ static int pakfire_db_add_dependencies(struct pakfire_db* db, unsigned long id,
                { "obsoletes", pakfire_package_get_obsoletes },
                { "recommends", pakfire_package_get_recommends },
                { "suggests", pakfire_package_get_suggests },
+               { "supplements", pakfire_package_get_supplements },
+               { "enhances", pakfire_package_get_enhances },
                { NULL, NULL },
        };
 
@@ -1498,6 +1500,8 @@ static int pakfire_db_load_package(struct pakfire_db* db, PakfireRepo repo, sqli
                { 22, pakfire_package_set_obsoletes },
                { 23, pakfire_package_set_recommends },
                { 24, pakfire_package_set_suggests },
+               { 25, pakfire_package_set_supplements },
+               { 26, pakfire_package_set_enhances },
                { 0, NULL },
        };
 
@@ -1572,7 +1576,15 @@ int pakfire_db_load(struct pakfire_db* db, PakfireRepo repo) {
                        "("
                                "SELECT group_concat(dependency, '\n') FROM dependencies d "
                                        "WHERE d.pkg = packages.id AND d.type = 'suggests'"
-                       ") AS suggests "
+                       ") AS suggests, "
+                       "("
+                               "SELECT group_concat(dependency, '\n') FROM dependencies d "
+                                       "WHERE d.pkg = packages.id AND d.type = 'supplements'"
+                       ") AS supplements, "
+                       "("
+                               "SELECT group_concat(dependency, '\n') FROM dependencies d "
+                                       "WHERE d.pkg = packages.id AND d.type = 'enhances'"
+                       ") AS enhances "
                "FROM "
                        "packages"
                ";";
index e72c20589d069379d171c779b2fca764fe9dd7af..ebcc7de14649fa09477f34ea962c2fe19fe85663 100644 (file)
@@ -105,6 +105,10 @@ void pakfire_package_add_recommends(PakfirePackage pkg, PakfireRelation relation
 PakfireRelationList pakfire_package_get_suggests(PakfirePackage pkg);
 void pakfire_package_set_suggests(PakfirePackage pkg, PakfireRelationList relationlist);
 void pakfire_package_add_suggests(PakfirePackage pkg, PakfireRelation relation);
+PakfireRelationList pakfire_package_get_supplements(PakfirePackage pkg);
+void pakfire_package_set_supplements(PakfirePackage pkg, PakfireRelationList relationlist);
+PakfireRelationList pakfire_package_get_enhances(PakfirePackage pkg);
+void pakfire_package_set_enhances(PakfirePackage pkg, PakfireRelationList relationlist);
 
 PakfireRepo pakfire_package_get_repo(PakfirePackage pkg);
 void pakfire_package_set_repo(PakfirePackage pkg, PakfireRepo repo);
index 7ef1797a122bf1962354f2b533adabc7806080fd..db013f1a7998fbbc1e210a34f5845bbd45995b0f 100644 (file)
@@ -168,6 +168,7 @@ global:
        pakfire_package_get_conflicts;
        pakfire_package_get_description;
        pakfire_package_get_downloadsize;
+       pakfire_package_get_enhances;
        pakfire_package_get_epoch;
        pakfire_package_get_evr;
        pakfire_package_get_filelist;
@@ -191,6 +192,7 @@ global:
        pakfire_package_get_size;
        pakfire_package_get_suggests;
        pakfire_package_get_summary;
+       pakfire_package_get_supplements;
        pakfire_package_get_url;
        pakfire_package_get_uuid;
        pakfire_package_get_vendor;
@@ -206,6 +208,7 @@ global:
        pakfire_package_set_conflicts;
        pakfire_package_set_description;
        pakfire_package_set_downloadsize;
+       pakfire_package_set_enhances;
        pakfire_package_set_evr;
        pakfire_package_set_filelist;
        pakfire_package_set_filename;
@@ -222,6 +225,7 @@ global:
        pakfire_package_set_requires;
        pakfire_package_set_suggests;
        pakfire_package_set_summary;
+       pakfire_package_set_supplements;
        pakfire_package_set_url;
        pakfire_package_set_uuid;
        pakfire_package_set_vendor;
index 6dc7336b0ba1ff54f18efa797438092fec8e6340..cb6fd38aa71889414c1bf99852c160eeb2cc2eef 100644 (file)
@@ -648,6 +648,22 @@ PAKFIRE_EXPORT void pakfire_package_add_suggests(PakfirePackage pkg, PakfireRela
        pakfire_package_add_relation(pkg, SOLVABLE_SUGGESTS, relation, 0);
 }
 
+PAKFIRE_EXPORT PakfireRelationList pakfire_package_get_supplements(PakfirePackage pkg) {
+       return pakfire_package_get_relationlist(pkg, SOLVABLE_SUPPLEMENTS, 0);
+}
+
+PAKFIRE_EXPORT void pakfire_package_set_supplements(PakfirePackage pkg, PakfireRelationList relationlist) {
+       pakfire_package_set_relationlist(pkg, SOLVABLE_SUPPLEMENTS, relationlist, 0);
+}
+
+PAKFIRE_EXPORT PakfireRelationList pakfire_package_get_enhances(PakfirePackage pkg) {
+       return pakfire_package_get_relationlist(pkg, SOLVABLE_ENHANCES, 0);
+}
+
+PAKFIRE_EXPORT void pakfire_package_set_enhances(PakfirePackage pkg, PakfireRelationList relationlist) {
+       pakfire_package_set_relationlist(pkg, SOLVABLE_ENHANCES, relationlist, 0);
+}
+
 PAKFIRE_EXPORT PakfireRepo pakfire_package_get_repo(PakfirePackage pkg) {
        if (!pkg->repo) {
                Solvable* s = get_solvable(pkg);
@@ -838,6 +854,8 @@ PAKFIRE_EXPORT char* pakfire_package_dump(PakfirePackage pkg, int flags) {
                        { _("Obsoletes"),    pakfire_package_get_obsoletes, },
                        { _("Recommends"),   pakfire_package_get_recommends, },
                        { _("Suggests"),     pakfire_package_get_suggests, },
+                       { _("Supplements"),  pakfire_package_get_supplements, },
+                       { _("Enhances"),     pakfire_package_get_enhances, },
                        { NULL, NULL},
                };