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