python-smartpm: Add basic knowledge of RPMSENSE_MISSINGOK

Currently smart does not support recommend dependencies.  Add the first set
of 'support' for RPMSENSE_MISSINGOK (the flag that makes something a
recommend).  This initial support ends up ignoring the recommendation, but is
written in a way that it will be the basis of eventual support.

(From OE-Core rev: 4f1f6d39803c94cf9ff55f0a4616e7a1703bcef6)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mark Hatle authored and Richard Purdie committed 2012-11-18 16:42:03 +00:00
1 parent 11af6b042c
commit a0d1ac7999
2 files changed
+45 -1

No files matched your search

@@ -0,0 +1,43 @@
backends/rpm: Identify recommended packages
We identify and store recommended packages (and later throw that data away.)
This is indended to be the starting work to add support for recommended
packages to smart.
Upstream-status: Inappropriate [ Code isn't finished! ]
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: smart-1.4.1/smart/backends/rpm/header.py
===================================================================
--- smart-1.4.1.orig/smart/backends/rpm/header.py
+++ smart-1.4.1/smart/backends/rpm/header.py
@@ -292,6 +292,7 @@ class RPMHeaderLoader(Loader):
f = [0]
elif type(f) != list:
f = [f]
+ recdict = {}
reqdict = {}
for i in range(len(n)):
ni = n[i]
@@ -308,10 +309,17 @@ class RPMHeaderLoader(Loader):
# RPMSENSE_SCRIPT_PREUN |
# RPMSENSE_SCRIPT_POST |
# RPMSENSE_SCRIPT_POSTUN == 7744
- reqdict[(f[i]&7744 and PreReq or Req,
- intern(ni), r, vi)] = True
+ if (f[i]&rpm.RPMSENSE_MISSINGOK):
+ print "Ignoring Recommend Dependency: %s" % (ni)
+ recdict[(f[i]&7744 and PreReq or Req,
+ intern(ni), r, vi)] = True
+ else:
+ reqdict[(f[i]&7744 and PreReq or Req,
+ intern(ni), r, vi)] = True
+ recargs = collapse_libc_requires(recdict.keys())
reqargs = collapse_libc_requires(reqdict.keys())
else:
+ recargs = None
reqargs = None
n = h[1054] # RPMTAG_CONFLICTNAME