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.
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User$Id: release,v 1.56 2003/07/22 06:03:54 marka Exp $
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox UserPreparing a bind9 release
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox UserHere's a rough outline of the steps to follow in preparing a new bind9
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User - Update the README file
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 - Do a "cvs update" to check that all changes have been committed.
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)
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 perl util/check-pullups.pl CHANGES ../9.2/CHANGES ../9.2/EXCLUDED
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User This will list all bug fixes on the mainline that are not
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User on the 9.2 release branch.
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.
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 - Check that running "make all_tests" in bin/tests does not
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User produce compile errors.
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 - Verify that the documents in doc/misc are up-to-date.
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User - Update the copyrights. According to tale:
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.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ make distclean
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User ... [I prefer to check out a fresh source tree --gson]
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User ... examine output, particularly any files with the "?" type, and
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User ... then edit util/newcopyrights if necessary
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ cvs ci -m'merge_copyrights' util/copyrights
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ perl util/update_copyrights < util/copyrights
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'
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.
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 cd $top_of_mainline_tree
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User cd $top_of_9_1_tree
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 - 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 find lib -name '*.h' -print | xargs perl util/check-includes.pl
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Ensure that the JPNIC patch applies cleanly:
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.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $ patch -p0 < contrib/idn/mdnkit/patch/bind9/patch.most > patch.out 2>&1
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 [ Sample on netbsd ... ]
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ CFLAGS=-I/usr/local/include ./configure '--with-iconv=-L/usr/local/lib -liconv'
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 $ cd ../../.. ; : cd back to top level
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ ./configure
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User ... should cleanly compile
a24330c4805a224191ab687d0291963062fe3355Tinderbox User $ make distclean
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 [ Some tests will be added to bin/tests/system to validate operation. ]
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User Generate a fresh copy of the diffs:
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User $ awk '/^\+\+\+ / {print $2}' $patchd/patch.most |
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User while read i; do
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.*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User - Add a marker line like " --- 9.0.0rc10 released ---"
9c8c1a04853db32f2578a269cab9239c4f4c8b9bTinderbox User to the CHANGES file.
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 - 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,
2eeb74d1cf5355dd98f6d507a10086e16bb08c4bTinderbox User cd <temporary directory>
49f29a1d550c15d691b5a9162bc089d0fba12adfTinderbox User cvs export -r v9_0_0rc10 bind9
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User On the 9.[1-2] release branch or mainline, use the
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.
gunzip <bind-$ver.tar.gz | tar xfv -
/var/named/keep-running ns-ext &
gunzip <bind-$ver.tar.gz | tar xfv -
/var/named/keep-running9 rc-res1 &
/var/named/keep-running9 ns-int &
pgp -sba bind-$ver.tar.gz -u 0x51BAB2ED
chmod 644 bind-$ver.tar.gz.asc
pgp -sba BIND$ver.zip -u 0x51BAB2ED
chmod 644 BIND$ver.zip.asc