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?)
(FETCHFILES): Remove obsolete libltdl mentions.
* README-alpha: Update CVS instructions as everything's changed
on Savannah.
(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; remove old reference
to OLDVERSION.
This commit is contained in:
Scott James Remnant 2004-01-27 12:38:47 +00:00
parent a702e8a9fb
commit d608987264
4 changed files with 145 additions and 81 deletions

View File

@ -1,3 +1,47 @@
2004-01-27 Scott James Remnant <scott@netsplit.com>
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?)
(FETCHFILES): Remove obsolete libltdl mentions.
* README-alpha: Update CVS instructions as everything's changed
on Savannah.
(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; remove old reference
to OLDVERSION.
2004-01-25 Scott James Remnant <scott@netsplit.com>
* NEWS: Include 1.5.2 release information.

View File

@ -87,12 +87,9 @@ install-data-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,";\
@ -115,9 +112,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 =
@ -133,7 +132,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 :; \
@ -151,9 +150,7 @@ WGETSGO = $(WGET) http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~
FETCHFILES = \
./INSTALL \
config/config.guess \
libltdl/config.guess \
config/config.sub \
libltdl/config.sub \
config/texinfo.tex
## Fetch the latest versions of files we care about.
@ -186,46 +183,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
$(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
.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
XDELTA = xdelta
XDELTA_OPTIONS = --pristine -9
.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 :;\
@ -233,10 +217,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 \
@ -246,3 +261,4 @@ xdelta: prev-tarball
&& echo "directory: libtool" > $$ofile.directive \
&& $(GPG) --clearsign $$ofile.directive \
&& rm -f $$ofile.directive

View File

@ -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,63 @@ 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 deltas' (pass LASTRELEASE=min.maj[.mic[alpha]] if needed) 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.
placed in the /incoming/alpha directory.
* 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.
* 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.
* Commit.
* Update NEWS, ChangeLog.
* Update the front libtool webpage to indicate the latest release
number, and the news page to reflect the latest release note.
* Run ./commit.
* 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.
@ -177,12 +183,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):
anonymous cvs by using the following commands:
$ 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 recent (possibly as yet unreleased) versions
@ -200,6 +204,7 @@ Please report bugs to <bug-libtool@gnu.org>.
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@.
@ -258,9 +263,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

View File

@ -58,7 +58,7 @@ test "$LT_MICRO" = "AC_PACKAGE_VERSION" && LT_MICRO=""
# Then we try to work out what the release before this one would have been
# numbered. The only time we come unstuck is when this is the first release
# from a stable branch (LT_MICRO=LT_ALPHA=""), so OLDVERSION is the last
# from a stable branch (LT_MICRO=LT_ALPHA=""), so LASTRELEASE is the last
# release from the old stable branch, and we don't know what version that
# was, so leave it unset so that the Makefile can complain.
case $LT_ALPHA in
@ -110,7 +110,7 @@ AC_SUBST([TIMESTAMP])
dnl These are bootstrap requirements, once built, libtool may work with
dnl much older releases of autoconf and automake. See release notes.
AM_INIT_AUTOMAKE([1.8 gnits]) ## We use auto-m4_including
AM_INIT_AUTOMAKE([1.8 gnits dist-bzip2]) ## We use auto-m4_including
## ------------------------------- ##