python-smartpm: support nolinktos and noparentdirs rpm options

Allowing us to turn on these options enables installation of base-files
which contains a symlink to /proc/mounts which is auto-detected as a
dependency and isn't provided by any other package.

(From OE-Core rev: 1f0ad78b8fa739f9a68ed4c7bfae2b6d8586fda2)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton 2012-11-29 15:38:00 +00:00 committed by Richard Purdie
parent 4190b027b4
commit 8d9ee074a4
2 changed files with 41 additions and 0 deletions

View File

@ -0,0 +1,40 @@
backends/rpm: add support for setting dependency flags
This is useful for OpenEmbedded so that we can do the equivalent of
the --nolinktos and --noparentdirs rpm command line options.
Upstream-Status: Pending
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
diff --git a/smart/backends/rpm/pm.py b/smart/backends/rpm/pm.py
index 707a146..aec82e7 100644
--- a/smart/backends/rpm/pm.py
+++ b/smart/backends/rpm/pm.py
@@ -106,6 +106,23 @@ class RPMPackageManager(PackageManager):
flags |= rpm.RPMTRANS_FLAG_TEST
ts.setFlags(flags)
+ dflags = ts.setDFlags(0)
+ if sysconf.get("rpm-noupgrade", False):
+ dflags |= rpm.RPMDEPS_FLAG_NOUPGRADE
+ if sysconf.get("rpm-norequires", False):
+ dflags |= rpm.RPMDEPS_FLAG_NOREQUIRES
+ if sysconf.get("rpm-noconflicts", False):
+ dflags |= rpm.RPMDEPS_FLAG_NOCONFLICTS
+ if sysconf.get("rpm-noobsoletes", False):
+ dflags |= rpm.RPMDEPS_FLAG_NOOBSOLETES
+ if sysconf.get("rpm-noparentdirs", False):
+ dflags |= rpm.RPMDEPS_FLAG_NOPARENTDIRS
+ if sysconf.get("rpm-nolinktos", False):
+ dflags |= rpm.RPMDEPS_FLAG_NOLINKTOS
+ if sysconf.get("rpm-nosuggest", False):
+ dflags |= rpm.RPMDEPS_FLAG_NOSUGGEST
+ ts.setDFlags(dflags)
+
# Set rpm verbosity level.
levelname = sysconf.get('rpm-log-level')
level = {
--
1.7.9.5

View File

@ -19,6 +19,7 @@ SRC_URI = "\
file://smartpm-rpm5-nodig.patch \
file://smart-rpm-root.patch \
file://smart-recommends.patch \
file://smart-dflags.patch \
file://smart-rpm-md-parse.patch \
file://smart-tmpdir.patch \
"