-PATCHES(1) LilyPond documentation PATCHES(1)
+
NAME
- PATCHES - track and distribute your code changes
+
+ PATCHES - track and distribute your code changes
DESCRIPTION
- This page documents how to distribute your changes to GNU
- LilyPond
+
+ 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
+ Distributing a change normally goes like this:
- o generate a patch,
+o make your fix/add your code
- o e-mail your patch to one of the mailing lists gnu-
- music-discuss@gnu.org or bug-gnu-music@gnu.org (or if
- you're a bit shy, to the maintainer).
+o Add changes to NEWS, and add yourself to Documenta-
+ tion/AUTHORS.yo
-GENERATING A PATCH
- In VERSION, set TOPLEVEL_MY_PATCH_LEVEL:
+o generate a patch,
- VERSION:
- ...
- TOPLEVEL_MY_PATCH_LEVEL = jcn1
+o e-mail your patch to one of the mailing lists gnu-
+ music-discuss@gnu.org or bug-gnu-music@gnu.org
- In NEWS, enter a summary of changes:
+GENERATING A PATCH
- NEWS:
- pl 0.1.48.jcn1
- - added PATCHES.pod
+ In VERSION, set MY_PATCH_LEVEL:
- Then, from the top of Lily's source tree, type
- make distclean # if you don't use --srcdir configure
- make-patch
- which leaves your patch as ./patch-0.1.48.jcn1.
- If you didn't configure Lily using --srcdir, you can do:
- release
+ VERSION:
+ ...
+ MY_PATCH_LEVEL=jcn1
- tar-ball: ../patches/patch-0.1.48.jcn1.gz
- patch: ../patches/patch-0.1.48.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?
+In NEWS, enter a summary of changes:
-2/Apr/98 LilyPond 0.1.57 1
+ NEWS:
+ pl 0.1.73.jcn1
+ - added PATCHES.yo
+Then, from the top of Lily's source tree, type
-PATCHES(1) LilyPond documentation PATCHES(1)
- o GNU Diff
- o Python (version 1.4 or newer). You can of course
- make a patch by hand, which would go something like:
- make distclean
- cd ..
- diff -urN lilypond-0.1.48 lilypond-0.1.48.jcn1 > patch-0.1.48.jcn1
- but there are handy python scripts available. If
- you're doing development, you'll need Python for
- other LilyPond scripts anyway.
+ make dist
+ make diff
- o The Lily directory structure, which looks like:
- lilypond-0.1.48/
- patches/
- releases/
- test/
- 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.49
- zpatch -p0 -E < ../patches/patch-0.1.48.jcn1.gz
+which rolls the tarball ../releases/lilypond-0.1.73.tar.gz
+and leaves your patch as ./lilypond-0.1.73.jcn1.diff. [1]
+We assume that there is a tarball lilypond-0.1.73.tar.gz in
+the directory ../releases.
- Then, make a patch as shown above.
+If you didn't configure Lily using --srcdir, you can do:
-MAINTAINER
- Han-Wen Nienhuys <hanwen@cs.ruu.nl>
- Just keep on sending those patches! =head1 NAME
- PATCHES - track and distribute your code changes
-DESCRIPTION
- This page documents how to distribute your changes to GNU
- LilyPond
-ABSTRACT
- Distributing a change normally goes like this:
- o make your fix/add your code
+ make release
- o generate a patch,
+ tar-ball: ../patches/lilypond-0.1.73.jcn1.gz
+ patch: ../patches/lilypond-0.1.73.jcn1.gz
+ updeet: ../test/updeet
- o e-mail your patch to one of the mailing lists gnu-
- music-discuss@gnu.org or bug-gnu-music@gnu.org (or if
-2/Apr/98 LilyPond 0.1.57 2
+PREREQUISITES
+For creating a patch you need
-PATCHES(1) LilyPond documentation PATCHES(1)
+o All items mentioned in INSTALL. You're not going to
+ send a patch that you haven't even built, right?
- you're a bit shy, to the maintainer).
+o GNU diff
-GENERATING A PATCH
- In VERSION, set TOPLEVEL_MY_PATCH_LEVEL:
+o Python (version 1.5 or newer). You can of course make
+ a patch by hand, which would go something like:
- VERSION:
- ...
- TOPLEVEL_MY_PATCH_LEVEL = jcn1
+-----------
+[1] 'Make diff' generates a patch between two tar-
+balls. For more info type 'make diff help=='.
- In NEWS, enter a summary of changes:
- NEWS:
- pl 0.1.48.jcn1
- - added PATCHES.pod
+ make distclean
+ cd ..
+ diff -urN lilypond-0.1.73 lilypond-0.1.73.jcn1 > lilypond-0.1.73.jcn1
- Then, type something like
- make-dist
- mv out/lilypond-0.1.48.jcn1.tar.gz ../releases
- make-patch
- which leaves your patch as ./patch-0.1.48.jcn1.
- or even simpler:
- release
+ but there are handy python scripts available. If
+ you're doing development, you'll need Python for other
+ LilyPond scripts anyway.
- tar-ball: ../patches/patch-0.1.48.jcn1.gz
- patch: ../patches/patch-0.1.48.jcn1.gz
- updeet: ../test/updeet
+o The Lily directory structure, which looks like:
-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.4 or newer). You can of course
- make a patch by hand, which would go something like:
- make distclean
- cd ..
- diff -urN lilypond-0.1.48 lilypond-0.1.48.jcn1 > patch-0.1.48.jcn1
- but there are handy python scripts available. If
- you're doing development, you'll need Python for
- other LilyPond scripts anyway.
+ 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
- o The Lily directory structure, which looks like:
+ with prefix $HOME/usr/src and (for building rpms only)
+ in $HOME/.rpmrc:
-2/Apr/98 LilyPond 0.1.57 3
+ topdir: /home/fred/usr/src/RedHat
-PATCHES(1) LilyPond documentation PATCHES(1)
+APPLYING PATCHES
- lilypond-0.1.48/
- patches/
- releases/
- test/
+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:
- 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.49
- zpatch -p0 -E < ../patches/patch-0.1.48.jcn1.gz
- Then, make a patch as shown above.
-MAINTAINER
- Han-Wen Nienhuys <hanwen@cs.ruu.nl>
- Just keep on sending those patches!
+ 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
-2/Apr/98 LilyPond 0.1.57 4
+Han-Wen Nienhuys <hanwen@cs.uu.nl>
+Just keep on sending those patches!