From: Michael Tremer Date: Thu, 11 Feb 2021 15:44:37 +0000 (+0000) Subject: packages: Add weak dependencies supplements/enhances X-Git-Tag: 0.9.28~1285^2~760 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8fe2e4bac4490fae43ee896ccbc928df6da4f8bc;p=pakfire.git packages: Add weak dependencies supplements/enhances Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/db.c b/src/libpakfire/db.c index 35743d54a..1ed27c6ff 100644 --- a/src/libpakfire/db.c +++ b/src/libpakfire/db.c @@ -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" ";"; diff --git a/src/libpakfire/include/pakfire/package.h b/src/libpakfire/include/pakfire/package.h index e72c20589..ebcc7de14 100644 --- a/src/libpakfire/include/pakfire/package.h +++ b/src/libpakfire/include/pakfire/package.h @@ -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); diff --git a/src/libpakfire/libpakfire.sym b/src/libpakfire/libpakfire.sym index 7ef1797a1..db013f1a7 100644 --- a/src/libpakfire/libpakfire.sym +++ b/src/libpakfire/libpakfire.sym @@ -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; diff --git a/src/libpakfire/package.c b/src/libpakfire/package.c index 6dc7336b0..cb6fd38aa 100644 --- a/src/libpakfire/package.c +++ b/src/libpakfire/package.c @@ -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}, };