GNU bug report logs - #58502
We should not deprecate egrep and fgrep

Previous Next

Package: grep;

Reported by: Sam Trenholme <maradns <at> gmail.com>

Date: Thu, 13 Oct 2022 17:48:03 UTC

Severity: normal

Merged with 57604, 60257, 66582

Full log


View this message in rfc822 format

From: Sam Trenholme <maradns <at> gmail.com>
To: Shlomi Fish <shlomif <at> shlomifish.org>
Cc: Paul Eggert <eggert <at> cs.ucla.edu>, Sam James <sam <at> gentoo.org>, 58502 <at> debbugs.gnu.org
Subject: bug#58502: We should not deprecate egrep and fgrep
Date: Thu, 13 Oct 2022 16:29:21 -0700
>vanity

Presumably, "vanity" here is the older definition which more
accurately renders as "frivolous" in modern English, as in not
important or meaningless.

I think the point the GNU grep maintainers are making is that egrep
and fgrep, much to my surprise, aren't actually part of POSIX.
Personally, I think that's a bug in POSIX, and hopefully a future
POSIX spec will mandate some implementation of egrep and fgrep, even
if it's a `exec grep -E "$@"` implementation. Even with Busybox, which
does the equivalent transformation in C code, it's about 10 lines of
code, e.g. "if ((ENABLE_EGREP && applet_name[0] == 'e')" in the same
"if" which checks for the "-E" flag.

I would, as suggested earlier, just make it a non-POSIX GNU extension,
even though POSIX itself points out that egrep and fgrep are around to
not break old scripts. grep -P, with PCRE support, isn't POSIX either,
so there's precedent to extend GNU grep beyond what POSIX mandates.

-- Sam

On Thu, Oct 13, 2022 at 3:00 PM Shlomi Fish <shlomif <at> shlomifish.org> wrote:
>
> hi all,
>
> On Thu, 13 Oct 2022 18:52:51 +0100
> Sam James <sam <at> gentoo.org> wrote:
>
> > > On 13 Oct 2022, at 18:46, Sam Trenholme <maradns <at> gmail.com> wrote:
> > >
> > > After spending nearly an hour updating all of the scripts in the test
> > > framework for one of my open source projects to no longer use egrep,
> > > I’m going to say it:
> > >
> > > We should not deprecate egrep and fgrep
> > >
> > > egrep and fgrep have been around since the 1970s, were in wide use
> > > well over 25 years ago on the SunOS machines we used at the time, and
> > > are widely supported, e.g. Busybox includes an fgrep and egrep.
> > >
> > > Even the Posix spec acknowledges that that should remain supported for
> > > the foreseeable future:
> > >
> > > “The old egrep and fgrep commands are likely to be supported for many
> > > years to come as implementation extensions, allowing historical
> > > applications to operate unmodified.”
> > >
> > > See https://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html
> > >
> > > Here is the amount of headache I went through to replace egrep with grep -E:
> > >
> > > https://github.com/samboy/MaraDNS/commit/afc9d1800f3a641bdf1bf14d39802443a34c2b70
> > >
> > > There are countless other shell scripts out there on countless
> > > machines which still use these commands. We should not lightly break
> > > widely deployed software, especially software which only needs two
> > > one-line shell scripts.
> >
> > Yep, I really do agree -- and Iv'e already provided examples of things
> > which did break in the wild. Just make it a GNU extension and call it a day.
> >
> > While I sympathise with the maintainers' perspective, it's pretty
> > clear that in reality, nobody actually realised it was "obsolescent"
> > and in fact actively using it in new scripts.
> >
> > Really, speaking from my perspective, distribution maintainers have
> > got enough going on with various fires (Clang 16, OpenSSL 3,
> > time64 migration, ...) that handling various trivial-but-numerous
> > grep bugs on top is not very helpful :(
> >
>
> +1. hope i'm not "alayhum"ing / "lynch"ing here, but I agree that breaking
> backcompat for vanity is bad.
>
> > Best,
> > sam
>
>
>
> --
>
> Shlomi Fish       https://www.shlomifish.org/
> Perl Elems to Avoid - https://perl-begin.org/tutorials/bad-elements/
>
> Chuck Norris knows who John Galt is.
>     — https://www.shlomifish.org/humour/bits/facts/Chuck-Norris/
>
> Please reply to list if it's a mailing list post - https://shlom.in/reply .




This bug report was last modified 1 year and 297 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.