release revision 1e730144b4cbb0767510f5f6adef6666bf861bbb
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox UserCopyright (C) 2000-2002 Internet Software Consortium.
663272199096ed57917f2bfb1d748a0a622b7b24Tinderbox UserSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
663272199096ed57917f2bfb1d748a0a622b7b24Tinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User$Id: release,v 1.56 2003/07/22 06:03:54 marka Exp $
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox UserPreparing a bind9 release
663272199096ed57917f2bfb1d748a0a622b7b24Tinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox UserHere's a rough outline of the steps to follow in preparing a new bind9
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox Userrelease.
663272199096ed57917f2bfb1d748a0a622b7b24Tinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User - Update the README file
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User - Send the new README file to webteam@nominum.com at least 48
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User hours prior to the planned release and ask them to prepare
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User the web pages for the new version. If there have been only
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User minor changes, send context diffs relative to the previous
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User release instead.
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User - Do a "cvs update" to check that all changes have been committed.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User - Verify that the file "version" contains the correct version
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User number (it should have been incremented after the
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User previous release)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User - If building from a release branch, check that any important
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User bug fixes made on the mainline since the last release have
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User been pulled up. You can do this by comparing the CHANGES
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User files using the util/check-pullups.pl script. For example,
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User running the script from a mainline tree:
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User perl util/check-pullups.pl CHANGES ../9.2/CHANGES ../9.2/EXCLUDED
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User This will list all bug fixes on the mainline that are not
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User on the 9.2 release branch.
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User - Before creating a new release branch, update the lib/*/api files
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User as needed. See the libtool info file for information about what
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User the various numbers mean.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User - Check that http://status.isc.org/bind9/bind9.html
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User shows a clean build and test status for all supported
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User systems and that the tests are actually being run on the
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User version being released (the version can be found in the
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User page behind the "Source tar build" link).
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User - Check that running "make all_tests" in bin/tests does not
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User produce compile errors.
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User - Regenerate the documentation by running "make man" (mainline/9.2)
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User or by running genhtml.sh in doc/arm (9.1 release branch)
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User and commit it. Note that not all machines have the
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User necessary XML tools, but at least trebuchet, cuba,
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User and Scanner's machine do. Commit any files that were
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User regenerated.
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User - Verify that the documents in doc/misc are up-to-date.
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User - Update the copyrights. According to tale:
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User Go to the root of the source tree.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User The scripts need to be run from there; they reference the util
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User subdirectory internally.
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ make distclean
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User ... [I prefer to check out a fresh source tree --gson]
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User $ perl util/merge_copyrights
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ diff util/copyrights util/newcopyrights
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User ... examine output, particularly any files with the "?" type, and
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User ... then edit util/newcopyrights if necessary
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ mv util/newcopyrights util/copyrights
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ cvs ci -m'merge_copyrights' util/copyrights
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ perl util/update_copyrights < util/copyrights
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ cvs diff
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User ... examine output, edit as necessary. mail me about anything that
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User ... the script should have been able to do itself. :-)
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User $ cvs ci -m'update_copyrights'
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Announce a CVS freeze if doing an alpha or beta release from
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User the mainline, or stop doing pullups if building from a release branch.
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User
79f0eedd657d75889009226aa7ce23eeac28df5cMark Andrews - Run util/altbuild.sh. This is to make sure that
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User builds using libtool, separate source/object directories, and other
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User obscure build options work. This script may need some hacking if run
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User on anything other than NetBSD. Save the output (it's big) and look
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User for error and warning messages.
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User cd $top_of_mainline_tree
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User sh util/altbuild.sh v9_0
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User or
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User cd $top_of_9_1_tree
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User sh util/altbuild.sh v9_1
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User Alteratively, you can do this after building the kit, by giving
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User the kit .tar.gz file as an argument to altbuild.sh instad of
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User the CVS tag.
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User - If you can (= your system is similar enough to the one Tale is using),
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User check the header files for cruft by running the command
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User [ This step is quite imperfect and should probably be skipped
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User for now -- Tale ]
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User find lib -name '*.h' -print | xargs perl util/check-includes.pl
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Ensure that the JPNIC patch applies cleanly:
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User If you don't have the "iconv" library, you need to get it from
a24330c4805a224191ab687d0291963062fe3355Tinderbox User http://clisp.cons.org/~haible/packages-libiconv.html and install it.
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ sh util/sanitize_all.sh
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ egrep Hunk patch.out
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User All hunks should have applied successfully with no offset or fuzz.
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User If all succeeded but some were offset or had fuzz, the patch will be
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User regenerated at the end of this stage.
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ cd contrib/idn/idnkit-1.0-src
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User [ Sample on netbsd ... ]
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User FreeBSD has giconv.
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User ./configure --with-iconv-include=/usr/local/include \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User '--with-iconv=-L/usr/local/lib -lgiconv'
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ make
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ cd ../../.. ; : cd back to top level
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ cp configure configure.orig
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ autoconf
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ ./configure
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ make
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User ... should cleanly compile
a24330c4805a224191ab687d0291963062fe3355Tinderbox User $ make distclean
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ rm -rf /tmp/idn
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ mkdir -p /tmp/idn/lib /tmp/idn/include
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ idn=contrib/idn/idnkit-1.0-src
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ cp $idn/lib/.libs/libidnkit.so* /tmp/idn/lib
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ cp -r $idn/include/mdn $idn/include/idn /tmp/idn/include
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ ./configure --with-idn=/tmp/idn --with-iconv="-L/usr/local/lib -liconv"
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ LD_LIBRARY_PATH=/usr/local/lib:/tmp/idn/lib:/usr/lib make
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User ... should cleanly compile
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User [ Some tests will be added to bin/tests/system to validate operation. ]
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User Generate a fresh copy of the diffs:
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ patchd=$idn/patch/bind9
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User while read i; do
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User diff -u2 $i.orig $i
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User done > $patchd/patch.most.new
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ cvs diff -u2 configure > $patchd/patch.configure
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ mv $patchd/patch.most.new $patchd/patch.most
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ cvs ci -ko $patchd/patch.*
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Add a marker line like " --- 9.0.0rc10 released ---"
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User to the CHANGES file.
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Tag the CVS source tree with the final tag, as in
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User "cvs rtag v9_0_0rc1 bind9" (mainline) or
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User "cvs rtag -r v9_2 v9_2_0rc10 bind9" (release branch).
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User - Build the release kit. This procedure differs
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User between the 9.0 release branch and later versions.
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User On the 9.0 release branch,
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User cd <temporary directory>
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User cvs export -r v9_0_0rc10 bind9
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User cd bind9
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User sh configure
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User make kit
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User On the 9.[1-2] release branch or mainline, use the
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User "util/kit.sh" script.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Build bind9 from the kit on ns-ext (phred)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User and ns-int (rc), install it, and let it run for
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User a day keeping an eye on it for any problems.
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User ssh phred.isc.org
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User ver=9.2.0
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User scp rc.isc.org:bind-$ver.tar.gz .
gunzip <bind-$ver.tar.gz | tar xfv -
cd bind-$ver
sh configure
make
su
make install
ps -elf | grep named
# kill both the keep-running script and named itself
/var/named/keep-running ns-ext &
ssh rc
ver=9.2.0
gunzip <bind-$ver.tar.gz | tar xfv -
cd bind-$ver
sh configure
make
su
make install
mv /usr/local/sbin/named /usr/local/sbin/named9
ps -elf | grep named
# kill both keep-running scripts and both named9:s
/var/named/keep-running9 rc-res1 &
/var/named/keep-running9 ns-int &
- 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:
ver=9.2.0
pgp -sba bind-$ver.tar.gz -u 0x51BAB2ED
chmod 644 bind-$ver.tar.gz.asc
- Verify the PGP signature:
pgp bind-$ver.tar.gz.asc bind-$ver.tar.gz
(Look for the words "Good signature" in the output.)
- If there is a companion binary kit for NT, sign it and verify the
signature:
scp rc.isc.org:/udir/mayer/BIND$ver.zip .
pgp -sba BIND$ver.zip -u 0x51BAB2ED
chmod 644 BIND$ver.zip.asc
pgp BIND$ver.zip.asc BIND$ver.zip
- Prepare a release announcement based on the previous one.
- Copy the distribution and PGP signature files to the FTP site:
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
- If there is a companion binary kit for NT, copy it, too:
ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind/contrib/ntbind-$ver"
scp BIND$ver.zip BIND$ver.zip.asc \
isrv4.pa.vix.com:/udir/ftp/isc/bind/contrib/ntbind-$ver
- Download using FTP (or a web browser) using the URLs in the release
announcement and verify the PGP signature again
- Ask webteam@nominum.com to publish the updated web pages
- When the web pages are up, announce the release on
bind-announce@isc.org
- Increment the version in the file "version"
- Resume doing pullups