<! banner_id > <html><head><title>PATCHES - track and distribute your code changes</title> </head> <BODY BGCOLOR=WHITE><FONT COLOR=BLACK> <hr> <h1>PATCHES - track and distribute your code changes</h1> <p>This page documents how to distribute your changes to Yodl (or in fact any other StepMake package). <p><h2>ABSTRACT</h2> <p>Distributing a change normally goes like this: <p><dl> <li >make your fix/add your code <li >Add changes to NEWS, and add yourself to Documentation/AUTHORS.yo <li >generate a patch, <li >e-mail your patch to the mailing list <a href="mailto:yodl@icce.rug.nl"><em>yodl@icce.rug.nl</em></a> <p></dl> <p><h2>GENERATING A PATCH</h2> <p>In <strong>VERSION</strong>, set MY_PATCH_LEVEL: <p><pre> VERSION: ... MY_PATCH_LEVEL=jcn1 </pre> <p>In <strong>NEWS</strong>, enter a summary of changes: <p><pre> NEWS: pl 1.30.0.jcn1 - added PATCHES.yo </pre> <p>Then, from the top of Yodl's source tree, type <p><pre> make dist make diff </pre> <p>which rolls the tarball <strong>../releases/yodl-1.30.0.jcn1.diff</strong> and leaves your patch as <strong>./yodl-1.30.0.jcn1.diff</strong>. ('Make diff' generates a patch between two tarballs. For more info type 'make diff help=='.) We assume that there is a tarball <strong>yodl-1.30.0.tar.gz</strong> in the directory <strong>../releases</strong>. <p>If you didn't configure Lily using --srcdir, you can do: <p><pre> make release tar-ball: ../patches/yodl-1.30.0.jcn1.gz patch: ../patches/yodl-1.30.0.jcn1.gz updeet: ../test/updeet </pre> <p><h2>PREREQUISITES</h2> <p>For creating a patch you need <p><dl> <li >All items mentioned in <strong>INSTALL</strong>. You're not going to send a patch that you haven't even built, right? <li >GNU Diff <li >Python (version 1.4 or newer). You can of course make a patch by hand, which would go something like: <p><pre> make distclean cd .. diff -urN yodl-1.30.0 yodl-1.30.0.jcn1 > yodl-1.30.0.jcn1 </pre> <p>but there are handy python scripts available. If you're doing development, you'll need Python for other Yodl scripts anyway. <p><li >The Yodl directory structure, which looks like: <p><a name="../include/layout.yo"></a> <pre> 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 </pre> with prefix <strong>$HOME/usr/src</strong> and (for building rpms only) in <strong>$HOME/.rpmrc</strong>: <pre> topdir: /home/fred/usr/src/RedHat </pre> </dl> <p><h2>APPLYING PATCHES</h2> <p>If you're following Yodl 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: <p><pre> gzip -dc ../patches/yodl-1.30.1.gz | patch -p1 -E </pre> <p>and don't forget to make automatically generated files: <p><pre> autoconf footnote(patches don't include automatically generated files, i.e. file(configure) and files generated by file(configure).) configure </pre> <p><h2>SYNCHRONISE</h2> <p>If you're not very quick with sending your patch, there's a good chance that an new release of Yodl 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: <p><pre> cd yodl-1.30.1 gzip -dc ../patches/yodl-1.30.0.jcn1.diff.gz | patch -p1 -E autoconf configure </pre> <p>Then, make a patch as shown above. <p><h2>SEE ALSO</h2> <p><code>stepmake/INSTALL.txt</code> <p><h2>MAINTAINER</h2> <p><a href="mailto:janneke@gnu.org"><em>Jan Nieuwenhuizen</em></a> <p>Just keep on sending those patches! <p><!-- if this file ./Documentation/footer.html.in is present, it is included automatically by add-html-footer, and replaces the simple standard footer substitutions: * index, * package name * package name * ENV:WEBMASTER, * ENV:WEBMASTER --> <hr> Go <a href=>back</a> to index of Yodl. <p> Please send Yodl questions and comments to <a href="mailto:yodl@icce.rug.nl"> <em>yodl@icce.rug.nl</em></a>. <p> <!-- package Yodl Yodl --> Please send comments on these web pages to <a href="mailto:(address unknown)"><em>(address unknown)</em></a> <p> Copyright (c) 1997, 1998, 1999 Karel Kubat and Jan Nieuwenhuizen. <p> Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.<p> <hr><font size=-1> This page was built from Yodl-1.31.18 by <address><br> <<a href=\"mailto:(address unknown)\">(address unknown)</a>>, Wed Mar 5 04:36:20 2008 EST.</address><p></font></BODY> </html>