xref: /patch/
Name Date Size

..27-Apr.-20224 KiB

.gitignoreH A D13-Aug.-2017382

.gitmodulesH A D13-Aug.-201775

AUTHORSH A D13-Aug.-2017335

bootstrapH A D14-May-202032.8 KiB

bootstrap.confH A D14-May-20202.7 KiB

cfg.mkH A D13-Aug.-20171.3 KiB

ChangeLog-2011H A D13-Aug.-2017138.9 KiB

configure.acH A D23-Jan.-20185.6 KiB

COPYINGH A D13-Aug.-201734.3 KiB

gnulib/H13-Aug.-20174 KiB

lib/H13-Aug.-20174 KiB

m4/H14-May-20204 KiB

Makefile.amH A D03-Feb.-20181.6 KiB

NEWSH A D03-Feb.-201815.6 KiB

patch.manH A D06-Sep.-201733.9 KiB

pc/H13-Aug.-20174 KiB

READMEH A D03-Feb.-20182.7 KiB

README-alphaH A D13-Aug.-2017102

README-hackingH A D02-Nov.-20214.2 KiB

README-prereqH A D02-Nov.-20211.6 KiB

src/H10-May-20224 KiB

tests/H08-Jan.-20214 KiB

README

1This is GNU patch, which applies diff files to original files.
2
3This version of patch has many changes made by the Free Software Foundation.
4They add support for:
5 * handling arbitrary binary data and large files
6 * the unified context diff format that GNU diff can produce
7 * merging into files instead of creating reject files
8 * making GNU Emacs-style backup files
9 * improved interaction with RCS and SCCS
10 * the GNU conventions for option parsing and configuring and compilation.
11 * better POSIX compliance
12They also fix some bugs.
13
14If you obtained this file as part of a "git clone", then see the
15README-hacking file.  If this file came to you as part of a tar archive,
16then see the file INSTALL for compilation and installation instructions.
17
18See the file NEWS for a list of major changes in the current release.
19A more detailed description of all changes can be found in the file ChangeLog
20in tar archives, and with "git log" which shows the version control history.
21
22Tutorial-style documentation for patch is included in the GNU
23Diffutils package; get GNU Diffutils 2.8 or later for up-to-date
24documentation for patch.
25
26Use `configure --disable-largefile' to disable large file support;
27this is reportedly necessary on Red Hat GNU/Linux 6.0 to avoid a C library bug.
28For MS-DOS using DJGPP tools, see the file pc/djgpp/README.
29For other systems, copy config.hin to config.h and change
30#undef statements in it to #define as appropriate for your system,
31and copy Makefile.in to Makefile and set the variables that are
32enclosed in @ signs as appropriate for your system.
33
34Please send bug reports for this version of patch to
35<bug-patch@gnu.org>.
36
37The Free Software Foundation is distributing this version of patch
38independently because as of this writing, Larry Wall has not released a
39new version of patch since mid-1988.  We have heard that he has been
40too busy working on other things, like Perl.  He has graciously agreed
41to let GNU `patch' be distributed under the terms of the GNU General
42Public License.
43
44------
45
46Copyright (C) 1984, 1985, 1986, 1987, 1988 Larry Wall
47
48Copyright (C) 1989-1993, 1997, 1999, 2002, 2009, 2011-2012 Free Software
49Foundation, Inc.
50
51This program is free software: you can redistribute it and/or modify
52it under the terms of the GNU General Public License as published by
53the Free Software Foundation, either version 3 of the License, or
54(at your option) any later version.
55
56This program is distributed in the hope that it will be useful,
57but WITHOUT ANY WARRANTY; without even the implied warranty of
58MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
59GNU General Public License for more details.
60
61You should have received a copy of the GNU General Public License
62along with this program.  If not, see <http://www.gnu.org/licenses/>.
63

README-alpha

1This is a test release of GNU patch.
2Please send comments and problem reports to <bug-patch@gnu.org>.
3

README-hacking

1Building from a Git repository				-*- 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.
5If this package has a file HACKING, please also read that file for
6more detailed contribution guidelines.
7
8* Requirements
9
10We've opted to keep only the highest-level sources in the Git repository.
11This eases our maintenance burden (fewer merges etc.), but imposes more
12requirements on anyone wishing to build from the just-checked-out sources.
13(The requirements to build from a release are much less and are just
14the requirements of the standard './configure && make' procedure.)
15Specific development tools and versions will be checked for and listed by
16the bootstrap script.  See README-prereq for specific notes on obtaining
17these prerequisite tools.
18
19Valgrind <http://valgrind.org/> is also highly recommended, if
20Valgrind supports your architecture.  See also README-valgrind
21(if present).
22
23While building from a just-cloned source tree may require installing a
24few prerequisites, later, a plain 'git pull && make' typically suffices.
25
26* First Git checkout
27
28You can get a copy of the source repository like this:
29
30        $ git clone git://git.sv.gnu.org/<packagename>
31        $ cd <packagename>
32
33where '<packagename>' stands for 'coreutils' or whatever other package
34you are building.
35
36To use the most-recent Gnulib (as opposed to the Gnulib version that
37the package last synchronized to), do this next:
38
39        $ git submodule foreach git pull origin master
40        $ git commit -m 'build: update gnulib submodule to latest' gnulib
41
42As an optional step, if you already have a copy of the Gnulib Git
43repository, then you can use it as a reference to reduce download
44time and file system space requirements:
45
46        $ export GNULIB_SRCDIR=/path/to/gnulib
47
48The next step is to get and check other files needed to build,
49which are extracted from other source packages:
50
51        $ ./bootstrap
52
53And there you are!  Just
54
55        $ ./configure --quiet #[--disable-gcc-warnings] [*]
56        $ make
57        $ make check
58
59At this point, there should be no difference between your local copy,
60and the Git master copy:
61
62        $ git diff
63
64should output no difference.
65
66Enjoy!
67
68[*] By default GCC warnings are enabled when building from Git.
69If you get warnings with recent GCC and Glibc with default
70configure-time options, please report the warnings to the bug
71reporting address of this package instead of to bug-gnulib,
72even if the problem seems to originate in a Gnulib-provided file.
73If you get warnings with other configurations, you can run
74'./configure --disable-gcc-warnings' or 'make WERROR_CFLAGS='
75to build quietly or verbosely, respectively.
76-----
77
78* Submitting patches
79
80If you develop a fix or a new feature, please send it to the
81appropriate bug-reporting address as reported by the --help option of
82each program.  One way to do this is to use vc-dwim
83<https://www.gnu.org/software/vc-dwim/>), as follows.
84
85  Run the command "vc-dwim --initialize" from the top-level directory
86  of this package's git-cloned hierarchy.
87
88  Edit the (empty) ChangeLog file that this command creates, creating a
89  properly-formatted entry according to the GNU coding standards
90  <https://www.gnu.org/prep/standards/html_node/Change-Logs.html>.
91
92  Make your changes.
93
94  Run the command "vc-dwim" and make sure its output (the diff of all
95  your changes) looks good.
96
97  Run "vc-dwim --commit".
98
99  Run the command "git format-patch --stdout -1", and email its output
100  in, using the output's subject line.
101
102-----
103
104Copyright (C) 2002-2021 Free Software Foundation, Inc.
105
106This program is free software: you can redistribute it and/or modify
107it under the terms of the GNU General Public License as published by
108the Free Software Foundation, either version 3 of the License, or
109(at your option) any later version.
110
111This program is distributed in the hope that it will be useful,
112but WITHOUT ANY WARRANTY; without even the implied warranty of
113MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
114GNU General Public License for more details.
115
116You should have received a copy of the GNU General Public License
117along with this program.  If not, see <https://www.gnu.org/licenses/>.
118

README-prereq

1This gives some notes on obtaining the tools required for development.
2These tools can be used by the 'bootstrap' and 'configure' scripts,
3as well as by 'make'.  They include:
4
5- Autoconf   <https://www.gnu.org/software/autoconf/>
6- Automake   <https://www.gnu.org/software/automake/>
7- Git        <https://git-scm.com/>
8- Gzip       <https://www.gnu.org/software/gzip/>
9- M4         <https://www.gnu.org/software/m4/>
10- Make       <https://www.gnu.org/software/make/>
11- Tar        <https://www.gnu.org/software/tar/>
12- Texinfo    <https://www.gnu.org/software/texinfo/>
13- Wget       <http://www.gnu.org/software/wget/>
14- XZ Utils   <https://tukaani.org/xz/>
15
16It is generally better to use official packages for your system.
17If a package is not officially available you can build it from source
18and install it into a directory that you can then use to build this
19package.  If some packages are available but are too old, install the
20too-old versions first as they may be needed to build newer versions.
21
22Here is an example of how to build a program from source.  This
23example is for Autoconf; a similar approach should work for the other
24developer prerequisites.  This example assumes Autoconf 2.71; it
25should be OK to use a later version of Autoconf, if available.
26
27  prefix=$HOME/prefix   # (or wherever else you choose)
28  export PATH=$prefix/bin:$PATH
29  wget https://ftp.gnu.org/pub/gnu/autoconf/autoconf-2.71.tar.gz
30  gzip -d <autoconf-2.71.tar.gz | tar xf -
31  cd autoconf-2.71
32  ./configure --prefix=$prefix
33  make install
34
35Once the prerequisites are installed, you can build this package as
36described in README-hacking.
37