xref: /grep/
Name Date Size

..29-Nov-20194 KiB

.gitattributesH A D13-Aug-201732

.gitignoreH A D13-Aug-2017984

.gitmodulesH A D13-Aug-201789

.mailmapH A D13-Aug-2017521

.prev-versionH A D02-Jan-20204

AUTHORSH A D01-Jan-20202.5 KiB

bootstrapH A D01-Jan-202032.8 KiB

bootstrap.confH A D01-Jan-20203.5 KiB

build-aux/H13-Aug-20174 KiB

cfg.mkH A D02-Jan-20206.7 KiB

ChangeLog-2009H A D01-Jan-2020140 KiB

configure.acH A D01-Jan-20206.7 KiB

COPYINGH A D21-Apr-201834.3 KiB

dist-check.mkH A D13-Aug-20176.4 KiB

doc/H02-Jan-20204 KiB

gnulib/H13-Aug-20174 KiB

gnulib-tests/H13-Aug-20174 KiB

HACKINGH A D01-Jan-202022.2 KiB

lib/H01-Jan-20204 KiB

m4/H01-Jan-20204 KiB

Makefile.amH A D01-Jan-20202.8 KiB

NEWSH A D02-Jan-202044.9 KiB

po/H01-Jan-20204 KiB

READMEH A D01-Jan-20202.3 KiB

README-alphaH A D01-Jan-20201.5 KiB

README-hackingH A D01-Jan-20203 KiB

README-prereqH A D21-Apr-20182.1 KiB

src/H02-Jan-20204 KiB

tests/H20-Jan-20204 KiB

thanks-genH A D13-Aug-2017441

THANKS.inH A D13-Aug-20175.4 KiB

TODOH A D01-Jan-202011 KiB

README

1  Copyright (C) 1992, 1997-2002, 2004-2020 Free Software Foundation, Inc.
2
3  Copying and distribution of this file, with or without modification,
4  are permitted in any medium without royalty provided the copyright
5  notice and this notice are preserved.
6
7This is GNU grep, the "fastest grep in the west" (we hope).  All
8bugs reported in previous releases have been fixed.  Many exciting new
9bugs have probably been introduced in this revision.
10
11GNU grep is provided "as is" with no warranty.  The exact terms
12under which you may use and (re)distribute this program are detailed
13in the GNU General Public License, in the file COPYING.
14
15GNU grep is based on a fast lazy-state deterministic matcher (about
16twice as fast as stock Unix egrep) hybridized with a Boyer-Moore-Gosper
17search for a fixed string that eliminates impossible text from being
18considered by the full regexp matcher without necessarily having to
19look at every character.  The result is typically many times faster
20than Unix grep or egrep.  (Regular expressions containing back-references
21will run more slowly, however.)
22
23See the files AUTHORS and THANKS for a list of authors and other contributors.
24
25See the file INSTALL for compilation and installation instructions.
26If there is no INSTALL file, this copy of the source code is intended
27for expert hackers; please see the file README-hacking.
28
29See the file NEWS for a description of major changes in this release.
30
31See the file TODO for ideas on how you could help us improve grep.
32
33See the file README-alpha for information on grep development and the CVS
34  repository.
35
36Send bug reports to bug-grep@gnu.org.
37
38KNOWN BUGS:
39
40Several tests in fmbtest.sh and foad1.sh fail under the cs_CZ.UTF-8 locale
41and have been disabled.
42
43The combination of -o and -i options is broken and the known failing cases
44are disabled in foad1.sh
45
46The option -i does not work properly in some multibyte locales such as
47tr_TR.UTF-8 where the upper case and lower case forms of a character are not
48necessarily of the same byte length.
49
50A list of outstanding and resolved bugs can be found at:
51
52        https://debbugs.gnu.org/cgi/pkgreport.cgi?package=grep
53
54You can also browse the bug-grep mailing list archive at:
55
56        https://lists.gnu.org/r/bug-grep/
57
58For any copyright year range specified as YYYY-ZZZZ in this package
59note that the range specifies every single year in that closed interval.
60

README-alpha

1  Copyright (C) 1992, 1997-2002, 2004-2020 Free Software Foundation, Inc.
2
3  Copying and distribution of this file, with or without modification,
4  are permitted in any medium without royalty provided the copyright
5  notice and this notice are preserved.
6
7The development source code is available via Git from Savannah: see
8<https://git.savannah.gnu.org/cgit/grep.git>.  The main project page is at
9<https://savannah.gnu.org/projects/grep/>.
10
11The source code in the Git uses autotools to generate some files. Before
12following the instructions in the INSTALL file for compiling grep, you
13need to run the bootstrap script.
14
15Please submit bug reports to <bug-grep@gnu.org>.
16
17If you are interested in the development of GNU grep, you may want to
18subscribe to the development mailing list.  To subscribe, send an email
19message to <bug-grep-request@gnu.org> with "subscribe" (without the
20quotation marks) in the subject header field (or in the body) of the
21email, or visit <https://lists.gnu.org/mailman/listinfo/bug-grep>.
22
23To follow development more closely, there is also the grep-commit mailing
24list to which log entries (one per commit) and diff output (one per
25modified file) from CVS are automatically sent.  To subscribe, send an
26email message to <grep-commit-request@gnu.org> with "subscribe" (without
27the quotation marks) in the subject header field (or in the body) of
28the email, or visit <https://lists.gnu.org/mailman/listinfo/grep-commit>.
29
30A web page containing information for GNU grep developers is at
31<https://www.gnu.org/software/grep/devel.html>.
32

README-hacking

1-*- outline -*-
2
3These notes intend to help people working on the checked-out sources.
4These requirements do not apply when building from a distribution tarball.
5
6* Requirements
7
8We've opted to keep only the highest-level sources in the GIT repository.
9This eases our maintenance burden, (fewer merges etc.), but imposes more
10requirements on anyone wishing to build from the just-checked-out sources.
11Note the requirements to build the released archive are much less and
12are just the requirements of the standard ./configure && make procedure.
13Specific development tools and versions will be checked for and listed by
14the bootstrap script.  See README-prereq for specific notes on obtaining
15these prerequisite tools.
16
17Valgrind <http://valgrind.org/> is also highly recommended, if
18Valgrind supports your architecture. See also README-valgrind.
19
20While building from a just-cloned source tree may require installing a
21few prerequisites, later, a plain 'git pull && make' should be sufficient.
22
23* First GIT checkout
24
25You can get a copy of the source repository like this:
26
27        $ git clone git://git.sv.gnu.org/grep
28        $ cd grep
29
30As an optional step, if you already have a copy of the gnulib git
31repository on your hard drive, then you can use it as a reference to
32reduce download time and disk space requirements:
33
34        $ export GNULIB_SRCDIR=/path/to/gnulib
35
36The next step is to get and check other files needed to build,
37which are extracted from other source packages:
38
39        $ ./bootstrap
40
41To use the most-recent gnulib (as opposed to the gnulib version that
42the package last synchronized to), do this next:
43
44        $ git submodule foreach git pull origin master
45        $ git commit -m 'build: update gnulib submodule to latest' gnulib
46
47And there you are!  Just
48
49        $ ./configure --quiet #[--enable-gcc-warnings] [*]
50        $ make
51        $ make check
52
53At this point, there should be no difference between your local copy,
54and the GIT master copy:
55
56        $ git diff
57
58should output no difference.
59
60Enjoy!
61
62[*] The --enable-gcc-warnings option is useful only with glibc
63and with a very recent version of gcc.  You'll probably also have
64to use recent system headers.  If you configure with this option,
65and spot a problem, please be sure to send the report to the bug
66reporting address of this package, and not to that of gnulib, even
67if the problem seems to originate in a gnulib-provided file.
68-----
69
70Copyright (C) 2002-2020 Free Software Foundation, Inc.
71
72This program is free software: you can redistribute it and/or modify
73it under the terms of the GNU General Public License as published by
74the Free Software Foundation, either version 3 of the License, or
75(at your option) any later version.
76
77This program is distributed in the hope that it will be useful,
78but WITHOUT ANY WARRANTY; without even the implied warranty of
79MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
80GNU General Public License for more details.
81
82You should have received a copy of the GNU General Public License
83along with this program.  If not, see <https://www.gnu.org/licenses/>.
84

README-prereq

1This gives some notes on obtaining the tools required for development.
2I.E. the tools checked for by the bootstrap script and include:
3
4- Autoconf   <https://www.gnu.org/software/autoconf/>
5- Automake   <https://www.gnu.org/software/automake/>
6- Bison      <https://www.gnu.org/software/bison/>
7- Gettext    <https://www.gnu.org/software/gettext/>
8- Git        <https://git-scm.com/>
9- Gperf      <https://www.gnu.org/software/gperf/>
10- Gzip       <https://www.gnu.org/software/gzip/>
11- Perl       <https://www.cpan.org/>
12- Pkg-config <https://www.freedesktop.org/wiki/Software/pkg-config/>
13- Rsync      <https://rsync.samba.org/>
14- Tar        <https://www.gnu.org/software/tar/>
15- Texinfo    <https://www.gnu.org/software/texinfo/>
16
17Note please try to install/build official packages for your system.
18If these programs are not available use the following instructions
19to build them and install the results into a directory that you will
20then use when building this package.
21
22Even if the official version of a package for your system is too old,
23please install it, as it may be required to build the newer versions.
24The examples below install into $HOME/grep/deps/, so if you are
25going to follow these instructions, first ensure that your $PATH is
26set correctly by running this command:
27
28  prefix=$HOME/grep/deps
29  export PATH=$prefix/bin:$PATH
30
31* autoconf *
32
33  # Note Autoconf 2.62 or newer is needed to build automake-1.11.1
34  git clone --depth=1 git://git.sv.gnu.org/autoconf.git
35  git checkout v2.62
36  autoreconf -vi
37  ./configure --prefix=$prefix
38  make install
39
40* automake *
41
42  # Note help2man is required to build automake fully
43  git clone git://git.sv.gnu.org/automake.git
44  cd automake
45  git checkout v1.11.1
46  ./bootstrap
47  ./configure --prefix=$prefix
48  make install
49
50This package uses XZ utils (successor to LZMA) to create
51a compressed distribution tarball.  Using this feature of Automake
52requires version 1.10a or newer, as well as the xz program itself.
53
54* xz *
55
56  git clone git://ctrl.tukaani.org/xz.git
57  cd xz
58  ./autogen.sh
59  ./configure --prefix=$prefix
60  make install
61
62Now you can build this package as described in README-hacking.
63