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"
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)}"
# 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'."
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)
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
BBCLASSEXTEND = "native nativesdk"
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "archive"
PACKAGECONFIG[plugins] = "-DENABLE_PLUGINS=ON,-DENABLE_PLUGINS=OFF"
PACKAGECONFIG[testsuite] = "-DENABLE_TESTSUITE=ON,-DENABLE_TESTSUITE=OFF"