]> git.donarmstrong.com Git - lilypond.git/blob - PATCHES.txt
800a025cf64655226950749d6d26d71b45336432
[lilypond.git] / PATCHES.txt
1
2 NAME
3
4 PATCHES - track and distribute your code changes
5
6 DESCRIPTION
7
8 This page documents how to distribute your changes to GNU lilypond
9
10 ABSTRACT
11
12 We would like to have unified context diffs with full pathnames.  A
13 script automating supplied with Lily.
14
15  Distributing a change normally
16 goes like this:
17
18 o make your fix/add your code 
19 o Add changes to NEWS, and add yourself to Documentation/AUTHORS.yo
20 o generate a patch, 
21 o e-mail your patch to one of the mailing lists
22     gnu-music-discuss@gnu.org or bug-gnu-music@gnu.org
23
24 GENERATING A PATCH
25
26 In VERSION, set MY_PATCH_LEVEL:
27
28     VERSION:
29         ...
30         MY_PATCH_LEVEL=jcn1
31
32 In NEWS, enter a summary of changes:
33
34     NEWS:
35         pl 0.1.73.jcn1
36                 - added PATCHES.yo
37
38 Then, from the top of Lily's source tree, type
39
40     make dist
41     make diff
42
43 which rolls the tarball ../releases/lilypond-0.1.73.tar.gz
44 and leaves your patch as ./lilypond-0.1.73.jcn1.diff.
45  ('Make diff' generates a patch between two tarballs.  For 
46 more info type 'make diff help=='.)  We assume that there is a tarball 
47 lilypond-0.1.73.tar.gz in the directory ../releases.
48
49 If you didn't configure Lily using --srcdir, you can do:
50
51     make release
52
53     tar-ball: ../patches/lilypond-0.1.73.jcn1.gz
54     patch: ../patches/lilypond-0.1.73.jcn1.gz
55     updeet: ../test/updeet
56
57 PREREQUISITES
58
59 For creating a patch you need
60
61 o All items mentioned in INSTALL.  You're not going to send a patch
62     that you haven't even built, right?
63 o GNU diff
64 o Python (version 1.5 or newer).  
65     You can of course make a patch by hand, which would go something like:
66
67     make distclean
68     cd ..
69     diff -urN lilypond-0.1.73 lilypond-0.1.73.jcn1 > lilypond-0.1.73.jcn1
70
71 but there are handy python scripts available.  If you're doing development,
72 you'll need Python for other LilyPond scripts anyway.
73
74 o The Lily directory structure, which looks like:
75
76     doos/                        # gnu/windows32 build and binary releases
77     harmonia -> harmonia-x.y.z 
78     harmonia-x.y.z/
79     lilypond -> lilypond-x.y.z   # symlink to development directory
80     lilypond-x.y.z/              # current development
81     patches/                     # patches between different releases
82     RedHat/BUILD                 # RedHat build and binary releases
83     RedHat/RPMS
84     RedHat/SPECS
85     releases/                    # .tar.gz releases
86     test/                        # tarballs and diffs from current version
87     yodl -> yodl-1.30.17
88     yodl-1.30.17
89
90 with prefix $HOME/usr/src
91 and (for building rpms only) in $HOME/.rpmrc:
92
93     topdir: /home/fred/usr/src/RedHat
94
95 APPLYING PATCHES
96
97 If you're following LilyPond development regularly, you probably want to
98 download just the patch for each subsequent release.
99 After downloading the patch (into the patches directory, of course), simply 
100 apply it:
101
102     gzip -dc ../patches/lilypond-0.1.74.diff.gz | patch -p1 -E
103
104 and don't forget to make automatically generated files:
105
106     autoconf footnote(patches don't include automatically generated files, 
107     i.e. file(configure) and files generated by file(configure).)
108
109     configure
110
111 SYNCHRONISE
112
113 If you're not very quick with sending your patch, there's a good
114 chance that an new release of LilyPond comes available.  In such a
115 case, the maintainer will probably ask you to make a new patch against
116 the latest release.  Your best bet is to download the latest release,
117 and apply your patch against this new source tree:
118
119     cd lilypond-0.1.74
120     gzip -dc ../patches/lilypond-0.1.73.jcn1.diff.gz | patch -p1 -E
121     autoconf
122     configure
123
124 Then, make a patch as shown above.
125
126 SEE ALSO
127
128 stepmake/INSTALL.txt
129
130 MAINTAINER
131
132 Han-Wen Nienhuys <hanwen@cs.uu.nl>
133
134 Just keep on sending those patches!