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-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.
## 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,";\
.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 =
.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 :; \
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.
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 :;\
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 \
&& echo "directory: libtool" > $$ofile.directive \
&& $(GPG) --clearsign $$ofile.directive \
&& rm -f $$ofile.directive
+
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
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.
-
-* 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.
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
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@.
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
# 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
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
## ------------------------------- ##