From 4f1f6d39803c94cf9ff55f0a4616e7a1703bcef6 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Wed, 31 Oct 2012 14:43:48 -0500 Subject: 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. Signed-off-by: Mark Hatle --- .../python/python-smartpm/smart-missingok.patch | 43 ++++++++++++++++++++++ .../python/python-smartpm_1.4.1.bb | 3 +- 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-devtools/python/python-smartpm/smart-missingok.patch (limited to 'meta') diff --git a/meta/recipes-devtools/python/python-smartpm/smart-missingok.patch b/meta/recipes-devtools/python/python-smartpm/smart-missingok.patch new file mode 100644 index 0000000000..7e138696b8 --- /dev/null +++ b/meta/recipes-devtools/python/python-smartpm/smart-missingok.patch @@ -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 + +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 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 bc0c1f9941..4314564cd8 100644 --- a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb +++ b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb @@ -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" -- cgit v1.2.3