X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=binutils%2FREADME-how-to-make-a-release;h=9fcebf5f0a4b335ee7a8c2fe6b0b47951676c5e5;hb=f4492fb683013d7de6f4788df6deb24fed8671b4;hp=2fdea008545da6ef8c8e1268011cd7cb8dae8555;hpb=be2c78856d6ffe491ae41a7dda58b8553e71dd0f;p=binutils-gdb.git diff --git a/binutils/README-how-to-make-a-release b/binutils/README-how-to-make-a-release index 2fdea008545..9fcebf5f0a4 100644 --- a/binutils/README-how-to-make-a-release +++ b/binutils/README-how-to-make-a-release @@ -35,7 +35,8 @@ Approx time to complete from here: 2 hours .... 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. @@ -43,8 +44,8 @@ Approx time to complete from here: 2 hours .... 4. Create the release branch using: - git branch binutils-2_37-branch - git push origin binutils-2_37-branch + git branch binutils-2_40-branch + git push origin binutils-2_40-branch If you get a message like: @@ -54,7 +55,7 @@ Approx time to complete from here: 2 hours .... 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_37-branch 2.37 + git clone ssh://sourceware.org/git/binutils-gdb.git -b binutils-2_40-branch 2.40 If you get a message about being in a "detached head" state, something has gone wrong... @@ -76,25 +77,31 @@ Approx time to complete from here: 2 hours .... ask Joel Brobecker . 7. Rename the current HEAD version entry in Bugzilla, and create a - new one. E.g. rename "2.37 (HEAD)" to 2.37, and create - "2.38 (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: + of the next release and the BRANCH to indicated that it is almost + ready for the release. + + So if the release is going to be 2.40 then the version number on + the BRANCH should be set to 2.39.90 - ie almost, but not quite 2.40, + and the version number on the MAINLINE should be set to 2.40.50 - + ie half way to 2.41 release. + + So the branch bfd/version.m4 has: - m4_define([BFD_VERSION], [2.37.50]) + m4_define([BFD_VERSION], [2.39.90]) - 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. + and the mainline has: - m4_define([BFD_VERSION], [2.36.90]) + m4_define([BFD_VERSION], [2.40.50]) Regenerate various files on both branch and HEAD by configuring - with "--enable-maintainer-mode --enable-gold" and then building - with "make all-binutils all-gas all-gold all-gprof all-ld" + with "--enable-maintainer-mode --enable-gold --enable-shared" and then building + with "make all-binutils all-gas all-gold all-gprof all-gprofng all-ld" Add ChangeLog entries for the updated files. Commit the changes. Make sure that this includes the .pot files as well as the @@ -110,16 +117,16 @@ Approx time to complete from here: 2 hours .... b. Create a source tarball of the BRANCH sources: - ./src-release -x binutils + ./src-release.sh -x binutils c. Build a test target using this tarball. - cp binutils-2.36.90.tar.xz /dev/shm + cp binutils-2.39.90.tar.xz /dev/shm pushd /dev/shm - tar xvf binutils-2.36.90.tar.xz + tar xvf binutils-2.39.90.tar.xz mkdir build cd build - ../binutils-2.36.90/configure --quiet --enable-gold + ../binutils-2.39.90/configure --quiet --enable-gold make popd @@ -127,8 +134,8 @@ Approx time to complete from here: 2 hours .... d. Upload the pre-release snapshot to the sourceware FTP site: - scp binutils-2.36.90.tar.xz sourceware.org:~ftp/pub/binutils/snapshots - ssh sourceware.org sha256sum ~ftp/pub/binutils/snapshots/binutils-2.36.90.tar.xz + scp binutils-2.39.90.tar.xz sourceware.org:/var/ftp/pub/binutils/snapshots + ssh sourceware.org sha256sum ~ftp/pub/binutils/snapshots/binutils-2.39.90.tar.xz e. Clean up the source directory again. @@ -141,11 +148,11 @@ Approx time to complete from here: 2 hours .... ------------------------------------------------------------------------ Dear Translation Project - The release branch has been created for the GNU binutils. + The 2.40 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-.90.tar.xz + https://sourceware.org/pub/binutils/snapshots/binutils-2.39.90.tar.xz We hope to make the official release of the sources on the although that could change if there are important bugs that need to @@ -161,7 +168,7 @@ Hi Everyone, The branch has now been created: - git clone git://sourceware.org/git/binutils-gdb.git -b binutils--branch + git clone git://sourceware.org/git/binutils-gdb.git -b binutils--branch A snapshot of the sources is also available here: @@ -196,16 +203,34 @@ When the time comes to actually make the release.... patch files (.reg .orig *~) left over. cd - git clean -dfx . + git clean -fdx + + 21. a. 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.39.90" becomes "2.40". + + b. Change bfd/development.sh to set all values to "false". + + c. Regenerate the configure and makefiles. And *info* files. + + make all-gas all-ld all-binutils all-gprof all-gold all-gprofng + make info + + d. Create a ChangeLog from the git refs for all of the commits + from when changelog entries were no longer required: - 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.35.90" becomes "2.36". 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 - commit. + gitlog-to-changelog --since=2021-07-03 > ChangeLog.git + git add ChangeLog.git + The gitlog-to-changelog script is part of the sources + of the "config" project. + + e. Add ChangeLog entries for all of the updates and add a + "this-is-the-2.38-release" comment and commit. + + git commit + git push + 22. Check that your file creation mask will create the correct file permissions. Eg: @@ -222,68 +247,84 @@ When the time comes to actually make the release.... DEVO_SUPPORT variable in the src-release.sh script. If they are needed then add them. - Create the release tarballs: + Create the release tarballs: ./src-release.sh -b -g -l -x binutils 24. Check that the files in the tarballs have the correct - permissions. (FIXME: How to do this ?) + permissions. + + tar tvf binutils-*.tar.bz2 | grep -e "---" + + Also check that the man files are not empty. (cf PR 28144). + + tar tvf binutils-*.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. + source directory read-only before building. (Note - the gprofng + sources need a writeable doc/ directory. This is a bug that needs + to be fixed). + Also test "make install". + If necessary fix any problems. - cd /dev/shm + pushd /dev/shm mkdir delme cd delme - tar xvf /binutils-2.X.tar.xz - chmod -R -w binutils-2.X + tar xvf /binutils-2.*.tar.lz + chmod -R -w binutils-2.* + chmod +w binutils-2.*/gprofng/doc 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 + ../binutils-2.*/configure --quiet --enable-gold --prefix=`pwd`/install --enable-plugins --enable-shared + make all-gas all-gold all-ld all-binutils all-gprof all-gprofng make check-gas check-binutils check-ld check-gold - make install-gas install-gold install-ld install-binutils + make install-gas install-gold install-ld install-binutils install-gprofng # Needed for step 29... - make html + make html pdf + + popd 26. Tag the branch with the new release number: + [optional: add "-u XXXXX" to sign with a gpg key] + enter a tag message such as: "Official GNU Binutils 2.3x release" + + git tag -a binutils-2_40 -u DD9E3C4F <=== Be careful to get the tag right - git tag -a binutils-2_3x - [optional: add "-u XXXXX" to sign with a gpg key] - enter a tag message such as: "Official Binutils 2.3x release" - 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 + git push origin binutils-2_40 - If you get an error message along the lines of "Invalid revision range ..." you can ignore it. + 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. + 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.* - The gnupload script is in the gnulib/build-aux directory. + 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 - fix any problems. + Check for an email response from the upload. If necessary + fix any problems. 28. Upload the tarballs (and signatures) to sourceware.org: sftp sourceware.org cd /sourceware/ftp/pub/binutils/releases - put binutils-2.3x.tar.* - chmod 644 binutils-2.3x.tar.* + put binutils-2.3*.tar.* + chmod 644 binutils-2.3*.tar.* quit - 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]. + 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: @@ -309,25 +350,45 @@ 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 had to be made by hand, as shown above). + (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 * {be patient - this takes a long time...} - cd ../bfd - lcd ../../../bfd/doc/bfd.html + 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 put * - cd ../binutils - lcd ../../../binutils/doc/binutils.html + cd .. + lcd .. + put bfd.html + put bfd.pdf + cd binutils + lcd ../../binutils/binutils <=== NB/ Path not like others put * - cd ../gprof - lcd ../../../gprof/gprof.html + cd .. + lcd ../doc + put binutils.html + put binutils.pdf + cd gprof + lcd ../../gprof/doc/gprof put * - cd ../ld - lcd ../../ld/ld.html + cd .. + lcd ../.. + put gprof.html + put gprof.pdf + cd ld + 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 point to the new documentation. @@ -368,7 +429,7 @@ Cheers David Edelsohn announcing the new release. Sign the email and include the checksum: - sha256sum binutils-2.3x.tar.* + sha256sum binutils-2.3*.tar.* (The email to Davis is so that he can update the GNU Toolchain social media). Something like this: @@ -388,6 +449,12 @@ Cheers + For more information see: + + https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=gas/NEWS;;hb=refs/tags/binutils-2_39 + https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=ld/NEWS;hb=refs/tags/binutils-2_39 + https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=binutils/NEWS;hb=refs/tags/binutils-2_39 + Our thanks go out to all of the binutils contributors, past and present, for helping to make this release possible. @@ -446,39 +513,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. + j. Clean the source tree again + + 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. @@ -486,8 +557,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. @@ -496,7 +567,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). @@ -535,16 +606,8 @@ Hi Everyone, And a new milestone too: https://sourceware.org/bugzilla/editmilestones.cgi?product=binutils - - 10. Clean up the source tree. - - git clean -dfx . - - 11. Edit bfd/development.sh on the branch and set the development flag - to "true". Commit this change. - -Copyright (C) 2017-2021 Free Software Foundation, Inc. +Copyright (C) 2017-2022 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright