X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=binutils%2FREADME-how-to-make-a-release;h=b9e7e946451bd79d3a8003877f67629221dcf2f2;hb=708a2ffff5cc2d280968a6b28268d8276d391bb4;hp=47af677a9e3d834dac87ae63836197ef213ace93;hpb=eca4b721468e239a6a1ca7c9bd9c967085067dfe;p=deliverable%2Fbinutils-gdb.git diff --git a/binutils/README-how-to-make-a-release b/binutils/README-how-to-make-a-release index 47af677a9e..b9e7e94645 100644 --- a/binutils/README-how-to-make-a-release +++ b/binutils/README-how-to-make-a-release @@ -27,27 +27,37 @@ How to perform a release. directories and the top level configure files. 3. When branch day arrives add markers for the upcoming release to - gas, ld, gold and binutils NEWS files. - [If using the make-prerelease.sh script, check that - common.sh has the right values]. - [make-prelease.sh command i] - Likewise for all of the ChangeLog files. + 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. + Add a note of the name of the new branch to binutils/BRANCHES. + Commit these changes. - [make-prerelease.sh command C] 4. Create the release branch using: - git branch binutils-2_31-branch - git push origin binutils-2_31-branch + git branch binutils-2_34-branch + git push origin binutils-2_34-branch + + If you get a message like: + + remote: fatal: Invalid revision range 0000000000000000000000000000000000000000..f974f26cb16cc6fe3946f163c787a05e713fb77b + + It appears that this can be ignored... 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_31-branch 2.31 + git clone ssh://sourceware.org/git/binutils-gdb.git -b binutils-2_34-branch 2.34 If you get a message about being in a "detached head" state, something has gone wrong... + Keep the checked out sources - they are going to be needed in future + steps. + 6. Update "BINUTILS_BRANCH" in gdbadmin's crontab: Log in as gdbadmin on sourceware.org, and then: @@ -62,7 +72,7 @@ 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.30 (HEAD)" to 2.30, and create "2.31 + new one. E.g. rename "2.34 (HEAD)" to 2.34, and create "2.34 (HEAD)": https://sourceware.org/bugzilla/editversions.cgi?product=binutils @@ -70,66 +80,88 @@ How to perform a release. 8. Update bfd/version.m4 on HEAD to indicate that is now a snapshot of the next release: - m4_define([BFD_VERSION], [2.31.51]) + m4_define([BFD_VERSION], [2.34.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.30.90]) + m4_define([BFD_VERSION], [2.33.90]) Regenerate various files on both branch and HEAD by configuring - with --enable-maintainer-mode. NB/ Remember to build gold and - gprof. Add ChangeLog entries. Commit the changes. Make sure - that this includes the .pot files as well as the configure and - makefiles. + with "--enable-maintainer-mode --enable-gold" and then building + with "make all-binutils all-gas all-gold all-gprof all-ld" + + Add ChangeLog entries for the updated files. Commit the changes. + Make sure that this includes the .pot files as well as the + configure and makefiles. + + 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 . + + b. Create a source tarball of the BRANCH sources: + + ./src-release -x binutils - 8. Create an initial prerelease: + c. Build a test target using this tarball. - a. Create a source tarball of the BRANCH sources: + cp binutils-.90.tar.xz /dev/shm + cd /dev/shm + tar xvf binutils-.90.tar.xz + mkdir build + cd build + ../binutils-.90/configure --quiet --enable-gold + make - ./src-release -x binutils + If there are problems, fix them. - b. Build a test target using this tarball. + d. Upload the pre-release snapshot to the sourceware FTP site: - c. Upload the prerelease snapshot to the FTP: + cd + scp binutils-.90.tar.xz sourceware.org:~ftp/pub/binutils/snapshots + ssh sourceware.org md5sum ~ftp/pub/binutils/snapshots/binutils-.90.tar.xz - scp ../binutils-$version.tar.xz sourceware.org:~ftp/pub/binutils/snapshots - ssh sourceware.org md5sum ~ftp/pub/binutils/snapshots/binutils-$version.tar.xz + e. Clean up the source directory again. - d. Clean up the source directory. + 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 ------------------------------------------------------------------------ Dear Translation Project - The 2.31 release branch has been created for the FSF binutils. + The release branch has been created for the GNU binutils. A snapshot of the branch sources can be found here: - https://sourceware.org/pub/binutils/snapshots/binutils-2.30.90.tar.xz + https://sourceware.org/pub/binutils/snapshots/binutils-.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.XX branch has now been created: + The branch has now been created: - git clone git://sourceware.org/git/binutils-gdb.git -b binutils-2_XX-branch 2.XX + 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.XX.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: @@ -142,109 +174,185 @@ 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.... 20. Make sure that the branch sources still build, test and install - correctly. + correctly. Make sure that the sources are clean, without any + patch files (.reg .orig *~) left over. + + cd + git clean -dfx . 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 - to set the value to "false". Regenerate the configure and - makefiles. Add changelog entries for the updates and add a - "this-is-the-2.XX-release" commit and commit. Make sure to - include the .gmo files. + value. Eg "2.34.90" becomes "2.35". 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. 22. Check that your file creation mask will create the correct file permissions. Eg: - umask 022 + % umask + 22 + + Remove any spurious autom4te.cache files left over from the + reconfiguring: + + 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 + DEVO_SUPPORT variable in the src-release.sh script. If they are + needed then add them. - 23. Create the release tarballs: + Create the release tarballs: - ./src-release -b -g -l -x binutils + ./src-release.sh -b -g -l -x binutils 24. Check that the files in the tarballs have the correct - permissions. FIXME: The tarballs will contain spurious - autom4te.cache directories which could be removed to reduce - their size. + permissions. (FIXME: How to do this ?) 25. Sanity check the release on x86_64-pc-linux-gnu by building and - running the testsuite. Make the source directory read-only - before building. Also test "make install". If necessary fix - any problems. + 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.X.tar.xz + chmod -R -w binutils-2.X + mkdir build + cd build + ../binutils-2.X/configure --enable-gold --prefix=`pwd`/install + 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 26. Tag the branch with the new release number: - git tag -a binutils-2_XX + git tag -a binutils-2_3x [optional: add "-u XXXXX" to sign with a gpg key] - git push origin binutils-2_XX - + 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. - 27. Clean up the source tree. (Use "git status" to find new - files, and remove them). + Then push the release: + + git push origin binutils-2_3x - 28. Edit bfd/development.sh on the branch and set - "development=true". Also bump the version by adding a trailing - .0, so that the date suffix keeps the version lower than the - trunk version. Regenerate files. Commit these changes. + If you get an error message along the lines of "Invalid revision range ..." you can ignore it. - 29. Upload the tarballs to ftp.gnu.org. + 27. Upload the tarballs to ftp.gnu.org. - gnupload --to ftp.gnu.org:binutils binutils-X.XX.tar.* + gnupload --to ftp.gnu.org:binutils binutils-2.3x.tar.* The gnupload script is in the gnulib/build-aux directory. Check for an email response from the upload. If necessary fix any problems. - 30. Upload the tarballs (and signatures) to sourceware.org: + 28. Upload the tarballs (and signatures) to sourceware.org: sftp sourceware.org cd /sourceware/ftp/pub/binutils/releases - put binutils-X.XX.tar.* - chmod 644 binutils-X.XX.tar.* + put binutils-2.3x.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]. - 31. Update web pages. For sourceware.org: + 29. Update web pages. For sourceware.org: Create a new documentation folder on the sourceware.org web - pages as /sourceware/www/sourceware/htdocs/binutils/docs-X.XX. + pages as /sourceware/www/sourceware/htdocs/binutils/docs-2.3x. + + sftp sourceware.org + cd /sourceware/www/sourceware/htdocs/binutils + mkdir docs-2.3x + cd docs-2.3x + mkdir as + mkdir bfd + mkdir binutils + mkdir gprof + mkdir ld + cd ../docs-2.3(x-1) + get index.html + + Update the (local copy of the) index.html file to point to the + new documentation and mention the new version and then upload it. + [NB/ FIXME: Special for updating from 2.34 documentation - restore + the link to the GAS/NEWS which has been changed for 2.34 to a + specific commit rather than the branch tag]. + + cd ../docs-2.3x + put index.html + Make the html documentation locally with the "make html" command - and then upload and rename the directories as needed. Create an - index.html file and then edit the docs link to point to the new - docs-X.XX directory. - - Update the sourceware.org site to point to the new documentation - and mention the new version. + 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). + + cd as + lcd /gas/doc/as.html + put * {be patient - this takes a long time...} + cd ../bfd + lcd ../../../bfd/doc/bfd.html + put * + cd ../binutils + lcd ../../../binutils/doc/binutils.html + put * + cd ../gprof + lcd ../../../gprof/gprof.html + put * + cd ../ld + lcd ../../ld/ld.html + put * + + Edit the top level binutils index.html file to change the links + to point to the new documentation. + + cd ../../.. + get index.html + [edit] + put index.html + rm docs + ln -s docs-2.3x docs + quit + + Check that the new web page is correct. For the www.gnu.org site you have to email webmasters@gnu.org and ask them to make the change(s). - 32. Send emails to binutils@sourceware.org, info-gnu@gnu.org and + 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: + + md5sum binutils-2.3x.tar.* + (The email to Davis is so that he can update the GNU Toolchain social media). Something like this: - ------------------------------------------------------------------------ + ----------------------------------------------------------------------- Hi Everyone, - We are pleased to announce that version 2.XX of the Binutils project + We are pleased to announce that version 2.3x of the GNU Binutils project sources have been released and are now available for download at: https://ftp.gnu.org/gnu/binutils @@ -252,19 +360,37 @@ 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. - -------------------------------------------------------------------------- + ----------------------------------------------------------------------- -------------------------------------------------- + 31. Clean up the source tree: + + git clean -fdx . + + 32. Edit bfd/development.sh on the branch and set the development flag + to "true". (Leave the experimental flag set to "false"). Also bump + the version in bfd/version.m4 by adding a trailing .0, so that the + date suffix keeps the version lower than the trunk version. + 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 + need special approval. + + 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 @@ -292,15 +418,19 @@ looks like this: 3. In the branch sources: a. Update the minor release number in bfd/version.m4. - b. Edit bfd/development.sh and set "development=false". + b. Edit bfd/development.sh, set "development=false". c. Regenerate the configure files. - d. Commit the updates along with a "this-is-the-2.XX.X-release" + c.1. Remove spurious autom4te.cache files: + + find . -depth -name autom4te.cache -exec rm -r {} \; + + d. 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: - git tag -a binutils-2_XX_X + git tag -a binutils-2_3x_y [optional: add "-u XXXXX" to sign with a gpg key] - git push origin binutils-2_XX_X + git push origin binutils-2_3x_y f. Check that your file creation mask will create the correct file permissions. Eg: @@ -308,6 +438,7 @@ looks like this: umask 022 g. Create the release tarballs: + ./src-release -b -g -l -x binutils h. Check that the files in the tarballs have the correct @@ -315,36 +446,30 @@ looks like this: i. Edit bfd/development.sh and set "development=true". j. Commit this change into the git repository. - k. Clean up the source tree. (Use "git status" to find new - files, and remove them). - - FIXME: The tarballs will contain spurious autom4te.cache - directories which could be removed to reduce their size. 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-X.XX.X.tar.* + gnupload --to ftp.gnu.org:binutils binutils-2.3x.y.tar.* The gnupload script is in the gnulib/build-aux directory. 6. Upload the tarballs to sourceware.org: sftp sourceware.org - cd /ftp/pub/binutils/releases - put binutils-X.XX.X.tar.* - chmod 644 binutils-X.XX.X.tar.* + cd /sourceware/ftp/pub/binutils/releases + put binutils-2.3x.y.tar.* + chmod 644 binutils-2.3x.y.tar.* quit - FIXME: Should the signatures (created by the gnupload script in - step 5) be uploaded as well ? + It is OK to upload the signatures as well. 7. Update web pages. For sourceware.org: * Log on to sourceware.org - * Go /www/htdocs/binutils + * Go to /sourceware/www/sourceware/htdocs/binutils * Edit index.html For the www.gnu.org site you have to email webmasters@gnu.org @@ -354,16 +479,17 @@ 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, - We are pleased to announce that version 2.XX.X of the Binutils project - sources have been released and are now available for download at: + We are pleased to announce that version 2.3x.y of the GNU Binutils + project sources have been released and are now available for download at: https://ftp.gnu.org/gnu/binutils https://sourceware.org/pub/binutils/releases/ - This is a point release over the previous 2.XX version, containing bug + This is a point release over the previous 2.3x version, containing bug fixes but no new features. Our thanks go out to all of the binutils contributors, past and @@ -375,9 +501,15 @@ Hi Everyone, xx xx -------------------------------------------------------------------------- + 9. Clean up the source tree. + + git clean -dfx . + + 10. Edit bfd/development.sh on the branch and set the development flag + to "true". Commit this change. -Copyright (C) 2017-2018 Free Software Foundation, Inc. +Copyright (C) 2017-2020 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright