Use "new" to allocate gdb_bfd_data
[external/binutils.git] / binutils / README-how-to-make-a-release
1                 README for MAKING BINUTILS RELEASES
2         
3 This is a collection of notes on how to perform a binutils release.  A
4 lot of this information can also be found in the maintain.texi file in
5 the gnulib project:
6
7   https://www.gnu.org/software/gnulib/
8
9 It is useful to have a cloned copy of the sources of this project as
10 it also contains an upload script used to install tarballs on the GNU
11 FTP server.
12
13 Make sure that you have upload authority on sourceware and fencepost.
14 Beware - this is an involved process and can take weeks to complete.
15 See the maintain.texi file for details on how to obtain these
16 permissions.
17
18 -------------------------------------------------
19 How to perform a release.
20 -------------------------------------------------
21
22 xxx -- fill in stuff here -- xxx
23
24 -------------------------------------------------
25 How to perform a point release.
26 -------------------------------------------------
27
28 A point release is easier than a normal release since a lot of the
29 work has already been done.  The branch has been created, the
30 translations updated and the documentation uploaded.  So the procedure
31 looks like this:
32
33   0. Decide that a point release is necessary.
34
35      Usually this only happens when a sufficient number of serious
36      bugs have been found and fixed since the previous release, and a
37      new official release is not imminent.
38
39   1. Tell the community that a point release is happening.  Ask
40      maintainers to ensure that their ports are up to date on the
41      release branch.  Ask the community if there are any bug fixes
42      which are missing from the branch.  Allow some time for the
43      responses to this step.
44
45   2. Make sure that the branch sources build, test and install
46      correctly.
47
48   3. In the branch sources:
49   
50        a. Update the minor release number in bfd/version.m4.
51        b. Edit bfd/development.sh and set "development=false".
52        c. Regenerate the configure files.
53        d. Commit the updates along with a "this-is-the-2.XX.X-release"
54           note in all of the changelogs.
55        e. Tag the branch with the new release number:
56
57             git tag -a binutils-2_XX_X
58               [optional: add "-u XXXXX" to sign with a gpg key]
59             git push origin binutils-2_XX_X
60
61        f. Check that your file creation mask will create the
62           correct file permissions.  Eg:
63
64             umask 022
65        
66        g. Create the release tarballs:
67             ./src-release -b -g -l -x binutils
68
69        h. Check that the files in the tarballs have the correct
70           permissions.
71        
72        i. Edit bfd/development.sh and set "development=true".
73        j. Commit this change into the git repository.
74        k. Clean up the source tree.  (Use "git status" to find new
75            files, and remove them).
76
77      FIXME: The tarballs will contain spurious autom4te.cache
78      directories which could be removed to reduce their size.
79
80   4. [If paranoid - upload the tarballs to one of the FTP servers and
81       ask people to test it before going on to step 5].
82       
83   5. Upload the tarballs to ftp.gnu.org.
84
85        gnupload --to ftp.gnu.org:binutils binutils-X.XX.X.tar.*
86
87      The gnupload script is in the gnulib/build-aux directory.
88
89   6. Upload the tarballs to sourceware.org:
90
91        sftp sourceware.org
92          cd /ftp/pub/binutils/releases
93          put binutils-X.XX.X.tar.*
94          chmod 644 binutils-X.XX.X.tar.*
95          quit
96
97     FIXME: Should the signatures (created by the gnupload script in
98     step 5) be uploaded as well ?
99
100   7. Update web pages.  For sourceware.org:
101
102       * Log on to sourceware.org
103       * Go /www/htdocs/binutils
104       * Edit index.html
105
106       For the www.gnu.org site you have to email webmasters@gnu.org
107       and ask them to make the change(s).
108
109   8. Send an emails to the binutils list, info-gnu@gnu.org and
110      David Edelsohn <dje.gcc@gmail.com> announcing the new release.
111      (The email to Davis is so that he can update the GNU Toolchain
112      social media).  Something like this:
113 ------------------------------------------------------------------------
114 Hi Everyone,
115
116   We are pleased to announce that version 2.XX.X of the Binutils project
117   sources have been released and are now available for download at:
118   
119     https://ftp.gnu.org/gnu/binutils
120     https://sourceware.org/pub/binutils/releases/
121
122   This is a point release over the previous 2.XX version, containing bug
123   fixes but no new features.
124
125   Our thanks go out to all of the binutils contributors, past and
126   present, for helping to make this release possible.
127 --------------------------------------------------------------------------
128
129 \f
130 Copyright (C) 2017 Free Software Foundation, Inc.
131
132 Copying and distribution of this file, with or without modification,
133 are permitted in any medium without royalty provided the copyright
134 notice and this notice are preserved.