Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > by-pkgid > 962c0a1a7c090461b11b26cc6a6b38bf > files > 187

yodl-1.31.18-8mdk.ppc.rpm


      PATCHES - track and distribute your code changes

This page documents how to distribute your changes to Yodl
(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 the mailing list yodl@icce.rug.nl

GENERATING A PATCH

In VERSION, set MY_PATCH_LEVEL:

         VERSION:
          ...
          MY_PATCH_LEVEL=jcn1

In NEWS, enter a summary of changes:

         NEWS:
          pl 1.30.0.jcn1
               - added PATCHES.yo

Then, from the top of Yodl's source tree, type

         make dist
         make diff

which rolls the tarball ../releases/yodl-1.30.0.jcn1.diff
and leaves your patch as ./yodl-1.30.0.jcn1.diff.  [1] We
assume that there is a tarball yodl-1.30.0.tar.gz in the
directory ../releases.

If you didn't configure Lily using --srcdir, you can do:

         make release

         tar-ball: ../patches/yodl-1.30.0.jcn1.gz
         patch: ../patches/yodl-1.30.0.jcn1.gz
         updeet: ../test/updeet

PREREQUISITES

For creating a patch you need

-----------
[1] 'Make diff' generates a patch between two tar-
balls.  For more info type 'make diff help=='.

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 yodl-1.30.0 yodl-1.30.0.jcn1 > yodl-1.30.0.jcn1

     but there are handy python scripts available.  If
     you're doing development, you'll need Python for other
     Yodl scripts anyway.

o    The Yodl 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 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:

         gzip -dc ../patches/yodl-1.30.1.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 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:

         cd yodl-1.30.1
         gzip -dc ../patches/yodl-1.30.0.jcn1.diff.gz | patch -p1 -E
         autoconf
         configure

Then, make a patch as shown above.

SEE ALSO

stepmake/INSTALL.txt

MAINTAINER

Jan Nieuwenhuizen <janneke@gnu.org>

Just keep on sending those patches!