9 PATCHES - track and distribute your code changes
13 This page documents how to distribute your changes to
14 GNU lilypond (or in fact any other StepMake package).
18 Distributing a change normally goes like this:
20 o make your fix/add your code
22 o Add changes to NEWS, and add yourself to Documenta-
27 o e-mail your patch to one of the mailing lists gnu-
28 music-discuss@gnu.org or bug-gnu-music@gnu.org
32 In VERSION, set MY_PATCH_LEVEL:
46 In NEWS, enter a summary of changes:
58 Then, from the top of Lily's source tree, type
72 which rolls the tarball ../releases/lilypond-0.1.73.tar.gz
73 and leaves your patch as ./lilypond-0.1.73.jcn1.diff. [1]
74 We assume that there is a tarball lilypond-0.1.73.tar.gz in
75 the directory ../releases.
77 If you didn't configure Lily using --srcdir, you can do:
86 tar-ball: ../patches/lilypond-0.1.73.jcn1.gz
87 patch: ../patches/lilypond-0.1.73.jcn1.gz
88 updeet: ../test/updeet
98 For creating a patch you need
101 o All items mentioned in INSTALL. You're not going to
102 send a patch that you haven't even built, right?
106 o Python (version 1.5 or newer). You can of course make
107 a patch by hand, which would go something like:
110 [1] 'Make diff' generates a patch between two tar-
111 balls. For more info type 'make diff help=='.
116 diff -urN lilypond-0.1.73 lilypond-0.1.73.jcn1 > lilypond-0.1.73.jcn1
122 but there are handy python scripts available. If
123 you're doing development, you'll need Python for other
124 LilyPond scripts anyway.
127 o The Lily directory structure, which looks like:
134 doos/ # gnu/windows32 build and binary releases
135 harmonia -> harmonia-x.y.z
137 lilypond -> lilypond-x.y.z # symlink to development directory
138 lilypond-x.y.z/ # current development
139 patches/ # patches between different releases
140 RedHat/BUILD # RedHat build and binary releases
143 releases/ # .tar.gz releases
144 test/ # tarballs and diffs from current version
151 with prefix $HOME/usr/src and (for building rpms only)
158 topdir: /home/fred/usr/src/RedHat
164 If you're following LilyPond development regularly, you
165 probably want to download just the patch for each subsequent
166 release. After downloading the patch (into the patches
167 directory, of course), simply apply it:
174 gzip -dc ../patches/lilypond-0.1.74.diff.gz | patch -p1 -E
180 and don't forget to make automatically generated files:
187 autoconf footnote(patches don't include automatically generated files,
188 i.e. file(configure) and files generated by file(configure).)
200 If you're not very quick with sending your patch, there's a
201 good chance that an new release of LilyPond comes available.
202 In such a case (and sometimes for other unkown reasons :-),
203 the maintainer will probably ask you to make a new patch
204 against the latest release. Your best bet is to download
205 the latest release, and apply your patch against this new
210 gzip -dc ../patches/lilypond-0.1.73.jcn1.diff.gz | patch -p1 -E
218 Then, make a patch as shown above.
230 Han-Wen Nienhuys <hanwen@cs.uu.nl>
232 Just keep on sending those patches!