diff options
author | Alexander Kanavin <alex@linutronix.de> | 2024-12-04 07:49:20 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2024-12-12 13:22:08 +0000 |
commit | 2d22ef81952b90167bb70f6e3a20097a75aecbab (patch) | |
tree | 7ed8de1167fca45c20b348fe374a583766442046 | |
parent | ea9c2cfb6901251b95e07e052616a512b91ea0c7 (diff) | |
download | poky-2d22ef81952b90167bb70f6e3a20097a75aecbab.tar.gz |
rpm: replace use of rpm2cpio with rpm2archive
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.
(From OE-Core rev: ed824d3fb23f0c89d8dfdacb2c4ef0b7c21a5144)
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>
-rw-r--r-- | meta/classes-recipe/testexport.bbclass | 1 | ||||
-rw-r--r-- | meta/classes-recipe/testimage.bbclass | 1 | ||||
-rw-r--r-- | meta/lib/oe/package_manager/rpm/__init__.py | 6 | ||||
-rw-r--r-- | meta/lib/oeqa/utils/testexport.py | 10 | ||||
-rw-r--r-- | meta/recipes-devtools/rpm/rpm_4.20.0.bb | 2 |
5 files changed, 9 insertions, 11 deletions
diff --git a/meta/classes-recipe/testexport.bbclass b/meta/classes-recipe/testexport.bbclass index 76db4c625f..cc4088c71a 100644 --- a/meta/classes-recipe/testexport.bbclass +++ b/meta/classes-recipe/testexport.bbclass | |||
@@ -29,7 +29,6 @@ require conf/testexport.conf | |||
29 | TEST_EXPORT_SDK_ENABLED ?= "0" | 29 | TEST_EXPORT_SDK_ENABLED ?= "0" |
30 | 30 | ||
31 | TEST_EXPORT_DEPENDS = "" | 31 | TEST_EXPORT_DEPENDS = "" |
32 | TEST_EXPORT_DEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'cpio-native:do_populate_sysroot', '', d)}" | ||
33 | TEST_EXPORT_DEPENDS += "${@bb.utils.contains('TEST_EXPORT_SDK_ENABLED', '1', 'testexport-tarball:do_populate_sdk', '', d)}" | 32 | TEST_EXPORT_DEPENDS += "${@bb.utils.contains('TEST_EXPORT_SDK_ENABLED', '1', 'testexport-tarball:do_populate_sdk', '', d)}" |
34 | TEST_EXPORT_LOCK = "${TMPDIR}/testimage.lock" | 33 | TEST_EXPORT_LOCK = "${TMPDIR}/testimage.lock" |
35 | 34 | ||
diff --git a/meta/classes-recipe/testimage.bbclass b/meta/classes-recipe/testimage.bbclass index c218372edb..97ed4223c4 100644 --- a/meta/classes-recipe/testimage.bbclass +++ b/meta/classes-recipe/testimage.bbclass | |||
@@ -100,7 +100,6 @@ TESTIMAGE_BOOT_PATTERNS ?= "" | |||
100 | 100 | ||
101 | TESTIMAGEDEPENDS = "" | 101 | TESTIMAGEDEPENDS = "" |
102 | TESTIMAGEDEPENDS:append:qemuall = " qemu-native:do_populate_sysroot qemu-helper-native:do_populate_sysroot qemu-helper-native:do_addto_recipe_sysroot" | 102 | TESTIMAGEDEPENDS:append:qemuall = " qemu-native:do_populate_sysroot qemu-helper-native:do_populate_sysroot qemu-helper-native:do_addto_recipe_sysroot" |
103 | TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'cpio-native:do_populate_sysroot', '', d)}" | ||
104 | TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'dnf-native:do_populate_sysroot', '', d)}" | 103 | TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'dnf-native:do_populate_sysroot', '', d)}" |
105 | TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'createrepo-c-native:do_populate_sysroot', '', d)}" | 104 | TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'rpm', 'createrepo-c-native:do_populate_sysroot', '', d)}" |
106 | TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'ipk', 'opkg-utils-native:do_populate_sysroot package-index:do_package_index', '', d)}" | 105 | TESTIMAGEDEPENDS += "${@bb.utils.contains('IMAGE_PKGTYPE', 'ipk', 'opkg-utils-native:do_populate_sysroot package-index:do_package_index', '', d)}" |
diff --git a/meta/lib/oe/package_manager/rpm/__init__.py b/meta/lib/oe/package_manager/rpm/__init__.py index f40c880af4..323ec5008f 100644 --- a/meta/lib/oe/package_manager/rpm/__init__.py +++ b/meta/lib/oe/package_manager/rpm/__init__.py | |||
@@ -393,8 +393,8 @@ class RpmPM(PackageManager): | |||
393 | # Strip file: prefix | 393 | # Strip file: prefix |
394 | pkg_path = pkg_name[5:] | 394 | pkg_path = pkg_name[5:] |
395 | 395 | ||
396 | cpio_cmd = bb.utils.which(os.getenv("PATH"), "cpio") | 396 | tar_cmd = bb.utils.which(os.getenv("PATH"), "tar") |
397 | rpm2cpio_cmd = bb.utils.which(os.getenv("PATH"), "rpm2cpio") | 397 | rpm2archive_cmd = bb.utils.which(os.getenv("PATH"), "rpm2archive") |
398 | 398 | ||
399 | if not os.path.isfile(pkg_path): | 399 | if not os.path.isfile(pkg_path): |
400 | bb.fatal("Unable to extract package for '%s'." | 400 | bb.fatal("Unable to extract package for '%s'." |
@@ -405,7 +405,7 @@ class RpmPM(PackageManager): | |||
405 | os.chdir(tmp_dir) | 405 | os.chdir(tmp_dir) |
406 | 406 | ||
407 | try: | 407 | try: |
408 | cmd = "%s %s | %s -idmv" % (rpm2cpio_cmd, pkg_path, cpio_cmd) | 408 | cmd = "%s -n %s | %s xv" % (rpm2archive_cmd, pkg_path, tar_cmd) |
409 | output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True) | 409 | output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True) |
410 | except subprocess.CalledProcessError as e: | 410 | except subprocess.CalledProcessError as e: |
411 | bb.utils.remove(tmp_dir, recurse=True) | 411 | bb.utils.remove(tmp_dir, recurse=True) |
diff --git a/meta/lib/oeqa/utils/testexport.py b/meta/lib/oeqa/utils/testexport.py index e89d130a9c..3ab024d9e9 100644 --- a/meta/lib/oeqa/utils/testexport.py +++ b/meta/lib/oeqa/utils/testexport.py | |||
@@ -60,17 +60,17 @@ def process_binaries(d, params): | |||
60 | export_env = d.getVar("TEST_EXPORT_ONLY") | 60 | export_env = d.getVar("TEST_EXPORT_ONLY") |
61 | 61 | ||
62 | def extract_binary(pth_to_pkg, dest_pth=None): | 62 | def extract_binary(pth_to_pkg, dest_pth=None): |
63 | cpio_command = runCmd("which cpio") | 63 | tar_command = runCmd("which tar") |
64 | rpm2cpio_command = runCmd("ls /usr/bin/rpm2cpio") | 64 | rpm2archive_command = runCmd("ls /usr/bin/rpm2archive") |
65 | if (cpio_command.status != 0) and (rpm2cpio_command.status != 0): | 65 | if (tar_command.status != 0) and (rpm2archive_command.status != 0): |
66 | bb.fatal("Either \"rpm2cpio\" or \"cpio\" tools are not available on your system." | 66 | bb.fatal("Either \"rpm2archive\" or \"tar\" tools are not available on your system." |
67 | "All binaries extraction processes will not be available, crashing all related tests." | 67 | "All binaries extraction processes will not be available, crashing all related tests." |
68 | "Please install them according to your OS recommendations") # will exit here | 68 | "Please install them according to your OS recommendations") # will exit here |
69 | if dest_pth: | 69 | if dest_pth: |
70 | os.chdir(dest_pth) | 70 | os.chdir(dest_pth) |
71 | else: | 71 | else: |
72 | os.chdir("%s" % os.sep)# this is for native package | 72 | os.chdir("%s" % os.sep)# this is for native package |
73 | 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 | 73 | 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 |
74 | return extract_bin_command | 74 | return extract_bin_command |
75 | 75 | ||
76 | if determine_if_poky_env(): # machine with poky environment | 76 | if determine_if_poky_env(): # machine with poky environment |
diff --git a/meta/recipes-devtools/rpm/rpm_4.20.0.bb b/meta/recipes-devtools/rpm/rpm_4.20.0.bb index ec4276d16e..97483f7ddd 100644 --- a/meta/recipes-devtools/rpm/rpm_4.20.0.bb +++ b/meta/recipes-devtools/rpm/rpm_4.20.0.bb | |||
@@ -61,7 +61,7 @@ OECMAKE_GENERATOR = "Unix Makefiles" | |||
61 | 61 | ||
62 | BBCLASSEXTEND = "native nativesdk" | 62 | BBCLASSEXTEND = "native nativesdk" |
63 | 63 | ||
64 | PACKAGECONFIG ??= "" | 64 | PACKAGECONFIG ??= "archive" |
65 | 65 | ||
66 | PACKAGECONFIG[plugins] = "-DENABLE_PLUGINS=ON,-DENABLE_PLUGINS=OFF" | 66 | PACKAGECONFIG[plugins] = "-DENABLE_PLUGINS=ON,-DENABLE_PLUGINS=OFF" |
67 | PACKAGECONFIG[testsuite] = "-DENABLE_TESTSUITE=ON,-DENABLE_TESTSUITE=OFF" | 67 | PACKAGECONFIG[testsuite] = "-DENABLE_TESTSUITE=ON,-DENABLE_TESTSUITE=OFF" |