Patchwork [15/22] python-smartpm: support nolinktos and noparentdirs rpm options

login
register
mail settings
Submitter Mark Hatle
Date Dec. 4, 2012, 5:14 p.m.
Message ID <7bc079ba04d82b43af8ac9b0e610c059490660ad.1354641032.git.mark.hatle@windriver.com>
Download mbox | patch
Permalink /patch/40319/
State Accepted
Commit 1f0ad78b8fa739f9a68ed4c7bfae2b6d8586fda2
Headers show

Comments

Mark Hatle - Dec. 4, 2012, 5:14 p.m.
From: Paul Eggleton <paul.eggleton@linux.intel.com>

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.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
 .../python/python-smartpm/smart-dflags.patch       |   40 ++++++++++++++++++++
 .../python/python-smartpm_1.4.1.bb                 |    1 +
 2 files changed, 41 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-devtools/python/python-smartpm/smart-dflags.patch

Patch

diff --git a/meta/recipes-devtools/python/python-smartpm/smart-dflags.patch b/meta/recipes-devtools/python/python-smartpm/smart-dflags.patch
new file mode 100644
index 0000000..3f27262
--- /dev/null
+++ b/meta/recipes-devtools/python/python-smartpm/smart-dflags.patch
@@ -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
+
diff --git a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
index 9ec7c7a..72a307d 100644
--- a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
+++ b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
@@ -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 \
           "