summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiko Mauno <niko.mauno@vaisala.com>2023-10-26 16:01:44 +0000
committerSteve Sakoman <steve@sakoman.com>2023-11-01 05:01:26 -1000
commite46e74cd90a1c42370a0b6ef6938b2f63d012ba4 (patch)
treef5c1dfe5e84ec7e8b4e32894bdcf5870b7b3b8fe
parentf35f1aaf2287bafb437ac356b08f11fc4046d12f (diff)
downloadpoky-e46e74cd90a1c42370a0b6ef6938b2f63d012ba4.tar.gz
package_rpm: Allow compression mode override
Commit 4a4d5f78a6962dda5f63e9891825c80a8a87bf66 ("package_rpm: use zstd instead of xz") changed the rpm package compressor from 'xz' to 'zstd' which results in decompression failure with BusyBox-provided 'rpm2cpio' applet and 'rpm' applet when given the '-i' (Install package) option: rpm2cpio: no gzip/bzip2/xz magic Introduce a variable which makes it possible to use a different compression mode, making it possible to override the default value for example like RPMBUILD_COMPMODE = "${@'w6T%d.xzdio' % int(d.getVar('XZ_THREADS'))}" to enable rpm decompression without including the full rpm package in the resulting root filesystem. (From OE-Core rev: a40d9258148e28cbee2168c93179cd4c1232fb62) (From OE-Core rev: ad4ea9f225b0dd6396088cc70b34f886c5fa62b4) Signed-off-by: Niko Mauno <niko.mauno@vaisala.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com>
-rw-r--r--meta/classes/package_rpm.bbclass6
1 files changed, 4 insertions, 2 deletions
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index bbbef3793f..f403af5343 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -4,6 +4,7 @@ IMAGE_PKGTYPE ?= "rpm"
4 4
5RPM="rpm" 5RPM="rpm"
6RPMBUILD="rpmbuild" 6RPMBUILD="rpmbuild"
7RPMBUILD_COMPMODE ?= "${@'w19T%d.zstdio' % int(d.getVar('ZSTD_THREADS'))}"
7 8
8PKGWRITEDIRRPM = "${WORKDIR}/deploy-rpms" 9PKGWRITEDIRRPM = "${WORKDIR}/deploy-rpms"
9 10
@@ -652,6 +653,7 @@ python do_package_rpm () {
652 653
653 # Setup the rpmbuild arguments... 654 # Setup the rpmbuild arguments...
654 rpmbuild = d.getVar('RPMBUILD') 655 rpmbuild = d.getVar('RPMBUILD')
656 rpmbuild_compmode = d.getVar('RPMBUILD_COMPMODE')
655 targetsys = d.getVar('TARGET_SYS') 657 targetsys = d.getVar('TARGET_SYS')
656 targetvendor = d.getVar('HOST_VENDOR') 658 targetvendor = d.getVar('HOST_VENDOR')
657 659
@@ -678,8 +680,8 @@ python do_package_rpm () {
678 cmd = cmd + " --define '_use_internal_dependency_generator 0'" 680 cmd = cmd + " --define '_use_internal_dependency_generator 0'"
679 cmd = cmd + " --define '_binaries_in_noarch_packages_terminate_build 0'" 681 cmd = cmd + " --define '_binaries_in_noarch_packages_terminate_build 0'"
680 cmd = cmd + " --define '_build_id_links none'" 682 cmd = cmd + " --define '_build_id_links none'"
681 cmd = cmd + " --define '_binary_payload w19T%d.zstdio'" % int(d.getVar("ZSTD_THREADS")) 683 cmd = cmd + " --define '_source_payload %s'" % rpmbuild_compmode
682 cmd = cmd + " --define '_source_payload w19T%d.zstdio'" % int(d.getVar("ZSTD_THREADS")) 684 cmd = cmd + " --define '_binary_payload %s'" % rpmbuild_compmode
683 cmd = cmd + " --define 'clamp_mtime_to_source_date_epoch 1'" 685 cmd = cmd + " --define 'clamp_mtime_to_source_date_epoch 1'"
684 cmd = cmd + " --define 'use_source_date_epoch_as_buildtime 1'" 686 cmd = cmd + " --define 'use_source_date_epoch_as_buildtime 1'"
685 cmd = cmd + " --define '_buildhost reproducible'" 687 cmd = cmd + " --define '_buildhost reproducible'"