summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-12-05 01:12:15 +0000
committerSam James <sam@gentoo.org>2022-12-05 01:13:50 +0000
commit84808683691a8d1da8cd00fd1259b4d557498486 (patch)
tree46af01c251aa37d0281eb8aab48ea12d813e1f5c /sys-apps/grep/grep-3.8-r1.ebuild
parentsys-apps/portage: add 3.0.41 (diff)
downloadgentoo-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.ebuild100
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
+}