This is the mail archive of the
cygwin-apps
mailing list for the Cygwin project.
[PATCH setup] Finish providing support for provides: and conflicts:
- From: Ken Brown <kbrown at cornell dot edu>
- To: cygwin-apps at cygwin dot com
- Date: Wed, 21 Mar 2018 15:38:07 -0400
- Subject: [PATCH setup] Finish providing support for provides: and conflicts:
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