]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
rpm: replace use of rpm2cpio with rpm2archive
authorAlexander Kanavin <alex@linutronix.de>
Wed, 4 Dec 2024 06:49:20 +0000 (07:49 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 12 Dec 2024 13:22:05 +0000 (13:22 +0000)
rpm2cpio has been deprecated upstream, so this prepares for its
eventual removal.

rpm2archive produces a tar archive which can be uncompressed
with tar executable from the host.

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes-recipe/testexport.bbclass
meta/classes-recipe/testimage.bbclass
meta/lib/oe/package_manager/rpm/__init__.py
meta/lib/oeqa/utils/testexport.py
meta/recipes-devtools/rpm/rpm_4.20.0.bb

index 76db4c625fa3e168c8b93b0c35861d21b8add843..cc4088c71a1393edc548a74ac15ffd58c9828778 100644 (file)
@@ -29,7 +29,6 @@ require conf/testexport.conf
 TEST_EXPORT_SDK_ENABLED ?= "0"
 
 TEST_EXPORT_DEPENDS = ""
-TEST_EXPORT_DEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'cpio-native:do_populate_sysroot', '', d)}"
 TEST_EXPORT_DEPENDS += "${@bb.utils.contains('TEST_EXPORT_SDK_ENABLED', '1', 'testexport-tarball:do_populate_sdk', '', d)}"
 TEST_EXPORT_LOCK = "${TMPDIR}/testimage.lock"
 
index c218372edb5f9c0ff3136171b1bd28d69d0562a3..97ed4223c47cb4989da6c7b561cda1c46ac77242 100644 (file)
@@ -100,7 +100,6 @@ TESTIMAGE_BOOT_PATTERNS ?= ""
 
 TESTIMAGEDEPENDS = ""
 TESTIMAGEDEPENDS:append:qemuall = " qemu-native:do_populate_sysroot qemu-helper-native:do_populate_sysroot qemu-helper-native:do_addto_recipe_sysroot"
-TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'cpio-native:do_populate_sysroot', '', d)}"
 TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'dnf-native:do_populate_sysroot', '', d)}"
 TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'createrepo-c-native:do_populate_sysroot', '', d)}"
 TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'ipk', 'opkg-utils-native:do_populate_sysroot package-index:do_package_index', '', d)}"
index f40c880af49dc3b023aecf2cb617ac568d3f79a8..323ec5008fbea1b413a05cfa1d521e8da739feed 100644 (file)
@@ -393,8 +393,8 @@ class RpmPM(PackageManager):
         # Strip file: prefix
         pkg_path = pkg_name[5:]
 
-        cpio_cmd = bb.utils.which(os.getenv("PATH"), "cpio")
-        rpm2cpio_cmd = bb.utils.which(os.getenv("PATH"), "rpm2cpio")
+        tar_cmd = bb.utils.which(os.getenv("PATH"), "tar")
+        rpm2archive_cmd = bb.utils.which(os.getenv("PATH"), "rpm2archive")
 
         if not os.path.isfile(pkg_path):
             bb.fatal("Unable to extract package for '%s'."
@@ -405,7 +405,7 @@ class RpmPM(PackageManager):
         os.chdir(tmp_dir)
 
         try:
-            cmd = "%s %s | %s -idmv" % (rpm2cpio_cmd, pkg_path, cpio_cmd)
+            cmd = "%s -n %s | %s xv" % (rpm2archive_cmd, pkg_path, tar_cmd)
             output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
         except subprocess.CalledProcessError as e:
             bb.utils.remove(tmp_dir, recurse=True)
index e89d130a9c6b5a9c3ce6c275f1baf458591c7d65..3ab024d9e99f3457a09b10a3679fc84e0c219468 100644 (file)
@@ -60,17 +60,17 @@ def process_binaries(d, params):
     export_env = d.getVar("TEST_EXPORT_ONLY")
 
     def extract_binary(pth_to_pkg, dest_pth=None):
-        cpio_command = runCmd("which cpio")
-        rpm2cpio_command = runCmd("ls /usr/bin/rpm2cpio")
-        if (cpio_command.status != 0) and (rpm2cpio_command.status != 0):
-            bb.fatal("Either \"rpm2cpio\" or \"cpio\" tools are not available on your system."
+        tar_command = runCmd("which tar")
+        rpm2archive_command = runCmd("ls /usr/bin/rpm2archive")
+        if (tar_command.status != 0) and (rpm2archive_command.status != 0):
+            bb.fatal("Either \"rpm2archive\" or \"tar\" tools are not available on your system."
                     "All binaries extraction processes will not be available, crashing all related tests."
                     "Please install them according to your OS recommendations") # will exit here
         if dest_pth:
             os.chdir(dest_pth)
         else:
             os.chdir("%s" % os.sep)# this is for native package
-        extract_bin_command = runCmd("%s %s | %s -idm" % (rpm2cpio_command.output, pth_to_pkg, cpio_command.output)) # semi-hardcoded because of a bug on poky's rpm2cpio
+        extract_bin_command = runCmd("%s -n %s | %s xv" % (rpm2archive_command.output, pth_to_pkg, tar_command.output)) # semi-hardcoded because of a bug on poky's rpm2cpio
         return extract_bin_command
 
     if determine_if_poky_env(): # machine with poky environment
index ec4276d16ea6055c0863beb16ea216f2d261093f..97483f7ddd55042ff4e550a9bf8a4186a5a2c890 100644 (file)
@@ -61,7 +61,7 @@ OECMAKE_GENERATOR = "Unix Makefiles"
 
 BBCLASSEXTEND = "native nativesdk"
 
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "archive"
 
 PACKAGECONFIG[plugins] = "-DENABLE_PLUGINS=ON,-DENABLE_PLUGINS=OFF"
 PACKAGECONFIG[testsuite] = "-DENABLE_TESTSUITE=ON,-DENABLE_TESTSUITE=OFF"