]> git.donarmstrong.com Git - lilypond.git/blob - PATCHES.txt
2f32fb94874884d77238dea3b0f74bbaeb0b9d5c
[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 diff
66
67
68
69
70
71 which leaves your patch as ./lilypond-0.1.73.jcn1.diff.
72
73 If you didn't configure Lily using --srcdir, you can do:
74
75
76
77
78
79
80          make release
81
82          tar-ball: ../patches/lilypond-0.1.73.jcn1.gz
83          patch: ../patches/lilypond-0.1.73.jcn1.gz
84          updeet: ../test/updeet
85
86
87
88
89
90
91 PREREQUISITES
92
93
94 For creating a patch you need
95
96
97 o    All items mentioned in INSTALL.  You're  not  going  to
98      send a patch that you haven't even built, right?
99
100 o    GNU diff
101
102 o    Python  (version 1.5 or newer).  You can of course make
103      a patch by hand, which would go something like:
104
105
106               make distclean
107               cd ..
108               diff -urN lilypond-0.1.73 lilypond-0.1.73.jcn1 > lilypond-0.1.73.jcn1
109
110
111
112
113
114      but there  are  handy  python  scripts  available.   If
115      you're  doing development, you'll need Python for other
116      LilyPond scripts anyway.
117
118
119 o    The Lily directory structure, which looks like:
120
121
122
123
124
125
126               doos/                        # gnu/windows32 build and binary releases
127               harmonia -> harmonia-x.y.z
128               harmonia-x.y.z/
129               lilypond -> lilypond-x.y.z   # symlink to development directory
130               lilypond-x.y.z/              # current development
131               patches/                 # patches between different releases
132               RedHat/BUILD                 # RedHat build and binary releases
133               RedHat/RPMS
134               RedHat/SPECS
135               releases/                    # .tar.gz releases
136               test/                        # tarballs and diffs from current version
137               yodl -> yodl-1.30.17
138               yodl-1.30.17
139
140
141
142
143      with prefix $HOME/usr/src and (for building rpms  only)
144      in $HOME/.rpmrc:
145
146
147
148
149
150               topdir: /home/fred/usr/src/RedHat
151
152
153 APPLYING PATCHES
154
155
156 If  you're  following  LilyPond  development  regularly, you
157 probably want to download just the patch for each subsequent
158 release.   After  downloading  the  patch  (into the patches
159 directory, of course), simply apply it:
160
161
162
163
164
165
166          gzip -dc ../patches/lilypond-0.1.74.diff.gz | patch -p1 -E
167
168
169
170
171
172 and don't forget to make automatically generated files:
173
174
175
176
177
178
179          autoconf footnote(patches don't include automatically generated files,
180          i.e. file(configure) and files generated by file(configure).)
181
182          configure
183
184
185
186
187
188
189 SYNCHRONISE
190
191
192 If you're not very quick with sending your patch, there's  a
193 good chance that an new release of LilyPond comes available.
194 In such a case (and sometimes for other unkown reasons  :-),
195 the  maintainer  will  probably  ask you to make a new patch
196 against the latest release.  Your best bet  is  to  download
197 the  latest  release,  and apply your patch against this new
198 source tree:
199
200
201          cd lilypond-0.1.74
202          gzip -dc ../patches/lilypond-0.1.73.jcn1.diff.gz | patch -p1 -E
203          autoconf
204          configure
205
206
207
208
209
210 Then, make a patch as shown above.
211
212
213 SEE ALSO
214
215
216 stepmake/INSTALL.txt
217
218
219 MAINTAINER
220
221
222 Han-Wen Nienhuys <hanwen@cs.uu.nl>
223
224 Just keep on sending those patches!