+
+
+
+
+
+
+NAME
+
+ PATCHES - track and distribute your code changes
+
+DESCRIPTION
+
+ This page documents how to distribute your changes to
+GNU lilypond (or in fact any other StepMake package).
+
+ABSTRACT
+
+ Distributing a change normally goes like this:
+
+o make your fix/add your code
+
+o Add changes to NEWS, and add yourself to Documenta-
+ tion/AUTHORS.yo
+
+o generate a patch,
+
+o e-mail your patch to one of the mailing lists gnu-
+ music-discuss@gnu.org or bug-gnu-music@gnu.org
+
+GENERATING A PATCH
+
+ In VERSION, set MY_PATCH_LEVEL:
+
+
+
+
+
+ VERSION:
+ ...
+ MY_PATCH_LEVEL=jcn1
+
+
+
+
+
+In NEWS, enter a summary of changes:
+
+
+
+
+
+
+ NEWS:
+ pl 0.1.73.jcn1
+ - added PATCHES.yo
+
+
+Then, from the top of Lily's source tree, type
+
+
+
+
+
+
+ make diff
+
+
+
+
+
+which leaves your patch as ./lilypond-0.1.73.jcn1.diff.
+
+If you didn't configure Lily using --srcdir, you can do:
+
+
+
+
+
+
+ make release
+
+ tar-ball: ../patches/lilypond-0.1.73.jcn1.gz
+ patch: ../patches/lilypond-0.1.73.jcn1.gz
+ updeet: ../test/updeet
+
+
+
+
+
+
+PREREQUISITES
+
+
+For creating a patch you need
+
+
+o All items mentioned in INSTALL. You're not going to
+ send a patch that you haven't even built, right?
+
+o GNU diff
+
+o Python (version 1.5 or newer). You can of course make
+ a patch by hand, which would go something like:
+
+
+ make distclean
+ cd ..
+ diff -urN lilypond-0.1.73 lilypond-0.1.73.jcn1 > lilypond-0.1.73.jcn1
+
+
+
+
+
+ but there are handy python scripts available. If
+ you're doing development, you'll need Python for other
+ LilyPond scripts anyway.
+
+
+o The Lily directory structure, which looks like:
+
+
+
+
+
+
+ doos/ # gnu/windows32 build and binary releases
+ harmonia -> harmonia-x.y.z
+ harmonia-x.y.z/
+ lilypond -> lilypond-x.y.z # symlink to development directory
+ lilypond-x.y.z/ # current development
+ patches/ # patches between different releases
+ RedHat/BUILD # RedHat build and binary releases
+ RedHat/RPMS
+ RedHat/SPECS
+ releases/ # .tar.gz releases
+ test/ # tarballs and diffs from current version
+ yodl -> yodl-1.30.17
+ yodl-1.30.17
+
+
+
+
+ with prefix $HOME/usr/src and (for building rpms only)
+ in $HOME/.rpmrc:
+
+
+
+
+
+ topdir: /home/fred/usr/src/RedHat
+
+
+APPLYING PATCHES
+
+
+If you're following LilyPond development regularly, you
+probably want to download just the patch for each subsequent
+release. After downloading the patch (into the patches
+directory, of course), simply apply it:
+
+
+
+
+
+
+ gzip -dc ../patches/lilypond-0.1.74.diff.gz | patch -p1 -E
+
+
+
+
+
+and don't forget to make automatically generated files:
+
+
+
+
+
+
+ autoconf footnote(patches don't include automatically generated files,
+ i.e. file(configure) and files generated by file(configure).)
+
+ configure
+
+
+
+
+
+
+SYNCHRONISE
+
+
+If you're not very quick with sending your patch, there's a
+good chance that an new release of LilyPond comes available.
+In such a case (and sometimes for other unkown reasons :-),
+the maintainer will probably ask you to make a new patch
+against the latest release. Your best bet is to download
+the latest release, and apply your patch against this new
+source tree:
+
+
+ cd lilypond-0.1.74
+ gzip -dc ../patches/lilypond-0.1.73.jcn1.diff.gz | patch -p1 -E
+ autoconf
+ configure
+
+
+
+
+
+Then, make a patch as shown above.
+
+
+SEE ALSO
+
+
+stepmake/INSTALL.txt
+
+
+MAINTAINER
+
+
+Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+Just keep on sending those patches!