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.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein$Id: release,v 1.21 2000/12/21 17:39:17 tale Exp $
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox UserPreparing a bind9 release
c40265eba0c99708887d68e67901924065ba2514Brian WellingtonHere's a rough outline of the steps to follow in preparing a new bind9
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - Update the README file
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.
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)
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 - Check that http://status.isc.org/bind9/bind9.html shows
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User a clean build and test status for all supported systems.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Check that running "make all_tests" in bin/tests does not
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User produce compile errors.
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
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User - Verify that the documents in doc/misc are up-to-date.
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews - Update the copyrights. According to tale:
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.
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User $ make distclean
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews ... [I prefer to check out a fresh source tree --gson]
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User ... examine output, particularly any files with the "?" type, and
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User ... then edit util/newcopyrights if necessary
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ cvs ci -m'merge_copyrights' util/copyrights
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'
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.
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.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein cd $top_of_mainline_tree
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 ]
d8620c7234281056fdfd2ee40cf16636b8281092Tinderbox User find lib -name '*.h' -print | xargs perl util/check-includes.pl
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Ensure that the JPNIC patch applies cleanly:
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User XXX This is impacted by sanitize.pl
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
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 [ Sample on netbsd ... ]
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews $ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User $ cd ../../.. ; : cd back to top level
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews $ ./configure
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User ... should cleanly compile
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews $ make distclean
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews $ mkdir -p /tmp/mdn/{lib,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
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews [ Some tests will be added to bin/tests/system to validate operation. ]
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews Generate a fresh copy of the diffs:
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User $ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User while read i; do
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ cvs diff -u2 configure > $patchd/patch.configure
3a3705ef7747327df182bf8d009333d2472253d5Mark Andrews $ cvs ci -ko $patchd/patch.*
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews - Add a marker line like " --- 9.0.0b3 released ---"
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User to the CHANGES file.
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).
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,
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews cd <temporary directory>
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews cvs export -r v9_0_0rc6 bind9
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User On the mainline, use the "util/kit.sh" script.
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.
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.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Take the resulting distribution files to a secure system
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User and sign them with the ISC signing PGP key:
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User pgp -sba bind-9.1.0b1.tar.gz -u 0x51BAB2ED
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User - Fix the permissions on the signature file:
0e1dece22e128f9dfa723316a35c4b3f06912381Tinderbox User - Verify the PGP signature:
0e1dece22e128f9dfa723316a35c4b3f06912381Tinderbox User pgp bind-9.1.0b1.tar.gz.asc bind-9.1.0b1.tar.gz
0e1dece22e128f9dfa723316a35c4b3f06912381Tinderbox User - Prepare a release announcement based on the previous one.
0e1dece22e128f9dfa723316a35c4b3f06912381Tinderbox User - Copy the distribution and PGP signature files to the FTP site:
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User ssh -n isrv4.pa.vix.com "mkdir /udir/ftp/isc/bind9/$ver"
dba3c818ae00b10388d31703e86a28415db398acTinderbox User - Download using FTP (or Netscape) using the URLs in the release
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User announcement and verify the PGP signature again
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Increment the version in the file "version"
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User - Resume doing pullups
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User - Announce the release on bind-announce@isc.org