Misc make-tarball updates
This commit is contained in:
parent
3f9549e874
commit
31045a5b61
1 changed files with 71 additions and 28 deletions
|
@ -2,22 +2,46 @@ Instructions to create pretest or release tarballs.
|
|||
-- originally written by Gerd Moellmann, amended by Francesco Potortì
|
||||
with the initial help of Eli Zaretskii
|
||||
|
||||
For each step, check for possible errors.
|
||||
|
||||
0. Decide on versions of automake and autoconf, and ensure you will
|
||||
Steps to take before starting on the first pretest in any release sequence:
|
||||
|
||||
1. Decide on versions of automake and autoconf, and ensure you will
|
||||
have them available for the duration of the release process.
|
||||
|
||||
2. Consider increasing the value of the variable
|
||||
`customize-changed-options-previous-release' in cus-edit.el to
|
||||
refer to a newer version of Emacs. (This is probably needed only
|
||||
when preparing the first pretest for a major Emacs release.)
|
||||
Commit cus-edit.el if changed.
|
||||
|
||||
|
||||
General steps (for each step, check for possible errors):
|
||||
|
||||
1. `bzr update' (for a bound branch), or `bzr pull'.
|
||||
bzr status # check for locally modified files
|
||||
bzr status # check for locally modified files
|
||||
|
||||
2. Bootstrap to make 100% sure all elc files are up-to-date, and to
|
||||
make sure that the later tagged version will bootstrap, should it be
|
||||
necessary to check it out.
|
||||
|
||||
3. Regenerate the etc/AUTHORS file:
|
||||
M-: (require 'authors) RET, M-x authors RET, save the *Authors* buffer.
|
||||
If there are errors that relate to syntactically incorrect
|
||||
ChangeLog entries, consider fixing them and repeating.
|
||||
M-: (require 'authors) RET
|
||||
M-x authors RET
|
||||
|
||||
There is almost guaranteed to be an "*Authors Errors*" buffer with
|
||||
problems caused by certain bad ChangeLog entries. You can ignore
|
||||
the very old ones (eg lisp/erc has a lot). If there are errors
|
||||
related to new entries (especially entries that are new since the
|
||||
last pretest), see if you can fix them. If there was a ChangeLog
|
||||
typo, fix it. If a file was deleted or renamed, consider adding
|
||||
an appropriate entry to authors-ignored-files, authors-valid-file-names,
|
||||
or authors-renamed-files-alist.
|
||||
|
||||
If necessary, repeat M-x authors after making those changes.
|
||||
Save the "*Authors*" buffer as etc/AUTHORS.
|
||||
Check the diff looks reasonable. Maybe add entries to
|
||||
authors-ambiguous-files or authors-aliases, and repeat.
|
||||
Commit any fixes to ChangeLogs or authors.el.
|
||||
|
||||
4. Set the version number (M-x load-file RET admin/admin.el RET, then
|
||||
M-x set-version RET). For a release, add released ChangeLog
|
||||
|
@ -26,20 +50,18 @@ For each step, check for possible errors.
|
|||
For a pretest, start at version .90. After .99, use .990 (so that
|
||||
it sorts).
|
||||
|
||||
If needed, increment the value of the variable
|
||||
`customize-changed-options-previous-release' in cus-edit.el to
|
||||
refer to a newer release of Emacs. (This is probably needed only
|
||||
when preparing a major Emacs release, or branching for it.)
|
||||
|
||||
5. autoreconf -i -I m4 --force
|
||||
make bootstrap
|
||||
|
||||
6. Commit etc/AUTHORS, all the files changed by M-x set-version, and
|
||||
lisp/cus-edit.el (if modified).
|
||||
Copy lisp/loaddefs.el to lisp/ldefs-boot.el and commit lisp/ldefs-boot.el.
|
||||
6. Copy lisp/loaddefs.el to lisp/ldefs-boot.el.
|
||||
|
||||
Commit etc/AUTHORS, lisp/ldefs-boot.el, and the files changed
|
||||
by M-x set-version.
|
||||
For a release, also commit the ChangeLog files in all directories.
|
||||
|
||||
7. make-dist --snapshot. Check the contents of the new tar with
|
||||
7. ./make-dist --snapshot --no-compress
|
||||
|
||||
Check the contents of the new tar with
|
||||
admin/diff-tar-files against an older tar file. Some old pretest
|
||||
tarballs may be found at <ftp://alpha.gnu.org/gnu/emacs/pretest>;
|
||||
old release tarballs are at <ftp://ftp.gnu.org/pub/gnu/emacs/>.
|
||||
|
@ -49,15 +71,15 @@ For each step, check for possible errors.
|
|||
something like `find . | sort' in a clean bzr tree, and compare the
|
||||
results against the new tar contents.
|
||||
|
||||
8. tar -zxf emacs-NEW.tar.gz; cd emacs-NEW
|
||||
./configure && make && make -n install
|
||||
8. tar -xf emacs-NEW.tar; cd emacs-NEW
|
||||
./configure --prefix=/tmp/emacs && make && make install
|
||||
Use `script' or M-x compile to save the compilation log in
|
||||
compile-NEW.log and compare it against an old one. The easiest way
|
||||
to do that is to visit the old log in Emacs, change the version
|
||||
number of the old Emacs to __, do the same with the new log and do
|
||||
M-x ediff. Especially check that Info files aren't built.
|
||||
|
||||
9. cd EMACS_ROOT_DIR; bzr tag TAG
|
||||
9. cd EMACS_ROOT_DIR && bzr tag TAG
|
||||
TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release.
|
||||
|
||||
Shortly before the release, cut the version branch also, and open
|
||||
|
@ -65,16 +87,37 @@ For each step, check for possible errors.
|
|||
be sent to the emacs-diffs mailing list (by default, the list
|
||||
normally only gets commits to the trunk).
|
||||
|
||||
10. Now you should upload the files to the GNU ftp server. In order to
|
||||
10. Decide what compression schemes to offer.
|
||||
For a release, at least gz and xz:
|
||||
gzip --best -c emacs-NEW.tar > emacs-NEW.tar.gz
|
||||
xz -c emacs-NEW.tar > emacs-NEW.tar.xz
|
||||
|
||||
Now you should upload the files to the GNU ftp server. In order to
|
||||
do that, you must be registered as an Emacs maintainer and have your
|
||||
GPG key acknowledged by the ftp people. For instructions, see
|
||||
http://www.gnu.org/prep/maintain/html_node/Automated-Upload-Registration.html
|
||||
You can use the gnulib script "gnupload" to upload each FILE, like this:
|
||||
gnupload --to alpha.gnu.org:emacs/pretest FILE (for a pretest)
|
||||
gnupload --to ftp.gnu.org:emacs FILE (for a release)
|
||||
The simplest method is to use the gnulib <http://www.gnu.org/s/gnulib/>
|
||||
script "build-aux/gnupload" to upload each FILE, like this:
|
||||
|
||||
For a pretest:
|
||||
gnupload [--user your@gpg.key.email] --to alpha.gnu.org:emacs/pretest \
|
||||
FILE.gz FILE.xz ...
|
||||
|
||||
For a release:
|
||||
gnupload [--user your@gpg.key.email] --to ftp.gnu.org:emacs \
|
||||
FILE.gz FILE.xz ...
|
||||
|
||||
You only need the --user part if you have multiple GPG keys and do
|
||||
not want to use the default.
|
||||
Obviously, if you do not have a fast uplink, be prepared for the
|
||||
upload to take a while.
|
||||
|
||||
|
||||
If you prefer to do it yourself rather than use gnupload:
|
||||
|
||||
For each FILE, create a detached GPG binary signature and a
|
||||
clearsigned directive file like this:
|
||||
|
||||
Instead of using gnupload, for each FILE, create a detached GPG
|
||||
binary signature and a clearsigned directive file like this:
|
||||
gpg -b FILE
|
||||
echo directory: emacs/pretest > FILE.directive (for a pretest)
|
||||
echo directory: emacs > FILE.directive (for a release)
|
||||
|
@ -85,13 +128,12 @@ For each step, check for possible errors.
|
|||
For a pretest, place the files in /incoming/alpha instead, so that
|
||||
they appear on ftp://alpha.gnu.org/.
|
||||
|
||||
For a release, upload xz and bz2 tarfiles as well; this can save a lot
|
||||
of bandwidth.
|
||||
|
||||
11. After five minutes, verify that the files are visible at
|
||||
ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, at
|
||||
ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, or
|
||||
ftp://ftp.gnu.org/gnu/emacs/ for a release.
|
||||
|
||||
Download them and check the signatures. Check they build.
|
||||
|
||||
12. For a pretest, announce it on emacs-devel and info-gnu-emacs@gnu.org.
|
||||
For a release, also announce it on info-gnu@gnu.org. (Probably
|
||||
bcc the info- addresses to make it less likely that people will
|
||||
|
@ -99,3 +141,4 @@ For each step, check for possible errors.
|
|||
|
||||
13. For a release, update the Emacs homepage in the web repository.
|
||||
Also add the new NEWS file as NEWS.xx.y.
|
||||
Maybe regenerate the html manuals, update the FAQ, etc, etc.
|
||||
|
|
Loading…
Add table
Reference in a new issue