cvs commit: src/etc Makefile

Doug Barton DougB at
Tue Oct 5 16:57:32 PDT 2004

On Tue, 5 Oct 2004, Brian Somers wrote:

> On Tue, 5 Oct 2004 20:20:56 +0300, Ruslan Ermilov <ru at> wrote:
>>> Shouldn't this be:
>>>     ln -fhs ../var/named/etc/namedb ${DESTDIR}/etc/namedb
>> No.
> If I mount an alternate filesystem hierarchy somewhere, isn't it a bit
> useless/dangerous for symlinks to point outside of it?

The attached patch combines the best of the various ideas that have been 
disucssed on this topic.

1. Incorporates Ruslan's improvements to where things are done related 
to the symlink in src/etc/Makefile.

2. Incorporates Brian's suggestion to make the link relative. This is 
the best way I can see to make it work as expected in all cases, 
including complete alternate filesystems. It should also solve the 
release engineering problem.

3. Add a new knob, NO_BIND_MTREE, as suggested by the folks who already 
have stuff in /var/named that they don't want me to mess with. :)

4. Updates make.conf(5) with the new stuff, and corrects a few paths 
that have changed since I last updated it.

If everyone finds this acceptable, I will commit it, and then ask re@ 
for permission to MFC it, hopefully before 5-RC1.

Thanks to everyone who contributed to this train of thought.



     This .signature sanitized for your protection
-------------- next part --------------
Index: etc/Makefile
RCS file: /usr/local/ncvs/src/etc/Makefile,v
retrieving revision 1.334
diff -u -r1.334 Makefile
--- etc/Makefile	5 Oct 2004 13:03:08 -0000	1.334
+++ etc/Makefile	5 Oct 2004 23:54:02 -0000
@@ -122,10 +122,18 @@
 	    ln ${DESTDIR}/root/.profile ${DESTDIR}/.profile
 	cd ${.CURDIR}/mtree; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 444 \
 	    ${MTREE} ${DESTDIR}/etc/mtree
-.if !defined(NO_BIND_ETC) && !defined(NO_BIND)
+.if !defined(NO_BIND)
+.if !defined(NO_BIND_ETC)
 	cd ${.CURDIR}/namedb; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
 	    ${NAMEDB} ${DESTDIR}/var/named/etc/namedb
+.if !defined(NO_BIND_MTREE)
+	@if [ ! -e ${DESTDIR}/etc/namedb ]; then \
+		set -x; \
+		ln -fhs ../var/named/etc/namedb ${DESTDIR}/etc/namedb; \
+	fi
 	cd ${.CURDIR}/ppp; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 600 \
 	    ${PPPCNF} ${DESTDIR}/etc/ppp
 	cd ${.CURDIR}/mail; ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 644 \
@@ -184,9 +192,10 @@
 	mtree -deU ${MTREE_FOLLOWS_SYMLINKS} -f ${.CURDIR}/mtree/BIND.include.dist \
 	    -p ${DESTDIR}/usr/include
+.if !defined(NO_BIND_MTREE)
 	mtree -deU ${MTREE_FOLLOWS_SYMLINKS} -f ${.CURDIR}/mtree/BIND.chroot.dist \
 	    -p ${DESTDIR}/var/named
-	ln -fhs /var/named/etc/namedb ${DESTDIR}/etc/namedb
 .if !defined(NO_SENDMAIL)
 	mtree -deU ${MTREE_FOLLOWS_SYMLINKS} -f ${.CURDIR}/mtree/BSD.sendmail.dist -p ${DESTDIR}/
Index: share/examples/etc/make.conf
RCS file: /usr/local/ncvs/src/share/examples/etc/make.conf,v
retrieving revision 1.234
diff -u -r1.234 make.conf
--- share/examples/etc/make.conf	27 Sep 2004 08:23:42 -0000	1.234
+++ share/examples/etc/make.conf	5 Oct 2004 23:34:58 -0000
@@ -149,6 +149,7 @@
 #NO_BIND_DNSSEC=	true	# Do not build dnssec-keygen, dnssec-signzone
 #NO_BIND_ETC=		true	# Do not install files to /etc/namedb
 #NO_BIND_LIBS_LWRES=	true	# Do not install the lwres library
+#NO_BIND_MTREE=		true	# Do run mtree to create chroot directories
 #NO_BIND_NAMED=		true	# Do not build named, rndc, lwresd, etc.
 #NO_BIND_UTILS=		true	# Do not build dig, host, nslookup, nsupdate
 #WITH_BIND_LIBS=	true	# Install the BIND libs and include files
Index: share/man/man5/make.conf.5
RCS file: /usr/local/ncvs/src/share/man/man5/make.conf.5,v
retrieving revision 1.96
diff -u -r1.96 make.conf.5
--- share/man/man5/make.conf.5	27 Sep 2004 08:23:42 -0000	1.96
+++ share/man/man5/make.conf.5	5 Oct 2004 23:53:33 -0000
@@ -24,7 +24,7 @@
 .\" $FreeBSD: src/share/man/man5/make.conf.5,v 1.96 2004/09/27 08:23:42 dougb Exp $
-.Dd September 27, 2004
+.Dd October 5, 2004
@@ -612,12 +612,23 @@
 .Pq Vt bool
 Set to avoid installing the default files to
-.Pa /etc/namedb .
+.Pa /var/named/etc/namedb .
 .Pq Vt bool
 Set to avoid installing the lightweight resolver library in
 .Pa /usr/lib .
 The library that is private to the build system may still be built as needed.
+.Pq Vt bool
+Set to avoid running
+.Xr mtree 8
+to create the chroot directory structure under
+.Pa /var/named ,
+and avoid creating an
+.Pa /etc/namedb
+symlink to the chroot directory.
+This option should typically be used together with
 .Pq Vt bool
 Set to avoid building or installing

More information about the cvs-all mailing list