[PATCH setup] Finish providing support for provides: and conflicts:

Ken Brown kbrown@cornell.edu
Wed Mar 21 19:38:00 GMT 2018


Introduce member functions SolvableVersion::provides() and
SolvableVersion::conflicts().  This enables packagedb::read() to
access provides and conflicts lists from setup.ini.
---
 libsolv.cc    | 12 ++++++++++++
 libsolv.h     |  4 ++++
 package_db.cc | 18 ++++++++++++------
 3 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/libsolv.cc b/libsolv.cc
index 2eb04e2..d85fec4 100644
--- a/libsolv.cc
+++ b/libsolv.cc
@@ -121,6 +121,18 @@ SolvableVersion::obsoletes() const
   return deplist(SOLVABLE_OBSOLETES);
 }
 
+const PackageDepends
+SolvableVersion::provides() const
+{
+  return deplist(SOLVABLE_PROVIDES);
+}
+
+const PackageDepends
+SolvableVersion::conflicts() const
+{
+  return deplist(SOLVABLE_CONFLICTS);
+}
+
 // helper function which returns the deplist for a given key, as a PackageDepends
 const PackageDepends
 SolvableVersion::deplist(Id keyname) const
diff --git a/libsolv.h b/libsolv.h
index 7bb0be2..c218ab8 100644
--- a/libsolv.h
+++ b/libsolv.h
@@ -60,6 +60,10 @@ class SolvableVersion
   const PackageDepends depends() const;
   // Return the obsoletes list
   const PackageDepends obsoletes() const;
+  // Return the provides list
+  const PackageDepends provides() const;
+  // Return the conflicts list
+  const PackageDepends conflicts() const;
   bool accessible () const;
   package_type_t Type () const;
   package_stability_t Stability () const;
diff --git a/package_db.cc b/package_db.cc
index d12e841..799ee39 100644
--- a/package_db.cc
+++ b/package_db.cc
@@ -142,8 +142,10 @@ packagedb::read ()
                   // supplement this with sdesc, source, and stability
                   // information from setup.ini, if possible...
                   packageversion pv = findBinaryVersion(PackageSpecification(pkgname, f.ver));
-                  PackageDepends dep;
-                  PackageDepends obs;
+                  PackageDepends depends;
+                  PackageDepends obsoletes;
+                  PackageDepends provides;
+                  PackageDepends conflicts;
                   if (pv)
                     {
                       data.sdesc = pv.SDesc();
@@ -151,10 +153,14 @@ packagedb::read ()
                       data.stability = pv.Stability();
                       data.spkg_id = pv.sourcePackage();
                       data.spkg = pv.sourcePackageName();
-                      dep = pv.depends();
-                      data.requires = &dep;
-                      obs = pv.obsoletes();
-                      data.obsoletes = &obs;
+                      depends = pv.depends();
+                      data.requires = &depends;
+                      obsoletes = pv.obsoletes();
+                      data.obsoletes = &obsoletes;
+                      provides = pv.provides();
+                      data.provides = &provides;
+                      conflicts = pv.conflicts();
+                      data.conflicts = &conflicts;
                     }
                   else
                     // This version is no longer available.  It could
-- 
2.16.2



More information about the Cygwin-apps mailing list