summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-arch')
-rw-r--r--app-arch/xz-utils/Manifest2
-rw-r--r--app-arch/xz-utils/xz-utils-5.4.6.ebuild146
2 files changed, 148 insertions, 0 deletions
diff --git a/app-arch/xz-utils/Manifest b/app-arch/xz-utils/Manifest
index 1b5b5f1e0d66..6b0b9ee0bbca 100644
--- a/app-arch/xz-utils/Manifest
+++ b/app-arch/xz-utils/Manifest
@@ -1,4 +1,6 @@
DIST xz-5.4.5.tar.gz 2884510 BLAKE2B 647c8227080a7f37e3321e778d7f52ccb9da3810f2be81b2d2b46001605b22cef6e724f9b3facfada26a12b24401c9a11449d6066443849b37b28e0eaa199315 SHA512 91f8f548c915de0ed79cee13ce0336b51c1cebf2eb142fa1efecfd07771c662c99cad3730540fcb712057ab274130e13b87960f6b4c62f0bd9477f27a303fb2b
DIST xz-5.4.5.tar.gz.sig 566 BLAKE2B c6ec64f92ecb30395e6d580be5d0aad1ee007585245ed42e7b05f1ea3a8cd8bf4317e8dc964c65417daa0a04e8f523c6ba8ae61a7f5b2ff3dc17dd53c7593ce2 SHA512 4f2c779d3c14bacd0451cfd68846201a48931128994c4119fcbf4f0dd7331710c32098039d38561de29327d543d67174fddbb6a83cb2fcfda9b3153cab092d4d
+DIST xz-5.4.6.tar.gz 2889306 BLAKE2B f0bbd33ea7cd64d475c3501f6e76080c8c0080e377f23462f5f76459935f4e621538ddaa8452d2feaed278d62a596e38ed2aca18ed9e76512c4ec77fa2f4cc5f SHA512 b08a61d8d478d3b4675cb1ddacdbbd98dc6941a55bcdd81a28679e54e9367d3a595fa123ac97874a17da571c1b712e2a3e901c2737099a9d268616a1ba3de497
+DIST xz-5.4.6.tar.gz.sig 566 BLAKE2B 808f1b5e2a17729f36a05ba88a9c00210cda2afa02923e6f289d13dc2a48f7674cafec6e25660e142d67f01dd941c7390cee2757b054df3a3193dde0791363a1 SHA512 d5e32b944e7492a32c40f675d918796e077f63490a23c6fce5c4d6d1eebc443f129d27a2e888913c5a36c3ffdac75b9c96c1749402283445e0ba9ff72b965741
DIST xz-5.5.1alpha.tar.gz 3020057 BLAKE2B 1a2106b9e43cb06ddde0f8a9fc86754fe2d335367035ec3349d34da5511496af0d1270cd42ce2c1c3324af74092c0eea3663746ec98195d0db449d5754253c0f SHA512 dbd164353012c9ff5ee3e776709704fcbc6e9f644fff52c75846653ca4a26b6dce1a2a5fe1663c3fc8674f99aa67a1a806eeac44cb978246223688c8c105fcf1
DIST xz-5.5.1alpha.tar.gz.sig 566 BLAKE2B 760946fd09eccd0a221d117cc1f5b656aba5bbbfa911d987fd93c54d9905a1e51dd8c24b6927cc97dda344f2efa774b556e6919bdf0b298fa6370ac8d3a56f76 SHA512 714f07b510a4a8ff0d533e6278cd25f8ed407b3c84b6172ce9d4e9fc2dfe8b0be9849eb008ee3b7ac900f34f85946336277a2700dc5133c6dcae144b8aba6dd7
diff --git a/app-arch/xz-utils/xz-utils-5.4.6.ebuild b/app-arch/xz-utils/xz-utils-5.4.6.ebuild
new file mode 100644
index 000000000000..10993a19d076
--- /dev/null
+++ b/app-arch/xz-utils/xz-utils-5.4.6.ebuild
@@ -0,0 +1,146 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Remember: we cannot leverage autotools in this ebuild in order
+# to avoid circular deps with autotools
+
+EAPI=8
+
+inherit flag-o-matic libtool multilib multilib-minimal preserve-libs toolchain-funcs usr-ldscript
+
+if [[ ${PV} == 9999 ]] ; then
+ # Per tukaani.org, git.tukaani.org is a mirror of github and
+ # may be behind.
+ EGIT_REPO_URI="
+ https://github.com/tukaani-project/xz
+ https://git.tukaani.org/xz.git
+ "
+ inherit git-r3 autotools
+
+ # bug #272880 and bug #286068
+ BDEPEND="sys-devel/gettext >=dev-build/libtool-2"
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jiatan.asc
+ inherit verify-sig
+
+ MY_P="${PN/-utils}-${PV/_}"
+ SRC_URI="
+ https://github.com/tukaani-project/xz/releases/download/v${PV/_}/${MY_P}.tar.gz
+ mirror://sourceforge/lzmautils/${MY_P}.tar.gz
+ https://tukaani.org/xz/${MY_P}.tar.gz
+ verify-sig? (
+ https://github.com/tukaani-project/xz/releases/download/v${PV/_}/${MY_P}.tar.gz.sig
+ https://tukaani.org/xz/${MY_P}.tar.gz.sig
+ )
+ "
+
+ if [[ ${PV} != *_alpha* && ${PV} != *_beta* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+ fi
+
+ S="${WORKDIR}/${MY_P}"
+fi
+
+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="public-domain LGPL-2.1+ GPL-2+"
+SLOT="0"
+IUSE="doc +extra-filters pgo nls static-libs"
+
+if [[ ${PV} != 9999 ]] ; then
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-jiatan )"
+fi
+
+src_prepare() {
+ default
+
+ if [[ ${PV} == 9999 ]] ; then
+ eautopoint
+ eautoreconf
+ else
+ # Allow building shared libs on Solaris/x64
+ elibtoolize
+ fi
+}
+
+multilib_src_configure() {
+ local myconf=(
+ --enable-threads
+ $(multilib_native_use_enable doc)
+ $(use_enable nls)
+ $(use_enable static-libs static)
+ )
+
+ if ! multilib_is_native_abi ; then
+ myconf+=(
+ --disable-{xz,xzdec,lzmadec,lzmainfo,lzma-links,scripts}
+ )
+ fi
+
+ if ! use extra-filters ; then
+ myconf+=(
+ # LZMA1 + LZMA2 for standard .lzma & .xz files
+ --enable-encoders=lzma1,lzma2
+ --enable-decoders=lzma1,lzma2
+
+ # those are used by default, depending on preset
+ --enable-match-finders=hc3,hc4,bt4
+
+ # CRC64 is used by default, though some (old?) files use CRC32
+ --enable-checks=crc32,crc64
+ )
+ fi
+
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ export gl_cv_posix_shell="${EPREFIX}"/bin/sh
+
+ # Undo Solaris-based defaults pointing to /usr/xpg5/bin
+ myconf+=( --disable-path-for-script )
+ fi
+
+ ECONF_SOURCE="${S}" econf "${myconf[@]}"
+}
+
+multilib_src_compile() {
+ # -fprofile-partial-training because upstream note the test suite isn't super comprehensive
+ # 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)")
+
+ emake CFLAGS="${CFLAGS} ${pgo_generate_flags}"
+
+ if use pgo ; then
+ emake CFLAGS="${CFLAGS} ${pgo_generate_flags}" -k check
+
+ if tc-is-clang; then
+ llvm-profdata merge "${T}"/${ABI}-pgo --output="${T}"/${ABI}-pgo/default.profdata || die
+ fi
+
+ emake clean
+ emake CFLAGS="${CFLAGS} ${pgo_use_flags}"
+ fi
+}
+
+multilib_src_install() {
+ default
+
+ gen_usr_ldscript -a lzma
+}
+
+multilib_src_install_all() {
+ find "${ED}" -type f -name '*.la' -delete || die
+
+ if use doc ; then
+ rm "${ED}"/usr/share/doc/${PF}/COPYING* || die
+ fi
+}
+
+pkg_preinst() {
+ preserve_old_lib /usr/$(get_libdir)/liblzma$(get_libname 0)
+}
+
+pkg_postinst() {
+ preserve_old_lib_notify /usr/$(get_libdir)/liblzma$(get_libname 0)
+}