* [PATCH 0/4] First pass at implementing SMART
@ 2012-10-31 21:19 Mark Hatle
2012-10-31 21:19 ` [PATCH 1/4] rpm: Slightly change the way python-rpm is constructed Mark Hatle
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Mark Hatle @ 2012-10-31 21:19 UTC (permalink / raw)
To: openembedded-core
This patch set is the first pass at implementing smart. Patch 1/4 is the same
as what was previously sent to the list that fixed some issues with the rpm
python module.
I did not squash 1/4 and 3/4 and 2/4 and 4/4 together as they are separate
components of the overall development. 1/4 is the basic fix, while 3/4 adds
support to the rpm-python to export more information.
2/4 is the initial SMART implementation and 4/4 adds support for the MISSINGOK
exported by 3/4.
The following changes since commit 0e90a303bc5cb0ede21ff4346843f9daeddfff45:
openssl: Use ${CFLAGS} not ${FULL_OPTIMIZATION} (2012-10-30 11:03:46 +0000)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib mhatle/smart
http://git.yoctoproject.org/cgit.cgi//log/?h=mhatle/rpm
Mark Hatle (4):
rpm: Slightly change the way python-rpm is constructed
python-smartpm: Add smartpm recipe
rpm: Add additional RPMSENSE values to python module
python-smartpm: Add basic knowledge of RPMSENSE_MISSINGOK
.../python/python-smartpm/smart-missingok.patch | 43 +++++++
.../python/python-smartpm/smart-rpm-root.patch | 80 +++++++++++++
.../python/python-smartpm/smartpm-rpm5-nodig.patch | 46 ++++++++
.../python/python-smartpm_1.4.1.bb | 120 ++++++++++++++++++++
.../rpm/rpm/python-rpm-rpmsense.patch | 33 ++++++
meta/recipes-devtools/rpm/rpm/rpm-py-init.patch | 27 +++++
meta/recipes-devtools/rpm/rpm_5.4.9.bb | 17 ++-
9 files changed, 365 insertions(+), 28 deletions(-)
create mode 100644 meta/recipes-devtools/python/python-smartpm/smart-missingok.patch
create mode 100644 meta/recipes-devtools/python/python-smartpm/smart-rpm-root.patch
create mode 100644 meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-nodig.patch
create mode 100644 meta/recipes-devtools/python/python-smartpm_1.4.1.bb
create mode 100644 meta/recipes-devtools/rpm/rpm/python-rpm-rpmsense.patch
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-py-init.patch
--
1.7.3.4
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH 1/4] rpm: Slightly change the way python-rpm is constructed 2012-10-31 21:19 [PATCH 0/4] First pass at implementing SMART Mark Hatle @ 2012-10-31 21:19 ` Mark Hatle 2012-10-31 21:19 ` [PATCH 2/4] python-smartpm: Add smartpm recipe Mark Hatle ` (2 subsequent siblings) 3 siblings, 0 replies; 6+ messages in thread From: Mark Hatle @ 2012-10-31 21:19 UTC (permalink / raw) To: openembedded-core If python support is enabled we want to make sure that the RPM python support is packaged properly. Move the components into the site-packages directory, move the .la files to a new -dev package. Add "rpm" as a dependency of python-rpm, otherwise rpm and the associated libraries won't be available. Fixup python wrapper to handle automatic relocation, as supported by the vendor WINDRIVER configuration. (Based on a patch from Paul Eggleton) Signed-off-by: Mark Hatle <mark.hatle@windriver.com> --- meta/recipes-devtools/rpm/rpm/rpm-py-init.patch | 27 +++++++++++++++++++++++ meta/recipes-devtools/rpm/rpm_5.4.9.bb | 16 ++++++++----- 2 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-py-init.patch diff --git a/meta/recipes-devtools/rpm/rpm/rpm-py-init.patch b/meta/recipes-devtools/rpm/rpm/rpm-py-init.patch new file mode 100644 index 0000000..b65abc24 --- /dev/null +++ b/meta/recipes-devtools/rpm/rpm/rpm-py-init.patch @@ -0,0 +1,27 @@ +python/rpmmodules.c: Change the way the python module loads the RPM config + +In order to support the RPM_VENDOR_WINDRIVER enhancement of dynamic +runtime relocation paths, we need to call rpmcliInit instead of +rpmReadConfigFiles. The rpmcliInit will end up calling rpmReadConfigFiles +after the necessary relocation processing (if enabled). + +Code derived from changes suggested by Paul Eggleton. + +Upstream-Status: Pending + +Signed-off-by: Mark Hatle <mark.hatle@windriver.com> + +diff --git a/python/rpmmodule.c b/python/rpmmodule.c +index f7282bc..dde68ca 100644 +--- a/python/rpmmodule.c ++++ b/python/rpmmodule.c +@@ -392,7 +392,8 @@ void init_rpm(void) + if (Py_AtExit(rpm_exithook) == -1) + return; + +- rpmReadConfigFiles(NULL, NULL); ++ const char *argv[1] = {"rpmmodule", 0}; ++ rpmcliInit(1, argv, NULL); + + d = PyModule_GetDict(m); + diff --git a/meta/recipes-devtools/rpm/rpm_5.4.9.bb b/meta/recipes-devtools/rpm/rpm_5.4.9.bb index e838f40..ee28061 100644 --- a/meta/recipes-devtools/rpm/rpm_5.4.9.bb +++ b/meta/recipes-devtools/rpm/rpm_5.4.9.bb @@ -43,7 +43,7 @@ LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1" DEPENDS = "libpcre attr acl popt ossp-uuid file bison-native" -PR = "r52" +PR = "r53" # rpm2cpio is a shell script, which is part of the rpm src.rpm. It is needed # in order to extract the distribution SRPM into a format we can extract... @@ -80,6 +80,7 @@ SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.9-0.20120508.src.rpm;ex file://makefile-am-exec-hook.patch \ file://rpm-stub-out-git_strerror.patch \ file://rpm-db_buffer_small.patch \ + file://rpm-py-init.patch \ " SRC_URI[md5sum] = "60d56ace884340c1b3fcac6a1d58e768" @@ -107,7 +108,7 @@ PACKAGECONFIG[xar] = "--with-xar,--without-xar,xar," WITH_PYTHON = " --with-python=${PYTHON_BASEVERSION} \ --with-python-inc-dir=${STAGING_INCDIR}/python${PYTHON_BASEVERSION} \ - --with-python-lib-dir=${libdir}/python${PYTHON_BASEVERSION} \ + --with-python-lib-dir=${libdir}/python${PYTHON_BASEVERSION}/site-packages \ --without-pythonembed" PACKAGECONFIG[python] = "${WITH_PYTHON},--without-python,python," @@ -189,7 +190,7 @@ CFLAGS_append = " -DRPM_VENDOR_WINDRIVER -DRPM_VENDOR_POKY -DRPM_VENDOR_OE" LDFLAGS_append_libc-uclibc = "-lrt -lpthread" -PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-libs ${PN}-dev ${PN}-staticdev ${PN}-common ${PN}-build python-rpm-dbg python-rpm-staticdev python-rpm perl-module-rpm perl-module-rpm-dev ${PN}-locale" +PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-libs ${PN}-dev ${PN}-staticdev ${PN}-common ${PN}-build python-rpm-dbg python-rpm-staticdev python-rpm-dev python-rpm perl-module-rpm perl-module-rpm-dev ${PN}-locale" SOLIBS = "5.4.so" @@ -302,9 +303,12 @@ RDEPENDS_${PN} = "base-files" RDEPENDS_${PN}_class-native = "" RDEPENDS_${PN}-build = "file" -FILES_python-rpm-dbg = "${libdir}/python*/rpm/.debug/_*" -FILES_python-rpm-staticdev = "${libdir}/python*/rpm/*.a" -FILES_python-rpm = "${libdir}/python*/rpm" +RDEPENDS_python-rpm = "${PN}" + +FILES_python-rpm-dbg = "${libdir}/python*/site-packages/rpm/.debug/_*" +FILES_python-rpm-dev = "${libdir}/python*/site-packages/rpm/*.la" +FILES_python-rpm-staticdev = "${libdir}/python*/site-packages/rpm/*.a" +FILES_python-rpm = "${libdir}/python*/site-packages/rpm" FILES_perl-module-rpm = "${libdir}/perl/*/* \ " -- 1.7.3.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/4] python-smartpm: Add smartpm recipe 2012-10-31 21:19 [PATCH 0/4] First pass at implementing SMART Mark Hatle 2012-10-31 21:19 ` [PATCH 1/4] rpm: Slightly change the way python-rpm is constructed Mark Hatle @ 2012-10-31 21:19 ` Mark Hatle 2012-11-02 8:18 ` Saul Wold 2012-10-31 21:19 ` [PATCH 3/4] rpm: Add additional RPMSENSE values to python module Mark Hatle 2012-10-31 21:19 ` [PATCH 4/4] python-smartpm: Add basic knowledge of RPMSENSE_MISSINGOK Mark Hatle 3 siblings, 1 reply; 6+ messages in thread From: Mark Hatle @ 2012-10-31 21:19 UTC (permalink / raw) To: openembedded-core This is the initial integration, basic functionality such as 'smart query' has been tested. Active use of remote feeds and such has not yet been verified. Thanks to Paul Eggleton for corrections and bug fixes for the initial integration. Signed-off-by: Mark Hatle <mark.hatle@windriver.com> --- .../python/python-smartpm/smart-rpm-root.patch | 80 +++++++++++++ .../python/python-smartpm/smartpm-rpm5-nodig.patch | 46 ++++++++ .../python/python-smartpm_1.4.1.bb | 119 ++++++++++++++++++++ 3 files changed, 245 insertions(+), 0 deletions(-) create mode 100644 meta/recipes-devtools/python/python-smartpm/smart-rpm-root.patch create mode 100644 meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-nodig.patch create mode 100644 meta/recipes-devtools/python/python-smartpm_1.4.1.bb diff --git a/meta/recipes-devtools/python/python-smartpm/smart-rpm-root.patch b/meta/recipes-devtools/python/python-smartpm/smart-rpm-root.patch new file mode 100644 index 0000000..b2629ef --- /dev/null +++ b/meta/recipes-devtools/python/python-smartpm/smart-rpm-root.patch @@ -0,0 +1,80 @@ +Fix smart RPM backend to handle rpm-dbpath/rpm-root properly + +Don't assume that if the dbpath starts with / that it is an absolute +path. This matches the behaviour of rpm itself. (If the root path is +specified and does not start with /, rpm will prepend the root path +twice and fail). + +Upstream-Status: Pending + +Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> + +diff --git a/smart/backends/rpm/base.py b/smart/backends/rpm/base.py +index 7092332..0489e11 100644 +--- a/smart/backends/rpm/base.py ++++ b/smart/backends/rpm/base.py +@@ -46,6 +46,12 @@ __all__ = ["RPMPackage", "RPMProvides", "RPMNameProvides", "RPMPreRequires", + "rpm", "getTS", "getArchScore", "getArchColor", "system_provides", + "collapse_libc_requires"] + ++def rpm_join_dbpath(root, dbpath): ++ if dbpath.startswith('/') and root: ++ return os.path.join(root, dbpath[1:]) ++ else: ++ return os.path.join(root, dbpath) ++ + def getTS(new=False): + rpm_root = os.path.abspath(sysconf.get("rpm-root", "/")) + if not hasattr(getTS, "ts") or getTS.root != rpm_root: +@@ -56,7 +62,7 @@ def getTS(new=False): + #if not sysconf.get("rpm-check-signatures", False): + # getTS.ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES) + rpm_dbpath = sysconf.get("rpm-dbpath", "var/lib/rpm") +- dbdir = os.path.join(getTS.root, rpm_dbpath) ++ dbdir = rpm_join_dbpath(getTS.root, rpm_dbpath) + if not os.path.isdir(dbdir): + try: + os.makedirs(dbdir) +diff --git a/smart/channels/rpm_sys.py b/smart/channels/rpm_sys.py +index efcb10e..b9fda27 100644 +--- a/smart/channels/rpm_sys.py ++++ b/smart/channels/rpm_sys.py +@@ -20,7 +20,7 @@ + # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + # + from smart.backends.rpm.header import RPMDBLoader +-from smart.backends.rpm.base import getTS ++from smart.backends.rpm.base import getTS, rpm_join_dbpath + from smart.channel import PackageChannel + from smart import * + import os +@@ -32,9 +32,9 @@ class RPMSysChannel(PackageChannel): + + def fetch(self, fetcher, progress): + getTS() # Make sure the db exists. +- path = os.path.join(sysconf.get("rpm-root", "/"), +- sysconf.get("rpm-dbpath", "var/lib/rpm"), +- "Packages") ++ dbdir = rpm_join_dbpath(sysconf.get("rpm-root", "/"), ++ sysconf.get("rpm-dbpath", "var/lib/rpm")) ++ path = os.path.join(dbdir, "Packages") + digest = os.path.getmtime(path) + if digest == self._digest: + return True +diff --git a/smart/plugins/detectsys.py b/smart/plugins/detectsys.py +index 2cd49ad..3959d07 100644 +--- a/smart/plugins/detectsys.py ++++ b/smart/plugins/detectsys.py +@@ -20,10 +20,11 @@ + # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + # + from smart import * ++from smart.backends.rpm.base import rpm_join_dbpath + import os + + def detectRPMSystem(): +- dir = os.path.join(sysconf.get("rpm-root", "/"), ++ dir = rpm_join_dbpath(sysconf.get("rpm-root", "/"), + sysconf.get("rpm-dbpath", "var/lib/rpm")) + file = os.path.join(dir, "Packages") + if os.path.exists(file): diff --git a/meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-nodig.patch b/meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-nodig.patch new file mode 100644 index 0000000..9919a94 --- /dev/null +++ b/meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-nodig.patch @@ -0,0 +1,46 @@ +RPM5 has removed support for RPMVSF_NOSIGNATURES + +Patch smart to no longer use this flag + +Upstream-Status: Pending + +Signed-off-by: Mark Hatle <mark.hatle@windriver.com> + +diff -ur smart-1.4.1.orig/smart/backends/rpm/base.py smart-1.4.1/smart/backends/rpm/base.py +--- smart-1.4.1.orig/smart/backends/rpm/base.py 2012-10-04 11:22:11.229351164 -0500 ++++ smart-1.4.1/smart/backends/rpm/base.py 2012-10-04 11:22:44.820170786 -0500 +@@ -53,8 +53,8 @@ + if sysconf.get("rpm-dbpath"): + rpm.addMacro('_dbpath', "/" + sysconf.get("rpm-dbpath")) + getTS.ts = rpm.ts(getTS.root) +- if not sysconf.get("rpm-check-signatures", False): +- getTS.ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES) ++ #if not sysconf.get("rpm-check-signatures", False): ++ # getTS.ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES) + rpm_dbpath = sysconf.get("rpm-dbpath", "var/lib/rpm") + dbdir = os.path.join(getTS.root, rpm_dbpath) + if not os.path.isdir(dbdir): +@@ -82,8 +82,8 @@ + if sysconf.get("rpm-dbpath"): + rpm.addMacro('_dbpath', "/" + sysconf.get("rpm-dbpath")) + ts = rpm.ts(getTS.root) +- if not sysconf.get("rpm-check-signatures", False): +- ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES) ++ #if not sysconf.get("rpm-check-signatures", False): ++ # ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES) + return ts + else: + return getTS.ts +diff -ur smart-1.4.1.orig/smart/plugins/yumchannelsync.py smart-1.4.1/smart/plugins/yumchannelsync.py +--- smart-1.4.1.orig/smart/plugins/yumchannelsync.py 2010-12-06 03:11:05.000000000 -0600 ++++ smart-1.4.1/smart/plugins/yumchannelsync.py 2012-10-04 11:23:09.799350924 -0500 +@@ -56,7 +56,8 @@ + + rpmroot = sysconf.get("rpm-root", "/") + ts = rpmUtils.transaction.initReadOnlyTransaction(root=rpmroot) +- ts.pushVSFlags(~(rpm._RPMVSF_NOSIGNATURES|rpm._RPMVSF_NODIGESTS)) ++ #ts.pushVSFlags(~(rpm._RPMVSF_NOSIGNATURES|rpm._RPMVSF_NODIGESTS)) ++ ts.pushVSFlags(~(rpm._RPMVSF_NODIGESTS)) + releasever = None + # HACK: we're hard-coding the most used distros, will add more if needed + idx = ts.dbMatch('provides', 'fedora-release') diff --git a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb new file mode 100644 index 0000000..485cec3 --- /dev/null +++ b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb @@ -0,0 +1,119 @@ +SUMMARY = "The Smart Package Manager" + +DESCRIPTION = "The Smart Package Manager project has the ambitious objective of creating \ +smart and portable algorithms for solving adequately the problem of managing software \ +upgrades and installation. This tool works in all major distributions and will bring \ +notable advantages over native tools currently in use (APT, APT-RPM, YUM, URPMI, etc)." + +HOMEPAGE = "http://smartpm.org/" +SECTION = "devel/python" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833" + +DEPENDS = "python rpm" +PR = "r0" +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 \ + " + +SRC_URI[md5sum] = "573ef32ba177a6b3c4bf7ef04873fcb6" +SRC_URI[sha256sum] = "b1d519ddb43d60f293b065c28870a5d9e8b591cd49e8c68caea48ace91085eba" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +# Options - rpm, qt4, gtk +PACKAGECONFIG ??= "rpm" + +RPM_RDEP = "python-smartpm-backend-rpm" +QT_RDEP = "python-smartpm-interface-qt4" +GTK_RDEP = "python-smartpm-interface-gtk" + +RPM_RDEP_virtclass-native = "" +QT_RDEP_virtclass-native = "" +GTK_RDEP_virtclass-native = "" + +PACKAGECONFIG[rpm] = ",,rpm,${RPM_RDEP}" +PACKAGECONFIG[qt4] = ",,qt4-x11,${QT_RDEP}" +PACKAGECONFIG[gtk] = ",,gtk+,${GTK_RDEP}" + +inherit distutils + +do_install_append() { + # Cleanup unused item... + rmdir ${D}${datadir}/share + + # We don't support the following items + rm -rf ${D}${libdir}/python*/site-packages/smart/backends/slack + rm -rf ${D}${libdir}/python*/site-packages/smart/backends/arch + rm -rf ${D}${libdir}/python*/site-packages/smart/interfaces/qt + + # Temporary, debian support in OE is missing the python module + rm -f ${D}${libdir}/python*/site-packages/smart/plugins/aptchannelsync.py* + rm -f ${D}${libdir}/python*/site-packages/smart/plugins/debdir.py* + rm -rf ${D}${libdir}/python*/site-packages/smart/backends/deb + + # Disable automatic channel detection + rm -f ${D}${libdir}/python*/site-packages/smart/plugins/detectsys.py* + + # Disable landscape support + rm -f ${D}${libdir}/python*/site-packages/smart/plugins/landscape.py* + + # Disable urpmi channel support + rm -f ${D}${libdir}/python*/site-packages/smart/plugins/urpmichannelsync.py* + + # Disable yum channel support + rm -f ${D}${libdir}/python*/site-packages/smart/plugins/yumchannelsync.py* + + # Disable zypper channel support + rm -f ${D}${libdir}/python*/site-packages/smart/plugins/zyppchannelsync.py* + + if [ -z "${@base_contains('PACKAGECONFIG', 'rpm', 'rpm', '', d)}" ]; then + rm -f ${D}${libdir}/python*/site-packages/smart/plugins/rpmdir.py* + rm -rf ${D}${libdir}/python*/site-packages/smart/backends/rpm + fi + + if [ -z "${@base_contains('PACKAGECONFIG', 'qt4', 'qt4', '', d)}" ]; then + rm -rf ${D}${libdir}/python*/site-packages/smart/interfaces/qt4 + fi + + if [ -z "${@base_contains('PACKAGECONFIG', 'gtk+', 'gtk', '', d)}" ]; then + rm -rf ${D}${libdir}/python*/site-packages/smart/interfaces/gtk + fi +} + +PACKAGES = "python-smartpm-dev python-smartpm-dbg python-smartpm-doc smartpm" +PACKAGES += "${@base_contains('PACKAGECONFIG', 'rpm', 'python-smartpm-backend-rpm', '', d)}" +PACKAGES += "${@base_contains('PACKAGECONFIG', 'qt4', 'python-smartpm-interface-qt4', '', d)}" +PACKAGES += "${@base_contains('PACKAGECONFIG', 'gtk', 'python-smartpm-interface-gtk', '', d)}" +PACKAGES += "python-smartpm-interface-images" +PACKAGES += "python-smartpm" + +RDEPENDS_smartpm = 'python-smartpm' + +RDEPENDS_python-smartpm_append = " virtual/python-smartpm-backend python-codecs python-textutils python-xml" +RDEPENDS_python-smartpm_append += " python-fcntl python-pickle python-crypt python-compression python-shell" +RDEPENDS_python-smartpm_append += " python-resource python-netclient python-threading python-unixadmin" + +#RDEPENDS_python-smartpm_append += " python-modules" + +RDEPENDS_python-smartpm-backend-rpm = 'python-rpm' +RPROVIDES_python-smartpm-backend-rpm = 'virtual/python-smartpm-backend' + +RDEPENDS_python-smartpm-interface-qt4 = 'qt4-x11 python-smartpm-interface-images' +RDEPENDS_python-smartpm-interface-gtk = 'gtk+ python-smartpm-interface-images' + +FILES_smartpm = "${bindir}/smart" + +FILES_${PN}-dbg += "${libdir}/python*/site-packages/smart/backends/rpm/.debug" + +FILES_python-smartpm-backend-rpm = "${libdir}/python*/site-packages/smart/backends/rpm" + +FILES_python-smartpm-interface-qt4 = "${libdir}/python*/site-packages/smart/interfaces/qt4" +FILES_python-smartpm-interface-gtk = "${libdir}/python*/site-packages/smart/interfaces/gtk" +FILES_python-smartpm-interface-images = "${datadir}/${baselib}/python*/site-packages/smart/interfaces/images" + +BBCLASSEXTEND = "native nativesdk" + -- 1.7.3.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/4] python-smartpm: Add smartpm recipe 2012-10-31 21:19 ` [PATCH 2/4] python-smartpm: Add smartpm recipe Mark Hatle @ 2012-11-02 8:18 ` Saul Wold 0 siblings, 0 replies; 6+ messages in thread From: Saul Wold @ 2012-11-02 8:18 UTC (permalink / raw) To: Mark Hatle; +Cc: openembedded-core On 10/31/2012 02:19 PM, Mark Hatle wrote: > This is the initial integration, basic functionality such as 'smart query' > has been tested. Active use of remote feeds and such has not yet been > verified. > > Thanks to Paul Eggleton for corrections and bug fixes for the initial > integration. > > Signed-off-by: Mark Hatle <mark.hatle@windriver.com> > --- > .../python/python-smartpm/smart-rpm-root.patch | 80 +++++++++++++ > .../python/python-smartpm/smartpm-rpm5-nodig.patch | 46 ++++++++ > .../python/python-smartpm_1.4.1.bb | 119 ++++++++++++++++++++ > 3 files changed, 245 insertions(+), 0 deletions(-) > create mode 100644 meta/recipes-devtools/python/python-smartpm/smart-rpm-root.patch > create mode 100644 meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-nodig.patch > create mode 100644 meta/recipes-devtools/python/python-smartpm_1.4.1.bb > Mark, It seems that you might be missing > diff --git a/meta/recipes-devtools/python/python-smartpm/smart-rpm-root.patch b/meta/recipes-devtools/python/python-smartpm/smart-rpm-root.patch > new file mode 100644 > index 0000000..b2629ef > --- /dev/null > +++ b/meta/recipes-devtools/python/python-smartpm/smart-rpm-root.patch > @@ -0,0 +1,80 @@ > +Fix smart RPM backend to handle rpm-dbpath/rpm-root properly > + > +Don't assume that if the dbpath starts with / that it is an absolute > +path. This matches the behaviour of rpm itself. (If the root path is > +specified and does not start with /, rpm will prepend the root path > +twice and fail). > + > +Upstream-Status: Pending > + > +Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> > + > +diff --git a/smart/backends/rpm/base.py b/smart/backends/rpm/base.py > +index 7092332..0489e11 100644 > +--- a/smart/backends/rpm/base.py > ++++ b/smart/backends/rpm/base.py > +@@ -46,6 +46,12 @@ __all__ = ["RPMPackage", "RPMProvides", "RPMNameProvides", "RPMPreRequires", > + "rpm", "getTS", "getArchScore", "getArchColor", "system_provides", > + "collapse_libc_requires"] > + > ++def rpm_join_dbpath(root, dbpath): > ++ if dbpath.startswith('/') and root: > ++ return os.path.join(root, dbpath[1:]) > ++ else: > ++ return os.path.join(root, dbpath) > ++ > + def getTS(new=False): > + rpm_root = os.path.abspath(sysconf.get("rpm-root", "/")) > + if not hasattr(getTS, "ts") or getTS.root != rpm_root: > +@@ -56,7 +62,7 @@ def getTS(new=False): > + #if not sysconf.get("rpm-check-signatures", False): > + # getTS.ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES) > + rpm_dbpath = sysconf.get("rpm-dbpath", "var/lib/rpm") > +- dbdir = os.path.join(getTS.root, rpm_dbpath) > ++ dbdir = rpm_join_dbpath(getTS.root, rpm_dbpath) > + if not os.path.isdir(dbdir): > + try: > + os.makedirs(dbdir) > +diff --git a/smart/channels/rpm_sys.py b/smart/channels/rpm_sys.py > +index efcb10e..b9fda27 100644 > +--- a/smart/channels/rpm_sys.py > ++++ b/smart/channels/rpm_sys.py > +@@ -20,7 +20,7 @@ > + # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + # > + from smart.backends.rpm.header import RPMDBLoader > +-from smart.backends.rpm.base import getTS > ++from smart.backends.rpm.base import getTS, rpm_join_dbpath > + from smart.channel import PackageChannel > + from smart import * > + import os > +@@ -32,9 +32,9 @@ class RPMSysChannel(PackageChannel): > + > + def fetch(self, fetcher, progress): > + getTS() # Make sure the db exists. > +- path = os.path.join(sysconf.get("rpm-root", "/"), > +- sysconf.get("rpm-dbpath", "var/lib/rpm"), > +- "Packages") > ++ dbdir = rpm_join_dbpath(sysconf.get("rpm-root", "/"), > ++ sysconf.get("rpm-dbpath", "var/lib/rpm")) > ++ path = os.path.join(dbdir, "Packages") > + digest = os.path.getmtime(path) > + if digest == self._digest: > + return True > +diff --git a/smart/plugins/detectsys.py b/smart/plugins/detectsys.py > +index 2cd49ad..3959d07 100644 > +--- a/smart/plugins/detectsys.py > ++++ b/smart/plugins/detectsys.py > +@@ -20,10 +20,11 @@ > + # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + # > + from smart import * > ++from smart.backends.rpm.base import rpm_join_dbpath > + import os > + > + def detectRPMSystem(): > +- dir = os.path.join(sysconf.get("rpm-root", "/"), > ++ dir = rpm_join_dbpath(sysconf.get("rpm-root", "/"), > + sysconf.get("rpm-dbpath", "var/lib/rpm")) > + file = os.path.join(dir, "Packages") > + if os.path.exists(file): > diff --git a/meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-nodig.patch b/meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-nodig.patch > new file mode 100644 > index 0000000..9919a94 > --- /dev/null > +++ b/meta/recipes-devtools/python/python-smartpm/smartpm-rpm5-nodig.patch > @@ -0,0 +1,46 @@ > +RPM5 has removed support for RPMVSF_NOSIGNATURES > + > +Patch smart to no longer use this flag > + > +Upstream-Status: Pending > + > +Signed-off-by: Mark Hatle <mark.hatle@windriver.com> > + > +diff -ur smart-1.4.1.orig/smart/backends/rpm/base.py smart-1.4.1/smart/backends/rpm/base.py > +--- smart-1.4.1.orig/smart/backends/rpm/base.py 2012-10-04 11:22:11.229351164 -0500 > ++++ smart-1.4.1/smart/backends/rpm/base.py 2012-10-04 11:22:44.820170786 -0500 > +@@ -53,8 +53,8 @@ > + if sysconf.get("rpm-dbpath"): > + rpm.addMacro('_dbpath', "/" + sysconf.get("rpm-dbpath")) > + getTS.ts = rpm.ts(getTS.root) > +- if not sysconf.get("rpm-check-signatures", False): > +- getTS.ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES) > ++ #if not sysconf.get("rpm-check-signatures", False): > ++ # getTS.ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES) > + rpm_dbpath = sysconf.get("rpm-dbpath", "var/lib/rpm") > + dbdir = os.path.join(getTS.root, rpm_dbpath) > + if not os.path.isdir(dbdir): > +@@ -82,8 +82,8 @@ > + if sysconf.get("rpm-dbpath"): > + rpm.addMacro('_dbpath', "/" + sysconf.get("rpm-dbpath")) > + ts = rpm.ts(getTS.root) > +- if not sysconf.get("rpm-check-signatures", False): > +- ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES) > ++ #if not sysconf.get("rpm-check-signatures", False): > ++ # ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES) > + return ts > + else: > + return getTS.ts > +diff -ur smart-1.4.1.orig/smart/plugins/yumchannelsync.py smart-1.4.1/smart/plugins/yumchannelsync.py > +--- smart-1.4.1.orig/smart/plugins/yumchannelsync.py 2010-12-06 03:11:05.000000000 -0600 > ++++ smart-1.4.1/smart/plugins/yumchannelsync.py 2012-10-04 11:23:09.799350924 -0500 > +@@ -56,7 +56,8 @@ > + > + rpmroot = sysconf.get("rpm-root", "/") > + ts = rpmUtils.transaction.initReadOnlyTransaction(root=rpmroot) > +- ts.pushVSFlags(~(rpm._RPMVSF_NOSIGNATURES|rpm._RPMVSF_NODIGESTS)) > ++ #ts.pushVSFlags(~(rpm._RPMVSF_NOSIGNATURES|rpm._RPMVSF_NODIGESTS)) > ++ ts.pushVSFlags(~(rpm._RPMVSF_NODIGESTS)) > + releasever = None > + # HACK: we're hard-coding the most used distros, will add more if needed > + idx = ts.dbMatch('provides', 'fedora-release') > diff --git a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb > new file mode 100644 > index 0000000..485cec3 > --- /dev/null > +++ b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb > @@ -0,0 +1,119 @@ > +SUMMARY = "The Smart Package Manager" > + > +DESCRIPTION = "The Smart Package Manager project has the ambitious objective of creating \ > +smart and portable algorithms for solving adequately the problem of managing software \ > +upgrades and installation. This tool works in all major distributions and will bring \ > +notable advantages over native tools currently in use (APT, APT-RPM, YUM, URPMI, etc)." > + > +HOMEPAGE = "http://smartpm.org/" > +SECTION = "devel/python" > +LICENSE = "GPLv2" > +LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833" > + > +DEPENDS = "python rpm" > +PR = "r0" > +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 \ > + " > + > +SRC_URI[md5sum] = "573ef32ba177a6b3c4bf7ef04873fcb6" > +SRC_URI[sha256sum] = "b1d519ddb43d60f293b065c28870a5d9e8b591cd49e8c68caea48ace91085eba" > +S = "${WORKDIR}/${SRCNAME}-${PV}" > + > +# Options - rpm, qt4, gtk > +PACKAGECONFIG ??= "rpm" > + > +RPM_RDEP = "python-smartpm-backend-rpm" > +QT_RDEP = "python-smartpm-interface-qt4" > +GTK_RDEP = "python-smartpm-interface-gtk" > + > +RPM_RDEP_virtclass-native = "" > +QT_RDEP_virtclass-native = "" > +GTK_RDEP_virtclass-native = "" > + > +PACKAGECONFIG[rpm] = ",,rpm,${RPM_RDEP}" > +PACKAGECONFIG[qt4] = ",,qt4-x11,${QT_RDEP}" > +PACKAGECONFIG[gtk] = ",,gtk+,${GTK_RDEP}" > + > +inherit distutils > + > +do_install_append() { > + # Cleanup unused item... > + rmdir ${D}${datadir}/share > + > + # We don't support the following items > + rm -rf ${D}${libdir}/python*/site-packages/smart/backends/slack > + rm -rf ${D}${libdir}/python*/site-packages/smart/backends/arch > + rm -rf ${D}${libdir}/python*/site-packages/smart/interfaces/qt > + > + # Temporary, debian support in OE is missing the python module > + rm -f ${D}${libdir}/python*/site-packages/smart/plugins/aptchannelsync.py* > + rm -f ${D}${libdir}/python*/site-packages/smart/plugins/debdir.py* > + rm -rf ${D}${libdir}/python*/site-packages/smart/backends/deb > + > + # Disable automatic channel detection > + rm -f ${D}${libdir}/python*/site-packages/smart/plugins/detectsys.py* > + > + # Disable landscape support > + rm -f ${D}${libdir}/python*/site-packages/smart/plugins/landscape.py* > + > + # Disable urpmi channel support > + rm -f ${D}${libdir}/python*/site-packages/smart/plugins/urpmichannelsync.py* > + > + # Disable yum channel support > + rm -f ${D}${libdir}/python*/site-packages/smart/plugins/yumchannelsync.py* > + > + # Disable zypper channel support > + rm -f ${D}${libdir}/python*/site-packages/smart/plugins/zyppchannelsync.py* > + > + if [ -z "${@base_contains('PACKAGECONFIG', 'rpm', 'rpm', '', d)}" ]; then > + rm -f ${D}${libdir}/python*/site-packages/smart/plugins/rpmdir.py* > + rm -rf ${D}${libdir}/python*/site-packages/smart/backends/rpm > + fi > + > + if [ -z "${@base_contains('PACKAGECONFIG', 'qt4', 'qt4', '', d)}" ]; then > + rm -rf ${D}${libdir}/python*/site-packages/smart/interfaces/qt4 > + fi > + > + if [ -z "${@base_contains('PACKAGECONFIG', 'gtk+', 'gtk', '', d)}" ]; then > + rm -rf ${D}${libdir}/python*/site-packages/smart/interfaces/gtk > + fi > +} > + > +PACKAGES = "python-smartpm-dev python-smartpm-dbg python-smartpm-doc smartpm" > +PACKAGES += "${@base_contains('PACKAGECONFIG', 'rpm', 'python-smartpm-backend-rpm', '', d)}" > +PACKAGES += "${@base_contains('PACKAGECONFIG', 'qt4', 'python-smartpm-interface-qt4', '', d)}" > +PACKAGES += "${@base_contains('PACKAGECONFIG', 'gtk', 'python-smartpm-interface-gtk', '', d)}" > +PACKAGES += "python-smartpm-interface-images" > +PACKAGES += "python-smartpm" > + > +RDEPENDS_smartpm = 'python-smartpm' > + > +RDEPENDS_python-smartpm_append = " virtual/python-smartpm-backend python-codecs python-textutils python-xml" > +RDEPENDS_python-smartpm_append += " python-fcntl python-pickle python-crypt python-compression python-shell" > +RDEPENDS_python-smartpm_append += " python-resource python-netclient python-threading python-unixadmin" > + > +#RDEPENDS_python-smartpm_append += " python-modules" > + > +RDEPENDS_python-smartpm-backend-rpm = 'python-rpm' > +RPROVIDES_python-smartpm-backend-rpm = 'virtual/python-smartpm-backend' > + > +RDEPENDS_python-smartpm-interface-qt4 = 'qt4-x11 python-smartpm-interface-images' > +RDEPENDS_python-smartpm-interface-gtk = 'gtk+ python-smartpm-interface-images' > + Mark, I think you might need some more PROVIDES or RDEPENDS mods here since I am seeing issues with nativesdk > ERROR: Nothing PROVIDES 'nativesdk-rpm' (but virtual:nativesdk:/intel/poky/distro/meta/recipes-devtools/python/python-smartpm_1.4.1.bb DEPENDS on or otherwise requires it) > ERROR: Nothing RPROVIDES 'nativesdk-python-smartpm' (but virtual:nativesdk:/intel/poky/distro/meta/recipes-devtools/python/python-smartpm_1.4.1.bb RDEPENDS on or otherwise requires it) > ERROR: No eligible RPROVIDERs exist for 'nativesdk-python-smartpm' > NOTE: Runtime target 'nativesdk-python-smartpm' is unbuildable, removing... > Missing or unbuildable dependency chain was: ['nativesdk-python-smartpm'] > ERROR: Nothing RPROVIDES 'nativesdk-python-rpm' (but virtual:nativesdk:/intel/poky/distro/meta/recipes-devtools/python/python-smartpm_1.4.1.bb RDEPENDS on or otherwise requires it) > NOTE: Runtime target 'nativesdk-python-rpm' is unbuildable, removing... > Missing or unbuildable dependency chain was: ['nativesdk-python-rpm'] > ERROR: Nothing RPROVIDES 'virtual/nativesdk-python-smartpm-backend' (but virtual:nativesdk:/intel/poky/distro/meta/recipes-devtools/python/python-smartpm_1.4.1.bb RDEPENDS on or otherwise requires it) > ERROR: No eligible RPROVIDERs exist for 'virtual/nativesdk-python-smartpm-backend' > NOTE: Runtime target 'virtual/nativesdk-python-smartpm-backend' is unbuildable, removing... > Missing or unbuildable dependency chain was: ['virtual/nativesdk-python-smartpm-backend'] > NOTE: Preparing runqueue Sau! > +FILES_smartpm = "${bindir}/smart" > + > +FILES_${PN}-dbg += "${libdir}/python*/site-packages/smart/backends/rpm/.debug" > + > +FILES_python-smartpm-backend-rpm = "${libdir}/python*/site-packages/smart/backends/rpm" > + > +FILES_python-smartpm-interface-qt4 = "${libdir}/python*/site-packages/smart/interfaces/qt4" > +FILES_python-smartpm-interface-gtk = "${libdir}/python*/site-packages/smart/interfaces/gtk" > +FILES_python-smartpm-interface-images = "${datadir}/${baselib}/python*/site-packages/smart/interfaces/images" > + > +BBCLASSEXTEND = "native nativesdk" > + > ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 3/4] rpm: Add additional RPMSENSE values to python module 2012-10-31 21:19 [PATCH 0/4] First pass at implementing SMART Mark Hatle 2012-10-31 21:19 ` [PATCH 1/4] rpm: Slightly change the way python-rpm is constructed Mark Hatle 2012-10-31 21:19 ` [PATCH 2/4] python-smartpm: Add smartpm recipe Mark Hatle @ 2012-10-31 21:19 ` Mark Hatle 2012-10-31 21:19 ` [PATCH 4/4] python-smartpm: Add basic knowledge of RPMSENSE_MISSINGOK Mark Hatle 3 siblings, 0 replies; 6+ messages in thread From: Mark Hatle @ 2012-10-31 21:19 UTC (permalink / raw) To: openembedded-core We add a number of additional RPMSENSE values to the python module to better support the dependency calculations in SMART. Signed-off-by: Mark Hatle <mark.hatle@windriver.com> --- .../rpm/rpm/python-rpm-rpmsense.patch | 33 ++++++++++++++++++++ meta/recipes-devtools/rpm/rpm_5.4.9.bb | 3 +- 2 files changed, 35 insertions(+), 1 deletions(-) create mode 100644 meta/recipes-devtools/rpm/rpm/python-rpm-rpmsense.patch diff --git a/meta/recipes-devtools/rpm/rpm/python-rpm-rpmsense.patch b/meta/recipes-devtools/rpm/rpm/python-rpm-rpmsense.patch new file mode 100644 index 0000000..61f1e0c --- /dev/null +++ b/meta/recipes-devtools/rpm/rpm/python-rpm-rpmsense.patch @@ -0,0 +1,33 @@ +rpmmodule.c: Export a few additional RPMSENSE values + +We want to see the RPMSENSE_SCRIPT values for use with SMART. We also +want to see the MISSINGOK value so we can avoid recommended packages causing +failures. + +Upstream-status: Pending + +Signed-off-by: Mark Hatle <mark.hatle@windriver.com> + +Index: rpm-5.4.9/python/rpmmodule.c +=================================================================== +--- rpm-5.4.9.orig/python/rpmmodule.c ++++ rpm-5.4.9/python/rpmmodule.c +@@ -494,12 +494,16 @@ void init_rpm(void) + REGISTER_ENUM(RPMSENSE_EQUAL); + REGISTER_ENUM(RPMSENSE_NOTEQUAL); + REGISTER_ENUM(RPMSENSE_FIND_REQUIRES); +-#if defined(RPM_VENDOR_MANDRIVA) ++#if defined(RPM_VENDOR_MANDRIVA) || defined(RPM_VENDOR_WINDRIVER) || defined(RPM_VENDOR_POKY) + REGISTER_ENUM(RPMSENSE_PREREQ); + REGISTER_ENUM(RPMSENSE_SCRIPT_PRE); + REGISTER_ENUM(RPMSENSE_SCRIPT_POST); + REGISTER_ENUM(RPMSENSE_SCRIPT_PREUN); +- REGISTER_ENUM(RPMSENSE_SCRIPT_POSTUN) ++ REGISTER_ENUM(RPMSENSE_SCRIPT_POSTUN); ++#endif ++ ++#if defined(RPM_VENDOR_WINDRIVER) || defined(RPM_VENDOR_POKY) ++ REGISTER_ENUM(RPMSENSE_MISSINGOK); + #endif + + REGISTER_ENUM(RPMDEPS_FLAG_NOUPGRADE); diff --git a/meta/recipes-devtools/rpm/rpm_5.4.9.bb b/meta/recipes-devtools/rpm/rpm_5.4.9.bb index ee28061..29876e8 100644 --- a/meta/recipes-devtools/rpm/rpm_5.4.9.bb +++ b/meta/recipes-devtools/rpm/rpm_5.4.9.bb @@ -43,7 +43,7 @@ LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1" DEPENDS = "libpcre attr acl popt ossp-uuid file bison-native" -PR = "r53" +PR = "r54" # rpm2cpio is a shell script, which is part of the rpm src.rpm. It is needed # in order to extract the distribution SRPM into a format we can extract... @@ -81,6 +81,7 @@ SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.9-0.20120508.src.rpm;ex file://rpm-stub-out-git_strerror.patch \ file://rpm-db_buffer_small.patch \ file://rpm-py-init.patch \ + file://python-rpm-rpmsense.patch \ " SRC_URI[md5sum] = "60d56ace884340c1b3fcac6a1d58e768" -- 1.7.3.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 4/4] python-smartpm: Add basic knowledge of RPMSENSE_MISSINGOK 2012-10-31 21:19 [PATCH 0/4] First pass at implementing SMART Mark Hatle ` (2 preceding siblings ...) 2012-10-31 21:19 ` [PATCH 3/4] rpm: Add additional RPMSENSE values to python module Mark Hatle @ 2012-10-31 21:19 ` Mark Hatle 3 siblings, 0 replies; 6+ messages in thread From: Mark Hatle @ 2012-10-31 21:19 UTC (permalink / raw) To: openembedded-core 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 <mark.hatle@windriver.com> --- .../python/python-smartpm/smart-missingok.patch | 43 ++++++++++++++++++++ .../python/python-smartpm_1.4.1.bb | 3 +- 2 files changed, 45 insertions(+), 1 deletions(-) create mode 100644 meta/recipes-devtools/python/python-smartpm/smart-missingok.patch 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 0000000..7e13869 --- /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 <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 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 485cec3..f69bd83 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" -- 1.7.3.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-11-02 8:33 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-10-31 21:19 [PATCH 0/4] First pass at implementing SMART Mark Hatle 2012-10-31 21:19 ` [PATCH 1/4] rpm: Slightly change the way python-rpm is constructed Mark Hatle 2012-10-31 21:19 ` [PATCH 2/4] python-smartpm: Add smartpm recipe Mark Hatle 2012-11-02 8:18 ` Saul Wold 2012-10-31 21:19 ` [PATCH 3/4] rpm: Add additional RPMSENSE values to python module Mark Hatle 2012-10-31 21:19 ` [PATCH 4/4] python-smartpm: Add basic knowledge of RPMSENSE_MISSINGOK Mark Hatle
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox