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
71 which leaves your patch as ./lilypond-0.1.73.jcn1.diff.
73 If you didn't configure Lily using --srcdir, you can do:
82 tar-ball: ../patches/lilypond-0.1.73.jcn1.gz
83 patch: ../patches/lilypond-0.1.73.jcn1.gz
84 updeet: ../test/updeet
94 For creating a patch you need
97 o All items mentioned in INSTALL. You're not going to
98 send a patch that you haven't even built, right?
102 o Python (version 1.5 or newer). You can of course make
103 a patch by hand, which would go something like:
108 diff -urN lilypond-0.1.73 lilypond-0.1.73.jcn1 > lilypond-0.1.73.jcn1
114 but there are handy python scripts available. If
115 you're doing development, you'll need Python for other
116 LilyPond scripts anyway.
119 o The Lily directory structure, which looks like:
126 doos/ # gnu/windows32 build and binary releases
127 harmonia -> harmonia-x.y.z
129 lilypond -> lilypond-x.y.z # symlink to development directory
130 lilypond-x.y.z/ # current development
131 patches/ # patches between different releases
132 RedHat/BUILD # RedHat build and binary releases
135 releases/ # .tar.gz releases
136 test/ # tarballs and diffs from current version
143 with prefix $HOME/usr/src and (for building rpms only)
150 topdir: /home/fred/usr/src/RedHat
156 If you're following LilyPond development regularly, you
157 probably want to download just the patch for each subsequent
158 release. After downloading the patch (into the patches
159 directory, of course), simply apply it:
166 gzip -dc ../patches/lilypond-0.1.74.diff.gz | patch -p1 -E
172 and don't forget to make automatically generated files:
179 autoconf footnote(patches don't include automatically generated files,
180 i.e. file(configure) and files generated by file(configure).)
192 If you're not very quick with sending your patch, there's a
193 good chance that an new release of LilyPond comes available.
194 In such a case (and sometimes for other unkown reasons :-),
195 the maintainer will probably ask you to make a new patch
196 against the latest release. Your best bet is to download
197 the latest release, and apply your patch against this new
202 gzip -dc ../patches/lilypond-0.1.73.jcn1.diff.gz | patch -p1 -E
210 Then, make a patch as shown above.
222 Han-Wen Nienhuys <hanwen@cs.uu.nl>
224 Just keep on sending those patches!