Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > media > main-release > by-pkgid > 00b22311ee5115bec2c62951147eb789 > files > 182

yodl-1.31.18-14mdv2008.1.x86_64.rpm

<! 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 &gt; 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 -&gt; harmonia-x.y.z 
    harmonia-x.y.z/
    lilypond -&gt; 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 -&gt; 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> &lt<a href=\"mailto:(address unknown)\">(address unknown)</a>&gt,  Wed Mar  5 04:36:20 2008 EST.</address><p></font></BODY>
</html>