]> CyberLeo.Net >> Repos - FreeBSD/releng/7.2.git/blob - contrib/bind9/FREEBSD-Upgrade
Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.
[FreeBSD/releng/7.2.git] / contrib / bind9 / FREEBSD-Upgrade
1
2
3             FreeBSD maintainer's guide to updating BIND 9
4             =============================================
5
6 1) Obtain the latest source distribution from the ISC's FTP server
7    (ftp://ftp.isc.org/isc/bind9/)
8
9 2) Unpack the tarball in a suitable directory, and cd into the new
10    source directory.
11
12 3) Remove unwanted files and directories:
13
14         $ while read pattern ; do rm -rf $pattern ; done \
15                 </usr/src/contrib/bind9/FREEBSD-Xlist
16
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
20    show up:
21
22         $ cvs -q -n import src/contrib/bind9 ISC x | grep \^N
23
24 4) Import the sources:
25
26         $ cvs import -m "Vendor import of BIND 9.X.Y" \
27                 src/contrib/bind9 ISC BIND_9_X_Y
28
29 5) Resolve conflicts.
30
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.
33
34 5a) Remove any files that are no longer in the tarball from the vendor branch.
35
36 6) Remove any references to the {bin,lib}/tests and docutil
37    directories from the configure and Makefile templates:
38
39         $ sed -i.orig -e '/\/tests/d; /docutil/d; /\/xsl/d;' \
40                 configure.in Makefile.in */Makefile.in
41
42    Please do not commit this change, as it would unnecessarily take
43    files off the vendor branch.  You only need this to generate
44    config.h.
45
46 7) Generate and run configure:
47
48         $ aclocal
49         $ autoheader
50         $ autoconf
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
56
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.
60
61 8) Copy the following generated files to src/lib/bind and commit them:
62
63         Path in src/contrib/bind9               Path in src/lib/bind
64         ------------------------------------------------------------
65         s=/usr/src/lib/bind
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
73
74    Do not commit any other file that was modified or created in
75    steps 6) or 7).
76
77 9) cd src/lib/bind/dns && make -DMAINTAINER_MODE generate && rm gen
78    Commit the new versions of the files generated.
79
80    The following directories contain Makefiles for bits and pieces of
81    BIND 9:
82
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
105
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.
110
111 A) Build and test.
112
113 B) Lather, rinse, repeat.
114
115 C) Commit when everything builds cleanly and works properly.
116
117                                         -- des@FreeBSD.org
118                                         -- dougb@FreeBSD.org
119
120 $FreeBSD$