commit: 25171b1f5847b461145906ac2bc230c462f62c21 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Sat Jun 15 22:41:30 2024 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sat Jun 15 22:45:26 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=25171b1f
app-arch/xz-utils: workaround libtool bug preventing shared library build * Fix detection of `file` with libtool-2.5.0 (which xz-5.4.7, xz.5.6.2 had dist tarballs created with). This only affects some targets. See bug #934370. See https://git.savannah.gnu.org/cgit/libtool.git/commit/?h=development&id=9a4a02615c9e7cbcfd690ed31874822a7d6aaea2. * Add a sanity check for targets which support shared libraries where we verify liblzma.so is in the image. Use tc-is-static-only to handle the concern from bug #450436. Bug: https://bugs.gentoo.org/450436 Closes: https://bugs.gentoo.org/934370 Signed-off-by: Sam James <sam <AT> gentoo.org> ...-utils-9999.ebuild => xz-utils-5.4.7-r1.ebuild} | 67 ++++++---------------- ...-utils-9999.ebuild => xz-utils-5.6.2-r1.ebuild} | 15 +++++ app-arch/xz-utils/xz-utils-9999.ebuild | 15 +++++ 3 files changed, 47 insertions(+), 50 deletions(-) diff --git a/app-arch/xz-utils/xz-utils-9999.ebuild b/app-arch/xz-utils/xz-utils-5.4.7-r1.ebuild similarity index 72% copy from app-arch/xz-utils/xz-utils-9999.ebuild copy to app-arch/xz-utils/xz-utils-5.4.7-r1.ebuild index a5c27989d3cc..2b5beefd93f6 100644 --- a/app-arch/xz-utils/xz-utils-9999.ebuild +++ b/app-arch/xz-utils/xz-utils-5.4.7-r1.ebuild @@ -45,9 +45,9 @@ DESCRIPTION="Utils for managing LZMA compressed files" HOMEPAGE="https://tukaani.org/xz/" # See top-level COPYING file as it outlines the various pieces and their licenses. -LICENSE="0BSD LGPL-2.1+ GPL-2+ doc? ( CC-BY-SA-4.0 )" +LICENSE="public-domain LGPL-2.1+ GPL-2+" SLOT="0" -IUSE="cpu_flags_arm_crc32 doc +extra-filters pgo nls static-libs" +IUSE="doc +extra-filters pgo nls static-libs" if [[ ${PV} != 9999 ]] ; then BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-lassecollin-20240529 )" @@ -66,12 +66,15 @@ src_prepare() { } multilib_src_configure() { + # Workaround for bug #934370 (libtool-2.5.0), drop when dist tarball + # uses newer libtool with the fix. + export ac_cv_prog_ac_ct_FILECMD='file' FILECMD='file' + local myconf=( --enable-threads $(multilib_native_use_enable doc) $(use_enable nls) $(use_enable static-libs static) - $(use_enable cpu_flags_arm_crc32 arm64-crc32) ) if ! multilib_is_native_abi ; then @@ -106,7 +109,6 @@ multilib_src_configure() { multilib_src_compile() { # -fprofile-partial-training because upstream note the test suite isn't super comprehensive - # TODO: revisit that now we have the tar/xz loop below? # See https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo local pgo_generate_flags=$(usev pgo "-fprofile-update=atomic -fprofile-dir=${T}/${ABI}-pgo -fprofile-generate=${T}/${ABI}-pgo $(test-flags-CC -fprofile-partial-training)") local pgo_use_flags=$(usev pgo "-fprofile-use=${T}/${ABI}-pgo -fprofile-dir=${T}/${ABI}-pgo $(test-flags-CC -fprofile-partial-training)") @@ -116,52 +118,6 @@ multilib_src_compile() { if use pgo ; then emake CFLAGS="${CFLAGS} ${pgo_generate_flags}" -k check - local tar_pgo_args=() - - if has_version -b "app-alternatives/tar[gnu]" ; then - tar_pgo_args+=( - --mtime=@2718281828 - --sort=name - ) - fi - - if multilib_is_native_abi ; then - ( - shopt -s globstar - - tar \ - "${tar_pgo_args[@]}" \ - -cf xz-pgo-test-01.tar \ - {"${S}","${BUILD_DIR}"}/**/*.[cho] \ - {"${S}","${BUILD_DIR}"}/**/.libs/* \ - {"${S}","${BUILD_DIR}"}/**/**.txt \ - {"${S}","${BUILD_DIR}"}/tests/files - - stat --printf="xz-pgo-test-01.tar.tar size: %s\n" xz-pgo-test-01.tar || die - md5sum xz-pgo-test-01.tar || die - ) - - local test_variants=( - # Borrowed from ALT Linux - # https://packages.altlinux.org/en/sisyphus/srpms/xz/specfiles/#line-80 - '-0 -C none' - '-2 -C crc32' - "$(usev extra-filters '-6 --arm --lzma2 -C crc64')" - "$(usev extra-filters '-6 --x86 --lzma2=lc=4 -C sha256')" - '-7e --format=lzma' - - # Our own variants - '' - '-9e' - "$(usev extra-filters '--x86 --lzma2=preset=9e')" - ) - local test_variant - for test_variant in "${test_variants[@]}" ; do - "${BUILD_DIR}"/src/xz/xz -c ${test_variant} xz-pgo-test-01.tar | "${BUILD_DIR}"/src/xz/xz -c -d - > /dev/null - assert "Testing '${test_variant}' variant failed" - done - fi - if tc-is-clang; then llvm-profdata merge "${T}"/${ABI}-pgo --output="${T}"/${ABI}-pgo/default.profdata || die fi @@ -171,6 +127,17 @@ multilib_src_compile() { fi } +multilib_src_install() { + default + + # bug #934370 and bug #450436 + if ! tc-is-static-only && [[ ! -f "${ED}/usr/$(get_libdir)/liblzma.so" ]] ; then + eerror "Sanity check for liblzma.so failed." + eerror "Shared library wasn't built, possible libtool bug" + [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && die "liblzma.so not found in build, aborting" + fi +} + multilib_src_install_all() { find "${ED}" -type f -name '*.la' -delete || die diff --git a/app-arch/xz-utils/xz-utils-9999.ebuild b/app-arch/xz-utils/xz-utils-5.6.2-r1.ebuild similarity index 91% copy from app-arch/xz-utils/xz-utils-9999.ebuild copy to app-arch/xz-utils/xz-utils-5.6.2-r1.ebuild index a5c27989d3cc..e63700af983e 100644 --- a/app-arch/xz-utils/xz-utils-9999.ebuild +++ b/app-arch/xz-utils/xz-utils-5.6.2-r1.ebuild @@ -66,6 +66,10 @@ src_prepare() { } multilib_src_configure() { + # Workaround for bug #934370 (libtool-2.5.0), drop when dist tarball + # uses newer libtool with the fix. + export ac_cv_prog_ac_ct_FILECMD='file' FILECMD='file' + local myconf=( --enable-threads $(multilib_native_use_enable doc) @@ -171,6 +175,17 @@ multilib_src_compile() { fi } +multilib_src_install() { + default + + # bug #934370 and bug #450436 + if ! tc-is-static-only && [[ ! -f "${ED}/usr/$(get_libdir)/liblzma.so" ]] ; then + eerror "Sanity check for liblzma.so failed." + eerror "Shared library wasn't built, possible libtool bug" + [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && die "liblzma.so not found in build, aborting" + fi +} + multilib_src_install_all() { find "${ED}" -type f -name '*.la' -delete || die diff --git a/app-arch/xz-utils/xz-utils-9999.ebuild b/app-arch/xz-utils/xz-utils-9999.ebuild index a5c27989d3cc..e63700af983e 100644 --- a/app-arch/xz-utils/xz-utils-9999.ebuild +++ b/app-arch/xz-utils/xz-utils-9999.ebuild @@ -66,6 +66,10 @@ src_prepare() { } multilib_src_configure() { + # Workaround for bug #934370 (libtool-2.5.0), drop when dist tarball + # uses newer libtool with the fix. + export ac_cv_prog_ac_ct_FILECMD='file' FILECMD='file' + local myconf=( --enable-threads $(multilib_native_use_enable doc) @@ -171,6 +175,17 @@ multilib_src_compile() { fi } +multilib_src_install() { + default + + # bug #934370 and bug #450436 + if ! tc-is-static-only && [[ ! -f "${ED}/usr/$(get_libdir)/liblzma.so" ]] ; then + eerror "Sanity check for liblzma.so failed." + eerror "Shared library wasn't built, possible libtool bug" + [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && die "liblzma.so not found in build, aborting" + fi +} + multilib_src_install_all() { find "${ED}" -type f -name '*.la' -delete || die