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