release revision 1ae59f0202d4dd5f41f978804b092115c6e053ea
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark AndrewsCopyright (C) 2000 Internet Software Consortium.
c40265eba0c99708887d68e67901924065ba2514Brian WellingtonSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein$Id: release,v 1.21 2000/12/21 17:39:17 tale Exp $
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox UserPreparing a bind9 release
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User
c40265eba0c99708887d68e67901924065ba2514Brian WellingtonHere's a rough outline of the steps to follow in preparing a new bind9
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark Andrewsrelease.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - Update the README file
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Send the new README file to webteam@nominum.com at least 48
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein hours prior to the planned release and ask them to prepare
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User the web pages for the new version.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Verify that the file "version" contains the correct version
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein number (it should have been incremented after the
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User previous release)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Update the lib/*/api files as needed. See the libtool
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein info file for information about what the various numbers mean.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Check that http://status.isc.org/bind9/bind9.html shows
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User a clean build and test status for all supported systems.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Check that running "make all_tests" in bin/tests does not
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User produce compile errors.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User - Regenerate the .html files in doc/arm by running genhtml.sh
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User and check them in. Note that not all machines have the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein necessary XML tools, but at least trebuchet and Scanner's
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein machine do.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User - Verify that the documents in doc/misc are up-to-date.
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews - Update the copyrights. According to tale:
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews Go to the root of the source tree.
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User The scripts need to be run from there; they reference the util
f6da30bb5447c23d880b09f601441e70c5313557Mark Andrews subdirectory internally.
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User $ make distclean
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews ... [I prefer to check out a fresh source tree --gson]
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ perl util/merge_copyrights
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ diff util/copyrights util/newcopyrights
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User ... examine output, particularly any files with the "?" type, and
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User ... then edit util/newcopyrights if necessary
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $ mv util/newcopyrights util/copyrights
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ cvs ci -m'merge_copyrights' util/copyrights
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $ perl util/update_copyrights < util/copyrights
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ cvs diff
f7b41fd9291b8f4dba27e2b57e1d93f0913a4f1dMark Andrews ... examine output, edit as necessary. mail me about anything that
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User ... the script should have been able to do itself. :-)
f7b41fd9291b8f4dba27e2b57e1d93f0913a4f1dMark Andrews $ cvs ci -m'update_copyrights'
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - Announce a CVS freeze if doing a beta release from the mainline,
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User or stop doing pullups if building from a release branch.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Run util/altbuild.sh (from the mainline). This is to make sure that
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein builds using libtool, separate source/object directories, and other
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User obscure build options work. This script may need some hacking if run
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User on anything other than NetBSD. Save the output (it's big) and look
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein for error and warning messages.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein cd $top_of_mainline_tree
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User sh util/altbuild.sh v9_0
d8620c7234281056fdfd2ee40cf16636b8281092Tinderbox User
d8620c7234281056fdfd2ee40cf16636b8281092Tinderbox User - If you can (= your system is similar enough to the one Tale is using),
d8620c7234281056fdfd2ee40cf16636b8281092Tinderbox User check the header files for cruft by running the command
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User [ This step is quite imperfect and should probably be skipped
d8620c7234281056fdfd2ee40cf16636b8281092Tinderbox User for now -- Tale ]
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
d8620c7234281056fdfd2ee40cf16636b8281092Tinderbox User find lib -name '*.h' -print | xargs perl util/check-includes.pl
d8620c7234281056fdfd2ee40cf16636b8281092Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Ensure that the JPNIC patch applies cleanly:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User XXX This is impacted by sanitize.pl
9fbbfb5757a1e3e86d7dea62c4e63ffc2303ca2bAutomatic Updater
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ sh util/sanitize_all.sh
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews $ egrep Hunk patch.out
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
d71e2e0c61df16ff37c9934c371a4a60c08974f7Mark Andrews All hunks should have applied successfully with no offset or fuzz.
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User If all succeeded but some were offset or had fuzz, the patch will be
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User regenerated at the end of this stage.
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User $ cd contrib/idn/mdnkit
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User [ Sample on netbsd ... ]
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews $ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ make
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User $ cd ../../.. ; : cd back to top level
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews $ cp configure configure.orig
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User $ autoconf
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews $ ./configure
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ make
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User ... should cleanly compile
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews $ make distclean
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User $ rm -rf /tmp/mdn
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews $ mkdir -p /tmp/mdn/{lib,include}
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews $ mdn=`pwd`/contrib/idn/mdnkit
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ cp $mdn/lib/.libs/libmdn.so /tmp/mdn/lib
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User $ cp -r $mdn/include/mdn /tmp/mdn/include
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews $ ./configure --with-mdn=/tmp/mdn --with-iconv="-L/usr/local/lib -liconv"
d71e2e0c61df16ff37c9934c371a4a60c08974f7Mark Andrews $ LD_LIBRARY_PATH=/usr/local/lib:/tmp/mdn/lib:/usr/lib make
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews ... should cleanly compile
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews [ Some tests will be added to bin/tests/system to validate operation. ]
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews Generate a fresh copy of the diffs:
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User $ patchd=$mdn/patch/bind9
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User $ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User while read i; do
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User diff -u2 $i.orig $i
a057e8e33baa5fa369be28a9680585200ce3ff73Mark Andrews done > $patchd/patch.most.new
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ cvs diff -u2 configure > $patchd/patch.configure
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User $ mv $patchd/patch.most.new $patchd
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews $ cvs ci -ko $patchd/patch.*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews - Add a marker line like " --- 9.0.0b3 released ---"
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User to the CHANGES file.
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User - Tag the CVS source tree with the final tag, as in
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User "cvs rtag v9_0_0b3 bind9" (mainline) or
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User "cvs rtag -r v9_0 v9_0_0rc1 bind9" (release branch).
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews
72938578c985138165e7a4b0a38f16daacbad95eAutomatic Updater - Build the release kit. This procedure differs
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User between the 9.0 release branch and the mainline.
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews On the release branch,
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews cd <temporary directory>
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews cvs export -r v9_0_0rc6 bind9
72938578c985138165e7a4b0a38f16daacbad95eAutomatic Updater cd bind9
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User sh configure
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User make kit
dba3c818ae00b10388d31703e86a28415db398acTinderbox User
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User On the mainline, use the "util/kit.sh" script.
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User - Build bind9 from the kit on at least one machine
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User and test it. Run it as a caching name server.
dba3c818ae00b10388d31703e86a28415db398acTinderbox User If you can, try resolving some IPv6 addresses and
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User doing queries over IPv6.
dba3c818ae00b10388d31703e86a28415db398acTinderbox User
72938578c985138165e7a4b0a38f16daacbad95eAutomatic Updater - If problems are found at this stage, fix them, move the
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User release tag up using "rtag -F", and respin the kit.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Take the resulting distribution files to a secure system
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User and sign them with the ISC signing PGP key:
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User pgp -sba bind-9.1.0b1.tar.gz -u 0x51BAB2ED
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User - Fix the permissions on the signature file:
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User chmod 644 bind-9.1.0b1.tar.gz.asc
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
0e1dece22e128f9dfa723316a35c4b3f06912381Tinderbox User - Verify the PGP signature:
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
0e1dece22e128f9dfa723316a35c4b3f06912381Tinderbox User pgp bind-9.1.0b1.tar.gz.asc bind-9.1.0b1.tar.gz
0e1dece22e128f9dfa723316a35c4b3f06912381Tinderbox User
0e1dece22e128f9dfa723316a35c4b3f06912381Tinderbox User - Prepare a release announcement based on the previous one.
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User
0e1dece22e128f9dfa723316a35c4b3f06912381Tinderbox User - Copy the distribution and PGP signature files to the FTP site:
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
97e74139b19368e385a3564746d42db70879195eAutomatic Updater ver=9.1.0b1
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind9/$ver"
43b94483957d3168796a816ed86cf097518817dcTinderbox User scp bind-$ver.tar.gz bind-$ver.tar.gz.asc \
dba3c818ae00b10388d31703e86a28415db398acTinderbox User isrv4.pa.vix.com:/udir/ftp/isc/bind9/$ver
dba3c818ae00b10388d31703e86a28415db398acTinderbox User
dba3c818ae00b10388d31703e86a28415db398acTinderbox User - Download using FTP (or Netscape) using the URLs in the release
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User announcement and verify the PGP signature again
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Increment the version in the file "version"
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User - Resume doing pullups
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User - Announce the release on bind-announce@isc.org
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
3b4098640dd85040270f39b9a5ee5e22de99d3d6Mark Andrews