]> git.donarmstrong.com Git - lilypond.git/blob - PATCHES.txt
release: 1.1.1
[lilypond.git] / PATCHES.txt
1
2
3
4
5
6
7 NAME
8
9      PATCHES - track and distribute your code changes
10
11 DESCRIPTION
12
13      This  page  documents how to distribute your changes to
14 GNU lilypond (or in fact any other StepMake package).
15
16 ABSTRACT
17
18      Distributing a change normally goes like this:
19
20 o    make your fix/add your code
21
22 o    Add changes to NEWS, and  add  yourself  to  Documenta-
23      tion/AUTHORS.yo
24
25 o    generate a patch,
26
27 o    e-mail  your  patch  to  one  of the mailing lists gnu-
28      music-discuss@gnu.org or bug-gnu-music@gnu.org
29
30 GENERATING A PATCH
31
32      In VERSION, set MY_PATCH_LEVEL:
33
34
35
36
37
38          VERSION:
39           ...
40           MY_PATCH_LEVEL=jcn1
41
42
43
44
45
46 In NEWS, enter a summary of changes:
47
48
49
50
51
52
53          NEWS:
54           pl 0.1.73.jcn1
55                - added PATCHES.yo
56
57
58 Then, from the top of Lily's source tree, type
59
60
61
62
63
64
65          make dist
66          make diff
67
68
69
70
71
72 which rolls the  tarball  ../releases/lilypond-0.1.73.tar.gz
73 and leaves your patch as  ./lilypond-0.1.73.jcn1.diff.   [1]
74 We  assume that there is a tarball lilypond-0.1.73.tar.gz in
75 the directory ../releases.
76
77 If you didn't configure Lily using --srcdir, you can do:
78
79
80
81
82
83
84          make release
85
86          tar-ball: ../patches/lilypond-0.1.73.jcn1.gz
87          patch: ../patches/lilypond-0.1.73.jcn1.gz
88          updeet: ../test/updeet
89
90
91
92
93
94
95 PREREQUISITES
96
97
98 For creating a patch you need
99
100
101 o    All items mentioned in INSTALL.  You're  not  going  to
102      send a patch that you haven't even built, right?
103
104 o    GNU diff
105
106 o    Python  (version 1.5 or newer).  You can of course make
107      a patch by hand, which would go something like:
108
109 -----------
110 [1] 'Make diff' generates a patch between two tar-
111 balls.  For more info type 'make diff help=='.
112
113
114               make distclean
115               cd ..
116               diff -urN lilypond-0.1.73 lilypond-0.1.73.jcn1 > lilypond-0.1.73.jcn1
117
118
119
120
121
122      but there  are  handy  python  scripts  available.   If
123      you're  doing development, you'll need Python for other
124      LilyPond scripts anyway.
125
126
127 o    The Lily directory structure, which looks like:
128
129
130
131
132
133
134               doos/                        # gnu/windows32 build and binary releases
135               harmonia -> harmonia-x.y.z
136               harmonia-x.y.z/
137               lilypond -> lilypond-x.y.z   # symlink to development directory
138               lilypond-x.y.z/              # current development
139               patches/                 # patches between different releases
140               RedHat/BUILD                 # RedHat build and binary releases
141               RedHat/RPMS
142               RedHat/SPECS
143               releases/                    # .tar.gz releases
144               test/                        # tarballs and diffs from current version
145               yodl -> yodl-1.30.17
146               yodl-1.30.17
147
148
149
150
151      with prefix $HOME/usr/src and (for building rpms  only)
152      in $HOME/.rpmrc:
153
154
155
156
157
158               topdir: /home/fred/usr/src/RedHat
159
160
161 APPLYING PATCHES
162
163
164 If  you're  following  LilyPond  development  regularly, you
165 probably want to download just the patch for each subsequent
166 release.   After  downloading  the  patch  (into the patches
167 directory, of course), simply apply it:
168
169
170
171
172
173
174          gzip -dc ../patches/lilypond-0.1.74.diff.gz | patch -p1 -E
175
176
177
178
179
180 and don't forget to make automatically generated files:
181
182
183
184
185
186
187          autoconf footnote(patches don't include automatically generated files,
188          i.e. file(configure) and files generated by file(configure).)
189
190          configure
191
192
193
194
195
196
197 SYNCHRONISE
198
199
200 If you're not very quick with sending your patch, there's  a
201 good chance that an new release of LilyPond comes available.
202 In such a case (and sometimes for other unkown reasons  :-),
203 the  maintainer  will  probably  ask you to make a new patch
204 against the latest release.  Your best bet  is  to  download
205 the  latest  release,  and apply your patch against this new
206 source tree:
207
208
209          cd lilypond-0.1.74
210          gzip -dc ../patches/lilypond-0.1.73.jcn1.diff.gz | patch -p1 -E
211          autoconf
212          configure
213
214
215
216
217
218 Then, make a patch as shown above.
219
220
221 SEE ALSO
222
223
224 stepmake/INSTALL.txt
225
226
227 MAINTAINER
228
229
230 Han-Wen Nienhuys <hanwen@cs.uu.nl>
231
232 Just keep on sending those patches!