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 2012-10-31 14:43:48 -05:00 committed by Richard Purdie
parent 11af6b042c
commit a0d1ac7999
2 changed files with 45 additions and 1 deletions

View File

@ -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

View File

@ -11,13 +11,14 @@ LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833"
DEPENDS = "python rpm"
PR = "r0"
PR = "r1"
SRCNAME = "smart"
SRC_URI = "\
http://launchpad.net/smart/trunk/${PV}/+download/${SRCNAME}-${PV}.tar.bz2 \
file://smartpm-rpm5-nodig.patch \
file://smart-rpm-root.patch \
file://smart-missingok.patch \
"
SRC_URI[md5sum] = "573ef32ba177a6b3c4bf7ef04873fcb6"