X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/e25e3dac9f970d3da8f5857f1a897a34949450f0..2ca28c0513a56a3b42348580abc5f3b9722ba50d:/admin/make-tarball.txt diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt dissimilarity index 78% index 8c477320bf..30f5dc3308 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt @@ -1,54 +1,77 @@ -Instructions to create pretest or release tarballs. --- originally written by Eli Zaretskii, amended by Francesco Potortì - -For each step, check for possible errors. - -1. cvs -q update -Pd - -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. Set the version number (M-x load-file RET admin/admin.el RET, then - M-x set-version RET). For a release, add released change log - entries (M-x add-release-logs RET). - -4. rm configure; make bootstrap - -5. Commit configure, loaddefs.el, cus-load.el, finder-inf.el, README, - emacs.texi. - -6. make-dist --snapshot. Check the contents of the new tar with - admin/diff-tar-files against an older tar file. Some old pretest - tarballs are kept under fencepost.gnu.org:~pot/emacs-pretest/. - -7. Make xdeltas: - xdelta delta emacs-OLD.tar.gz emacs-NEW.tar.gz emacs-OLD-NEW.xdelta - -8. tar -zxf emacs-NEW.tar.gz; cd NEW - Then, either using `script' or M-x compile, do - configure && make && make -n install - 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. `cvs tag TAG' in the toplevel Emacs dir. TAG is - EMACS_PRETEST_XX_YY_ZZZ for a pretest, don't know for a release. - -10. For pretests, make an announcement by selecting new data from the - change logs and save it into emacs-NEW.announce, don't know for a - release. To get the new data from change logs, you can use: - cvs -q diff -b -r EMACS_PRETEST_XX_YY_ZZZ $(find -name ChangeLog|sort) | - sed -n -e 's/^=\+/ /p' -e 's/^> //p' -e 's/^diff.*//p' \ - -e 's/^RCS file: .cvsroot.emacs.emacs.\(.*\),v/\1/p' - -11. rsync emacs-NEW.tar.gz emacs-OLD-NEW.xdelta compile-NEW.log \ - emacs-new.announce alpha.gnu.org:/home/alpha/gnu/emacs/pretest/ - -12. Verify that after five minutes at most the files appear on - ftp://alpha.gnu.org/gnu/emacs/pretest/. - -13. Let Richard Stallman know about the new pretest and tell him to - announce it using the announcement you prepared. +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. + +1. cvs -q update -Pd + +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 Emacs' AUTHORS file (M-x load-file RET + lisp/emacs-lisp/authors.el RET, then M-x authors RET, then save + the *Authors* buffer). This may require fixing syntactically + incorrect ChangeLog entries beforehand. + +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 change log + entries (M-x add-release-logs RET). + +5. rm configure; make bootstrap + +6. Commit configure, README, AUTHORS, lisp/loaddefs.el, + lisp/cus-load.el, lisp/finder-inf.el, lisp/version.el, + man/emacs.texi. For a release, also commit the ChangeLog files in + all directories. + +7. make-dist --snapshot. Check the contents of the new tar with + admin/diff-tar-files against an older tar file. Some old pretest + tarballs are kept under fencepost.gnu.org:~pot/emacs-pretest/, while + old emacs tarballs are at . + +8. xdelta delta emacs-OLD.tar.gz emacs-NEW.tar.gz emacs-OLD-NEW.xdelta + +9. tar -zxf emacs-NEW.tar.gz; cd emacs-NEW + configure && make && make -n 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. + +10. cd EMACS_ROOT_DIR; cvs tag TAG + TAG is EMACS_PRETEST_XX_YY_ZZZ for a pretest, EMACS_XX_YY for a + release. + +11. admin/make-announcement OLD NEW + This creates an announcement for pretests. OLD is the version used + to make deltas with respect to NEW. Announcements for releases need + to be crafted by hand. Use an older announcement to start with: + look in ssh://fencepost.gnu.org/~pot/emacs-tarballs/. + +12. 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. Mail + for instructions. Once you are there, for each file FILE to be + released, 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) + gpg --clearsign FILE.directive + Upload by anonymous ftp to ftp://ftp-upload.gnu.org/incoming/ftp/ + the files FILE, FILE.sig, FILE.directive.asc + +13. After five minutes, verify that the files are visible at + ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, at + ftp://ftp.gnu.org/gnu/emacs/ for a release. + +14. For a pretest, let Richard Stallman know about the new pretest and + tell him to announce it using the announcement you prepared. Remind + him to set a Reply-to header to . + For a release, Richard should prepare the announcement himself, + possibly starting from a previous announcment. + +# arch-tag: c23c771f-ca26-4584-8a04-50ecf0989390