diff options
author | Sam James <sam@gentoo.org> | 2022-12-05 01:12:15 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-12-05 01:13:50 +0000 |
commit | 84808683691a8d1da8cd00fd1259b4d557498486 (patch) | |
tree | 46af01c251aa37d0281eb8aab48ea12d813e1f5c /sys-apps/grep/grep-3.8-r1.ebuild | |
parent | sys-apps/portage: add 3.0.41 (diff) | |
download | gentoo-84808683691a8d1da8cd00fd1259b4d557498486.tar.gz gentoo-84808683691a8d1da8cd00fd1259b4d557498486.tar.bz2 gentoo-84808683691a8d1da8cd00fd1259b4d557498486.zip |
sys-apps/grep: install silent egrep+fgrep by default
GNU grep 3.8+ deprecates egrep and fgrep and installs noisy wrappers
which warn to stderr. This ends up breaking a large amount of scripts,
tooling, and build systems for little real-world gain.
This adds a USE flag (USE=egrep-fgrep) which installs non-noisy wrappers. If
the flag is disabled, the upstream behaviour is used (noisy wrappers which
may one day be removed).
See https://lists.gnu.org/archive/html/bug-grep/2022-10/msg00000.html.
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-apps/grep/grep-3.8-r1.ebuild')
-rw-r--r-- | sys-apps/grep/grep-3.8-r1.ebuild | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/sys-apps/grep/grep-3.8-r1.ebuild b/sys-apps/grep/grep-3.8-r1.ebuild new file mode 100644 index 000000000000..383ac1eb28d7 --- /dev/null +++ b/sys-apps/grep/grep-3.8-r1.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/grep.asc +inherit flag-o-matic verify-sig + +DESCRIPTION="GNU regular expression matcher" +HOMEPAGE="https://www.gnu.org/software/grep/" + +if [[ ${PV} == *_p* ]] ; then + # Subscribe to the 'platform-testers' ML to find these. + # Useful to test on our especially more niche arches and report issues upstream. + MY_COMMIT="98-c9ac" + MY_P=${PN}-$(ver_cut 1-2).${MY_COMMIT} + SRC_URI="https://meyering.net/${PN}/${MY_P}.tar.xz" + SRC_URI+=" verify-sig? ( https://meyering.net/${PN}/${MY_P}.tar.xz.sig )" + S="${WORKDIR}"/${MY_P} +else + SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" + SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig )" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +fi + +LICENSE="GPL-3+" +SLOT="0" +IUSE="+egrep-fgrep nls pcre static" + +# We lack dev-libs/libsigsegv[static-libs] for now +REQUIRED_USE="static? ( !sparc )" + +LIB_DEPEND="pcre? ( >=dev-libs/libpcre2-7.8-r1[static-libs(+)] ) + sparc? ( dev-libs/libsigsegv )" +RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} ) + nls? ( virtual/libintl ) + virtual/libiconv" +DEPEND="${RDEPEND} + static? ( ${LIB_DEPEND} )" +BDEPEND="virtual/pkgconfig + nls? ( sys-devel/gettext ) + verify-sig? ( sec-keys/openpgp-keys-grep )" + +DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO ) + +src_prepare() { + default + + # bug #523898 + sed -i \ + -e "s:@SHELL@:${EPREFIX}/bin/sh:g" \ + -e "s:@grep@:${EPREFIX}/bin/grep:" \ + src/egrep.sh || die +} + +src_configure() { + use static && append-ldflags -static + + # We used to turn this off unconditionally (bug #673524) but we now + # allow it for cases where libsigsegv is better for userspace handling + # of stack overflows. + # In particular, it's necessary for sparc: bug #768135 + export ac_cv_libsigsegv=$(usex sparc) + + local myeconfargs=( + --bindir="${EPREFIX}"/bin + $(use_enable nls) + $(use_enable pcre perl-regexp) + ) + + econf "${myeconfargs[@]}" +} + +src_install() { + default + + if use egrep-fgrep ; then + # Delete the upstream wrapper variants which warn on egrep+fgrep use + rm "${ED}"/bin/{egrep,fgrep} || die + + into / + # Install egrep, fgrep which don't warn. + # + # We do this by default to avoid breakage in old scripts + # and such which don't expect unexpected output on stderr, + # we've had examples of builds failing because foo-config + # starts returning a warning. + # + # https://lists.gnu.org/archive/html/bug-grep/2022-10/msg00000.html + newbin - egrep <<-EOF + #!/usr/bin/env sh + exec "${EPREFIX}/bin/grep" -E "\$@" + EOF + + newbin - fgrep <<-EOF + #!/usr/bin/env sh + exec "${EPREFIX}/bin/grep" -F "\$@" + EOF + fi +} |