Annotation of src/usr.bin/patch/README, Revision 1.2
1.1 deraadt 1: this version modified to fit in with the 386bsd release.
2: this isn't gnu software, so we're not obligated to give
3: you the original sources -- if you want them, get them
4: from prep.ai.mit.edu:pub/gnu/patch-2.0.12u8.tar.z
5:
6: -- cgd
7:
8: #######################################################################
9:
10:
11: This version of patch contains modifications made by the Free Software
12: Foundation, summarized in the file ChangeLog. Primarily they are to
13: support the unified context diff format that GNU diff can produce, and
14: to support making GNU Emacs-style backup files. They also include
15: fixes for some bugs.
16:
17: There are two GNU variants of patch: this one, which retains Larry
18: Wall's interactive Configure script and has patchlevels starting with
19: `12u'; and another one that has a GNU-style non-interactive configure
20: script and accepts long-named options, and has patchlevels starting
21: with `12g'. Unlike the 12g variant, the 12u variant contains no
22: copylefted code, for the paranoid. The two variants are otherwise the
23: same. They should be available from the same places.
24:
25: The FSF is distributing this version of patch independently because as
26: of this writing, Larry Wall has not released a new version of patch
27: since mid-1988. I have heard that he has been too busy working on
28: other things, like Perl.
29:
30: Here is a wish list of some projects to improve patch:
31:
32: 1. Correctly handle files and patchfiles that contain NUL characters.
33: This is hard to do straightforwardly; it would be less work to
34: adopt a kind of escape encoding internally.
35: Let ESC be a "control prefix". ESC @ stands for NUL. ESC [ stands for ESC.
36: You need to crunch this when reading input (replace fgets),
37: and when writing the output file (replace fputs),
38: but otherwise everything can go along as it does now.
39: Be careful to handle reject files correctly;
40: I think they are currently created using `write', not `fputs'.
41:
42: 2. Correctly handle patches produced by GNU diff for files that do
43: not end with a newline.
44:
45: Please send bug reports for this version of patch to
46: bug-gnu-utils@prep.ai.mit.edu as well as to Larry Wall (lwall@netlabs.com).
47: --djm@gnu.ai.mit.edu (David MacKenzie)
48:
49: Patch Kit, Version 2.0
50:
51: Copyright (c) 1988, Larry Wall
52:
1.2 ! niklas 53: Redistribution and use in source and binary forms, with or without
! 54: modification, are permitted provided that the following condition
! 55: is met:
! 56: 1. Redistributions of source code must retain the above copyright
! 57: notice, this condition and the following disclaimer.
! 58:
! 59: THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
! 60: ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
! 61: IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
! 62: ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
! 63: FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
! 64: DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
! 65: OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
! 66: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
! 67: LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
! 68: OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
! 69: SUCH DAMAGE.
1.1 deraadt 70: --------------------------------------------------------------------------
71:
72: Please read all the directions below before you proceed any further, and
73: then follow them carefully. Failure to do so may void your warranty. :-)
74:
75: After you have unpacked your kit, you should have all the files listed
76: in MANIFEST.
77:
78: Installation
79:
80: 1) Run Configure. This will figure out various things about your system.
81: Some things Configure will figure out for itself, other things it will
82: ask you about. It will then proceed to make config.h, config.sh, and
83: Makefile.
84:
85: You might possibly have to trim # comments from the front of Configure
86: if your sh doesn't handle them, but all other # comments will be taken
87: care of.
88:
89: If you don't have sh, you'll have to rip the prototype of config.h out
90: of Configure and generate the defines by hand.
91:
92: 2) Glance through config.h to make sure system dependencies are correct.
93: Most of them should have been taken care of by running the
94: Configure script.
95:
96: If you have any additional changes to make to the C definitions, they
97: can be done in the Makefile, or in config.h. Bear in mind that they may
98: get undone next time you run Configure.
99:
100: 3) make
101:
102: This will attempt to make patch in the current directory.
103:
104: 4) make install
105:
106: This will put patch into a public directory (normally /usr/local/bin).
107: It will also try to put the man pages in a reasonable place. It will not
108: nroff the man page, however.
109:
110: 5) Read the manual entry before running patch.
111:
112: 6) IMPORTANT! Help save the world! Communicate any problems and
113: suggested patches to me, lwall@netlabs.com (Larry Wall),
114: so we can keep the world in sync. If you have a problem, there's
115: someone else out there who either has had or will have the same problem.
116:
117: If possible, send in patches such that the patch program will apply them.
118: Context diffs are the best, then normal diffs. Don't send ed scripts--
119: I've probably changed my copy since the version you have.
120:
121: Watch for patch patches in comp.sources.bugs. Patches will generally be
122: in a form usable by the patch program. Your current patch level
123: is shown in patchlevel.h.