mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-22 18:19:42 +00:00
202 lines
6.7 KiB
Plaintext
202 lines
6.7 KiB
Plaintext
Copyright (C) 2000, 2001 Internet Software Consortium.
|
|
See COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
|
|
|
|
$Id: release,v 1.35 2001/05/30 23:05:12 bwelling Exp $
|
|
|
|
Preparing a bind9 release
|
|
|
|
Here's a rough outline of the steps to follow in preparing a new bind9
|
|
release.
|
|
|
|
- Do a "cvs update" to check that all changes have been committed.
|
|
|
|
- Update the README file
|
|
|
|
- Send the new README file to webteam@nominum.com at least 48
|
|
hours prior to the planned release and ask them to prepare
|
|
the web pages for the new version. If there have been only
|
|
minor changes, send context diffs relative to the previous
|
|
release instead.
|
|
|
|
- Verify that the file "version" contains the correct version
|
|
number (it should have been incremented after the
|
|
previous release)
|
|
|
|
- Update the lib/*/api files as needed. See the libtool
|
|
info file for information about what the various numbers mean.
|
|
|
|
- If building from a release branch, check that any important
|
|
bug fixes made on the mainline since the last release have
|
|
been pulled up. You can do this by comparing the CHANGES
|
|
files using the util/check-pullups.pl script. For example,
|
|
running the script from a mainline tree:
|
|
|
|
perl util/check-pullups.pl CHANGES ../9.1/CHANGES
|
|
|
|
This will list all bug fixes on the mainline that are not
|
|
on the 9.1 release branch.
|
|
|
|
- Check that http://status.isc.org/bind9/bind9.html shows
|
|
a clean build and test status for all supported systems.
|
|
|
|
- Check that running "make all_tests" in bin/tests does not
|
|
produce compile errors.
|
|
|
|
- Regenerate the documentation by running "make man" (mainline)
|
|
or by running genhtml.sh in doc/arm (9.1 release branch)
|
|
and commit it. Note that not all machines have the
|
|
necessary XML tools, but at least trebuchet, cuba,
|
|
and Scanner's machine do.
|
|
|
|
- Verify that the documents in doc/misc are up-to-date.
|
|
|
|
- Update the copyrights. According to tale:
|
|
|
|
Go to the root of the source tree.
|
|
The scripts need to be run from there; they reference the util
|
|
subdirectory internally.
|
|
|
|
$ make distclean
|
|
... [I prefer to check out a fresh source tree --gson]
|
|
$ perl util/merge_copyrights
|
|
$ diff util/copyrights util/newcopyrights
|
|
... examine output, particularly any files with the "?" type, and
|
|
... then edit util/newcopyrights if necessary
|
|
$ mv util/newcopyrights util/copyrights
|
|
$ cvs ci -m'merge_copyrights' util/copyrights
|
|
$ perl util/update_copyrights < util/copyrights
|
|
$ cvs diff
|
|
... examine output, edit as necessary. mail me about anything that
|
|
... the script should have been able to do itself. :-)
|
|
$ cvs ci -m'update_copyrights'
|
|
|
|
- Announce a CVS freeze if doing a beta release from the mainline,
|
|
or stop doing pullups if building from a release branch.
|
|
|
|
- Run util/altbuild.sh. This is to make sure that
|
|
builds using libtool, separate source/object directories, and other
|
|
obscure build options work. This script may need some hacking if run
|
|
on anything other than NetBSD. Save the output (it's big) and look
|
|
for error and warning messages.
|
|
|
|
cd $top_of_mainline_tree
|
|
sh util/altbuild.sh v9_0
|
|
|
|
or
|
|
|
|
cd $top_of_9_1_tree
|
|
sh util/altbuild.sh v9_1
|
|
|
|
- If you can (= your system is similar enough to the one Tale is using),
|
|
check the header files for cruft by running the command
|
|
[ This step is quite imperfect and should probably be skipped
|
|
for now -- Tale ]
|
|
|
|
find lib -name '*.h' -print | xargs perl util/check-includes.pl
|
|
|
|
- Ensure that the JPNIC patch applies cleanly:
|
|
|
|
If you don't have the "iconv" library, you need to get it from
|
|
http://clisp.cons.org/~haible/packages-libiconv.html and install it.
|
|
|
|
$ sh util/sanitize_all.sh
|
|
$ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
|
|
$ egrep Hunk patch.out
|
|
|
|
All hunks should have applied successfully with no offset or fuzz.
|
|
If all succeeded but some were offset or had fuzz, the patch will be
|
|
regenerated at the end of this stage.
|
|
|
|
$ cd contrib/idn/mdnkit
|
|
[ Sample on netbsd ... ]
|
|
$ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
|
|
$ make
|
|
$ cd ../../.. ; : cd back to top level
|
|
$ cp configure configure.orig
|
|
$ autoconf
|
|
$ ./configure
|
|
|
|
$ make
|
|
... should cleanly compile
|
|
$ make distclean
|
|
$ rm -rf /tmp/mdn
|
|
$ mkdir -p /tmp/mdn/{lib,include}
|
|
$ mdn=`pwd`/contrib/idn/mdnkit
|
|
$ cp $mdn/lib/.libs/libmdn.so /tmp/mdn/lib
|
|
$ cp -r $mdn/include/mdn /tmp/mdn/include
|
|
$ ./configure --with-mdn=/tmp/mdn --with-iconv="-L/usr/local/lib -liconv"
|
|
$ LD_LIBRARY_PATH=/usr/local/lib:/tmp/mdn/lib:/usr/lib make
|
|
... should cleanly compile
|
|
|
|
[ Some tests will be added to bin/tests/system to validate operation. ]
|
|
|
|
Generate a fresh copy of the diffs:
|
|
|
|
$ patchd=$mdn/patch/bind9
|
|
$ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
|
|
while read i; do
|
|
diff -u2 $i.orig $i
|
|
done > $patchd/patch.most.new
|
|
$ cvs diff -u2 configure > $patchd/patch.configure
|
|
$ mv $patchd/patch.most.new $patchd
|
|
$ cvs ci -ko $patchd/patch.*
|
|
|
|
- Add a marker line like " --- 9.0.0rc1 released ---"
|
|
to the CHANGES file.
|
|
|
|
- Tag the CVS source tree with the final tag, as in
|
|
"cvs rtag v9_0_0rc1 bind9" (mainline) or
|
|
"cvs rtag -r v9_1 v9_1_1rc7 bind9" (release branch).
|
|
|
|
- Build the release kit. This procedure differs
|
|
between the 9.0 release branch and later versions.
|
|
On the 9.0 release branch,
|
|
|
|
cd <temporary directory>
|
|
cvs export -r v9_0_0rc7 bind9
|
|
cd bind9
|
|
sh configure
|
|
make kit
|
|
|
|
On the 9.1 release branch or mainline, use the
|
|
"util/kit.sh" script.
|
|
|
|
- Build bind9 from the kit on at least one machine
|
|
and test it. Run it as a caching name server.
|
|
If you can, try resolving some IPv6 addresses and
|
|
doing queries over IPv6.
|
|
|
|
- If problems are found at this stage, fix them, move the
|
|
release tag up using "rtag -F", and respin the kit.
|
|
|
|
- Sign the distribution files with the ISC signing PGP key
|
|
and fix the permissions on the signature file:
|
|
|
|
pgp -sba bind-9.1.3rc1.tar.gz -u 0x51BAB2ED
|
|
chmod 644 bind-9.1.3rc1.tar.gz.asc
|
|
|
|
- Verify the PGP signature:
|
|
|
|
pgp bind-9.1.3rc1.tar.gz.asc bind-9.1.3rc1.tar.gz
|
|
|
|
(Look for the words "Good signature" in the output.)
|
|
|
|
- Prepare a release announcement based on the previous one.
|
|
|
|
- Copy the distribution and PGP signature files to the FTP site:
|
|
|
|
ver=9.1.3rc1
|
|
ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind9/$ver"
|
|
scp bind-$ver.tar.gz bind-$ver.tar.gz.asc \
|
|
isrv4.pa.vix.com:/udir/ftp/isc/bind9/$ver
|
|
|
|
- Download using FTP (or Netscape) using the URLs in the release
|
|
announcement and verify the PGP signature again
|
|
|
|
- Increment the version in the file "version"
|
|
|
|
- Resume doing pullups
|
|
|
|
- Announce the release on bind-announce@isc.org
|
|
|