aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/python/python-smartpm/smart-dflags.patch
blob: 531ea51cadc585522bc5a2f671ace675b88b85df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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>

[sgw - Added try/catch for rpm4 since it does not have setDFlags() API]

Signed-off-by: Saul Wold <sgw@linux.intel.com>


Index: smart-1.4.1/smart/backends/rpm/pm.py
===================================================================
--- smart-1.4.1.orig/smart/backends/rpm/pm.py
+++ smart-1.4.1/smart/backends/rpm/pm.py
@@ -106,6 +106,26 @@ class RPMPackageManager(PackageManager):
             flags |= rpm.RPMTRANS_FLAG_TEST
         ts.setFlags(flags)
 
+        try:
+            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)
+        except AttributeError, ae:
+            pass
+
         # Set rpm verbosity level.
         levelname = sysconf.get('rpm-log-level')
         level = {