* [gentoo-commits] repo/gentoo:master commit in: sys-apps/attr/, sys-apps/attr/files/
@ 2018-01-10 15:43 Lars Wendler
0 siblings, 0 replies; 7+ messages in thread
From: Lars Wendler @ 2018-01-10 15:43 UTC (permalink / raw
To: gentoo-commits
commit: 7e5b180cb88a4b730af851e326065baf6b9bc2c8
Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 10 15:42:50 2018 +0000
Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Wed Jan 10 15:43:06 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7e5b180c
sys-apps/attr: Fixed test suite error with perl-5.26
Closes: https://bugs.gentoo.org/644058
Package-Manager: Portage-2.3.19, Repoman-2.3.6
sys-apps/attr/attr-2.4.48.ebuild | 4 ++++
sys-apps/attr/files/attr-2.4.48-perl-5.26.patch | 23 +++++++++++++++++++++++
2 files changed, 27 insertions(+)
diff --git a/sys-apps/attr/attr-2.4.48.ebuild b/sys-apps/attr/attr-2.4.48.ebuild
index b6a1fef64ad..378bc2b6cd4 100644
--- a/sys-apps/attr/attr-2.4.48.ebuild
+++ b/sys-apps/attr/attr-2.4.48.ebuild
@@ -21,6 +21,10 @@ DEPEND="
sys-devel/gettext
"
+PATCHES=(
+ "${FILESDIR}/${P}-perl-5.26.patch"
+)
+
src_prepare() {
default
elibtoolize #580792
diff --git a/sys-apps/attr/files/attr-2.4.48-perl-5.26.patch b/sys-apps/attr/files/attr-2.4.48-perl-5.26.patch
new file mode 100644
index 00000000000..6f3d2a22c14
--- /dev/null
+++ b/sys-apps/attr/files/attr-2.4.48-perl-5.26.patch
@@ -0,0 +1,23 @@
+... to fix test-suite failure with perl-5.26.0
+
+Bug: https://bugzilla.redhat.com/1473853
+Upstream: http://lists.nongnu.org/archive/html/acl-devel/2017-07/msg00001.html
+---
+ test/run | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/run b/test/run
+index 4b1f8d0..07e916c 100755
+--- a/test/run
++++ b/test/run
+@@ -106,7 +106,7 @@ for (;;) {
+ if (defined $line) {
+ # Substitute %VAR and %{VAR} with environment variables.
+ $line =~ s[%(\w+)][$ENV{$1}]eg;
+- $line =~ s[%{(\w+)}][$ENV{$1}]eg;
++ $line =~ s[%\{(\w+)}][$ENV{$1}]eg;
+ }
+ if (defined $line) {
+ if ($line =~ s/^\s*< ?//) {
+--
+2.13.0
\ No newline at end of file
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-apps/attr/, sys-apps/attr/files/
@ 2018-06-22 13:37 Lars Wendler
0 siblings, 0 replies; 7+ messages in thread
From: Lars Wendler @ 2018-06-22 13:37 UTC (permalink / raw
To: gentoo-commits
commit: 67bcfc713c045e2205f7fb3015566f213c623814
Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 22 13:37:06 2018 +0000
Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Fri Jun 22 13:37:25 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=67bcfc71
sys-apps/attr: Revbump to also define ENOATTR in xattr.h shim file.
Bug: https://bugs.gentoo.org/658744
Package-Manager: Portage-2.3.40, Repoman-2.3.9
sys-apps/attr/{attr-2.4.48-r1.ebuild => attr-2.4.48-r2.ebuild} | 0
sys-apps/attr/files/xattr-shim.h | 3 +++
2 files changed, 3 insertions(+)
diff --git a/sys-apps/attr/attr-2.4.48-r1.ebuild b/sys-apps/attr/attr-2.4.48-r2.ebuild
similarity index 100%
rename from sys-apps/attr/attr-2.4.48-r1.ebuild
rename to sys-apps/attr/attr-2.4.48-r2.ebuild
diff --git a/sys-apps/attr/files/xattr-shim.h b/sys-apps/attr/files/xattr-shim.h
index 818b4c1690c..88a12354318 100644
--- a/sys-apps/attr/files/xattr-shim.h
+++ b/sys-apps/attr/files/xattr-shim.h
@@ -3,4 +3,7 @@
#define __XATTR_H__
#include <sys/xattr.h>
#warning "Please change your <attr/xattr.h> includes to <sys/xattr.h>"
+# ifndef ENOATTR
+# define ENOATTR ENODATA
+# endif /* ENOATTR */
#endif
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-apps/attr/, sys-apps/attr/files/
@ 2018-09-01 22:29 Thomas Deutschmann
0 siblings, 0 replies; 7+ messages in thread
From: Thomas Deutschmann @ 2018-09-01 22:29 UTC (permalink / raw
To: gentoo-commits
commit: 6ded56cd9ef0b4f86918d9b675bbb87ca143d344
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 1 22:28:38 2018 +0000
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Sat Sep 1 22:29:06 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6ded56cd
sys-apps/attr: switch back to syscall
Link: https://lists.nongnu.org/archive/html/acl-devel/2018-08/msg00000.html
Package-Manager: Portage-2.3.48, Repoman-2.3.10
sys-apps/attr/attr-2.4.48-r3.ebuild | 86 ++++++++++++++
.../files/attr-2.4.48-switch-back-to-syscall.patch | 123 +++++++++++++++++++++
2 files changed, 209 insertions(+)
diff --git a/sys-apps/attr/attr-2.4.48-r3.ebuild b/sys-apps/attr/attr-2.4.48-r3.ebuild
new file mode 100644
index 00000000000..2e011e44eea
--- /dev/null
+++ b/sys-apps/attr/attr-2.4.48-r3.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit libtool toolchain-funcs multilib-minimal
+
+DESCRIPTION="Extended attributes tools"
+HOMEPAGE="https://savannah.nongnu.org/projects/attr"
+SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="debug nls static-libs"
+
+DEPEND="nls? ( sys-devel/gettext )"
+
+PATCHES=(
+ "${FILESDIR}/${P}-perl-5.26.patch"
+ "${FILESDIR}/${P}-switch-back-to-syscall.patch"
+)
+
+src_prepare() {
+ default
+ elibtoolize #580792
+}
+
+multilib_src_configure() {
+ unset PLATFORM #184564
+ export OPTIMIZER=${CFLAGS}
+ export DEBUG=-DNDEBUG
+
+ tc-ld-disable-gold #644048
+
+ local myeconfargs=(
+ --bindir="${EPREFIX%/}"/bin
+ --enable-shared
+ $(use_enable static-libs static)
+ $(use_enable nls)
+ --libexecdir="${EPREFIX%/}"/usr/$(get_libdir)
+ $(use_enable debug)
+ )
+ ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+multilib_src_install() {
+ emake DESTDIR="${D%/}" install
+
+ # Sanity check until we track down why this is happening. #644048
+ local lib="${ED%/}/usr/$(get_libdir)/libattr.so.1"
+ if [[ -e ${lib} ]] ; then
+ local versions=$(readelf -V "${lib}")
+ local symbols=$(readelf -sW "${lib}")
+ if [[ "${versions}" != *"ATTR_1.0"* || \
+ "${versions}" != *"ATTR_1.1"* || \
+ "${versions}" != *"ATTR_1.2"* || \
+ "${versions}" != *"ATTR_1.3"* || \
+ "${symbols}" != *"getxattr@ATTR_1.0"* ]] ; then
+ echo "# readelf -V ${lib}"
+ echo "${versions}"
+ echo "# readelf -sW ${lib}"
+ echo "${symbols}"
+ die "symbol version sanity check failed; please comment on https://bugs.gentoo.org/644048"
+ else
+ einfo "${lib} passed symbol checks"
+ fi
+ fi
+
+ if multilib_is_native_abi; then
+ # we install attr into /bin, so we need the shared lib with it
+ gen_usr_ldscript -a attr
+ fi
+
+ # Add a wrapper until people upgrade.
+ insinto /usr/include/attr
+ newins "${FILESDIR}"/xattr-shim.h xattr.h
+}
+
+multilib_src_install_all() {
+ if ! use static-libs; then
+ find "${ED%/}" -name '*.la' -delete || die
+ fi
+
+ einstalldocs
+}
diff --git a/sys-apps/attr/files/attr-2.4.48-switch-back-to-syscall.patch b/sys-apps/attr/files/attr-2.4.48-switch-back-to-syscall.patch
new file mode 100644
index 00000000000..5691b15420c
--- /dev/null
+++ b/sys-apps/attr/files/attr-2.4.48-switch-back-to-syscall.patch
@@ -0,0 +1,123 @@
+From 14adc898a36948267bfe5c63b399996879e94c98 Mon Sep 17 00:00:00 2001
+From: Andreas Gruenbacher <agruenba@redhat.com>
+Date: Fri, 17 Aug 2018 14:07:31 +0200
+Subject: Switch back to syscall()
+
+Switch back to syscall() for the *xattr system calls. The current
+mechanism of forwarding those calls to glibc breaks libraries like
+libfakeroot (fakeroot) and libasan (the gcc address sanitizer; gcc
+-fsanitize=address).
+
+Those libraries provide wrappers for functions defined in other shared
+libraries, usually glibc, do their own processing, and forward calls to
+the original symbols looke dup via dlsym(RTLD_NEXT, "symbol_name"). In
+our case, dlsym returns the libattr_*xattr wrappers. However, when our
+wrappers try calling glibc, they end up calling the libfakeroot /
+libasan wrappers instead because those override the original symbols =>
+recursion.
+
+The libattr_*xattr wrappers will only be used when symbols are looked up
+at runtime (dlopen / dlsym). Programs linking against libattr will
+directly use the glibc provided symbols. Therefore, the slightly worse
+performance of syscall() won't affect any of the "normal" users of
+libattr.
+---
+ libattr/syscalls.c | 26 ++++++++++++++------------
+ 1 file changed, 14 insertions(+), 12 deletions(-)
+
+diff --git a/libattr/syscalls.c b/libattr/syscalls.c
+index 3013aa0..721ad7f 100644
+--- a/libattr/syscalls.c
++++ b/libattr/syscalls.c
+@@ -22,6 +22,8 @@
+
+ #include "config.h"
+
++#include <unistd.h>
++#include <sys/syscall.h>
+ #include <sys/xattr.h>
+
+ #ifdef HAVE_VISIBILITY_ATTRIBUTE
+@@ -31,67 +33,67 @@
+ int libattr_setxattr(const char *path, const char *name,
+ void *value, size_t size, int flags)
+ {
+- return setxattr(path, name, value, size, flags);
++ return syscall(__NR_setxattr, path, name, value, size, flags);
+ }
+
+ int libattr_lsetxattr(const char *path, const char *name,
+ void *value, size_t size, int flags)
+ {
+- return lsetxattr(path, name, value, size, flags);
++ return syscall(__NR_lsetxattr, path, name, value, size, flags);
+ }
+
+ int libattr_fsetxattr(int filedes, const char *name,
+ void *value, size_t size, int flags)
+ {
+- return fsetxattr(filedes, name, value, size, flags);
++ return syscall(__NR_fsetxattr, filedes, name, value, size, flags);
+ }
+
+ ssize_t libattr_getxattr(const char *path, const char *name,
+ void *value, size_t size)
+ {
+- return getxattr(path, name, value, size);
++ return syscall(__NR_getxattr, path, name, value, size);
+ }
+
+ ssize_t libattr_lgetxattr(const char *path, const char *name,
+ void *value, size_t size)
+ {
+- return lgetxattr(path, name, value, size);
++ return syscall(__NR_lgetxattr, path, name, value, size);
+ }
+
+ ssize_t libattr_fgetxattr(int filedes, const char *name,
+ void *value, size_t size)
+ {
+- return fgetxattr(filedes, name, value, size);
++ return syscall(__NR_fgetxattr, filedes, name, value, size);
+ }
+
+ ssize_t libattr_listxattr(const char *path, char *list, size_t size)
+ {
+- return listxattr(path, list, size);
++ return syscall(__NR_listxattr, path, list, size);
+ }
+
+ ssize_t libattr_llistxattr(const char *path, char *list, size_t size)
+ {
+- return llistxattr(path, list, size);
++ return syscall(__NR_llistxattr, path, list, size);
+ }
+
+ ssize_t libattr_flistxattr(int filedes, char *list, size_t size)
+ {
+- return flistxattr(filedes, list, size);
++ return syscall(__NR_flistxattr, filedes, list, size);
+ }
+
+ int libattr_removexattr(const char *path, const char *name)
+ {
+- return removexattr(path, name);
++ return syscall(__NR_removexattr, path, name);
+ }
+
+ int libattr_lremovexattr(const char *path, const char *name)
+ {
+- return lremovexattr(path, name);
++ return syscall(__NR_lremovexattr, path, name);
+ }
+
+ int libattr_fremovexattr(int filedes, const char *name)
+ {
+- return fremovexattr(filedes, name);
++ return syscall(__NR_fremovexattr, filedes, name);
+ }
+
+ #ifdef HAVE_VISIBILITY_ATTRIBUTE
+--
+cgit v1.0-41-gc330
+
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-apps/attr/, sys-apps/attr/files/
@ 2022-06-20 15:28 Sam James
0 siblings, 0 replies; 7+ messages in thread
From: Sam James @ 2022-06-20 15:28 UTC (permalink / raw
To: gentoo-commits
commit: 89b02b4b145ab489734ebcee4d111657473ba560
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 20 15:25:35 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Jun 20 15:28:28 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=89b02b4b
sys-apps/attr: update EAPI 7 -> 8; use real symbol versioning (fix lld, etc)
This should finally let us fix compatibility with LLD and.. pretty much
anything other than gcc + bfd + -fno-lto (and even then it wasn't
technically correct).
Big thanks to Alexander Miller for sorting it out.
Closes: https://bugs.gentoo.org/644048
Closes: https://bugs.gentoo.org/700116
Thanks-to: Alexander Miller <alex.miller <AT> gmx.de>
Signed-off-by: Sam James <sam <AT> gentoo.org>
.../{attr-9999.ebuild => attr-2.5.1-r1.ebuild} | 44 +++---
sys-apps/attr/attr-9999.ebuild | 44 +++---
sys-apps/attr/files/attr-2.5.1-fix-symver.patch | 173 +++++++++++++++++++++
3 files changed, 225 insertions(+), 36 deletions(-)
diff --git a/sys-apps/attr/attr-9999.ebuild b/sys-apps/attr/attr-2.5.1-r1.ebuild
similarity index 74%
copy from sys-apps/attr/attr-9999.ebuild
copy to sys-apps/attr/attr-2.5.1-r1.ebuild
index 58d5e41c2738..c8051fdd82e4 100644
--- a/sys-apps/attr/attr-9999.ebuild
+++ b/sys-apps/attr/attr-2.5.1-r1.ebuild
@@ -1,30 +1,34 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI=8
-inherit flag-o-matic libtool toolchain-funcs multilib-minimal usr-ldscript
+# autotools inherit only needed for 2.5.1-r1 patch for symvers
+# hopefully in next release
+inherit autotools flag-o-matic toolchain-funcs multilib-minimal usr-ldscript
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://git.savannah.gnu.org/git/${PN}.git"
-
inherit autotools git-r3
else
+ inherit libtool
+
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
SRC_URI="mirror://nongnu/${PN}/${P}.tar.xz"
fi
DESCRIPTION="Extended attributes tools"
HOMEPAGE="https://savannah.nongnu.org/projects/attr"
+
LICENSE="LGPL-2.1"
SLOT="0"
-
IUSE="debug nls static-libs"
-BDEPEND="
- sys-devel/binutils
- nls? ( sys-devel/gettext )
-"
+BDEPEND="nls? ( sys-devel/gettext )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.5.1-fix-symver.patch
+)
src_prepare() {
default
@@ -34,35 +38,38 @@ src_prepare() {
eautopoint
eautoreconf
else
- elibtoolize #580792
+ # bug #580792
+ #elibtoolize
+
+ # Temporarily for 2.5.1-r1 for symver patch
+ eautoreconf
fi
}
src_configure() {
- # Remove -flto* from flags as this breaks binaries (bug #644048)
- filter-flags -flto*
- append-ldflags "-Wl,--no-gc-sections" #700116
- tc-ld-force-bfd #644048
- append-lfs-flags #760857
+ # bug #760857
+ append-lfs-flags
+
multilib-minimal_src_configure
}
multilib_src_configure() {
local myeconfargs=(
--bindir="${EPREFIX}"/bin
+ --libexecdir="${EPREFIX}"/usr/$(get_libdir)
--enable-shared
$(use_enable static-libs static)
$(use_enable nls)
- --libexecdir="${EPREFIX}"/usr/$(get_libdir)
$(use_enable debug)
)
+
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
multilib_src_install() {
emake DESTDIR="${D}" install
- # Sanity check until we track down why this is happening. #644048
+ # Sanity check until we track down why this is happening. bug #644048
local lib="${ED}/usr/$(get_libdir)/libattr.so.1"
if [[ -e ${lib} ]] ; then
local versions=$($(tc-getREADELF) -V "${lib}")
@@ -76,18 +83,19 @@ multilib_src_install() {
echo "${versions}"
echo "# readelf -sW ${lib}"
echo "${symbols}"
- die "symbol version sanity check failed; please comment on https://bugs.gentoo.org/644048"
+ die "Symbol version sanity check failed; please comment on https://bugs.gentoo.org/644048"
else
einfo "${lib} passed symbol checks"
fi
fi
if multilib_is_native_abi; then
- # we install attr into /bin, so we need the shared lib with it
+ # We install attr into /bin, so we need the shared lib with it
gen_usr_ldscript -a attr
fi
# Add a wrapper until people upgrade.
+ # TODO: figure out when this was added & when we can drop it!
insinto /usr/include/attr
newins "${FILESDIR}"/xattr-shim.h xattr.h
}
diff --git a/sys-apps/attr/attr-9999.ebuild b/sys-apps/attr/attr-9999.ebuild
index 58d5e41c2738..c8051fdd82e4 100644
--- a/sys-apps/attr/attr-9999.ebuild
+++ b/sys-apps/attr/attr-9999.ebuild
@@ -1,30 +1,34 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI=8
-inherit flag-o-matic libtool toolchain-funcs multilib-minimal usr-ldscript
+# autotools inherit only needed for 2.5.1-r1 patch for symvers
+# hopefully in next release
+inherit autotools flag-o-matic toolchain-funcs multilib-minimal usr-ldscript
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://git.savannah.gnu.org/git/${PN}.git"
-
inherit autotools git-r3
else
+ inherit libtool
+
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
SRC_URI="mirror://nongnu/${PN}/${P}.tar.xz"
fi
DESCRIPTION="Extended attributes tools"
HOMEPAGE="https://savannah.nongnu.org/projects/attr"
+
LICENSE="LGPL-2.1"
SLOT="0"
-
IUSE="debug nls static-libs"
-BDEPEND="
- sys-devel/binutils
- nls? ( sys-devel/gettext )
-"
+BDEPEND="nls? ( sys-devel/gettext )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.5.1-fix-symver.patch
+)
src_prepare() {
default
@@ -34,35 +38,38 @@ src_prepare() {
eautopoint
eautoreconf
else
- elibtoolize #580792
+ # bug #580792
+ #elibtoolize
+
+ # Temporarily for 2.5.1-r1 for symver patch
+ eautoreconf
fi
}
src_configure() {
- # Remove -flto* from flags as this breaks binaries (bug #644048)
- filter-flags -flto*
- append-ldflags "-Wl,--no-gc-sections" #700116
- tc-ld-force-bfd #644048
- append-lfs-flags #760857
+ # bug #760857
+ append-lfs-flags
+
multilib-minimal_src_configure
}
multilib_src_configure() {
local myeconfargs=(
--bindir="${EPREFIX}"/bin
+ --libexecdir="${EPREFIX}"/usr/$(get_libdir)
--enable-shared
$(use_enable static-libs static)
$(use_enable nls)
- --libexecdir="${EPREFIX}"/usr/$(get_libdir)
$(use_enable debug)
)
+
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
multilib_src_install() {
emake DESTDIR="${D}" install
- # Sanity check until we track down why this is happening. #644048
+ # Sanity check until we track down why this is happening. bug #644048
local lib="${ED}/usr/$(get_libdir)/libattr.so.1"
if [[ -e ${lib} ]] ; then
local versions=$($(tc-getREADELF) -V "${lib}")
@@ -76,18 +83,19 @@ multilib_src_install() {
echo "${versions}"
echo "# readelf -sW ${lib}"
echo "${symbols}"
- die "symbol version sanity check failed; please comment on https://bugs.gentoo.org/644048"
+ die "Symbol version sanity check failed; please comment on https://bugs.gentoo.org/644048"
else
einfo "${lib} passed symbol checks"
fi
fi
if multilib_is_native_abi; then
- # we install attr into /bin, so we need the shared lib with it
+ # We install attr into /bin, so we need the shared lib with it
gen_usr_ldscript -a attr
fi
# Add a wrapper until people upgrade.
+ # TODO: figure out when this was added & when we can drop it!
insinto /usr/include/attr
newins "${FILESDIR}"/xattr-shim.h xattr.h
}
diff --git a/sys-apps/attr/files/attr-2.5.1-fix-symver.patch b/sys-apps/attr/files/attr-2.5.1-fix-symver.patch
new file mode 100644
index 000000000000..55ef4506f7de
--- /dev/null
+++ b/sys-apps/attr/files/attr-2.5.1-fix-symver.patch
@@ -0,0 +1,173 @@
+https://lists.nongnu.org/archive/html/acl-devel/2022-05/msg00000.html
+Bug: https://bugs.gentoo.org/644048
+Bug: https://bugs.gentoo.org/700116
+
+From a9ca51afd2b9f68f57de3a4c3d962d1d763572ca Mon Sep 17 00:00:00 2001
+From: Alexander Miller <alex.miller@gmx.de>
+Date: Thu, 28 Nov 2019 22:17:24 +0100
+Subject: [PATCH] Better supported way to set symbol versions for legacy
+ syscalls
+
+Using a linker script to set a symbol versions is an undocumented
+hack and doesn't work reliably in many cases. It works (to some
+degree) with the bfd linker, but fails with gold or lld. And even
+with bfd it can break when using --gc-sections or LTO.
+
+The result may be a library where the code has been discarded and
+the versioned symbols are unusable, e.g.
+ 23: 00000000 0 NOTYPE GLOBAL DEFAULT ABS getxattr@ATTR_1.0
+instead of
+ 23: 000033c0 0 FUNC GLOBAL DEFAULT 11 getxattr@ATTR_1.0
+
+Remove the linker script entirely and set symbol versions with the
+symver attribute if available (in gcc >= 10, but not in clang),
+otherwise use the traditional global asm solution with a .symver
+directive.
+Those are the documented ways to do it and well supported by (almost)
+all configurations. (The exception is old gcc with LTO; a workaround
+is included, but some versions may still need -flto-partition=none).
+
+Signed-off-by: Alexander Miller <alex.miller@gmx.de>
+--- a/libattr/Makemodule.am
++++ b/libattr/Makemodule.am
+@@ -8,7 +8,7 @@ LT_CURRENT = 2
+ LT_AGE = 1
+ LTVERSION = $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
+
+-libattr_la_DEPENDENCIES = exports libattr/libattr.lds
++libattr_la_DEPENDENCIES = exports
+ libattr_la_SOURCES = \
+ libattr/attr_copy_action.c \
+ libattr/attr_copy_check.c \
+@@ -20,7 +20,4 @@ libattr_la_SOURCES = \
+ libattr_la_CFLAGS = -include libattr/libattr.h
+ libattr_la_LDFLAGS = \
+ -Wl,--version-script,$(top_srcdir)/exports \
+- -Wl,$(top_srcdir)/libattr/libattr.lds \
+ -version-info $(LTVERSION)
+-
+-EXTRA_DIST += libattr/libattr.lds
+--- a/libattr/libattr.lds
++++ /dev/null
+@@ -1,12 +0,0 @@
+-"fgetxattr@ATTR_1.0" = libattr_fgetxattr;
+-"flistxattr@ATTR_1.0" = libattr_flistxattr;
+-"fremovexattr@ATTR_1.0" = libattr_fremovexattr;
+-"fsetxattr@ATTR_1.0" = libattr_fsetxattr;
+-"getxattr@ATTR_1.0" = libattr_getxattr;
+-"lgetxattr@ATTR_1.0" = libattr_lgetxattr;
+-"listxattr@ATTR_1.0" = libattr_listxattr;
+-"llistxattr@ATTR_1.0" = libattr_llistxattr;
+-"lremovexattr@ATTR_1.0" = libattr_lremovexattr;
+-"lsetxattr@ATTR_1.0" = libattr_lsetxattr;
+-"removexattr@ATTR_1.0" = libattr_removexattr;
+-"setxattr@ATTR_1.0" = libattr_setxattr;
+--- a/libattr/syscalls.c
++++ b/libattr/syscalls.c
+@@ -26,6 +26,27 @@
+ #include <sys/syscall.h>
+ #include <sys/xattr.h>
+
++/*
++ * Versioning of compat symbols:
++ * prefer symver attribute if available (since gcc 10),
++ * fall back to traditional .symver asm directive otherwise.
++ */
++#ifdef __has_attribute
++# if __has_attribute(symver)
++# define SYMVER(cn, vn) __typeof(cn) cn __attribute__((symver(vn)))
++# elif __has_attribute(no_reorder)
++ /*
++ * Avoid wrong partitioning with older gcc and LTO. May not work reliably
++ * with all versions; use -flto-partition=none if you encounter problems.
++ */
++# define SYMVER(cn, vn) __typeof(cn) cn __attribute__((noreorder)); \
++ __asm__(".symver " #cn "," vn)
++# endif
++#endif
++#ifndef SYMVER
++# define SYMVER(cn, vn) __asm__(".symver " #cn "," vn)
++#endif
++
+ #ifdef HAVE_VISIBILITY_ATTRIBUTE
+ # pragma GCC visibility push(default)
+ #endif
+@@ -35,66 +56,78 @@ int libattr_setxattr(const char *path, const char *name,
+ {
+ return syscall(__NR_setxattr, path, name, value, size, flags);
+ }
++SYMVER(libattr_setxattr, "setxattr@ATTR_1.0");
+
+ int libattr_lsetxattr(const char *path, const char *name,
+ void *value, size_t size, int flags)
+ {
+ return syscall(__NR_lsetxattr, path, name, value, size, flags);
+ }
++SYMVER(libattr_lsetxattr, "lsetxattr@ATTR_1.0");
+
+ int libattr_fsetxattr(int filedes, const char *name,
+ void *value, size_t size, int flags)
+ {
+ return syscall(__NR_fsetxattr, filedes, name, value, size, flags);
+ }
++SYMVER(libattr_fsetxattr, "fsetxattr@ATTR_1.0");
+
+ ssize_t libattr_getxattr(const char *path, const char *name,
+ void *value, size_t size)
+ {
+ return syscall(__NR_getxattr, path, name, value, size);
+ }
++SYMVER(libattr_getxattr, "getxattr@ATTR_1.0");
+
+ ssize_t libattr_lgetxattr(const char *path, const char *name,
+ void *value, size_t size)
+ {
+ return syscall(__NR_lgetxattr, path, name, value, size);
+ }
++SYMVER(libattr_lgetxattr, "lgetxattr@ATTR_1.0");
+
+ ssize_t libattr_fgetxattr(int filedes, const char *name,
+ void *value, size_t size)
+ {
+ return syscall(__NR_fgetxattr, filedes, name, value, size);
+ }
++SYMVER(libattr_fgetxattr, "fgetxattr@ATTR_1.0");
+
+ ssize_t libattr_listxattr(const char *path, char *list, size_t size)
+ {
+ return syscall(__NR_listxattr, path, list, size);
+ }
++SYMVER(libattr_listxattr, "listxattr@ATTR_1.0");
+
+ ssize_t libattr_llistxattr(const char *path, char *list, size_t size)
+ {
+ return syscall(__NR_llistxattr, path, list, size);
+ }
++SYMVER(libattr_llistxattr, "llistxattr@ATTR_1.0");
+
+ ssize_t libattr_flistxattr(int filedes, char *list, size_t size)
+ {
+ return syscall(__NR_flistxattr, filedes, list, size);
+ }
++SYMVER(libattr_flistxattr, "flistxattr@ATTR_1.0");
+
+ int libattr_removexattr(const char *path, const char *name)
+ {
+ return syscall(__NR_removexattr, path, name);
+ }
++SYMVER(libattr_removexattr, "removexattr@ATTR_1.0");
+
+ int libattr_lremovexattr(const char *path, const char *name)
+ {
+ return syscall(__NR_lremovexattr, path, name);
+ }
++SYMVER(libattr_lremovexattr, "lremovexattr@ATTR_1.0");
+
+ int libattr_fremovexattr(int filedes, const char *name)
+ {
+ return syscall(__NR_fremovexattr, filedes, name);
+ }
++SYMVER(libattr_fremovexattr, "fremovexattr@ATTR_1.0");
+
+ #ifdef HAVE_VISIBILITY_ATTRIBUTE
+ # pragma GCC visibility pop
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-apps/attr/, sys-apps/attr/files/
@ 2022-06-30 20:01 Sam James
0 siblings, 0 replies; 7+ messages in thread
From: Sam James @ 2022-06-30 20:01 UTC (permalink / raw
To: gentoo-commits
commit: a745219c1cabe91c6df157cc89d5689b985a2cb9
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 30 20:00:18 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jun 30 20:01:07 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a745219c
sys-apps/attr: provide generated autotools patch
for bootstrapping
Signed-off-by: Sam James <sam <AT> gentoo.org>
sys-apps/attr/attr-2.5.1-r2.ebuild | 104 +++++++++++
sys-apps/attr/files/attr-2.5.1-r2-fix-symver.patch | 206 +++++++++++++++++++++
2 files changed, 310 insertions(+)
diff --git a/sys-apps/attr/attr-2.5.1-r2.ebuild b/sys-apps/attr/attr-2.5.1-r2.ebuild
new file mode 100644
index 000000000000..2046677daddd
--- /dev/null
+++ b/sys-apps/attr/attr-2.5.1-r2.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic toolchain-funcs multilib-minimal usr-ldscript
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/${PN}.git"
+ inherit autotools git-r3
+else
+ inherit libtool
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+ SRC_URI="mirror://nongnu/${PN}/${P}.tar.xz"
+fi
+
+DESCRIPTION="Extended attributes tools"
+HOMEPAGE="https://savannah.nongnu.org/projects/attr"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+IUSE="debug nls static-libs"
+
+BDEPEND="nls? ( sys-devel/gettext )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.5.1-r2-fix-symver.patch
+)
+
+src_prepare() {
+ default
+
+ if [[ ${PV} == 9999 ]] ; then
+ po/update-potfiles || die
+ eautopoint
+ eautoreconf
+ else
+ # bug #580792
+ elibtoolize
+ fi
+}
+
+src_configure() {
+ # bug #760857
+ append-lfs-flags
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local myeconfargs=(
+ --bindir="${EPREFIX}"/bin
+ --libexecdir="${EPREFIX}"/usr/$(get_libdir)
+ --enable-shared
+ $(use_enable static-libs static)
+ $(use_enable nls)
+ $(use_enable debug)
+ )
+
+ ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+multilib_src_install() {
+ emake DESTDIR="${D}" install
+
+ # Sanity check until we track down why this is happening. bug #644048
+ local lib="${ED}/usr/$(get_libdir)/libattr.so.1"
+ if [[ -e ${lib} ]] ; then
+ local versions=$($(tc-getREADELF) -V "${lib}")
+ local symbols=$($(tc-getREADELF) -sW "${lib}")
+ if [[ "${versions}" != *"ATTR_1.0"* || \
+ "${versions}" != *"ATTR_1.1"* || \
+ "${versions}" != *"ATTR_1.2"* || \
+ "${versions}" != *"ATTR_1.3"* || \
+ "${symbols}" != *"getxattr@ATTR_1.0"* ]] ; then
+ echo "# readelf -V ${lib}"
+ echo "${versions}"
+ echo "# readelf -sW ${lib}"
+ echo "${symbols}"
+ die "Symbol version sanity check failed; please comment on https://bugs.gentoo.org/644048"
+ else
+ einfo "${lib} passed symbol checks"
+ fi
+ fi
+
+ if multilib_is_native_abi; then
+ # We install attr into /bin, so we need the shared lib with it
+ gen_usr_ldscript -a attr
+ fi
+
+ # Add a wrapper until people upgrade.
+ # TODO: figure out when this was added & when we can drop it!
+ insinto /usr/include/attr
+ newins "${FILESDIR}"/xattr-shim.h xattr.h
+}
+
+multilib_src_install_all() {
+ if ! use static-libs; then
+ find "${ED}" -name '*.la' -delete || die
+ fi
+
+ einstalldocs
+}
diff --git a/sys-apps/attr/files/attr-2.5.1-r2-fix-symver.patch b/sys-apps/attr/files/attr-2.5.1-r2-fix-symver.patch
new file mode 100644
index 000000000000..ee25b13166ff
--- /dev/null
+++ b/sys-apps/attr/files/attr-2.5.1-r2-fix-symver.patch
@@ -0,0 +1,206 @@
+https://lists.nongnu.org/archive/html/acl-devel/2022-05/msg00000.html
+Bug: https://bugs.gentoo.org/644048
+Bug: https://bugs.gentoo.org/700116
+
+From a9ca51afd2b9f68f57de3a4c3d962d1d763572ca Mon Sep 17 00:00:00 2001
+From: Alexander Miller <alex.miller@gmx.de>
+Date: Thu, 28 Nov 2019 22:17:24 +0100
+Subject: [PATCH] Better supported way to set symbol versions for legacy
+ syscalls
+
+Using a linker script to set a symbol versions is an undocumented
+hack and doesn't work reliably in many cases. It works (to some
+degree) with the bfd linker, but fails with gold or lld. And even
+with bfd it can break when using --gc-sections or LTO.
+
+The result may be a library where the code has been discarded and
+the versioned symbols are unusable, e.g.
+ 23: 00000000 0 NOTYPE GLOBAL DEFAULT ABS getxattr@ATTR_1.0
+instead of
+ 23: 000033c0 0 FUNC GLOBAL DEFAULT 11 getxattr@ATTR_1.0
+
+Remove the linker script entirely and set symbol versions with the
+symver attribute if available (in gcc >= 10, but not in clang),
+otherwise use the traditional global asm solution with a .symver
+directive.
+Those are the documented ways to do it and well supported by (almost)
+all configurations. (The exception is old gcc with LTO; a workaround
+is included, but some versions may still need -flto-partition=none).
+
+Signed-off-by: Alexander Miller <alex.miller@gmx.de>
+
+--- a/libattr/Makemodule.am
++++ b/libattr/Makemodule.am
+@@ -8,7 +8,7 @@ LT_CURRENT = 2
+ LT_AGE = 1
+ LTVERSION = $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
+
+-libattr_la_DEPENDENCIES = exports libattr/libattr.lds
++libattr_la_DEPENDENCIES = exports
+ libattr_la_SOURCES = \
+ libattr/attr_copy_action.c \
+ libattr/attr_copy_check.c \
+@@ -20,7 +20,4 @@ libattr_la_SOURCES = \
+ libattr_la_CFLAGS = -include libattr/libattr.h
+ libattr_la_LDFLAGS = \
+ -Wl,--version-script,$(top_srcdir)/exports \
+- -Wl,$(top_srcdir)/libattr/libattr.lds \
+ -version-info $(LTVERSION)
+-
+-EXTRA_DIST += libattr/libattr.lds
+
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -647,9 +647,8 @@ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ ACLOCAL_AMFLAGS = -I m4
+-EXTRA_DIST = exports examples/copyattr.c examples/Makefile \
+- libattr/libattr.lds test/README test/run \
+- test/sort-getfattr-output $(TESTS)
++EXTRA_DIST = exports examples/copyattr.c examples/Makefile test/README \
++ test/run test/sort-getfattr-output $(TESTS)
+ SUBDIRS = po
+ AM_CPPFLAGS = \
+ -I$(top_builddir)/include \
+@@ -689,7 +688,7 @@ LT_CURRENT = 2
+ #LT_REVISION =
+ LT_AGE = 1
+ LTVERSION = $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
+-libattr_la_DEPENDENCIES = exports libattr/libattr.lds
++libattr_la_DEPENDENCIES = exports
+ libattr_la_SOURCES = \
+ libattr/attr_copy_action.c \
+ libattr/attr_copy_check.c \
+@@ -702,7 +701,6 @@ libattr_la_SOURCES = \
+ libattr_la_CFLAGS = -include libattr/libattr.h
+ libattr_la_LDFLAGS = \
+ -Wl,--version-script,$(top_srcdir)/exports \
+- -Wl,$(top_srcdir)/libattr/libattr.lds \
+ -version-info $(LTVERSION)
+
+ libmisc_la_SOURCES = \
+--- a/libattr/libattr.lds
++++ /dev/null
+@@ -1,12 +0,0 @@
+-"fgetxattr@ATTR_1.0" = libattr_fgetxattr;
+-"flistxattr@ATTR_1.0" = libattr_flistxattr;
+-"fremovexattr@ATTR_1.0" = libattr_fremovexattr;
+-"fsetxattr@ATTR_1.0" = libattr_fsetxattr;
+-"getxattr@ATTR_1.0" = libattr_getxattr;
+-"lgetxattr@ATTR_1.0" = libattr_lgetxattr;
+-"listxattr@ATTR_1.0" = libattr_listxattr;
+-"llistxattr@ATTR_1.0" = libattr_llistxattr;
+-"lremovexattr@ATTR_1.0" = libattr_lremovexattr;
+-"lsetxattr@ATTR_1.0" = libattr_lsetxattr;
+-"removexattr@ATTR_1.0" = libattr_removexattr;
+-"setxattr@ATTR_1.0" = libattr_setxattr;
+--- a/libattr/syscalls.c
++++ b/libattr/syscalls.c
+@@ -26,6 +26,27 @@
+ #include <sys/syscall.h>
+ #include <sys/xattr.h>
+
++/*
++ * Versioning of compat symbols:
++ * prefer symver attribute if available (since gcc 10),
++ * fall back to traditional .symver asm directive otherwise.
++ */
++#ifdef __has_attribute
++# if __has_attribute(symver)
++# define SYMVER(cn, vn) __typeof(cn) cn __attribute__((symver(vn)))
++# elif __has_attribute(no_reorder)
++ /*
++ * Avoid wrong partitioning with older gcc and LTO. May not work reliably
++ * with all versions; use -flto-partition=none if you encounter problems.
++ */
++# define SYMVER(cn, vn) __typeof(cn) cn __attribute__((noreorder)); \
++ __asm__(".symver " #cn "," vn)
++# endif
++#endif
++#ifndef SYMVER
++# define SYMVER(cn, vn) __asm__(".symver " #cn "," vn)
++#endif
++
+ #ifdef HAVE_VISIBILITY_ATTRIBUTE
+ # pragma GCC visibility push(default)
+ #endif
+@@ -35,66 +56,78 @@ int libattr_setxattr(const char *path, const char *name,
+ {
+ return syscall(__NR_setxattr, path, name, value, size, flags);
+ }
++SYMVER(libattr_setxattr, "setxattr@ATTR_1.0");
+
+ int libattr_lsetxattr(const char *path, const char *name,
+ void *value, size_t size, int flags)
+ {
+ return syscall(__NR_lsetxattr, path, name, value, size, flags);
+ }
++SYMVER(libattr_lsetxattr, "lsetxattr@ATTR_1.0");
+
+ int libattr_fsetxattr(int filedes, const char *name,
+ void *value, size_t size, int flags)
+ {
+ return syscall(__NR_fsetxattr, filedes, name, value, size, flags);
+ }
++SYMVER(libattr_fsetxattr, "fsetxattr@ATTR_1.0");
+
+ ssize_t libattr_getxattr(const char *path, const char *name,
+ void *value, size_t size)
+ {
+ return syscall(__NR_getxattr, path, name, value, size);
+ }
++SYMVER(libattr_getxattr, "getxattr@ATTR_1.0");
+
+ ssize_t libattr_lgetxattr(const char *path, const char *name,
+ void *value, size_t size)
+ {
+ return syscall(__NR_lgetxattr, path, name, value, size);
+ }
++SYMVER(libattr_lgetxattr, "lgetxattr@ATTR_1.0");
+
+ ssize_t libattr_fgetxattr(int filedes, const char *name,
+ void *value, size_t size)
+ {
+ return syscall(__NR_fgetxattr, filedes, name, value, size);
+ }
++SYMVER(libattr_fgetxattr, "fgetxattr@ATTR_1.0");
+
+ ssize_t libattr_listxattr(const char *path, char *list, size_t size)
+ {
+ return syscall(__NR_listxattr, path, list, size);
+ }
++SYMVER(libattr_listxattr, "listxattr@ATTR_1.0");
+
+ ssize_t libattr_llistxattr(const char *path, char *list, size_t size)
+ {
+ return syscall(__NR_llistxattr, path, list, size);
+ }
++SYMVER(libattr_llistxattr, "llistxattr@ATTR_1.0");
+
+ ssize_t libattr_flistxattr(int filedes, char *list, size_t size)
+ {
+ return syscall(__NR_flistxattr, filedes, list, size);
+ }
++SYMVER(libattr_flistxattr, "flistxattr@ATTR_1.0");
+
+ int libattr_removexattr(const char *path, const char *name)
+ {
+ return syscall(__NR_removexattr, path, name);
+ }
++SYMVER(libattr_removexattr, "removexattr@ATTR_1.0");
+
+ int libattr_lremovexattr(const char *path, const char *name)
+ {
+ return syscall(__NR_lremovexattr, path, name);
+ }
++SYMVER(libattr_lremovexattr, "lremovexattr@ATTR_1.0");
+
+ int libattr_fremovexattr(int filedes, const char *name)
+ {
+ return syscall(__NR_fremovexattr, filedes, name);
+ }
++SYMVER(libattr_fremovexattr, "fremovexattr@ATTR_1.0");
+
+ #ifdef HAVE_VISIBILITY_ATTRIBUTE
+ # pragma GCC visibility pop
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-apps/attr/, sys-apps/attr/files/
@ 2022-10-28 19:53 Sam James
0 siblings, 0 replies; 7+ messages in thread
From: Sam James @ 2022-10-28 19:53 UTC (permalink / raw
To: gentoo-commits
commit: 87c23fadcace07803f0afbf9c2ec25b8cf0bfa2e
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Oct 28 19:41:01 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Oct 28 19:50:06 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=87c23fad
sys-apps/attr: drop 2.5.1, 2.5.1-r1
Signed-off-by: Sam James <sam <AT> gentoo.org>
sys-apps/attr/attr-2.5.1-r1.ebuild | 109 ---------------
sys-apps/attr/attr-2.5.1.ebuild | 101 --------------
sys-apps/attr/files/attr-2.5.1-fix-symver.patch | 173 ------------------------
3 files changed, 383 deletions(-)
diff --git a/sys-apps/attr/attr-2.5.1-r1.ebuild b/sys-apps/attr/attr-2.5.1-r1.ebuild
deleted file mode 100644
index c8051fdd82e4..000000000000
--- a/sys-apps/attr/attr-2.5.1-r1.ebuild
+++ /dev/null
@@ -1,109 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# autotools inherit only needed for 2.5.1-r1 patch for symvers
-# hopefully in next release
-inherit autotools flag-o-matic toolchain-funcs multilib-minimal usr-ldscript
-
-if [[ ${PV} == 9999 ]] ; then
- EGIT_REPO_URI="https://git.savannah.gnu.org/git/${PN}.git"
- inherit autotools git-r3
-else
- inherit libtool
-
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
- SRC_URI="mirror://nongnu/${PN}/${P}.tar.xz"
-fi
-
-DESCRIPTION="Extended attributes tools"
-HOMEPAGE="https://savannah.nongnu.org/projects/attr"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-IUSE="debug nls static-libs"
-
-BDEPEND="nls? ( sys-devel/gettext )"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-2.5.1-fix-symver.patch
-)
-
-src_prepare() {
- default
-
- if [[ ${PV} == 9999 ]] ; then
- po/update-potfiles || die
- eautopoint
- eautoreconf
- else
- # bug #580792
- #elibtoolize
-
- # Temporarily for 2.5.1-r1 for symver patch
- eautoreconf
- fi
-}
-
-src_configure() {
- # bug #760857
- append-lfs-flags
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- --bindir="${EPREFIX}"/bin
- --libexecdir="${EPREFIX}"/usr/$(get_libdir)
- --enable-shared
- $(use_enable static-libs static)
- $(use_enable nls)
- $(use_enable debug)
- )
-
- ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
-}
-
-multilib_src_install() {
- emake DESTDIR="${D}" install
-
- # Sanity check until we track down why this is happening. bug #644048
- local lib="${ED}/usr/$(get_libdir)/libattr.so.1"
- if [[ -e ${lib} ]] ; then
- local versions=$($(tc-getREADELF) -V "${lib}")
- local symbols=$($(tc-getREADELF) -sW "${lib}")
- if [[ "${versions}" != *"ATTR_1.0"* || \
- "${versions}" != *"ATTR_1.1"* || \
- "${versions}" != *"ATTR_1.2"* || \
- "${versions}" != *"ATTR_1.3"* || \
- "${symbols}" != *"getxattr@ATTR_1.0"* ]] ; then
- echo "# readelf -V ${lib}"
- echo "${versions}"
- echo "# readelf -sW ${lib}"
- echo "${symbols}"
- die "Symbol version sanity check failed; please comment on https://bugs.gentoo.org/644048"
- else
- einfo "${lib} passed symbol checks"
- fi
- fi
-
- if multilib_is_native_abi; then
- # We install attr into /bin, so we need the shared lib with it
- gen_usr_ldscript -a attr
- fi
-
- # Add a wrapper until people upgrade.
- # TODO: figure out when this was added & when we can drop it!
- insinto /usr/include/attr
- newins "${FILESDIR}"/xattr-shim.h xattr.h
-}
-
-multilib_src_install_all() {
- if ! use static-libs; then
- find "${ED}" -name '*.la' -delete || die
- fi
-
- einstalldocs
-}
diff --git a/sys-apps/attr/attr-2.5.1.ebuild b/sys-apps/attr/attr-2.5.1.ebuild
deleted file mode 100644
index 0d212005d512..000000000000
--- a/sys-apps/attr/attr-2.5.1.ebuild
+++ /dev/null
@@ -1,101 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="7"
-
-inherit flag-o-matic libtool toolchain-funcs multilib-minimal usr-ldscript
-
-if [[ ${PV} == 9999 ]] ; then
- EGIT_REPO_URI="https://git.savannah.gnu.org/git/${PN}.git"
-
- inherit autotools git-r3
-else
- KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
- SRC_URI="mirror://nongnu/${PN}/${P}.tar.xz"
-fi
-
-DESCRIPTION="Extended attributes tools"
-HOMEPAGE="https://savannah.nongnu.org/projects/attr"
-LICENSE="LGPL-2.1"
-SLOT="0"
-
-IUSE="debug nls static-libs"
-
-BDEPEND="
- sys-devel/binutils
- nls? ( sys-devel/gettext )
-"
-
-src_prepare() {
- default
-
- if [[ ${PV} == 9999 ]] ; then
- po/update-potfiles || die
- eautopoint
- eautoreconf
- else
- elibtoolize #580792
- fi
-}
-
-src_configure() {
- # Remove -flto* from flags as this breaks binaries (bug #644048)
- filter-flags -flto*
- append-ldflags "-Wl,--no-gc-sections" #700116
- tc-ld-force-bfd #644048
- append-lfs-flags #760857
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- --bindir="${EPREFIX}"/bin
- --enable-shared
- $(use_enable static-libs static)
- $(use_enable nls)
- --libexecdir="${EPREFIX}"/usr/$(get_libdir)
- $(use_enable debug)
- )
- ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
-}
-
-multilib_src_install() {
- emake DESTDIR="${D}" install
-
- # Sanity check until we track down why this is happening. #644048
- local lib="${ED}/usr/$(get_libdir)/libattr.so.1"
- if [[ -e ${lib} ]] ; then
- local versions=$($(tc-getREADELF) -V "${lib}")
- local symbols=$($(tc-getREADELF) -sW "${lib}")
- if [[ "${versions}" != *"ATTR_1.0"* || \
- "${versions}" != *"ATTR_1.1"* || \
- "${versions}" != *"ATTR_1.2"* || \
- "${versions}" != *"ATTR_1.3"* || \
- "${symbols}" != *"getxattr@ATTR_1.0"* ]] ; then
- echo "# readelf -V ${lib}"
- echo "${versions}"
- echo "# readelf -sW ${lib}"
- echo "${symbols}"
- die "symbol version sanity check failed; please comment on https://bugs.gentoo.org/644048"
- else
- einfo "${lib} passed symbol checks"
- fi
- fi
-
- if multilib_is_native_abi; then
- # we install attr into /bin, so we need the shared lib with it
- gen_usr_ldscript -a attr
- fi
-
- # Add a wrapper until people upgrade.
- insinto /usr/include/attr
- newins "${FILESDIR}"/xattr-shim.h xattr.h
-}
-
-multilib_src_install_all() {
- if ! use static-libs; then
- find "${ED}" -name '*.la' -delete || die
- fi
-
- einstalldocs
-}
diff --git a/sys-apps/attr/files/attr-2.5.1-fix-symver.patch b/sys-apps/attr/files/attr-2.5.1-fix-symver.patch
deleted file mode 100644
index 55ef4506f7de..000000000000
--- a/sys-apps/attr/files/attr-2.5.1-fix-symver.patch
+++ /dev/null
@@ -1,173 +0,0 @@
-https://lists.nongnu.org/archive/html/acl-devel/2022-05/msg00000.html
-Bug: https://bugs.gentoo.org/644048
-Bug: https://bugs.gentoo.org/700116
-
-From a9ca51afd2b9f68f57de3a4c3d962d1d763572ca Mon Sep 17 00:00:00 2001
-From: Alexander Miller <alex.miller@gmx.de>
-Date: Thu, 28 Nov 2019 22:17:24 +0100
-Subject: [PATCH] Better supported way to set symbol versions for legacy
- syscalls
-
-Using a linker script to set a symbol versions is an undocumented
-hack and doesn't work reliably in many cases. It works (to some
-degree) with the bfd linker, but fails with gold or lld. And even
-with bfd it can break when using --gc-sections or LTO.
-
-The result may be a library where the code has been discarded and
-the versioned symbols are unusable, e.g.
- 23: 00000000 0 NOTYPE GLOBAL DEFAULT ABS getxattr@ATTR_1.0
-instead of
- 23: 000033c0 0 FUNC GLOBAL DEFAULT 11 getxattr@ATTR_1.0
-
-Remove the linker script entirely and set symbol versions with the
-symver attribute if available (in gcc >= 10, but not in clang),
-otherwise use the traditional global asm solution with a .symver
-directive.
-Those are the documented ways to do it and well supported by (almost)
-all configurations. (The exception is old gcc with LTO; a workaround
-is included, but some versions may still need -flto-partition=none).
-
-Signed-off-by: Alexander Miller <alex.miller@gmx.de>
---- a/libattr/Makemodule.am
-+++ b/libattr/Makemodule.am
-@@ -8,7 +8,7 @@ LT_CURRENT = 2
- LT_AGE = 1
- LTVERSION = $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
-
--libattr_la_DEPENDENCIES = exports libattr/libattr.lds
-+libattr_la_DEPENDENCIES = exports
- libattr_la_SOURCES = \
- libattr/attr_copy_action.c \
- libattr/attr_copy_check.c \
-@@ -20,7 +20,4 @@ libattr_la_SOURCES = \
- libattr_la_CFLAGS = -include libattr/libattr.h
- libattr_la_LDFLAGS = \
- -Wl,--version-script,$(top_srcdir)/exports \
-- -Wl,$(top_srcdir)/libattr/libattr.lds \
- -version-info $(LTVERSION)
--
--EXTRA_DIST += libattr/libattr.lds
---- a/libattr/libattr.lds
-+++ /dev/null
-@@ -1,12 +0,0 @@
--"fgetxattr@ATTR_1.0" = libattr_fgetxattr;
--"flistxattr@ATTR_1.0" = libattr_flistxattr;
--"fremovexattr@ATTR_1.0" = libattr_fremovexattr;
--"fsetxattr@ATTR_1.0" = libattr_fsetxattr;
--"getxattr@ATTR_1.0" = libattr_getxattr;
--"lgetxattr@ATTR_1.0" = libattr_lgetxattr;
--"listxattr@ATTR_1.0" = libattr_listxattr;
--"llistxattr@ATTR_1.0" = libattr_llistxattr;
--"lremovexattr@ATTR_1.0" = libattr_lremovexattr;
--"lsetxattr@ATTR_1.0" = libattr_lsetxattr;
--"removexattr@ATTR_1.0" = libattr_removexattr;
--"setxattr@ATTR_1.0" = libattr_setxattr;
---- a/libattr/syscalls.c
-+++ b/libattr/syscalls.c
-@@ -26,6 +26,27 @@
- #include <sys/syscall.h>
- #include <sys/xattr.h>
-
-+/*
-+ * Versioning of compat symbols:
-+ * prefer symver attribute if available (since gcc 10),
-+ * fall back to traditional .symver asm directive otherwise.
-+ */
-+#ifdef __has_attribute
-+# if __has_attribute(symver)
-+# define SYMVER(cn, vn) __typeof(cn) cn __attribute__((symver(vn)))
-+# elif __has_attribute(no_reorder)
-+ /*
-+ * Avoid wrong partitioning with older gcc and LTO. May not work reliably
-+ * with all versions; use -flto-partition=none if you encounter problems.
-+ */
-+# define SYMVER(cn, vn) __typeof(cn) cn __attribute__((noreorder)); \
-+ __asm__(".symver " #cn "," vn)
-+# endif
-+#endif
-+#ifndef SYMVER
-+# define SYMVER(cn, vn) __asm__(".symver " #cn "," vn)
-+#endif
-+
- #ifdef HAVE_VISIBILITY_ATTRIBUTE
- # pragma GCC visibility push(default)
- #endif
-@@ -35,66 +56,78 @@ int libattr_setxattr(const char *path, const char *name,
- {
- return syscall(__NR_setxattr, path, name, value, size, flags);
- }
-+SYMVER(libattr_setxattr, "setxattr@ATTR_1.0");
-
- int libattr_lsetxattr(const char *path, const char *name,
- void *value, size_t size, int flags)
- {
- return syscall(__NR_lsetxattr, path, name, value, size, flags);
- }
-+SYMVER(libattr_lsetxattr, "lsetxattr@ATTR_1.0");
-
- int libattr_fsetxattr(int filedes, const char *name,
- void *value, size_t size, int flags)
- {
- return syscall(__NR_fsetxattr, filedes, name, value, size, flags);
- }
-+SYMVER(libattr_fsetxattr, "fsetxattr@ATTR_1.0");
-
- ssize_t libattr_getxattr(const char *path, const char *name,
- void *value, size_t size)
- {
- return syscall(__NR_getxattr, path, name, value, size);
- }
-+SYMVER(libattr_getxattr, "getxattr@ATTR_1.0");
-
- ssize_t libattr_lgetxattr(const char *path, const char *name,
- void *value, size_t size)
- {
- return syscall(__NR_lgetxattr, path, name, value, size);
- }
-+SYMVER(libattr_lgetxattr, "lgetxattr@ATTR_1.0");
-
- ssize_t libattr_fgetxattr(int filedes, const char *name,
- void *value, size_t size)
- {
- return syscall(__NR_fgetxattr, filedes, name, value, size);
- }
-+SYMVER(libattr_fgetxattr, "fgetxattr@ATTR_1.0");
-
- ssize_t libattr_listxattr(const char *path, char *list, size_t size)
- {
- return syscall(__NR_listxattr, path, list, size);
- }
-+SYMVER(libattr_listxattr, "listxattr@ATTR_1.0");
-
- ssize_t libattr_llistxattr(const char *path, char *list, size_t size)
- {
- return syscall(__NR_llistxattr, path, list, size);
- }
-+SYMVER(libattr_llistxattr, "llistxattr@ATTR_1.0");
-
- ssize_t libattr_flistxattr(int filedes, char *list, size_t size)
- {
- return syscall(__NR_flistxattr, filedes, list, size);
- }
-+SYMVER(libattr_flistxattr, "flistxattr@ATTR_1.0");
-
- int libattr_removexattr(const char *path, const char *name)
- {
- return syscall(__NR_removexattr, path, name);
- }
-+SYMVER(libattr_removexattr, "removexattr@ATTR_1.0");
-
- int libattr_lremovexattr(const char *path, const char *name)
- {
- return syscall(__NR_lremovexattr, path, name);
- }
-+SYMVER(libattr_lremovexattr, "lremovexattr@ATTR_1.0");
-
- int libattr_fremovexattr(int filedes, const char *name)
- {
- return syscall(__NR_fremovexattr, filedes, name);
- }
-+SYMVER(libattr_fremovexattr, "fremovexattr@ATTR_1.0");
-
- #ifdef HAVE_VISIBILITY_ATTRIBUTE
- # pragma GCC visibility pop
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: sys-apps/attr/, sys-apps/attr/files/
@ 2024-04-28 12:12 Andreas K. Hüttel
0 siblings, 0 replies; 7+ messages in thread
From: Andreas K. Hüttel @ 2024-04-28 12:12 UTC (permalink / raw
To: gentoo-commits
commit: 4b0abe03311391d346cd1c5a80f1b96318585d64
Author: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 28 12:10:42 2024 +0000
Commit: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sun Apr 28 12:11:48 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4b0abe03
sys-apps/attr: Add musl-1.2.5 build fix
Closes: https://bugs.gentoo.org/926294
Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>
sys-apps/attr/attr-2.5.2-r1.ebuild | 4 ++++
sys-apps/attr/attr-9999.ebuild | 4 ++++
sys-apps/attr/files/attr-2.5.2-r1-musl-1.2.5.patch | 23 ++++++++++++++++++++++
3 files changed, 31 insertions(+)
diff --git a/sys-apps/attr/attr-2.5.2-r1.ebuild b/sys-apps/attr/attr-2.5.2-r1.ebuild
index 850befff79d5..2ba543d8d0e8 100644
--- a/sys-apps/attr/attr-2.5.2-r1.ebuild
+++ b/sys-apps/attr/attr-2.5.2-r1.ebuild
@@ -24,6 +24,10 @@ IUSE="debug nls static-libs"
BDEPEND="nls? ( sys-devel/gettext )"
+PATCHES=(
+ "${FILESDIR}/${PN}-2.5.2-r1-musl-1.2.5.patch"
+)
+
src_prepare() {
default
diff --git a/sys-apps/attr/attr-9999.ebuild b/sys-apps/attr/attr-9999.ebuild
index 8aac35056b3e..f240734877d9 100644
--- a/sys-apps/attr/attr-9999.ebuild
+++ b/sys-apps/attr/attr-9999.ebuild
@@ -24,6 +24,10 @@ IUSE="debug nls static-libs"
BDEPEND="nls? ( sys-devel/gettext )"
+PATCHES=(
+ "${FILESDIR}/${PN}-2.5.2-r1-musl-1.2.5.patch"
+)
+
src_prepare() {
default
diff --git a/sys-apps/attr/files/attr-2.5.2-r1-musl-1.2.5.patch b/sys-apps/attr/files/attr-2.5.2-r1-musl-1.2.5.patch
new file mode 100644
index 000000000000..6a1200ad2f17
--- /dev/null
+++ b/sys-apps/attr/files/attr-2.5.2-r1-musl-1.2.5.patch
@@ -0,0 +1,23 @@
+
+If we're not building with glibc, then add its basename definition manually
+
+diff --git a/tools/attr.c b/tools/attr.c
+index f12e4af..d321b37 100644
+--- a/tools/attr.c
++++ b/tools/attr.c
+@@ -33,6 +33,15 @@
+
+ #include "misc.h"
+
++#if !defined(__GLIBC__)
++char *
++basename (const char *filename)
++{
++ char *p = strrchr (filename, '/');
++ return p ? p + 1 : (char *) filename;
++}
++#endif
++
+ #define SETOP 1 /* do a SET operation */
+ #define GETOP 2 /* do a GET operation */
+ #define REMOVEOP 3 /* do a REMOVE operation */
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-04-28 12:12 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-28 19:53 [gentoo-commits] repo/gentoo:master commit in: sys-apps/attr/, sys-apps/attr/files/ Sam James
-- strict thread matches above, loose matches on Subject: below --
2024-04-28 12:12 Andreas K. Hüttel
2022-06-30 20:01 Sam James
2022-06-20 15:28 Sam James
2018-09-01 22:29 Thomas Deutschmann
2018-06-22 13:37 Lars Wendler
2018-01-10 15:43 Lars Wendler
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox