3 FreeBSD maintainer's guide to updating BIND 9
4 =============================================
6 1) Obtain the latest source distribution from the ISC's FTP server
7 (ftp://ftp.isc.org/isc/bind9/)
9 2) Unpack the tarball in a suitable directory, and cd into the new
12 3) Remove unwanted files and directories:
14 $ while read pattern ; do rm -rf $pattern ; done \
15 </usr/src/contrib/bind9/FREEBSD-Xlist
17 Make sure that took care of everything, and if it didn't, make sure
18 to update FREEBSD-Xlist so you won't miss it the next time. A good
19 way to do this is to run a test import and see if any new files
22 $ cvs -q -n import src/contrib/bind9 ISC x | grep \^N
24 4) Import the sources:
26 $ cvs import -m "Vendor import of BIND 9.X.Y" \
27 src/contrib/bind9 ISC BIND_9_X_Y
31 As of 2 June 2007, we have no local patches against BIND 9; thus
32 there are no conflicts to merge. This may change at a later date.
34 5a) Remove any files that are no longer in the tarball from the vendor branch.
36 6) Remove any references to the {bin,lib}/tests and docutil
37 directories from the configure and Makefile templates:
39 $ sed -i.orig -e '/\/tests/d; /docutil/d; /\/xsl/d;' \
40 configure.in Makefile.in */Makefile.in
42 Please do not commit this change, as it would unnecessarily take
43 files off the vendor branch. You only need this to generate
46 7) Generate and run configure:
51 $ ./configure --prefix=/usr \
52 --infodir=/usr/share/info --mandir=/usr/share/man \
53 --enable-threads --enable-libbind --disable-ipv6 \
54 --enable-getifaddrs --disable-linux-caps \
55 --with-openssl=/usr --with-randomdev=/dev/random
57 Note that we intentionally disable IPv6 support on the configure
58 command line; src/lib/bind/config.mk will re-enable it at compile
59 time if WITHOUT_INET6 is not defined.
61 8) Copy the following generated files to src/lib/bind and commit them:
63 Path in src/contrib/bind9 Path in src/lib/bind
64 ------------------------------------------------------------
66 cp config.h ${s}/config.h
67 cp lib/bind/config.h ${s}/bind/config.h
68 cp lib/bind/port_after.h ${s}/bind/port_after.h
69 cp lib/bind/port_before.h ${s}/bind/port_before.h
70 cp lib/isc/include/isc/platform.h ${s}/isc/isc/platform.h
71 cp lib/lwres/include/lwres/netdb.h ${s}/lwres/lwres/netdb.h
72 cp lib/lwres/include/lwres/platform.h ${s}/lwres/lwres/platform.h
74 Do not commit any other file that was modified or created in
77 9) cd src/lib/bind/dns && make -DMAINTAINER_MODE generate && rm gen
78 Commit the new versions of the files generated.
80 The following directories contain Makefiles for bits and pieces of
83 FreeBSD directory ISC directory
84 ========================================================
85 src/lib/bind bind9/lib
86 src/lib/bind/bind bind9/lib/bind
87 src/lib/bind/bind9 bind9/lib/bind9
88 src/lib/bind/dns bind9/lib/dns
89 src/lib/bind/isc bind9/lib/isc
90 src/lib/bind/isccc bind9/lib/isccc
91 src/lib/bind/isccfg bind9/lib/isccfg
92 src/lib/bind/lwres bind9/lib/lwres
93 src/share/doc/bind9 bind9/doc/{arm,misc}
94 src/usr.bin/dig bind9/bin/dig
95 src/usr.bin/host bind9/bin/dig
96 src/usr.bin/nslookup bind9/bin/dig
97 src/usr.bin/nsupdate bind9/bin/nsupdate
98 src/usr.sbin/dnssec-keygen bind9/bin/dnssec
99 src/usr.sbin/dnssec-signzone bind9/bin/dnssec
100 src/usr.sbin/named bind9/bin/named
101 src/usr.sbin/named-checkconf bind9/bin/check
102 src/usr.sbin/named-checkzone bind9/bin/check
103 src/usr.sbin/rndc bind9/bin/rndc
104 src/usr.sbin/rndc-confgen bind9/bin/rndc
106 Make sure that the lists of sources, headers and man pages in each
107 FreeBSD Makefile accurately reflects those in the corresponding ISC
108 Makefile. Please strive to keep those lists in the same order and
109 with line breaks in the same places to ease future comparisons.
113 B) Lather, rinse, repeat.
115 C) Commit when everything builds cleanly and works properly.