X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=binutils%2FREADME-how-to-make-a-release;h=7aa5efa04970701a6f4e0afb1151990ba7a43dd1;hb=117e35f51972acd1f29fd249ef20343258ef5256;hp=bae38485696a84169ee149fc1d00c73f78115443;hpb=e33f2313bf63b77763739732be14b469b4b647b7;p=binutils-gdb.git diff --git a/binutils/README-how-to-make-a-release b/binutils/README-how-to-make-a-release index bae38485696..7aa5efa0497 100644 --- a/binutils/README-how-to-make-a-release +++ b/binutils/README-how-to-make-a-release @@ -24,13 +24,19 @@ How to perform a release. they are less busy). 2. When the branch date is near: Update the libiberty and config - directories and the top level configure files. + directories and the top level Makefile and configure files. Also + consider updating the toplevel libtool files. + + +Approx time to complete from here: 2 hours .... 3. When branch day arrives add markers for the upcoming release to - the NEWS files in gas, ld, gold and binutils. + the NEWS files in gas, ld, and binutils. No need to update NEWS + in the gold directory - it has its own release numbering. Likewise for the ChangeLog files in: bfd, binutils, config, cpu, - elfcpp, gas, gold, gprof, include, ld, libctf, opcodes and toplevel. + elfcpp, gas, gold, gprof, include, ld, libctf, libiberty, opcodes + and toplevel. Add a note of the name of the new branch to binutils/BRANCHES. @@ -38,8 +44,8 @@ How to perform a release. 4. Create the release branch using: - git branch binutils-2_33-branch - git push origin binutils-2_33-branch + git branch binutils-2_38-branch + git push origin binutils-2_38-branch If you get a message like: @@ -49,7 +55,7 @@ How to perform a release. 5. Make sure that the branch is there. IE check out the branch sources: - git clone ssh://sourceware.org/git/binutils-gdb.git -b binutils-2_33-branch 2.33 + git clone ssh://sourceware.org/git/binutils-gdb.git -b binutils-2_38-branch 2.38 If you get a message about being in a "detached head" state, something has gone wrong... @@ -71,21 +77,21 @@ How to perform a release. ask Joel Brobecker . 7. Rename the current HEAD version entry in Bugzilla, and create a - new one. E.g. rename "2.33 (HEAD)" to 2.33, and create "2.34 - (HEAD)": + new one. E.g. rename "2.38 (HEAD)" to 2.38, and create + "2.39 (HEAD)": https://sourceware.org/bugzilla/editversions.cgi?product=binutils 8. Update bfd/version.m4 on HEAD to indicate that is now a snapshot of the next release: - m4_define([BFD_VERSION], [2.33.51]) + m4_define([BFD_VERSION], [2.38.50]) - Update the release number in bfd/version.m4 for the branch. + Update the release number in bfd/version.m4 for the BRANCH. The branch only needs the point value set to 90 as the release has not actually happened yet. - m4_define([BFD_VERSION], [2.32.90]) + m4_define([BFD_VERSION], [2.37.90]) Regenerate various files on both branch and HEAD by configuring with "--enable-maintainer-mode --enable-gold" and then building @@ -95,13 +101,13 @@ How to perform a release. Make sure that this includes the .pot files as well as the configure and makefiles. - 8. Create an initial pre-release: + 9. Create an initial pre-release: a. Remove any auto-generated files, in order to force the src-release script to rebuild them. cd - git clean -fdx . + git clean -fdx b. Create a source tarball of the BRANCH sources: @@ -109,58 +115,58 @@ How to perform a release. c. Build a test target using this tarball. - cp binutils-.tar.xz /dev/shm - cd /dev/shm - tar xvf binutils-.tar.xz + cp binutils-2.37.90.tar.xz /dev/shm + pushd /dev/shm + tar xvf binutils-2.36.90.tar.xz mkdir build cd build - ..//configure --quiet --enable-gold + ../binutils-2.37.90/configure --quiet --enable-gold make + popd If there are problems, fix them. d. Upload the pre-release snapshot to the sourceware FTP site: - cd - scp binutils-.tar.xz sourceware.org:~ftp/pub/binutils/snapshots - ssh sourceware.org md5sum ~ftp/pub/binutils/snapshots/binutils-.tar.xz + scp binutils-2.37.90.tar.xz sourceware.org:~ftp/pub/binutils/snapshots + ssh sourceware.org sha256sum ~ftp/pub/binutils/snapshots/binutils-2.37.90.tar.xz e. Clean up the source directory again. - git clean -fdx . + git clean -fdx - 9. Tell the Translation Project where to find the new tarball. + 10. Tell the Translation Project where to find the new tarball. - qv: http://translationproject.org/html/maintainers.html + qv: https://translationproject.org/html/maintainers.html ------------------------------------------------------------------------ Dear Translation Project - The 2.3x release branch has been created for the FSF binutils. + The 2.38 release branch has been created for the GNU Binutils project. A snapshot of the branch sources can be found here: - https://sourceware.org/pub/binutils/snapshots/binutils-2.3x.90.tar.xz + https://sourceware.org/pub/binutils/snapshots/binutils-2.37.90.tar.xz - We hope to make the official release of the sources on the 8th July + We hope to make the official release of the sources on the although that could change if there are important bugs that need to be fixed before the release. ------------------------------------------------------------------------ - 10. Announce the availability of the snapshot and the branch on the + 11. Announce the availability of the snapshot and the branch on the binutils mailing list. Set a date for when the release will actually happen. Something like: ------------------------------------------------------------------------ Hi Everyone, - The 2.3x branch has now been created: + The branch has now been created: - git clone git://sourceware.org/git/binutils-gdb.git -b binutils-2_3x-branch 2.3x + git clone git://sourceware.org/git/binutils-gdb.git -b binutils--branch A snapshot of the sources is also available here: - https://sourceware.org/pub/binutils/snapshots/binutils-2.3x.90.tar.xz + https://sourceware.org/pub/binutils/snapshots/binutils-.90.tar.xz Please could all patches for the branch be run by me. The rules for the branch are: @@ -173,14 +179,15 @@ Hi Everyone, * Fixes for testsuite failures are OK. Ideally I would like to make the release happen in two weeks time, - i.e. Saturday 27th Jan. Which I hope will be enough time for everyone + i.e. . Which I hope will be enough time for everyone to get their final fixes in. ------------------------------------------------------------------------ - 11. Build various different toolchains, test them and nag + 12. Build various different toolchains, test them and nag maintainers to fix any testsuite failures for their architectures... +============================================================================== When the time comes to actually make the release.... @@ -190,14 +197,14 @@ When the time comes to actually make the release.... patch files (.reg .orig *~) left over. cd - git clean -dfx . + git clean -fdx 21. Update the release number in bfd/version.m4 on the release branch to a whole new minor version number, without a point - value. Eg "2.29.90" becomes "2.30". Change bfd/development.sh + value. Eg "2.37.90" becomes "2.38". Change bfd/development.sh to set all values to "false". Regenerate the configure and makefiles. And *info* files. Add ChangeLog entries for the - updates and add a "this-is-the-2.3x-release" comment and + updates and add a "this-is-the-2.38-release" comment and commit. 22. Check that your file creation mask will create the @@ -209,7 +216,7 @@ When the time comes to actually make the release.... Remove any spurious autom4te.cache files left over from the reconfiguring: - % find . -depth -name autom4te.cache -exec rm -r {} \; + git clean -fdx 23. Note - check to see if any new files have been added to the top level of the source directory, but which are not in the @@ -221,26 +228,58 @@ When the time comes to actually make the release.... ./src-release.sh -b -g -l -x binutils 24. Check that the files in the tarballs have the correct - permissions. + permissions. + + tar tvf binutils-2.37.tar.bz2 | grep -e "---" + + Also check that the man files are not empty. (cf PR 28144). + + tar tvf binutils-2.37.tar.xz | grep -e "\.1" 25. Sanity check the release on x86_64-pc-linux-gnu by building and running the testsuites (gas, gold, binutils and ld). Make the source directory read-only before building. Also test "make install". If necessary fix any problems. + cd /dev/shm + mkdir delme + cd delme + tar xvf /binutils-2.*.tar.lz + chmod -R -w binutils-2.* + mkdir build + cd build + ../binutils-2.X/configure --enable-gold --prefix=`pwd`/install --enable-plugins + make all-gas all-gold all-ld all-binutils all-gprof + make check-gas check-binutils check-ld check-gold + make install-gas install-gold install-ld install-binutils + + # Needed for step 29... + make html pdf + 26. Tag the branch with the new release number: - git tag -a binutils-2_3x + git tag -a binutils-2_3x <=== Be careful to get the tag right + [optional: add "-u XXXXX" to sign with a gpg key] - git push origin binutils-2_3x + enter a tag message such as: "Official Binutils 2.3x release" + + eg: git tag -a binutils-2_37 -u DD9E3C4F NB/ If you do sign the binaries make sure to use a key that has been published with the FSF. + Then push the release: + + git push origin binutils-2_3x + + If you get an error message along the lines of "Invalid revision range ..." you can ignore it. + 27. Upload the tarballs to ftp.gnu.org. - gnupload --to ftp.gnu.org:binutils binutils-2.3x.tar.* + gnupload --to ftp.gnu.org:binutils binutils-2.3*.tar.* + Be prepared to provide the password for the key, if you signed the binaries. + The gnupload script is in the gnulib/build-aux directory. Check for an email response from the upload. If necessary @@ -250,12 +289,13 @@ When the time comes to actually make the release.... sftp sourceware.org cd /sourceware/ftp/pub/binutils/releases - put binutils-2.3x.tar.* + put binutils-2.3*.tar.* chmod 644 binutils-2.3x.tar.* quit - FIXME: Should the signatures (created by the gnupload script in - step 29) be uploaded as well ? + FIXME: Are the signatures (created by the gnupload script in step 27) needed ? + [The above commands upload them and nobody has complained, so suggest that they + are retained]. 29. Update web pages. For sourceware.org: @@ -266,7 +306,11 @@ When the time comes to actually make the release.... cd /sourceware/www/sourceware/htdocs/binutils mkdir docs-2.3x cd docs-2.3x - mkdir as bfd binutils gprof ld + mkdir as + mkdir bfd + mkdir binutils + mkdir gprof + mkdir ld cd ../docs-2.3(x-1) get index.html @@ -277,30 +321,50 @@ When the time comes to actually make the release.... put index.html Make the html documentation locally with the "make html" command - and then upload and rename the directories as needed. (sftp - does not appear to support recursive uploads however, so the - directories will have to be made by hand). + (see step 25 above). Then upload and rename the directories as + needed. (sftp does not appear to support recursive uploads + however, so the directories had to be made by hand, as shown above). cd as - lcd /gas/doc/as.html - put * + lcd /gas/doc/as + put * {be patient - this takes a long time...} + lcd .. + cd .. + put as.html + put as.pdf cd ../bfd - lcd ../../../bfd/doc/bfd.html + lcd ../../bfd/doc/bfd put * + cd .. + lcd .. + put bfd.html + put bfd.pdf cd ../binutils - lcd ../../../binutils/doc/binutils.html + lcd ../../binutils/doc/binutils put * + cd .. + lcd .. + put binutils.html + put binutils.pdf cd ../gprof - lcd ../../../gprof/gprof.html + lcd ../../gprof/doc/gprof put * + cd .. + lcd ../.. + put gprof.html + put gprof.pdf cd ../ld - lcd ../../ld/ld.html + lcd ../ld/doc/ld put * + cd .. + lcd ../.. + put ld.html + put ld.pdf Edit the top level binutils index.html file to change the links - to the new documentation. + to point to the new documentation. - cd ../../.. + cd ../.. get index.html [edit] put index.html @@ -308,14 +372,36 @@ When the time comes to actually make the release.... ln -s docs-2.3x docs quit - Check that the new web page is correct. - + Check that the new web page is correct: + + https://sourceware.org/binutils/ + For the www.gnu.org site you have to email webmasters@gnu.org - and ask them to make the change(s). + and ask them to make the change(s): +--------------------------------------- +Hi FSF Webmasters, + + Please could the GNU Binutils webpage at: + +https://www.gnu.org/software/binutils/binutils.html + + be updated to indicate that there is now a newer version available + (2.3x). I have already updated the related page on the sourceware + website so this might be useful as a template: + +https://sourceware.org/binutils/ + + Thanks very much. + +Cheers +-------------------------------------- 30. Send emails to binutils@sourceware.org, info-gnu@gnu.org and David Edelsohn announcing the new release. - Sign the email and include the checksum. + Sign the email and include the checksum: + + sha256sum binutils-2.3*.tar.* + (The email to Davis is so that he can update the GNU Toolchain social media). Something like this: ----------------------------------------------------------------------- @@ -329,13 +415,13 @@ When the time comes to actually make the release.... checksums: xxxx - This release contains numerous bug fixes, and also the - following new features: + This release contains numerous bug fixes, and also the + following new features: - Our thanks go out to all of the binutils contributors, past and - present, for helping to make this release possible. + Our thanks go out to all of the binutils contributors, past and + present, for helping to make this release possible. ----------------------------------------------------------------------- @@ -350,16 +436,19 @@ When the time comes to actually make the release.... Regenerate files. Commit these changes. 33. Email the binutils list telling everyone that the 2.3x branch - is now open for business as usual and that patched no longer + is now open for business as usual and that patches no longer need special approval. - 34. Examine the bfd/config.bfd file and move any pending obsolete - targets into the definitely obsolete section. Create a - changelog entry and commit. - -------------------------------------------------- -How to perform a point release. -------------------------------------------------- + 34. Examine the bfd/config.bfd file in the mainline sources and move + any pending obsolete targets into the definitely obsolete + section. Create a changelog entry and commit. + + + + +-------------------------------------------------------------------------- +How to perform a POINT release. +-------------------------------------------------------------------------- A point release is easier than a normal release since a lot of the work has already been done. The branch has been created, the @@ -389,42 +478,43 @@ looks like this: a. Update the minor release number in bfd/version.m4. b. Edit bfd/development.sh, set "development=false". c. Regenerate the configure files. - c.1. Remove spurious autom4te.cache files: + d. Remove spurious autom4te.cache files: - find . -depth -name autom4te.cache -exec rm -r {} \; + git clean -fdx - d. Commit the updates along with a "this-is-the-2.3x.y-release" + e. Commit the updates along with a "this-is-the-2.3x.y-release" note in all of the changelogs. - e. Tag the branch with the new release number: + f. Tag the branch with the new release number: git tag -a binutils-2_3x_y [optional: add "-u XXXXX" to sign with a gpg key] git push origin binutils-2_3x_y - f. Check that your file creation mask will create the - correct file permissions. Eg: + g. Check that your file creation mask will create the + correct file permissions. Ie: umask 022 - g. Create the release tarballs: + h. Create the release tarballs: ./src-release -b -g -l -x binutils - h. Check that the files in the tarballs have the correct + i. Check that the files in the tarballs have the correct permissions. - i. Edit bfd/development.sh and set "development=true". - j. Commit this change into the git repository. - k. Clean up the source tree. + j. Clean the source tree again - git clean -dfx . + git clean -fdx + + k. Edit bfd/development.sh and set "development=true". + l. Commit this change. 4. [If paranoid - upload the tarballs to one of the FTP servers and ask people to test it before going on to step 5]. 5. Upload the tarballs to ftp.gnu.org. - gnupload --to ftp.gnu.org:binutils binutils-2.3x.y.tar.* + gnupload --to ftp.gnu.org:binutils binutils-*.tar.* The gnupload script is in the gnulib/build-aux directory. @@ -432,8 +522,8 @@ looks like this: sftp sourceware.org cd /sourceware/ftp/pub/binutils/releases - put binutils-2.3x.y.tar.* - chmod 644 binutils-2.3x.y.tar.* + put binutils-*.tar.* + chmod 644 binutils-*.tar.* quit It is OK to upload the signatures as well. @@ -442,7 +532,7 @@ looks like this: * Log on to sourceware.org * Go to /sourceware/www/sourceware/htdocs/binutils - * Edit index.html + * Edit index.html and update the latest release number (if this is a latest release) For the www.gnu.org site you have to email webmasters@gnu.org and ask them to make the change(s). @@ -451,6 +541,7 @@ looks like this: David Edelsohn announcing the new release. (The email to Davis is so that he can update the GNU Toolchain social media). Something like this: + ------------------------------------------------------------------------ Hi Everyone, @@ -473,8 +564,15 @@ Hi Everyone, xx -------------------------------------------------------------------------- + 9. Create a new Bugzilla entry for the point release. + + https://sourceware.org/bugzilla/editversions.cgi?product=binutils + + And a new milestone too: + + https://sourceware.org/bugzilla/editmilestones.cgi?product=binutils -Copyright (C) 2017-2019 Free Software Foundation, Inc. +Copyright (C) 2017-2021 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright