summaryrefslogtreecommitdiffstats
path: root/contrib/bind9/FREEBSD-Upgrade
blob: 75efb09f1e621f05425abf57444c4c19df95a3c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120


	    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$
OpenPOWER on IntegriCloud