Remove RPM 4
cover Remove RPM 4
This series removes RPM 4 and code to support it from OE Core. There are several known issues with using RPM 4 and it seems better to acknowledge it's unsupported by removing it from OE-Core than to leave it in a non-functional state.
Please review the following changes for suitability for inclusion. If you have any objections or suggestions for improvement, please respond to the patches. If you agree with the changes, please provide your Acked-by.
Regards,
Joshua
The following changes since commit 00d3fd571a8d261d065b43f5cf3076a381843984:
siteinfo: Add ppc64le support. (2016-03-10 23:06:46 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib joshuagl/rmrpm
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=joshuagl/rmrpm
Joshua Lock (3):
rpm: remove RPM 4
smartpm: remove rpm4 patch
lib/package_manager: remove RPM4 support code
meta/lib/oe/package_manager.py | 94 ++--- .../smart-add-for-rpm-ignoresize-check.patch | 20 +- .../python/python-smartpm/smart-rpm4-fixes.patch | 49 --- meta/recipes-devtools/python/python-smartpm_git.bb | 1 - .../add_RPMSENSE_MISSINGOK_to_rpmmodule.patch | 20 -- .../rpm/rpm-4.11.2/disable_shortcircuited.patch | 23 -- .../rpm/rpm-4.11.2/fix_libdir.patch | 19 - meta/recipes-devtools/rpm/rpm-4.11.2/pythondeps.sh | 16 - .../rpm/rpm-4.11.2/remove-db3-from-configure.patch | 26 -- .../rpm/rpm-4.11.2/remove-dir-check.patch | 23 -- .../rpm/rpm-4.11.2/rpm-scriptetexechelp.patch | 194 ----------- .../rpm/rpm-4.11.2/support-suggests-tag.patch | 384 --------------------- .../rpm/rpm-4.11.2/use-pkgconfig-for-python.patch | 38 -- meta/recipes-devtools/rpm/rpm_4.11.2.bb | 132 ------- 14 files changed, 47 insertions(+), 992 deletions(-) delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-rpm4-fixes.patch delete mode 100644 meta/recipes-devtools/rpm/rpm-4.11.2/add_RPMSENSE_MISSINGOK_to_rpmmodule.patch delete mode 100644 meta/recipes-devtools/rpm/rpm-4.11.2/disable_shortcircuited.patch delete mode 100644 meta/recipes-devtools/rpm/rpm-4.11.2/fix_libdir.patch delete mode 100755 meta/recipes-devtools/rpm/rpm-4.11.2/pythondeps.sh delete mode 100644 meta/recipes-devtools/rpm/rpm-4.11.2/remove-db3-from-configure.patch delete mode 100644 meta/recipes-devtools/rpm/rpm-4.11.2/remove-dir-check.patch delete mode 100644 meta/recipes-devtools/rpm/rpm-4.11.2/rpm-scriptetexechelp.patch delete mode 100644 meta/recipes-devtools/rpm/rpm-4.11.2/support-suggests-tag.patch delete mode 100644 meta/recipes-devtools/rpm/rpm-4.11.2/use-pkgconfig-for-python.patch delete mode 100644 meta/recipes-devtools/rpm/rpm_4.11.2.bb
Signature · 1 line
2.5.0
RFC PATCH 1/3 rpm: remove RPM 4
RPM4 support is buggy and incomplete. As we don't have the resources or interest to maintain it this patch removes it.
--- .../add_RPMSENSE_MISSINGOK_to_rpmmodule.patch | 20 -- .../rpm/rpm-4.11.2/disable_shortcircuited.patch | 23 -- .../rpm/rpm-4.11.2/fix_libdir.patch | 19 - meta/recipes-devtools/rpm/rpm-4.11.2/pythondeps.sh | 16 - .../rpm/rpm-4.11.2/remove-db3-from-configure.patch | 26 -- .../rpm/rpm-4.11.2/remove-dir-check.patch | 23 -- .../rpm/rpm-4.11.2/rpm-scriptetexechelp.patch | 194 ----------- .../rpm/rpm-4.11.2/support-suggests-tag.patch | 384 --------------------- .../rpm/rpm-4.11.2/use-pkgconfig-for-python.patch | 38 -- meta/recipes-devtools/rpm/rpm_4.11.2.bb | 132 ------- 10 files changed, 875 deletions(-) delete mode 100644 meta/recipes-devtools/rpm/rpm-4.11.2/add_RPMSENSE_MISSINGOK_to_rpmmodule.patch delete mode 100644 meta/recipes-devtools/rpm/rpm-4.11.2/disable_shortcircuited.patch delete mode 100644 meta/recipes-devtools/rpm/rpm-4.11.2/fix_libdir.patch delete mode 100755 meta/recipes-devtools/rpm/rpm-4.11.2/pythondeps.sh delete mode 100644 meta/recipes-devtools/rpm/rpm-4.11.2/remove-db3-from-configure.patch delete mode 100644 meta/recipes-devtools/rpm/rpm-4.11.2/remove-dir-check.patch delete mode 100644 meta/recipes-devtools/rpm/rpm-4.11.2/rpm-scriptetexechelp.patch delete mode 100644 meta/recipes-devtools/rpm/rpm-4.11.2/support-suggests-tag.patch delete mode 100644 meta/recipes-devtools/rpm/rpm-4.11.2/use-pkgconfig-for-python.patch delete mode 100644 meta/recipes-devtools/rpm/rpm_4.11.2.bb
meta/recipes-devtools/rpm/rpm-4.11.2/add_RPMSENSE_MISSINGOK_to_rpmmodule.patch deleted +0 -20
@@ -1,20 +0,0 @@ -Upstream-Status: Inappropriate [OE-Specific] - -Signed-off-by: Saul Wold <[email protected]> -Signed-off-by: Ronan Le Martret <[email protected]> - -diff --git a/python/rpmmodule.c b/python/rpmmodule.c -index a4fe217..728c66c 100644 ---- a/python/rpmmodule.c -+++ b/python/rpmmodule.c -@@ -396,6 +396,10 @@ static int initModule(PyObject *m) - REGISTER_ENUM(RPMSENSE_STRONG); - REGISTER_ENUM(RPMSENSE_CONFIG); - -+#if defined(RPM_VENDOR_OE) -+ REGISTER_ENUM(RPMSENSE_MISSINGOK); -+#endif -+ - REGISTER_ENUM(RPMTRANS_FLAG_TEST); - REGISTER_ENUM(RPMTRANS_FLAG_BUILD_PROBS); - REGISTER_ENUM(RPMTRANS_FLAG_NOSCRIPTS);
meta/recipes-devtools/rpm/rpm-4.11.2/disable_shortcircuited.patch deleted +0 -23
@@ -1,23 +0,0 @@ -Upstream-Status: Pending - -Signed-off-by: Saul Wold <[email protected]> -Signed-off-by: Ronan Le Martret <[email protected]> - - -Index: rpm-4.11.2/build/pack.c -=================================================================== ---- rpm-4.11.2.orig/build/pack.c -+++ rpm-4.11.2/build/pack.c -@@ -571,9 +571,9 @@ rpmRC packageBinaries(rpmSpec spec, cons - headerPutBin(pkg->header, RPMTAG_SOURCEPKGID, spec->sourcePkgId,16); - } - -- if (cheating) { -- (void) rpmlibNeedsFeature(pkg, "ShortCircuited", "4.9.0-1"); -- } -+// if (cheating) { -+// (void) rpmlibNeedsFeature(pkg, "ShortCircuited", "4.9.0-1"); -+// } - - { char *binFormat = rpmGetPath("%{_rpmfilename}", NULL); - char *binRpm, *binDir;
meta/recipes-devtools/rpm/rpm-4.11.2/fix_libdir.patch deleted +0 -19
@@ -1,19 +0,0 @@ -Upstream-Status: Inappropriate [OE-Core specific] - -Signed-off-by: Saul Wold <[email protected]> -Signed-off-by: Ronan Le Martret <[email protected]> - - -diff --git a/installplatform b/installplatform -index 8c3eba0..fa15e91 100755 ---- a/installplatform -+++ b/installplatform -@@ -112,7 +112,7 @@ for ARCH in noarch `grep ^arch_canon $RPMRC | cut -d: -f2`; do - [ -z "$CANONARCH" ] && continue - - if [ "$OS" = "linux" ] && [ "$CANONCOLOR" = 3 ]; then -- LIB=${LIB}64 -+ LIB=${LIB} - fi - - PPD="${DESTDIR}/${platformdir}/${ARCH}-${OS}"
meta/recipes-devtools/rpm/rpm-4.11.2/pythondeps.sh deleted +0 -16
@@ -1,16 +0,0 @@ -#!/bin/sh - -[ $# -ge 1 ] || { - cat > /dev/null - exit 0 -} - -case $1 in --R|--requires) - shift - grep "/usr/\(lib[^/]*\|share\)/python[^/]*/" >/dev/null && echo "python" - exit 0 - ;; -esac - -exit 0
meta/recipes-devtools/rpm/rpm-4.11.2/remove-db3-from-configure.patch deleted +0 -26
@@ -1,26 +0,0 @@ - -Disable configuring the db3 directory since we will be using the -external DB provided as part of OE-Core already, no need to have -duplicate database code. - -Upstream-Status: Inappropriate [OE-Core Specific] - -Signed-off-by: Saul Wold <[email protected]> - -Index: rpm-4.11.2/configure.ac -=================================================================== ---- rpm-4.11.2.orig/configure.ac -+++ rpm-4.11.2/configure.ac -@@ -825,9 +825,9 @@ AC_SUBST(RPMCONFIGDIR) - - AC_SUBST(OBJDUMP) - --if test "$with_external_db" = no; then -- AC_CONFIG_SUBDIRS(db3) --fi -+#if test "$with_external_db" = no; then -+# AC_CONFIG_SUBDIRS(db3) -+#fi - - AM_CONDITIONAL([WITH_INTERNAL_DB],[test "$with_external_db" = no]) - AM_CONDITIONAL([DOXYGEN],[test "$DOXYGEN" != no])
meta/recipes-devtools/rpm/rpm-4.11.2/remove-dir-check.patch deleted +0 -23
@@ -1,23 +0,0 @@ -Upstream-Status: Pending - -Signed-off-by: Saul Wold <[email protected]> -Signed-off-by: Ronan Le Martret <[email protected]> - - -Index: rpm-4.11.2/build/files.c -=================================================================== ---- rpm-4.11.2.orig/build/files.c -+++ rpm-4.11.2/build/files.c -@@ -1321,12 +1321,6 @@ static rpmRC addFile(FileList fl, const - } - } - -- /* Error out when a non-directory is specified as one in spec */ -- if (fl->cur.isDir && (statp == &statbuf) && !S_ISDIR(statp->st_mode)) { -- rpmlog(RPMLOG_ERR, _("Not a directory: %s\n"), diskPath); -- goto exit; -- } -- - /* Don't recurse into explicit %dir, don't double-recurse from fts */ - if ((fl->cur.isDir != 1) && (statp == &statbuf) && S_ISDIR(statp->st_mode)) { - return recurseDir(fl, diskPath);
meta/recipes-devtools/rpm/rpm-4.11.2/rpm-scriptetexechelp.patch deleted +0 -194
194 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm-4.11.2/support-suggests-tag.patch deleted +0 -384
384 lines not on this page · raw message
meta/recipes-devtools/rpm/rpm-4.11.2/use-pkgconfig-for-python.patch deleted +0 -38
@@ -1,38 +0,0 @@ - -Use pkgconfig to get the correct include paths - -Upstream-Status: Pending - -Signed-off-by: Saul Wold <[email protected]> -Signed-off-by: Ronan Le Martret <[email protected]> - -diff --git a/configure.ac b/configure.ac -index e97f727..8179f44 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -540,10 +540,10 @@ esac], - - AS_IF([test "$enable_python" = yes],[ - AM_PATH_PYTHON([2.6],[ -- WITH_PYTHON_INCLUDE=`${PYTHON} -c 'from distutils.sysconfig import *; import sys; sys.stdout.write(get_python_inc())'` -+ WITH_PYTHON_INCLUDE=$(${PKG_CONFIG} --cflags-only-I python) - WITH_PYTHON_SUBPACKAGE=1 - save_CPPFLAGS="$CPPFLAGS" -- CPPFLAGS="$CPPFLAGS -I$WITH_PYTHON_INCLUDE" -+ CPPFLAGS="$CPPFLAGS $WITH_PYTHON_INCLUDE" - AC_CHECK_HEADER([Python.h],[], - [AC_MSG_ERROR([missing Python.h]) - ]) -diff --git a/python/Makefile.am b/python/Makefile.am -index fff51ae..f37cb9d 100644 ---- a/python/Makefile.am -+++ b/python/Makefile.am -@@ -4,7 +4,7 @@ EXTRA_DIST = rpm/__init__.py rpm/transaction.py - - AM_CPPFLAGS = -I$(top_builddir)/include/ - AM_CPPFLAGS += -I$(top_srcdir)/python --AM_CPPFLAGS += -I@WITH_PYTHON_INCLUDE@ -+AM_CPPFLAGS += @WITH_PYTHON_INCLUDE@ - - pkgpyexec_LTLIBRARIES = _rpmmodule.la _rpmbmodule.la _rpmsmodule.la - pkgpyexec_DATA = rpm/__init__.py rpm/transaction.py
meta/recipes-devtools/rpm/rpm_4.11.2.bb deleted +0 -132
132 lines not on this page · raw message
Signature · 1 line
2.5.0
RFC PATCH 2/3 smartpm: remove rpm4 patch
In reply to Joshua LockThe RPM4 support we added to SMART doesn't appear to work, remove it as part of the removal of RPM4 from OE-Core.
Refresh the smart-add-for-rpm-ignoresize-check.patch which was applied after smart-rpm4-fixes.patch and doesn't apply cleanly once that patch is removed.
--- .../smart-add-for-rpm-ignoresize-check.patch | 20 ++++----- .../python/python-smartpm/smart-rpm4-fixes.patch | 49 ---------------------- meta/recipes-devtools/python/python-smartpm_git.bb | 1 - 3 files changed, 9 insertions(+), 61 deletions(-) delete mode 100644 meta/recipes-devtools/python/python-smartpm/smart-rpm4-fixes.patch
meta/recipes-devtools/python/python-smartpm/smart-add-for-rpm-ignoresize-check.patch +9 -11
@@ -17,14 +17,15 @@ Signed-off-by: Chong Lu <[email protected]> smart/backends/rpm/pm.py | 4 ++++ 1 file changed, 4 insertions(+) -diff --git a/smart/backends/rpm/pm.py b/smart/backends/rpm/pm.py -index 5da9ee6..f0488ec 100644 ---- a/smart/backends/rpm/pm.py -+++ b/smart/backends/rpm/pm.py -@@ -241,6 +241,10 @@ class RPMPackageManager(PackageManager): - except AttributeError: - probfilter |= rpm.RPMPROB_FILTER_IGNOREARCH - +Index: git/smart/backends/rpm/pm.py +=================================================================== +--- git.orig/smart/backends/rpm/pm.py ++++ git/smart/backends/rpm/pm.py +@@ -233,6 +233,11 @@ class RPMPackageManager(PackageManager): + if sysconf.get("rpm-order"): + ts.order() + probfilter = rpm.RPMPROB_FILTER_OLDPACKAGE ++ + if sysconf.get("rpm-ignoresize", False): + probfilter |= rpm.RPMPROB_FILTER_DISKNODES + probfilter |= rpm.RPMPROB_FILTER_DISKSPACE
@@ -32,6 +33,3 @@ index 5da9ee6..f0488ec 100644 if force or reinstall: probfilter |= rpm.RPMPROB_FILTER_REPLACEPKG probfilter |= rpm.RPMPROB_FILTER_REPLACEOLDFILES --- -1.9.1 -
meta/recipes-devtools/python/python-smartpm/smart-rpm4-fixes.patch deleted +0 -49
49 lines not on this page · raw message
meta/recipes-devtools/python/python-smartpm_git.bb +0 -1
@@ -19,7 +19,6 @@ SRC_URI = "\ file://smart-channelsdir.patch \ file://smart-attempt.patch \ file://smart-attempt-fix.patch \ - file://smart-rpm4-fixes.patch \ file://smart-add-for-rpm-ignoresize-check.patch \ file://smart-already-installed-message.patch \ file://smart-set-noprogress-for-pycurl.patch \
Signature · 1 line
2.5.0
RFC PATCH 3/3 lib/package_manager: remove RPM4 support code
In reply to Joshua LockSimplify the RPM code by removing support for RPM 4 now that we've dropped the RPM 4 recipe.
--- meta/lib/oe/package_manager.py | 94 +++++++++++++++++------------------------- 1 file changed, 38 insertions(+), 56 deletions(-)
meta/lib/oe/package_manager.py +38 -56
@@ -345,7 +345,6 @@ class RpmPkgsList(PkgsList): except subprocess.CalledProcessError as e: bb.fatal("Getting rpm version failed. Command '%s' " "returned %d:\n%s" % (cmd, e.returncode, e.output)) - self.rpm_version = int(output.split()[-1].split('.')[0]) ''' Translate the RPM/Smart format names to the OE multilib format names
@@ -396,10 +395,7 @@ class RpmPkgsList(PkgsList): def list_pkgs(self): cmd = self.rpm_cmd + ' --root ' + self.rootfs_dir cmd += ' -D "_dbpath /var/lib/rpm" -qa' - if self.rpm_version == 4: - cmd += " --qf '[%{NAME} %{ARCH} %{VERSION}\n]'" - else: - cmd += " --qf '[%{NAME} %{ARCH} %{VERSION} %{PACKAGEORIGIN}\n]'" + cmd += " --qf '[%{NAME} %{ARCH} %{VERSION} %{PACKAGEORIGIN}\n]'" try: # bb.note(cmd)
@@ -410,11 +406,7 @@ class RpmPkgsList(PkgsList): output = dict() deps = dict() - if self.rpm_version == 4: - bb.warn("Dependency listings are not supported with rpm 4 since rpmresolve does not work") - dependencies = "" - else: - dependencies = self._list_pkg_deps() + dependencies = self._list_pkg_deps() # Populate deps dictionary for better manipulation for line in dependencies.splitlines():
@@ -439,10 +431,8 @@ class RpmPkgsList(PkgsList): # Skip GPG keys if pkg == 'gpg-pubkey': continue - if self.rpm_version == 4: - pkgorigin = "unknown" - else: - pkgorigin = line.split()[3] + + pkgorigin = line.split()[3] new_pkg, new_arch = self._pkg_translate_smart_to_oe(pkg, arch) output[new_pkg] = {"arch":new_arch, "ver":ver,
@@ -675,7 +665,6 @@ class RpmPM(PackageManager): self.indexer = RpmIndexer(self.d, self.deploy_dir) self.pkgs_list = RpmPkgsList(self.d, self.target_rootfs, arch_var, os_var) - self.rpm_version = self.pkgs_list.rpm_version self.ml_prefix_list, self.ml_os_list = self.indexer.get_ml_prefix_and_os_list(arch_var, os_var)
@@ -897,44 +886,41 @@ class RpmPM(PackageManager): # After change the __db.* cache size, log file will not be # generated automatically, that will raise some warnings, # so touch a bare log for rpm write into it. - if self.rpm_version == 5: - rpmlib_log = os.path.join(self.image_rpmlib, 'log', 'log.0000000001') - if not os.path.exists(rpmlib_log): - bb.utils.mkdirhier(os.path.join(self.image_rpmlib, 'log')) - open(rpmlib_log, 'w+').close() - - DB_CONFIG_CONTENT = "# ================ Environment\n" \ - "set_data_dir .\n" \ - "set_create_dir .\n" \ - "set_lg_dir ./log\n" \ - "set_tmp_dir ./tmp\n" \ - "set_flags db_log_autoremove on\n" \ - "\n" \ - "# -- thread_count must be >= 8\n" \ - "set_thread_count 64\n" \ - "\n" \ - "# ================ Logging\n" \ - "\n" \ - "# ================ Memory Pool\n" \ - "set_cachesize 0 1048576 0\n" \ - "set_mp_mmapsize 268435456\n" \ - "\n" \ - "# ================ Locking\n" \ - "set_lk_max_locks 16384\n" \ - "set_lk_max_lockers 16384\n" \ - "set_lk_max_objects 16384\n" \ - "mutex_set_max 163840\n" \ - "\n" \ - "# ================ Replication\n" - - db_config_dir = os.path.join(self.image_rpmlib, 'DB_CONFIG') - if not os.path.exists(db_config_dir): - open(db_config_dir, 'w+').write(DB_CONFIG_CONTENT) + rpmlib_log = os.path.join(self.image_rpmlib, 'log', 'log.0000000001') + if not os.path.exists(rpmlib_log): + bb.utils.mkdirhier(os.path.join(self.image_rpmlib, 'log')) + open(rpmlib_log, 'w+').close() + + DB_CONFIG_CONTENT = "# ================ Environment\n" \ + "set_data_dir .\n" \ + "set_create_dir .\n" \ + "set_lg_dir ./log\n" \ + "set_tmp_dir ./tmp\n" \ + "set_flags db_log_autoremove on\n" \ + "\n" \ + "# -- thread_count must be >= 8\n" \ + "set_thread_count 64\n" \ + "\n" \ + "# ================ Logging\n" \ + "\n" \ + "# ================ Memory Pool\n" \ + "set_cachesize 0 1048576 0\n" \ + "set_mp_mmapsize 268435456\n" \ + "\n" \ + "# ================ Locking\n" \ + "set_lk_max_locks 16384\n" \ + "set_lk_max_lockers 16384\n" \ + "set_lk_max_objects 16384\n" \ + "mutex_set_max 163840\n" \ + "\n" \ + "# ================ Replication\n" + + db_config_dir = os.path.join(self.image_rpmlib, 'DB_CONFIG') + if not os.path.exists(db_config_dir): + open(db_config_dir, 'w+').write(DB_CONFIG_CONTENT) # Create database so that smart doesn't complain (lazy init) opt = "-qa" - if self.rpm_version == 4: - opt = "--initdb" cmd = "%s --root %s --dbpath /var/lib/rpm %s > /dev/null" % ( self.rpm_cmd, self.target_rootfs, opt) try:
@@ -1021,12 +1007,8 @@ class RpmPM(PackageManager): # If we ever run into needing more the 899 scripts, we'll have to. # change num to start with 1000. # - if self.rpm_version == 4: - scriptletcmd = "$2 $3 $4\n" - scriptpath = "$3" - else: - scriptletcmd = "$2 $1/$3 $4\n" - scriptpath = "$1/$3" + scriptletcmd = "$2 $1/$3 $4\n" + scriptpath = "$1/$3" # When self.debug_level >= 3, also dump the content of the # executed scriptlets and how they get invoked. We have to
Signature · 1 line
2.5.0
Quoted 8 lines · Joshua Lock
This series removes RPM 4 and code to support it from OE Core. There are
several known issues with using RPM 4 and it seems better to acknowledge it's
unsupported by removing it from OE-Core than to leave it in a non -functional
state.
Quoted 5 lines
Please review the following changes for suitability for inclusion. If you have
any objections or suggestions for improvement, please respond to the patches. If
you agree with the changes, please provide your Acked-by.
I think I'm in favour of removing it at this point as its not getting much attention.
I'd note that we need to remove the QA test for it:
selftest/imagefeatures.py: def test_rpm_version_4_support_on_image(self):
Cheers,
Richard
Quoted 18 lines · Richard Purdie
Quoted 10 lines · Joshua Lock
This series removes RPM 4 and code to support it from OE Core. There
are
several known issues with using RPM 4 and it seems better to acknowledge it's
unsupported by removing it from OE-Core than to leave it in a non -functional
state.Quoted 7 lines
Please review the following changes for suitability for inclusion. If
you have
any objections or suggestions for improvement, please respond to the
patches. If
you agree with the changes, please provide your Acked-by.
Quoted 7 lines
I think I'm in favour of removing it at this point as its not getting much attention.
I'd note that we need to remove the QA test for it:
selftest/imagefeatures.py: def
test_rpm_version_4_support_on_image(self):
Right, thanks for catching this. I've pushed a patch to remove this to the same branch, I'll submit a v2 with this removal included once the RFC has had another day or so to collect comments.
Regards,
Joshua