From: Scott James Remnant Date: Tue, 27 Jan 2004 12:45:18 +0000 (+0000) Subject: This fixes release procedure problems discovered whilst making X-Git-Tag: release-1-5-4~28 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=485b7aacb5bf090a6c591b5265cba7f3bc38937d;p=thirdparty%2Flibtool.git This fixes release procedure problems discovered whilst making the 1.5.2 release. * Makefile.am (cvs-dist): Because we check whether ChangeLog has been committed, this rule can't be run with uncommitted source so we can't run 'commit' and don't need to run 'make dist' a second time. Fix CVS tag as it should be "release-X" not "Release-X". (cvs_commit): New rule for the cvs-release chain that runs 'commit' (cvs-release): Depend on cvs-commit, depend on deltas instead of cvs-diff and xdelta. (cvs-diff): Removed, replaced with delta-diff. (delta-diff): Unpack and diff the old and new tarballs rather than using CVS, so we get a genuinely complete diff. (xdelta): Removed, replaced with delta-xdelta. (got-xdelta): New rule for improved reading. (delta-xdiff): Copied and cleaned up version of old xdelta rule. (deltas): Depends on delta-diff and delta-xdelta (make deltas). (cvs-news): Don't depend on timestamps, cvs-dist itself does now. (prev-tarball): This is the only place we need a LASTRELEASE check so copy the code here and remove the CHECK_RELEASE variable. (new-tarball): Check there's a new tarball (did cvs-dist work?) * README-alpha: Update CVS instructions as everything's changed on Savannah, remove references to bz2 as we don't generate those on branch-1-5. (Release procedure): Update NEWS and ChangeLog after changing the version number (both times); Run 'make fetch' after running 'configure' (difficult to do it beforehand); Require 'commit' before 'make cvs-dist' as that checks ChangeLog is committed; 'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE to make instead of OLDVERSION (and it's mandatory); Clean up uploading paragraph; Clearer announcement sending instruction; Removed ftp-upload@gnu.org mail as that's not necessary now; Make web page updating instructions a bit clearer; Add an instruction to update the manual for non-alphas. (Alpha release note template): Add a Subject; update CVS instructions. (Full release note template): Add a Subject; update CVS instructions. * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk about bz2 files in our release announcements. --- diff --git a/ChangeLog b/ChangeLog index 99ae1da76..09175a98b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,46 @@ +2004-01-27 Scott James Remnant + + This fixes release procedure problems discovered whilst making + the 1.5.2 release. + + * Makefile.am (cvs-dist): Because we check whether ChangeLog + has been committed, this rule can't be run with uncommitted + source so we can't run 'commit' and don't need to run + 'make dist' a second time. Fix CVS tag as it should be + "release-X" not "Release-X". + (cvs_commit): New rule for the cvs-release chain that runs + 'commit' + (cvs-release): Depend on cvs-commit, depend on deltas instead of + cvs-diff and xdelta. + (cvs-diff): Removed, replaced with delta-diff. + (delta-diff): Unpack and diff the old and new tarballs rather + than using CVS, so we get a genuinely complete diff. + (xdelta): Removed, replaced with delta-xdelta. + (got-xdelta): New rule for improved reading. + (delta-xdiff): Copied and cleaned up version of old xdelta rule. + (deltas): Depends on delta-diff and delta-xdelta (make deltas). + (cvs-news): Don't depend on timestamps, cvs-dist itself does now. + (prev-tarball): This is the only place we need a LASTRELEASE check + so copy the code here and remove the CHECK_RELEASE variable. + (new-tarball): Check there's a new tarball (did cvs-dist work?) + * README-alpha: Update CVS instructions as everything's changed + on Savannah, remove references to bz2 as we don't generate those + on branch-1-5. + (Release procedure): Update NEWS and ChangeLog after changing + the version number (both times); Run 'make fetch' after running + 'configure' (difficult to do it beforehand); Require 'commit' + before 'make cvs-dist' as that checks ChangeLog is committed; + 'make deltas' instead of 'cvs-diff' and 'xdelta', pass LASTRELEASE + to make instead of OLDVERSION (and it's mandatory); Clean up + uploading paragraph; Clearer announcement sending instruction; + Removed ftp-upload@gnu.org mail as that's not necessary now; + Make web page updating instructions a bit clearer; Add an instruction + to update the manual for non-alphas. + (Alpha release note template): Add a Subject; update CVS instructions. + (Full release note template): Add a Subject; update CVS instructions. + * configure.ac: Add dist-bzip2 to AM_INIT_AUTOMAKE as we talk + about bz2 files in our release announcements. + 2004-01-25 Scott James Remnant * NEWS: updated. diff --git a/Makefile.am b/Makefile.am index 9acdb4032..25eeb4151 100644 --- a/Makefile.am +++ b/Makefile.am @@ -83,12 +83,9 @@ uninstall-local: ## not to anybody else (inspiration from automake/Makefile.am). ## ## ---------------------------------------------------------------- ## -CHECK_LASTRELEASE = if test -z "$(LASTRELEASE)"; \ - then echo "LASTRELEASE is not set"; exit 1; fi - .PHONY: cvs-release -cvs-release: version-check prev-tarball cvs-news fetch cvs-dist cvs-diff xdelta - @$(CHECK_LASTRELEASE); tarname="$(PACKAGE)-$(VERSION).tar.gz"; \ +cvs-release: version-check prev-tarball cvs-news fetch cvs-commit cvs-dist deltas + @tarname="$(PACKAGE)-$(VERSION).tar.gz"; \ diffname="$(PACKAGE)-$(LASTRELEASE)-$(VERSION).diff.gz"; \ xdeltaname="$(PACKAGE)-$(LASTRELEASE)-$(VERSION).xdelta"; \ echo " *** Upload $$tarname, $$tarname.sig,";\ @@ -111,9 +108,11 @@ version-check: .PHONY: prev-tarball prev-tarball: ## Make sure we have the previous release tarball in the tree. - @$(CHECK_LASTRELEASE); ofile="$(PACKAGE)-$(LASTRELEASE).tar.gz"; \ + @if test -z "$(LASTRELEASE)"; \ + then echo "LASTRELEASE is not set"; exit 1; fi + @ofile="$(PACKAGE)-$(LASTRELEASE).tar.gz"; \ if test -f $$ofile; then :; \ - else echo "Cannot make xdelta without $$ofile"; exit 1; fi + else echo "Cannot make deltas without $$ofile"; exit 1; fi # TSDEPS will be defined to TSDEPS_DIST at `make dist' time TSDEPS = @@ -129,7 +128,7 @@ update-timestamps: .PHONY: cvs-news -cvs-news: timestamps +cvs-news: ## Make sure the NEWS file is up-to-date: @if sed '1,2d;3q' $(srcdir)/NEWS | grep -e "$(VERSION)" >/dev/null; \ then :; \ @@ -182,46 +181,33 @@ fetch: GPG = gpg # set it to `:' to avoid gpg operations +.PHONY: cvs-commit +cvs-commit: cvs-news + cd $(srcdir) && $(SHELL) ./commit + .PHONY: cvs-dist -cvs-dist: cvs-news +cvs-dist: cvs-news timestamps ## Build the distribution: $(MAKE) distcheck -## Finally, if everything was successful, commit the last changes and tag -## the release in the repository: +## Finally, if everything was successful, tag the release cd $(srcdir) \ - && $(SHELL) ./commit \ - && $(CVS) -q tag -c `echo "Release-$(VERSION)" | sed 's/\./-/g'` -## We do want the timestamped version numbers from the CVS keywords in -## ChangeLog to be correct, so we must rebuild the release tarball after -## a successfull commit, and then generate the signatures needed for -## FSF ftp-upload: + && $(CVS) -q tag -c `echo "release-$(VERSION)" | sed 's/\./-/g'` +## Generate signatures and directives for FSF ftp-upload: ofile="$(PACKAGE)-$(VERSION).tar.gz"; \ - $(MAKE) dist \ - && $(GPG) --detach-sign $$ofile \ - && echo "directory: libtool" > $$ofile.directive \ - && $(GPG) --clearsign $$ofile.directive \ - && rm -f $$ofile.directive - -.PHONY: cvs-diff -cvs-diff: -## Figure out which cvs tags we are diffing, and if the diff works we -## compress it and then generate the signatures needed for FSF ftp-upload: - thisver=`echo "release-$(VERSION)" | sed 's/\./-/g'`; \ - $(CHECK_LASTRELEASE); \ - prevver=release-`echo $(LASTRELEASE) | sed 's/\./-/g'`; \ - ofile="$(PACKAGE)-$(LASTRELEASE)-$(VERSION).diff.gz"; \ - $(CVS) -f rdiff -c -r $$prevver -r $$thisver $(PACKAGE) \ - | GZIP=$(GZIP_ENV) gzip -c > $$ofile \ - && $(GPG) --detach-sign $$ofile \ - && echo "directory: libtool" > $$ofile.directive \ - && $(GPG) --clearsign $$ofile.directive \ - && rm -f $$ofile.directive + $(GPG) --detach-sign $$ofile \ + && echo "directory: libtool" > $$ofile.directive \ + && $(GPG) --clearsign $$ofile.directive \ + && rm -f $$ofile.directive -XDELTA = xdelta -XDELTA_OPTIONS = --pristine -9 +.PHONY: new-tarball +new-tarball: +## Make sure we have the new release tarball in the tree. + @ofile="$(PACKAGE)-$(VERSION).tar.gz"; \ + if test -f $$ofile; then :; \ + else echo "Cannot make deltas without $$ofile"; exit 1; fi -.PHONY: xdelta -xdelta: prev-tarball +.PHONY: got-xdelta +got-xdelta: ## Make sure xdelta exists; @if ($(XDELTA) --version 2>&1 | grep version)>/dev/null 2>/dev/null; \ then :;\ @@ -229,10 +215,41 @@ xdelta: prev-tarball echo "Get xdelta from http://sourceforge.net/projects/xdelta."; \ exit 1; \ fi + +.PHONY: deltas +deltas: delta-diff delta-xdelta + +DIFF = diff +DIFF_OPTIONS = -ruNp + +.PHONY: delta-diff +delta-diff: prev-tarball new-tarball +## Unpack the tarballs somewhere to diff them + rm -rf delta-diff + mkdir delta-diff + + ofile="../$(PACKAGE)-$(LASTRELEASE)-$(VERSION).diff.gz"; \ + cd delta-diff \ + && tar xzf "../$(PACKAGE)-$(LASTRELEASE).tar.gz" \ + && tar xzf "../$(PACKAGE)-$(VERSION).tar.gz" \ + && $(DIFF) $(DIFF_OPTIONS) \ + $(PACKAGE)-$(LASTRELEASE) $(PACKAGE)-$(VERSION) \ + | GZIP=$(GZIP_ENV) gzip -c > $$ofile \ + && $(GPG) --detach-sign $$ofile \ + && echo "directory: libtool" > $$ofile.directive \ + && $(GPG) --clearsign $$ofile.directive \ + && rm -f $$ofile.directive + + rm -rf delta-diff + +XDELTA = xdelta +XDELTA_OPTIONS = --pristine -9 + +.PHONY: delta-xdelta +delta-xdelta: prev-tarball new-tarball got-xdelta ## Generate the delta file (xdelta has wierd exit statuses, so we need to ## add some shell code to keep make happy), and then generate the signatures ## for FSF ftp-upload: - $(CHECK_LASTRELEASE); \ ofile="$(PACKAGE)-$(LASTRELEASE)-$(VERSION).xdelta"; \ ( test -z `$(XDELTA) delta $(XDELTA_OPTIONS) \ $(PACKAGE)-$(LASTRELEASE).tar.gz $(PACKAGE)-$(VERSION).tar.gz \ @@ -242,3 +259,4 @@ xdelta: prev-tarball && echo "directory: libtool" > $$ofile.directive \ && $(GPG) --clearsign $$ofile.directive \ && rm -f $$ofile.directive + diff --git a/README-alpha b/README-alpha index f3d0be70e..5a0967ef1 100644 --- a/README-alpha +++ b/README-alpha @@ -1,9 +1,8 @@ This is an alpha testing release of GNU Libtool. To get the latest CVS version of this package, do: - cvs -d :pserver:anoncvs@subversions.gnu.org:/home/cvs login - [Hit return when prompted for the password] - cvs -d :pserver:anoncvs@subversions.gnu.org:/home/cvs checkout libtool + export CVS_RSH=ssh + cvs -z3 -d :ext:anoncvs@savannah.gnu.org:/cvsroot/libtool co libtool cd libtool ./bootstrap @@ -83,56 +82,62 @@ using (by typing `libtool --version'). keys will be registered on ftp-upload.gnu.org and only then will you be authorized to upload files to the FSF ftp machines. -* Update NEWS, ChangeLog. - * Update the version number in configure.ac. See http://www.gnu.org/software/libtool/contribute.html for details of the numbering scheme. +* Update NEWS, ChangeLog. + * Run ./bootstrap. +* Run ./configure and then make. + * Run `make fetch', which will fetch new versions of the files that are maintained outside of libtool. -* Run ./configure and then make. +* Run ./commit. * Run `make cvs-dist' which will build a release tarball (with `make - distcheck'), commit the last NEWS, ChangeLog and configure.ac changes, - tag the tree with release-$(VERSION), and generate gpg signature files. - -* Run `make cvs-diff' which will create a diff file against the previous - release tag (set OLDVERSION=min.maj[.mic[alpha]] in the environment - beforehand if necessary), and generate gpg signature files. + distcheck'), tag the tree with release-$(VERSION) and generate the + gpg signature files. * Make sure you have a copy of xdelta installed, and a copy of the previous - release tarball in the build directory, then run `make xdelta', which will - create an xdelta file between this and the previous release tarballs (set - OLDVERSION=min.maj[.mic[alpha]] in the environment beforehand if necessary), - and generate gpg signature files. + release tarball in the build directory. + +* Run 'make LASTRELEASE=min.maj[.mic[alpha]] deltas' to create both diff + and xdelta files between the previous release tarball and the new with + detached gpg signature files and clear signed directive files. * Upload release tarball, diff file and xdelta file, plus their associated detached gpg signature files and clear signed directive files to - ftp-upload.gnu.org. If the upload is destined for ftp.gnu.org, then the + ftp-upload.gnu.org. If the upload is destined for ftp.gnu.org, then the files should be placed in the /incoming/ftp directory. If the upload is an alpha release destined for alpha.gnu.org, then the files should be - placed in the /incoming/alpha directory.incoming/ftp/gnu/libtool. Then send - announcement to libtool@gnu.org and autotools-announce@gnu.org. - -* If not an alpha, announcement must also go to info-gnu@gnu.org, and an - upload request be sent to ftp-upload@gnu.org requesting files be transferred - from ftp://alpha.gnu.org/gnu/libtool to ftp://ftp.gnu.org/gnu/libtool. + placed in the /incoming/alpha directory. +* Send announcement to libtool@gnu.org and autotools-announce@gnu.org, + if not an alpha send to info-gnu@gnu.org as well. + * Update version number in configure.ac to next alpha number. + See http://www.gnu.org/software/libtool/contribute.html for details of + the numbering scheme. + +* Update NEWS, ChangeLog. -* Commit. +* Run ./commit. -* Update the front libtool webpage to indicate the latest release - number, and the news page to reflect the latest release note. +* Update the webpages, libtool.html will need to indicate the latest + release number and the news page should get a HTMLified copy of your + release announcement. + +* If not an alpha, replace manual.html with the new one + (generate with cd doc && texi2html libtool.texi) ================================================================ = Alpha release note template To: libtool@gnu.org, autotools-announce@gnu.org +Subject: GNU Libtool @VERSION@ released (alpha release). The Libtool Team is pleased to announce alpha release @VERSION@ of GNU Libtool. @@ -145,7 +150,6 @@ which hides the complexity of loading dynamic runtime libraries Here are the compressed sources: ftp://alpha.gnu.org/gnu/libtool/libtool-@VERSION@.tar.gz - ftp://alpha.gnu.org/gnu/libtool/libtool-@VERSION@.tar.bz2 Here are the xdeltas and diffs against libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@: @@ -155,18 +159,15 @@ Here are the xdeltas and diffs against libtool-@PREV_RELEASE_VERSION_ON_THIS_BRA Here are the gpg detached signatures: ftp://alpha.gnu.org/gnu/libtool/libtool-@VERSION@.tar.gz.sig - ftp://alpha.gnu.org/gnu/libtool/libtool-@VERSION@.tar.bz2.sig ftp://alpha.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz.sig ftp://alpha.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta.sig Here are the MD5 and SHA1 checksums: @MD5SUM@ libtool-@VERSION@.tar.gz - @MD5SUM@ libtool-@VERSION@.tar.bz2 @MD5SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz @MD5SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta @SHA1SUM@ libtool-@VERSION@.tar.gz - @SHA1SUM@ libtool-@VERSION@.tar.bz2 @SHA1SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz @SHA1SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta @@ -177,12 +178,10 @@ but is useable with @COMPATIBLE_AUTOTOOL_VERSIONS@ in your own projects. Alternatively, you can fetch the unbootstrapped sourcecode from -anonymous cvs by using the following commands (just hit return when -you are prompted for the password): - - $ cvs -z3 -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/libtool login - Password: - $ cvs -z3 -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/libtool \ +anonymous cvs by using the following commands: + + $ export CVS_RSH=ssh + $ cvs -z3 -d :ext:anoncvs@savannah.gnu.org:/cvsroot/libtool \ co -r @CVS_RELEASE_TAG@ libtool You will then need to have recent (possibly as yet unreleased) versions @@ -200,6 +199,7 @@ Please report bugs to . To: info-gnu@gnu.org Cc: libtool@gnu.org, autotools-announce@gnu.org +Subject: GNU Libtool @VERSION@ released. The Libtool Team is pleased to announce the release of GNU Libtool @VERSION@. @@ -225,7 +225,6 @@ use a mirror to reduce stress on the main gnu machine: Here are the compressed sources: ftp://ftp.gnu.org/gnu/libtool/libtool-@VERSION@.tar.gz - ftp://ftp.gnu.org/gnu/libtool/libtool-@VERSION@.tar.bz2 Here are the xdeltas and diffs against libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@: @@ -235,18 +234,15 @@ Here are the xdeltas and diffs against libtool-@PREV_RELEASE_VERSION_ON_THIS_BRA Here are the gpg detached signatures: ftp://ftp.gnu.org/gnu/libtool/libtool-@VERSION@.tar.gz.sig - ftp://ftp.gnu.org/gnu/libtool/libtool-@VERSION@.tar.bz2.sig ftp://ftp.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz.sig ftp://ftp.gnu.org/gnu/libtool/libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta.sig Here are the MD5 and SHA1 checksums: @MD5SUM@ libtool-@VERSION@.tar.gz - @MD5SUM@ libtool-@VERSION@.tar.bz2 @MD5SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz @MD5SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta @SHA1SUM@ libtool-@VERSION@.tar.gz - @SHA1SUM@ libtool-@VERSION@.tar.bz2 @SHA1SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.diff.gz @SHA1SUM@ libtool-@PREV_RELEASE_VERSION_ON_THIS_BRANCH@-@VERSION@.xdelta @@ -258,9 +254,8 @@ Alternatively, you can fetch the unbootstrapped sourcecode from anonymous cvs by using the following commands (just hit return when you are prompted for the password): - $ cvs -z3 -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/libtool login - Password: - $ cvs -z3 -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/libtool \ + $ export CVS_RSH=ssh + $ cvs -z3 -d :ext:anoncvs@savannah.gnu.org:/cvsroot/libtool \ co -r @CVS_RELEASE_TAG@ libtool You will then need to have the latest release versions of Automake