]>
Commit | Line | Data |
---|---|---|
78b2179a | 1 | README for MAKING BINUTILS RELEASES |
a960d29f | 2 | |
78b2179a NC |
3 | This is a collection of notes on how to perform a binutils release. A |
4 | lot of this information can also be found in the maintain.texi file in | |
5 | the gnulib project: | |
6 | ||
7 | https://www.gnu.org/software/gnulib/ | |
8 | ||
9 | It is useful to have a cloned copy of the sources of this project as | |
10 | it also contains an upload script used to install tarballs on the GNU | |
11 | FTP server. | |
12 | ||
13 | Make sure that you have upload authority on sourceware and fencepost. | |
14 | Beware - this is an involved process and can take weeks to complete. | |
15 | See the maintain.texi file for details on how to obtain these | |
16 | permissions. | |
17 | ||
18 | ------------------------------------------------- | |
19 | How to perform a release. | |
20 | ------------------------------------------------- | |
21 | ||
98ab9e96 NC |
22 | 1. Send an email out warning contributors about the forthcoming |
23 | branch. Set a date for the branch (weekends are better because | |
24 | they are less busy). | |
a960d29f | 25 | |
7ab82037 | 26 | 2. When the branch date is near: Update the libiberty and config |
055bc77a NC |
27 | directories and the top level Makefile and configure files. Also |
28 | consider updating the toplevel libtool files. | |
98ab9e96 | 29 | |
be2c7885 NC |
30 | |
31 | Approx time to complete from here: 2 hours .... | |
32 | ||
98ab9e96 | 33 | 3. When branch day arrives add markers for the upcoming release to |
03d0d46a NC |
34 | the NEWS files in gas, ld, and binutils. No need to update NEWS |
35 | in the gold directory - it has its own release numbering. | |
f974f26c NC |
36 | |
37 | Likewise for the ChangeLog files in: bfd, binutils, config, cpu, | |
0bd09323 | 38 | elfcpp, gas, gold, gprof, include, ld, libctf, libiberty, opcodes |
346d80ef | 39 | and toplevel. |
f974f26c | 40 | |
9176ac5b | 41 | Add a note of the name of the new branch to binutils/BRANCHES. |
f974f26c | 42 | |
9176ac5b | 43 | Commit these changes. |
a960d29f | 44 | |
98ab9e96 NC |
45 | 4. Create the release branch using: |
46 | ||
631ec08c NC |
47 | git branch binutils-2_40-branch |
48 | git push origin binutils-2_40-branch | |
f48dfe41 NC |
49 | |
50 | If you get a message like: | |
51 | ||
52 | remote: fatal: Invalid revision range 0000000000000000000000000000000000000000..f974f26cb16cc6fe3946f163c787a05e713fb77b | |
53 | ||
54 | It appears that this can be ignored... | |
98ab9e96 | 55 | |
79d89b55 NC |
56 | 5. Make sure that the branch is there. IE check out the branch sources: |
57 | ||
631ec08c | 58 | git clone ssh://sourceware.org/git/binutils-gdb.git -b binutils-2_40-branch 2.40 |
79d89b55 NC |
59 | |
60 | If you get a message about being in a "detached head" state, something | |
61 | has gone wrong... | |
62 | ||
082cbd3b NC |
63 | Keep the checked out sources - they are going to be needed in future |
64 | steps. | |
f48dfe41 | 65 | |
79d89b55 | 66 | 6. Update "BINUTILS_BRANCH" in gdbadmin's crontab: |
0dd86f32 JB |
67 | |
68 | Log in as gdbadmin on sourceware.org, and then: | |
69 | ||
70 | $ cd crontab | |
71 | $ vi crontab | |
72 | [change BINUTILS_BRANCH] | |
73 | $ cvs ci crontab | |
74 | $ crontab crontab | |
75 | ||
76 | If you do not have access to this account, please feel free to | |
77 | ask Joel Brobecker <brobecker AT adacore DOT com>. | |
78 | ||
79d89b55 | 79 | 7. Rename the current HEAD version entry in Bugzilla, and create a |
346d80ef NC |
80 | new one. E.g. rename "2.38 (HEAD)" to 2.38, and create |
81 | "2.39 (HEAD)": | |
7ab82037 NC |
82 | |
83 | https://sourceware.org/bugzilla/editversions.cgi?product=binutils | |
98ab9e96 | 84 | |
71300e2c | 85 | 8. Update bfd/version.m4 on HEAD to indicate that is now a snapshot |
631ec08c NC |
86 | of the next release and the BRANCH to indicated that it is almost |
87 | ready for the release. | |
88 | ||
89 | So if the release is going to be 2.40 then the version number on | |
90 | the BRANCH should be set to 2.39.90 - ie almost, but not quite 2.40, | |
91 | and the version number on the MAINLINE should be set to 2.40.50 - | |
92 | ie half way to 2.41 release. | |
5f7a57f1 NC |
93 | |
94 | So the branch bfd/version.m4 has: | |
71300e2c | 95 | |
631ec08c | 96 | m4_define([BFD_VERSION], [2.39.90]) |
71300e2c | 97 | |
5f7a57f1 | 98 | and the mainline has: |
71300e2c | 99 | |
631ec08c | 100 | m4_define([BFD_VERSION], [2.40.50]) |
94c2436b NC |
101 | |
102 | Regenerate various files on both branch and HEAD by configuring | |
bb368aad VM |
103 | with "--enable-maintainer-mode --enable-gold --enable-shared" and then building |
104 | with "make all-binutils all-gas all-gold all-gprof all-gprofng all-ld" | |
f48dfe41 NC |
105 | |
106 | Add ChangeLog entries for the updated files. Commit the changes. | |
107 | Make sure that this includes the .pot files as well as the | |
108 | configure and makefiles. | |
98ab9e96 | 109 | |
b248e9ce | 110 | 9. Create an initial pre-release: |
98ab9e96 | 111 | |
04d7fa21 NC |
112 | a. Remove any auto-generated files, in order to force the |
113 | src-release script to rebuild them. | |
114 | ||
115 | cd <branch-sources> | |
be2c7885 | 116 | git clean -fdx |
04d7fa21 NC |
117 | |
118 | b. Create a source tarball of the BRANCH sources: | |
a960d29f | 119 | |
bb368aad | 120 | ./src-release.sh -x binutils |
a960d29f | 121 | |
04d7fa21 | 122 | c. Build a test target using this tarball. |
98ab9e96 | 123 | |
e1ec7b9f | 124 | cp binutils-2.39.90.tar.xz /dev/shm |
be2c7885 | 125 | pushd /dev/shm |
e1ec7b9f | 126 | tar xvf binutils-2.39.90.tar.xz |
375cd423 NC |
127 | mkdir build |
128 | cd build | |
e1ec7b9f | 129 | ../binutils-2.39.90/configure --quiet --enable-gold |
375cd423 | 130 | make |
be2c7885 | 131 | popd |
98ab9e96 | 132 | |
375cd423 NC |
133 | If there are problems, fix them. |
134 | ||
04d7fa21 | 135 | d. Upload the pre-release snapshot to the sourceware FTP site: |
375cd423 | 136 | |
e1ec7b9f NC |
137 | scp binutils-2.39.90.tar.xz sourceware.org:/var/ftp/pub/binutils/snapshots |
138 | ssh sourceware.org sha256sum ~ftp/pub/binutils/snapshots/binutils-2.39.90.tar.xz | |
98ab9e96 | 139 | |
04d7fa21 NC |
140 | e. Clean up the source directory again. |
141 | ||
be2c7885 | 142 | git clean -fdx |
375cd423 | 143 | |
b248e9ce | 144 | 10. Tell the Translation Project where to find the new tarball. |
082cbd3b | 145 | <[email protected]> |
be2c7885 | 146 | qv: https://translationproject.org/html/maintainers.html |
79d89b55 NC |
147 | |
148 | ------------------------------------------------------------------------ | |
149 | Dear Translation Project | |
150 | ||
e1ec7b9f | 151 | The 2.40 release branch has been created for the GNU Binutils project. |
79d89b55 NC |
152 | |
153 | A snapshot of the branch sources can be found here: | |
a960d29f | 154 | |
e1ec7b9f | 155 | https://sourceware.org/pub/binutils/snapshots/binutils-2.39.90.tar.xz |
a960d29f | 156 | |
b248e9ce | 157 | We hope to make the official release of the sources on the <DATE> |
79d89b55 NC |
158 | although that could change if there are important bugs that need to |
159 | be fixed before the release. | |
160 | ------------------------------------------------------------------------ | |
98ab9e96 | 161 | |
b248e9ce | 162 | 11. Announce the availability of the snapshot and the branch on the |
98ab9e96 | 163 | binutils mailing list. Set a date for when the release will |
7ab82037 | 164 | actually happen. Something like: |
79d89b55 NC |
165 | |
166 | ------------------------------------------------------------------------ | |
167 | Hi Everyone, | |
168 | ||
b248e9ce | 169 | The <NEW_VERSION> branch has now been created: |
79d89b55 | 170 | |
4b51505e | 171 | git clone git://sourceware.org/git/binutils-gdb.git -b binutils-<NEW_VERSION>-branch |
79d89b55 NC |
172 | |
173 | A snapshot of the sources is also available here: | |
174 | ||
b248e9ce | 175 | https://sourceware.org/pub/binutils/snapshots/binutils-<OLD_VERSION>.90.tar.xz |
79d89b55 NC |
176 | |
177 | Please could all patches for the branch be run by me. | |
178 | The rules for the branch are: | |
179 | ||
180 | * No new features. | |
181 | * Target specific bug fixes are OK. | |
182 | * Generic bug fixes are OK if they are important and widely tested. | |
183 | * Documentation updates/fixes are OK. | |
184 | * Translation updates are OK. | |
185 | * Fixes for testsuite failures are OK. | |
186 | ||
187 | Ideally I would like to make the release happen in two weeks time, | |
b248e9ce | 188 | i.e. <DATE>. Which I hope will be enough time for everyone |
79d89b55 NC |
189 | to get their final fixes in. |
190 | ------------------------------------------------------------------------ | |
191 | ||
b248e9ce | 192 | 12. Build various different toolchains, test them and nag |
7ab82037 NC |
193 | maintainers to fix any testsuite failures for their |
194 | architectures... | |
195 | ||
b248e9ce | 196 | ============================================================================== |
98ab9e96 | 197 | |
94c2436b NC |
198 | When the time comes to actually make the release.... |
199 | ||
200 | ||
9a5db26e | 201 | 20. Make sure that the branch sources still build, test and install |
6cb624f8 NC |
202 | correctly. Make sure that the sources are clean, without any |
203 | patch files (.reg .orig *~) left over. | |
204 | ||
205 | cd <branch> | |
9b351c9b | 206 | git clean -fdx |
9a5db26e | 207 | |
0f38fd87 NC |
208 | 21. a. Update the release number in bfd/version.m4 on the release |
209 | branch to a whole new minor version number, without a point | |
5ee285ca NC |
210 | value. Eg "2.39.90" becomes "2.40". |
211 | ||
0f38fd87 | 212 | b. Change bfd/development.sh to set all values to "false". |
5ee285ca | 213 | |
0f38fd87 NC |
214 | c. Regenerate the configure and makefiles. And *info* files. |
215 | ||
5ee285ca NC |
216 | make all-gas all-ld all-binutils all-gprof all-gold all-gprofng |
217 | make info | |
218 | ||
0f38fd87 NC |
219 | d. Create a ChangeLog from the git refs for all of the commits |
220 | from when changelog entries were no longer required: | |
221 | ||
222 | gitlog-to-changelog --since=2021-07-03 > ChangeLog.git | |
5ee285ca | 223 | git add ChangeLog.git |
0f38fd87 | 224 | |
5ee285ca NC |
225 | The gitlog-to-changelog script is part of the sources |
226 | of the "config" project. | |
0f38fd87 | 227 | |
5ee285ca NC |
228 | e. Add ChangeLog entries for all of the updates and add a |
229 | "this-is-the-2.38-release" comment and commit. | |
9a5db26e | 230 | |
5ee285ca NC |
231 | git commit |
232 | git push | |
233 | ||
9a5db26e NC |
234 | 22. Check that your file creation mask will create the |
235 | correct file permissions. Eg: | |
236 | ||
6cb624f8 NC |
237 | % umask |
238 | 22 | |
239 | ||
240 | Remove any spurious autom4te.cache files left over from the | |
241 | reconfiguring: | |
242 | ||
cb6ad9bb | 243 | git clean -fdx |
9a5db26e | 244 | |
ad96220c NC |
245 | 23. Note - check to see if any new files have been added to the top |
246 | level of the source directory, but which are not in the | |
247 | DEVO_SUPPORT variable in the src-release.sh script. If they are | |
5ee285ca | 248 | needed then add them. |
ad96220c | 249 | |
0f38fd87 | 250 | Create the release tarballs: |
9a5db26e | 251 | |
6cb624f8 | 252 | ./src-release.sh -b -g -l -x binutils |
9a5db26e | 253 | |
f54c53e9 NC |
254 | OR ... for a more reproducible tarball: |
255 | ||
256 | ./src-release.sh -b -g -l -x -r `git log -1 --format=%cd --date=format:%F bfd/version.m4` binutils | |
257 | ||
9a5db26e | 258 | 24. Check that the files in the tarballs have the correct |
07233d96 NC |
259 | permissions. |
260 | ||
5ee285ca | 261 | tar tvf binutils-*.tar.bz2 | grep -e "---" |
9a5db26e | 262 | |
88ae41e1 NC |
263 | Also check that the man files are not empty. (cf PR 28144). |
264 | ||
5ee285ca | 265 | tar tvf binutils-*.tar.xz | grep -e "\.1" |
88ae41e1 | 266 | |
9a5db26e | 267 | 25. Sanity check the release on x86_64-pc-linux-gnu by building and |
082cbd3b | 268 | running the testsuites (gas, gold, binutils and ld). Make the |
5ee285ca NC |
269 | source directory read-only before building. (Note - the gprofng |
270 | sources need a writeable doc/ directory. This is a bug that needs | |
271 | to be fixed). | |
272 | Also test "make install". | |
273 | If necessary fix any problems. | |
9a5db26e | 274 | |
0f38fd87 | 275 | pushd /dev/shm |
cb6ad9bb NC |
276 | mkdir delme |
277 | cd delme | |
07233d96 | 278 | tar xvf <path-to-sources>/binutils-2.*.tar.lz |
9b351c9b | 279 | chmod -R -w binutils-2.* |
5ee285ca | 280 | chmod +w binutils-2.*/gprofng/doc |
cb6ad9bb NC |
281 | mkdir build |
282 | cd build | |
bb368aad VM |
283 | ../binutils-2.*/configure --quiet --enable-gold --prefix=`pwd`/install --enable-plugins --enable-shared |
284 | make all-gas all-gold all-ld all-binutils all-gprof all-gprofng | |
cb6ad9bb | 285 | make check-gas check-binutils check-ld check-gold |
5ee285ca | 286 | make install-gas install-gold install-ld install-binutils install-gprofng |
cb6ad9bb | 287 | |
bf772a1e | 288 | # Needed for step 29... |
354c317e | 289 | make html pdf |
bf772a1e | 290 | |
0f38fd87 | 291 | popd |
5ee285ca | 292 | |
9a5db26e | 293 | 26. Tag the branch with the new release number: |
0f38fd87 NC |
294 | [optional: add "-u XXXXX" to sign with a gpg key] |
295 | enter a tag message such as: "Official GNU Binutils 2.3x release" | |
9a5db26e | 296 | |
5ee285ca | 297 | git tag -a binutils-2_40 -u DD9E3C4F <=== Be careful to get the tag right |
07233d96 | 298 | |
a8d6d6ac NC |
299 | NB/ If you do sign the binaries make sure to use a key |
300 | that has been published with the FSF. | |
301 | ||
cb6ad9bb NC |
302 | Then push the release: |
303 | ||
5ee285ca | 304 | git push origin binutils-2_40 |
cb6ad9bb | 305 | |
0f38fd87 NC |
306 | If you get an error message along the lines of: |
307 | "Invalid revision range ..." you can ignore it. | |
cb6ad9bb | 308 | |
0f38fd87 | 309 | 27. Upload the tarballs to ftp.gnu.org. |
9a5db26e | 310 | |
0f38fd87 | 311 | gnupload --to ftp.gnu.org:binutils binutils-2.3*.tar.* |
9a5db26e | 312 | |
0f38fd87 NC |
313 | Be prepared to provide the password for the key, if you |
314 | signed the binaries. | |
9b351c9b | 315 | |
0f38fd87 | 316 | The gnupload script is in the gnulib/build-aux directory. |
9a5db26e | 317 | |
0f38fd87 NC |
318 | Check for an email response from the upload. If necessary |
319 | fix any problems. | |
a8d6d6ac | 320 | |
6cb624f8 | 321 | 28. Upload the tarballs (and signatures) to sourceware.org: |
9a5db26e NC |
322 | |
323 | sftp sourceware.org | |
324 | cd /sourceware/ftp/pub/binutils/releases | |
9b351c9b | 325 | put binutils-2.3*.tar.* |
5ee285ca | 326 | chmod 644 binutils-2.3*.tar.* |
9a5db26e NC |
327 | quit |
328 | ||
0f38fd87 NC |
329 | FIXME: Are the signatures (created by the gnupload script in step 27) |
330 | needed ? [The above commands upload them and nobody has complained, | |
331 | so suggest that they are retained]. | |
9a5db26e | 332 | |
6cb624f8 | 333 | 29. Update web pages. For sourceware.org: |
9a5db26e NC |
334 | |
335 | Create a new documentation folder on the sourceware.org web | |
04d7fa21 | 336 | pages as /sourceware/www/sourceware/htdocs/binutils/docs-2.3x. |
082cbd3b NC |
337 | |
338 | sftp sourceware.org | |
339 | cd /sourceware/www/sourceware/htdocs/binutils | |
04d7fa21 NC |
340 | mkdir docs-2.3x |
341 | cd docs-2.3x | |
07233d96 NC |
342 | mkdir as |
343 | mkdir bfd | |
344 | mkdir binutils | |
345 | mkdir gprof | |
346 | mkdir ld | |
04d7fa21 | 347 | cd ../docs-2.3(x-1) |
082cbd3b NC |
348 | get index.html |
349 | ||
350 | Update the (local copy of the) index.html file to point to the | |
351 | new documentation and mention the new version and then upload it. | |
352 | ||
04d7fa21 | 353 | cd ../docs-2.3x |
082cbd3b NC |
354 | put index.html |
355 | ||
9a5db26e | 356 | Make the html documentation locally with the "make html" command |
9b351c9b NC |
357 | (see step 25 above). Then upload and rename the directories as |
358 | needed. (sftp does not appear to support recursive uploads | |
359 | however, so the directories had to be made by hand, as shown above). | |
082cbd3b NC |
360 | |
361 | cd as | |
07233d96 NC |
362 | lcd <build-dir>/gas/doc/as |
363 | put * {be patient - this takes a long time...} | |
364 | lcd .. | |
365 | cd .. | |
354c317e MF |
366 | put as.html |
367 | put as.pdf | |
1da0b075 | 368 | |
0f38fd87 | 369 | cd bfd |
07233d96 NC |
370 | lcd ../../bfd/doc/bfd |
371 | put * | |
372 | cd .. | |
373 | lcd .. | |
354c317e MF |
374 | put bfd.html |
375 | put bfd.pdf | |
1da0b075 | 376 | |
0f38fd87 NC |
377 | cd binutils |
378 | lcd ../../binutils/binutils <=== NB/ Path not like others | |
07233d96 NC |
379 | put * |
380 | cd .. | |
0f38fd87 | 381 | lcd ../doc |
354c317e MF |
382 | put binutils.html |
383 | put binutils.pdf | |
1da0b075 | 384 | |
0f38fd87 | 385 | cd gprof |
07233d96 NC |
386 | lcd ../../gprof/doc/gprof |
387 | put * | |
388 | cd .. | |
389 | lcd ../.. | |
354c317e MF |
390 | put gprof.html |
391 | put gprof.pdf | |
1da0b075 | 392 | |
0f38fd87 | 393 | cd ld |
07233d96 NC |
394 | lcd ../ld/doc/ld |
395 | put * | |
396 | cd .. | |
397 | lcd ../.. | |
354c317e MF |
398 | put ld.html |
399 | put ld.pdf | |
082cbd3b | 400 | |
1da0b075 NC |
401 | lcd ../../gprofng/doc |
402 | put gprofng.html | |
403 | put gprofng.pdf | |
404 | ||
082cbd3b | 405 | Edit the top level binutils index.html file to change the links |
cb6ad9bb | 406 | to point to the new documentation. |
082cbd3b | 407 | |
bf772a1e | 408 | cd ../.. |
04d7fa21 | 409 | get index.html |
082cbd3b NC |
410 | [edit] |
411 | put index.html | |
624a2451 NC |
412 | rm docs |
413 | ln -s docs-2.3x docs | |
082cbd3b NC |
414 | quit |
415 | ||
bf772a1e NC |
416 | Check that the new web page is correct: |
417 | ||
418 | https://sourceware.org/binutils/ | |
419 | ||
9a5db26e | 420 | For the www.gnu.org site you have to email [email protected] |
bf772a1e NC |
421 | and ask them to make the change(s): |
422 | --------------------------------------- | |
423 | Hi FSF Webmasters, | |
424 | ||
425 | Please could the GNU Binutils webpage at: | |
426 | ||
427 | https://www.gnu.org/software/binutils/binutils.html | |
428 | ||
429 | be updated to indicate that there is now a newer version available | |
430 | (2.3x). I have already updated the related page on the sourceware | |
431 | website so this might be useful as a template: | |
432 | ||
433 | https://sourceware.org/binutils/ | |
434 | ||
435 | Thanks very much. | |
436 | ||
437 | Cheers | |
438 | -------------------------------------- | |
9a5db26e | 439 | |
6cb624f8 | 440 | 30. Send emails to [email protected], [email protected] and |
9a5db26e | 441 | David Edelsohn <[email protected]> announcing the new release. |
03d0d46a NC |
442 | Sign the email and include the checksum: |
443 | ||
9b351c9b | 444 | sha256sum binutils-2.3*.tar.* |
03d0d46a | 445 | |
9a5db26e NC |
446 | (The email to Davis is so that he can update the GNU Toolchain |
447 | social media). Something like this: | |
082cbd3b | 448 | ----------------------------------------------------------------------- |
9a5db26e NC |
449 | Hi Everyone, |
450 | ||
04d7fa21 | 451 | We are pleased to announce that version 2.3x of the GNU Binutils project |
9a5db26e NC |
452 | sources have been released and are now available for download at: |
453 | ||
454 | https://ftp.gnu.org/gnu/binutils | |
455 | https://sourceware.org/pub/binutils/releases/ | |
456 | ||
457 | checksums: xxxx | |
94c2436b | 458 | |
cb6ad9bb NC |
459 | This release contains numerous bug fixes, and also the |
460 | following new features: | |
78b2179a | 461 | |
9a5db26e | 462 | <extract info from the NEWS files> |
94c2436b | 463 | |
e838f9c2 NC |
464 | For more information see: |
465 | ||
466 | https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=gas/NEWS;;hb=refs/tags/binutils-2_39 | |
467 | https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=ld/NEWS;hb=refs/tags/binutils-2_39 | |
468 | https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=binutils/NEWS;hb=refs/tags/binutils-2_39 | |
469 | ||
cb6ad9bb NC |
470 | Our thanks go out to all of the binutils contributors, past and |
471 | present, for helping to make this release possible. | |
94c2436b | 472 | |
082cbd3b | 473 | ----------------------------------------------------------------------- |
94c2436b | 474 | |
04d7fa21 NC |
475 | 31. Clean up the source tree: |
476 | ||
477 | git clean -fdx . | |
082cbd3b NC |
478 | |
479 | 32. Edit bfd/development.sh on the branch and set the development flag | |
480 | to "true". (Leave the experimental flag set to "false"). Also bump | |
481 | the version in bfd/version.m4 by adding a trailing .0, so that the | |
482 | date suffix keeps the version lower than the trunk version. | |
483 | Regenerate files. Commit these changes. | |
6cb624f8 | 484 | |
04d7fa21 | 485 | 33. Email the binutils list telling everyone that the 2.3x branch |
bf772a1e | 486 | is now open for business as usual and that patches no longer |
6cb624f8 | 487 | need special approval. |
2012bf01 | 488 | |
cb6ad9bb NC |
489 | 34. Examine the bfd/config.bfd file in the mainline sources and move |
490 | any pending obsolete targets into the definitely obsolete | |
491 | section. Create a changelog entry and commit. | |
a315d390 NC |
492 | |
493 | ||
494 | ||
495 | ||
cb6ad9bb | 496 | -------------------------------------------------------------------------- |
a315d390 | 497 | How to perform a POINT release. |
cb6ad9bb | 498 | -------------------------------------------------------------------------- |
78b2179a NC |
499 | |
500 | A point release is easier than a normal release since a lot of the | |
501 | work has already been done. The branch has been created, the | |
502 | translations updated and the documentation uploaded. So the procedure | |
503 | looks like this: | |
504 | ||
505 | 0. Decide that a point release is necessary. | |
506 | ||
507 | Usually this only happens when a sufficient number of serious | |
508 | bugs have been found and fixed since the previous release, and a | |
509 | new official release is not imminent. | |
510 | ||
511 | 1. Tell the community that a point release is happening. Ask | |
512 | maintainers to ensure that their ports are up to date on the | |
513 | release branch. Ask the community if there are any bug fixes | |
514 | which are missing from the branch. Allow some time for the | |
515 | responses to this step. | |
516 | ||
517 | 2. Make sure that the branch sources build, test and install | |
518 | correctly. | |
519 | ||
98ab9e96 NC |
520 | 2.5 Prepare a list of the bugs which have been fixed. This |
521 | will be needed for step 8. | |
a960d29f | 522 | |
ef336cb0 | 523 | 3. In the branch sources: |
a960d29f | 524 | |
ef336cb0 | 525 | a. Update the minor release number in bfd/version.m4. |
04d7fa21 | 526 | b. Edit bfd/development.sh, set "development=false". |
ef336cb0 | 527 | c. Regenerate the configure files. |
72a51a06 | 528 | d. Remove spurious autom4te.cache files: |
442a6ce8 | 529 | |
72a51a06 | 530 | git clean -fdx |
442a6ce8 | 531 | |
72a51a06 | 532 | e. Commit the updates along with a "this-is-the-2.3x.y-release" |
ef336cb0 | 533 | note in all of the changelogs. |
72a51a06 | 534 | f. Tag the branch with the new release number: |
ef336cb0 | 535 | |
04d7fa21 | 536 | git tag -a binutils-2_3x_y |
ef336cb0 | 537 | [optional: add "-u XXXXX" to sign with a gpg key] |
04d7fa21 | 538 | git push origin binutils-2_3x_y |
ef336cb0 | 539 | |
72a51a06 NC |
540 | g. Check that your file creation mask will create the |
541 | correct file permissions. Ie: | |
8071ec09 NC |
542 | |
543 | umask 022 | |
a960d29f | 544 | |
72a51a06 | 545 | h. Create the release tarballs: |
04d7fa21 | 546 | |
ef336cb0 | 547 | ./src-release -b -g -l -x binutils |
8071ec09 | 548 | |
72a51a06 | 549 | i. Check that the files in the tarballs have the correct |
8071ec09 | 550 | permissions. |
a960d29f | 551 | |
72a51a06 NC |
552 | j. Clean the source tree again |
553 | ||
554 | git clean -fdx | |
555 | ||
556 | k. Edit bfd/development.sh and set "development=true". | |
557 | l. Commit this change. | |
78b2179a | 558 | |
ef336cb0 NC |
559 | 4. [If paranoid - upload the tarballs to one of the FTP servers and |
560 | ask people to test it before going on to step 5]. | |
a960d29f | 561 | |
ef336cb0 | 562 | 5. Upload the tarballs to ftp.gnu.org. |
78b2179a | 563 | |
72a51a06 | 564 | gnupload --to ftp.gnu.org:binutils binutils-*.tar.* |
78b2179a | 565 | |
ef336cb0 | 566 | The gnupload script is in the gnulib/build-aux directory. |
78b2179a | 567 | |
ef336cb0 | 568 | 6. Upload the tarballs to sourceware.org: |
78b2179a NC |
569 | |
570 | sftp sourceware.org | |
442a6ce8 | 571 | cd /sourceware/ftp/pub/binutils/releases |
72a51a06 NC |
572 | put binutils-*.tar.* |
573 | chmod 644 binutils-*.tar.* | |
78b2179a NC |
574 | quit |
575 | ||
442a6ce8 | 576 | It is OK to upload the signatures as well. |
78b2179a | 577 | |
ef336cb0 | 578 | 7. Update web pages. For sourceware.org: |
78b2179a NC |
579 | |
580 | * Log on to sourceware.org | |
442a6ce8 | 581 | * Go to /sourceware/www/sourceware/htdocs/binutils |
72a51a06 | 582 | * Edit index.html and update the latest release number (if this is a latest release) |
78b2179a NC |
583 | |
584 | For the www.gnu.org site you have to email [email protected] | |
585 | and ask them to make the change(s). | |
586 | ||
ef336cb0 NC |
587 | 8. Send an emails to the binutils list, [email protected] and |
588 | David Edelsohn <[email protected]> announcing the new release. | |
589 | (The email to Davis is so that he can update the GNU Toolchain | |
590 | social media). Something like this: | |
03d0d46a | 591 | |
78b2179a NC |
592 | ------------------------------------------------------------------------ |
593 | Hi Everyone, | |
594 | ||
04d7fa21 | 595 | We are pleased to announce that version 2.3x.y of the GNU Binutils |
442a6ce8 | 596 | project sources have been released and are now available for download at: |
a960d29f | 597 | |
78b2179a NC |
598 | https://ftp.gnu.org/gnu/binutils |
599 | https://sourceware.org/pub/binutils/releases/ | |
600 | ||
04d7fa21 | 601 | This is a point release over the previous 2.3x version, containing bug |
78b2179a NC |
602 | fixes but no new features. |
603 | ||
604 | Our thanks go out to all of the binutils contributors, past and | |
605 | present, for helping to make this release possible. | |
98ab9e96 NC |
606 | |
607 | Here is a list of the bugs that have been fixed: | |
608 | xx | |
609 | xx | |
610 | xx | |
611 | xx | |
78b2179a | 612 | -------------------------------------------------------------------------- |
a315d390 NC |
613 | |
614 | 9. Create a new Bugzilla entry for the point release. | |
615 | ||
616 | https://sourceware.org/bugzilla/editversions.cgi?product=binutils | |
617 | ||
618 | And a new milestone too: | |
619 | ||
620 | https://sourceware.org/bugzilla/editmilestones.cgi?product=binutils | |
78b2179a | 621 | \f |
a2c58332 | 622 | Copyright (C) 2017-2022 Free Software Foundation, Inc. |
78b2179a NC |
623 | |
624 | Copying and distribution of this file, with or without modification, | |
625 | are permitted in any medium without royalty provided the copyright | |
626 | notice and this notice are preserved. |