freebsd-nq/contrib/bind9/FREEBSD-Upgrade
Doug Barton a6861a2eb3 These files are not part of the distribution.
Brought to you by:	PEBCAK
2007-12-02 19:21:31 +00:00

121 lines
4.0 KiB
Plaintext

FreeBSD maintainer's guide to updating BIND 9
=============================================
1) Obtain the latest source distribution from the ISC's FTP server
(ftp://ftp.isc.org/isc/bind9/)
2) Unpack the tarball in a suitable directory, and cd into the new
source directory.
3) Remove unwanted files and directories:
$ while read pattern ; do rm -rf $pattern ; done \
</usr/src/contrib/bind9/FREEBSD-Xlist
Make sure that took care of everything, and if it didn't, make sure
to update FREEBSD-Xlist so you won't miss it the next time. A good
way to do this is to run a test import and see if any new files
show up:
$ cvs -q -n import src/contrib/bind9 ISC x | grep \^N
4) Import the sources:
$ cvs import -m "Vendor import of BIND 9.X.Y" \
src/contrib/bind9 ISC BIND_9_X_Y
5) Resolve conflicts.
As of 2 June 2007, we have no local patches against BIND 9; thus
there are no conflicts to merge. This may change at a later date.
5a) Remove any files that are no longer in the tarball from the vendor branch.
6) Remove any references to the {bin,lib}/tests and docutil
directories from the configure and Makefile templates:
$ sed -i.orig -e '/\/tests/d; /docutil/d; /\/xsl/d;' \
configure.in Makefile.in */Makefile.in
Please do not commit this change, as it would unnecessarily take
files off the vendor branch. You only need this to generate
config.h.
7) Generate and run configure:
$ aclocal
$ autoheader
$ autoconf
$ ./configure --prefix=/usr \
--infodir=/usr/share/info --mandir=/usr/share/man \
--enable-threads --enable-libbind --disable-ipv6 \
--enable-getifaddrs --disable-linux-caps \
--with-openssl=/usr --with-randomdev=/dev/random
Note that we intentionally disable IPv6 support on the configure
command line; src/lib/bind/config.mk will re-enable it at compile
time if WITHOUT_INET6 is not defined.
8) Copy the following generated files to src/lib/bind and commit them:
Path in src/contrib/bind9 Path in src/lib/bind
------------------------------------------------------------
s=/usr/src/lib/bind
cp config.h ${s}/config.h
cp lib/bind/config.h ${s}/bind/config.h
cp lib/bind/port_after.h ${s}/bind/port_after.h
cp lib/bind/port_before.h ${s}/bind/port_before.h
cp lib/isc/include/isc/platform.h ${s}/isc/isc/platform.h
cp lib/lwres/include/lwres/netdb.h ${s}/lwres/lwres/netdb.h
cp lib/lwres/include/lwres/platform.h ${s}/lwres/lwres/platform.h
Do not commit any other file that was modified or created in
steps 6) or 7).
9) cd src/lib/bind/dns && make -DMAINTAINER_MODE generate && rm gen
Commit the new versions of the files generated.
The following directories contain Makefiles for bits and pieces of
BIND 9:
FreeBSD directory ISC directory
========================================================
src/lib/bind bind9/lib
src/lib/bind/bind bind9/lib/bind
src/lib/bind/bind9 bind9/lib/bind9
src/lib/bind/dns bind9/lib/dns
src/lib/bind/isc bind9/lib/isc
src/lib/bind/isccc bind9/lib/isccc
src/lib/bind/isccfg bind9/lib/isccfg
src/lib/bind/lwres bind9/lib/lwres
src/share/doc/bind9 bind9/doc/{arm,misc}
src/usr.bin/dig bind9/bin/dig
src/usr.bin/host bind9/bin/dig
src/usr.bin/nslookup bind9/bin/dig
src/usr.bin/nsupdate bind9/bin/nsupdate
src/usr.sbin/dnssec-keygen bind9/bin/dnssec
src/usr.sbin/dnssec-signzone bind9/bin/dnssec
src/usr.sbin/named bind9/bin/named
src/usr.sbin/named-checkconf bind9/bin/check
src/usr.sbin/named-checkzone bind9/bin/check
src/usr.sbin/rndc bind9/bin/rndc
src/usr.sbin/rndc-confgen bind9/bin/rndc
Make sure that the lists of sources, headers and man pages in each
FreeBSD Makefile accurately reflects those in the corresponding ISC
Makefile. Please strive to keep those lists in the same order and
with line breaks in the same places to ease future comparisons.
A) Build and test.
B) Lather, rinse, repeat.
C) Commit when everything builds cleanly and works properly.
-- des@FreeBSD.org
-- dougb@FreeBSD.org
$FreeBSD$