From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 1508315800A for ; Sat, 2 Sep 2023 16:21:23 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 3B6E62BC020; Sat, 2 Sep 2023 16:21:22 +0000 (UTC) Received: from smtp.gentoo.org (mail.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 2517D2BC020 for ; Sat, 2 Sep 2023 16:21:22 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 2773A340DBE for ; Sat, 2 Sep 2023 16:21:21 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 784A210F7 for ; Sat, 2 Sep 2023 16:21:19 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1693671660.d9348359b2180d3a08f7f0e15ee5b702213dd0ab.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: sys-fs/btrfs-progs/, sys-fs/btrfs-progs/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: sys-fs/btrfs-progs/Manifest sys-fs/btrfs-progs/btrfs-progs-6.5.ebuild sys-fs/btrfs-progs/files/btrfs-progs-6.5-avoid-textrel-crc32c-pcl-intel-asm_64.patch X-VCS-Directories: sys-fs/btrfs-progs/ sys-fs/btrfs-progs/files/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: d9348359b2180d3a08f7f0e15ee5b702213dd0ab X-VCS-Branch: master Date: Sat, 2 Sep 2023 16:21:19 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 6bf0849f-dea7-4069-8c08-75e91aad1a6f X-Archives-Hash: 8366437c4323f507d3dfab7a681bec12 commit: d9348359b2180d3a08f7f0e15ee5b702213dd0ab Author: Sam James gentoo org> AuthorDate: Sat Sep 2 16:21:00 2023 +0000 Commit: Sam James gentoo org> CommitDate: Sat Sep 2 16:21:00 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d9348359 sys-fs/btrfs-progs: add 6.5 Signed-off-by: Sam James gentoo.org> sys-fs/btrfs-progs/Manifest | 1 + sys-fs/btrfs-progs/btrfs-progs-6.5.ebuild | 167 +++++++++++++++++++++ ...6.5-avoid-textrel-crc32c-pcl-intel-asm_64.patch | 44 ++++++ 3 files changed, 212 insertions(+) diff --git a/sys-fs/btrfs-progs/Manifest b/sys-fs/btrfs-progs/Manifest index daec932d880d..9a38f44eb96a 100644 --- a/sys-fs/btrfs-progs/Manifest +++ b/sys-fs/btrfs-progs/Manifest @@ -1,3 +1,4 @@ DIST btrfs-progs-v6.3.1.tar.xz 3155540 BLAKE2B 5f8ec51f11d705bb4ada2e000143933484bae2f3a5dedb5c1abac37950de44fa0fa762cc09012ca6702b96591264027b28c17392303db414a5651657cb086c7c SHA512 a567a02f565a44dd06f54b3fd03187d259235eedf8033457368add217c87b2304e8c80ca5e2a35bdffc14e43b6889361183c6dcd5e2f4ad6fe7bfc5eb4127e65 DIST btrfs-progs-v6.3.2.tar.xz 3160148 BLAKE2B e6815eeb90c1dbf9a6c4a5aa72262c18b2031a9305efc9024b1fe7b770a256e1d4cb3b01646a0a523f0e26af2d499382bf42420385c56593ace515a6c225f54d SHA512 d8580250994b3e399babec4478515686f1e3cc2e4fc01ccbc7b00a51b6131452d209cb7f43dbbac5375286546d182fcdf7884bbc1a8ad6889c3f15d85ba8f8d5 DIST btrfs-progs-v6.3.3.tar.xz 3163112 BLAKE2B 76714da94e1cd733df4198b736c31b32d4cfb6779985036610651a267fcf92299c140f99f2372278cafcb02f651413c069314195b7bd44d56ddf60eb60e5532d SHA512 e72791fd91cc9a93aaab72bf8c36f9d7e2608315ccb3b0474ca0c1e1893465b2c7145ce523216accb0d02c4dd0fd13597702ce6a8b9c2ac137cd9bce3c5a4347 +DIST btrfs-progs-v6.5.tar.xz 3178048 BLAKE2B 502d8cebab1d35d8d69eb76212476e323d9f19a9d32eb304acaeb1fc27bfff3ca801fcebc4c19ce7db16ed0114b3c794814157075872c2fd1d8b1d32d740e346 SHA512 7e1578b1f82549f77b55341c20a973da52018b1539da46f92e4a9d9804906ce5e00312c8a02a6047373e4435e661b2e5fc18f5dfbf2d0563cdf62c40de6a4436 diff --git a/sys-fs/btrfs-progs/btrfs-progs-6.5.ebuild b/sys-fs/btrfs-progs/btrfs-progs-6.5.ebuild new file mode 100644 index 000000000000..483d5e5b5feb --- /dev/null +++ b/sys-fs/btrfs-progs/btrfs-progs-6.5.ebuild @@ -0,0 +1,167 @@ +# Copyright 2008-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..11} ) +inherit bash-completion-r1 python-single-r1 udev + +libbtrfs_soname=0 + +if [[ ${PV} != 9999 ]]; then + MY_PV="v${PV/_/-}" + SRC_URI="https://www.kernel.org/pub/linux/kernel/people/kdave/${PN}/${PN}-${MY_PV}.tar.xz" + + if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" + fi + + S="${WORKDIR}"/${PN}-${MY_PV} +else + EGIT_REPO_URI="https://github.com/kdave/btrfs-progs.git" + EGIT_BRANCH="devel" + WANT_LIBTOOL="none" + inherit autotools git-r3 +fi + +DESCRIPTION="Btrfs filesystem utilities" +HOMEPAGE="https://btrfs.readthedocs.io/en/latest/" + +LICENSE="GPL-2" +SLOT="0/${libbtrfs_soname}" +IUSE="+convert python +man reiserfs static static-libs udev +zstd" +# Could support it with just !systemd => eudev, see mdadm, but let's +# see if someone asks for it first. +REQUIRED_USE="static? ( !udev )" + +# Tries to mount repaired filesystems +RESTRICT="test" + +RDEPEND=" + dev-libs/lzo:2= + sys-apps/util-linux:=[static-libs(+)?] + sys-libs/zlib:= + convert? ( + sys-fs/e2fsprogs:= + reiserfs? ( + >=sys-fs/reiserfsprogs-3.6.27 + ) + ) + python? ( ${PYTHON_DEPS} ) + udev? ( virtual/libudev:= ) + zstd? ( app-arch/zstd:= ) +" +DEPEND=" + ${RDEPEND} + >=sys-kernel/linux-headers-5.10 + convert? ( sys-apps/acl ) + python? ( + $(python_gen_cond_dep ' + dev-python/setuptools[${PYTHON_USEDEP}] + ') + ) + static? ( + dev-libs/lzo:2[static-libs(+)] + sys-apps/util-linux:0[static-libs(+)] + sys-libs/zlib:0[static-libs(+)] + convert? ( + sys-fs/e2fsprogs[static-libs(+)] + reiserfs? ( + >=sys-fs/reiserfsprogs-3.6.27[static-libs(+)] + ) + ) + zstd? ( app-arch/zstd[static-libs(+)] ) + ) +" +BDEPEND=" + virtual/pkgconfig + man? ( dev-python/sphinx ) +" + +if [[ ${PV} == 9999 ]]; then + BDEPEND+=" sys-devel/gnuconfig" +fi + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +PATCHES=( + "${FILESDIR}"/${PN}-6.5-avoid-textrel-crc32c-pcl-intel-asm_64.patch +) + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +src_prepare() { + default + + if [[ ${PV} == 9999 ]]; then + AT_M4DIR="m4" eautoreconf + + mkdir config || die + local automakedir="$(autotools_run_tool --at-output automake --print-libdir)" + [[ -e ${automakedir} ]] || die "Could not locate automake directory" + + ln -s "${automakedir}"/install-sh config/install-sh || die + ln -s "${BROOT}"/usr/share/gnuconfig/config.guess config/config.guess || die + ln -s "${BROOT}"/usr/share/gnuconfig/config.sub config/config.sub || die + fi +} + +src_configure() { + local myeconfargs=( + --bindir="${EPREFIX}"/sbin + + --enable-lzo + --disable-experimental + $(use_enable convert) + $(use_enable man documentation) + $(use_enable elibc_glibc backtrace) + $(use_enable python) + $(use_enable static-libs static) + $(use_enable udev libudev) + $(use_enable zstd) + + # Could support libgcrypt, libsodium, libkcapi + --with-crypto=builtin + --with-convert=ext2$(usex reiserfs ',reiserfs' '') + ) + + econf "${myeconfargs[@]}" +} + +src_compile() { + emake V=1 all $(usev static) +} + +src_test() { + emake -j1 -C tests V=1 test + + if use python ; then + cd libbtrfsutil/python || die + + local -x LD_LIBRARY_PATH="${S}:libbtrfsutil/python:${LD_LIBRARY_PATH}" + ${EPYTHON} -m unittest tests/test_*.py || die "Tests failed with ${EPYTHON}" + fi +} + +src_install() { + local makeargs=( + $(usev python install_python) + $(usev static install-static) + ) + + emake V=1 DESTDIR="${D}" install "${makeargs[@]}" + + newbashcomp btrfs-completion btrfs + + use python && python_optimize +} + +pkg_postinst() { + udev_reload +} + +pkg_postrm() { + udev_reload +} diff --git a/sys-fs/btrfs-progs/files/btrfs-progs-6.5-avoid-textrel-crc32c-pcl-intel-asm_64.patch b/sys-fs/btrfs-progs/files/btrfs-progs-6.5-avoid-textrel-crc32c-pcl-intel-asm_64.patch new file mode 100644 index 000000000000..40a9bbeff8f6 --- /dev/null +++ b/sys-fs/btrfs-progs/files/btrfs-progs-6.5-avoid-textrel-crc32c-pcl-intel-asm_64.patch @@ -0,0 +1,44 @@ +See https://github.com/kdave/btrfs-progs/commit/992be8b50a65974e52a484911e72bc5a5e1b412c. + +With binutils-2.41[hardened], one gets: +``` +/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: crypto/crc32c-pcl-intel-asm_64.o: warning: relocation in read-only section `.rodata' +/usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: read-only segment has dynamic relocations +collect2: error: ld returned 1 exit status +make: *** [Makefile:660: btrfs-map-logical] Error 1 +``` + +But it's a textrel and a warning anyway even without hardened. + +Disable it for now until it gets fixed properly upstream. +--- a/Makefile ++++ b/Makefile +@@ -387,7 +387,7 @@ endif + + ifeq ($(TARGET_CPU),x86_64) + # FIXME: linkage is broken on musl for some reason +-ifeq ($(HAVE_GLIBC),1) ++ifeq (0,1) + CRYPTO_OBJECTS += crypto/crc32c-pcl-intel-asm_64.o + ASFLAGS += -fPIC + endif +--- a/crypto/crc32c.c ++++ b/crypto/crc32c.c +@@ -18,7 +18,7 @@ static uint32_t (*crc_function)(uint32_t crc, unsigned char const *data, uint32_ + + #ifdef __x86_64__ + +-#ifdef __GLIBC__ ++#if 0 + + /* asmlinkage */ unsigned int crc_pcl(const unsigned char *buffer, int len, unsigned int crc_init); + static unsigned int crc32c_pcl(uint32_t crc, unsigned char const *data, uint32_t len) { +@@ -95,7 +95,7 @@ void crc32c_init_accel(void) + * now. + */ + if (0) { +-#ifdef __GLIBC__ ++#if 0 + } else if (cpu_has_feature(CPU_FLAG_SSE42)) { + /* printf("CRC32C: pcl\n"); */ + crc_function = crc32c_pcl;