Module Name:    src
Committed By:   apb
Date:           Fri Apr 10 16:16:12 UTC 2009

Modified Files:
        src/distrib/common: parselist.awk
        src/share/dict: Makefile
        src/share/mk: bsd.README bsd.hostprog.mk bsd.kmodule.mk bsd.lib.mk
            bsd.links.mk bsd.man.mk bsd.prog.mk
        src/share/zoneinfo: Makefile

Log Message:
Add LINKSOWN, LINKSGRP, and LINKSMODE variables for use by bsd.links.mk
when installing hard links.  They have no effect except when using a
metalog, in which case the information is added to the metalog.  In
the future, these variables may be replaced by a method for explicitly
recording hard links in a metadata log.

Also change a few things that called ${INSTALL_LINK} without going
through bsd.links.mk.

Reviewed by perry and joerg.  This should fix PR 24457 and PR 41155.


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/distrib/common/parselist.awk
cvs rdiff -u -r1.16 -r1.17 src/share/dict/Makefile
cvs rdiff -u -r1.248 -r1.249 src/share/mk/bsd.README
cvs rdiff -u -r1.54 -r1.55 src/share/mk/bsd.hostprog.mk
cvs rdiff -u -r1.18 -r1.19 src/share/mk/bsd.kmodule.mk
cvs rdiff -u -r1.297 -r1.298 src/share/mk/bsd.lib.mk
cvs rdiff -u -r1.33 -r1.34 src/share/mk/bsd.links.mk
cvs rdiff -u -r1.99 -r1.100 src/share/mk/bsd.man.mk
cvs rdiff -u -r1.240 -r1.241 src/share/mk/bsd.prog.mk
cvs rdiff -u -r1.42 -r1.43 src/share/zoneinfo/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/common/parselist.awk
diff -u src/distrib/common/parselist.awk:1.15 src/distrib/common/parselist.awk:1.16
--- src/distrib/common/parselist.awk:1.15	Wed Apr 30 13:10:48 2008
+++ src/distrib/common/parselist.awk	Fri Apr 10 16:16:12 2009
@@ -1,4 +1,4 @@
-#	$NetBSD: parselist.awk,v 1.15 2008/04/30 13:10:48 martin Exp $
+#	$NetBSD: parselist.awk,v 1.16 2009/04/10 16:16:12 apb Exp $
 #
 # Copyright (c) 2002 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -225,7 +225,7 @@
 				    crunchprog, 555);
 				continue;
 			}
-			link(crunchprog, $i);
+			link(crunchprog, $i, 555);
 		}
 	}
 	next;
@@ -248,7 +248,7 @@
 		err("Usage: LINK prog link [...]");
 	if (mode == "install" || mode == "mtree" || mode == "populate") {
 		for (i = 3; i <= NF; i++)
-			link($2, $i);
+			link($2, $i, 444);
 	}
 	next;
 }
@@ -305,7 +305,8 @@
 	if (perm == "")
 		perm = 444;
 	if (mode == "install") {
-		printf("\t${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} -m %s %s %s/%s\n",
+		printf("\t${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP}" \
+		    " -m %s %s %s/%s\n",
 		    perm, src, ENVIRON["TARGETDIR"], dest)
 	} else if (mode == "mtree") {
 		printf("./%s mode=%s\n", dest, perm);
@@ -316,13 +317,14 @@
 	}
 }
 
-function link (src, dest) \
+function link (src, dest, perm) \
 {
 	if (mode == "install") {
-		printf("\t${INSTALL_LINK} %s/%s %s/%s\n",
-		    ENVIRON["TARGETDIR"], src, ENVIRON["TARGETDIR"], dest)
+		printf("\t${INSTALL_LINK} -o ${BINOWN} -g ${BINGRP}" \
+		    " -m %s %s/%s %s/%s\n",
+		    perm, ENVIRON["TARGETDIR"], src, ENVIRON["TARGETDIR"], dest)
 	} else if (mode == "mtree") {
-		printf("./%s\n", dest);
+		printf("./%s mode=%s\n", dest, perm);
 	} else {
 		printf("rm -rf %s/%s\n", ENVIRON["TARGETDIR"], dest);
 		printf("(cd %s; ln %s %s) || exit 1\n",

Index: src/share/dict/Makefile
diff -u src/share/dict/Makefile:1.16 src/share/dict/Makefile:1.17
--- src/share/dict/Makefile:1.16	Wed Sep 18 08:12:29 2002
+++ src/share/dict/Makefile	Fri Apr 10 16:16:12 2009
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.16 2002/09/18 08:12:29 lukem Exp $
+#	$NetBSD: Makefile,v 1.17 2009/04/10 16:16:12 apb Exp $
 #	@(#)Makefile	8.1 (Berkeley) 6/5/93
 
 # Missing: connectives, words
@@ -8,5 +8,6 @@
 FILES=	README propernames web2 web2a
 FILESDIR=${BINDIR}/dict
 LINKS=	${FILESDIR}/web2 ${FILESDIR}/words
+LINKSMODE= ${FILESMODE}
 
 .include <bsd.prog.mk>

Index: src/share/mk/bsd.README
diff -u src/share/mk/bsd.README:1.248 src/share/mk/bsd.README:1.249
--- src/share/mk/bsd.README:1.248	Fri Mar 13 16:23:31 2009
+++ src/share/mk/bsd.README	Fri Apr 10 16:16:12 2009
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.README,v 1.248 2009/03/13 16:23:31 perry Exp $
+#	$NetBSD: bsd.README,v 1.249 2009/04/10 16:16:12 apb Exp $
 #	@(#)bsd.README	8.2 (Berkeley) 4/2/94
 
 This is the README file for the make "include" files for the NetBSD
@@ -1024,6 +1024,11 @@
 The include file <bsd.links.mk> handles the LINKS and SYMLINKS variables
 and is included from from <bsd.lib.mk> and <bsd.prog.mk>.
 
+LINKSOWN, LINKSGRP, and LINKSMODE, are relevant only if a metadata log
+is used. The defaults may be modified by other bsd.*.mk files which
+include bsd.links.mk.  In the future, these variables may be replaced
+by a method for explicitly recording hard links in a metadata log.
+
 LINKS		The list of hard links, consisting of pairs of paths:
 			source-file target-file
 		${DESTDIR} is prepended to both paths before linking.
@@ -1045,6 +1050,18 @@
 		are installed by the `configinstall' target,
 		not the `install' target.
 
+LINKSOWN	Link owner.  [${BINOWN}]
+
+LINKSGRP	Link group.  [${BINGRP}]
+
+LINKSMODE	Link mode.  [${NONBINMODE}]
+
+LINKSOWN_<fn>	Link owner of the specific file <fn>.
+
+LINKSGRP_<fn>	Link group of the specific file <fn>.
+
+LINKSMODE_<fn>	Link mode of the specific file <fn>.
+
 
 =-=-=-=-=   bsd.man.mk   =-=-=-=-=
 

Index: src/share/mk/bsd.hostprog.mk
diff -u src/share/mk/bsd.hostprog.mk:1.54 src/share/mk/bsd.hostprog.mk:1.55
--- src/share/mk/bsd.hostprog.mk:1.54	Wed Nov 19 14:10:48 2008
+++ src/share/mk/bsd.hostprog.mk	Fri Apr 10 16:16:12 2009
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.hostprog.mk,v 1.54 2008/11/19 14:10:48 pooka Exp $
+#	$NetBSD: bsd.hostprog.mk,v 1.55 2009/04/10 16:16:12 apb Exp $
 #	@(#)bsd.prog.mk	8.2 (Berkeley) 4/2/94
 
 .include <bsd.init.mk>
@@ -132,6 +132,7 @@
 .endif
 
 ##### Pull in related .mk logic
+LINKSMODE?= ${BINMODE}
 .include <bsd.man.mk>
 .include <bsd.nls.mk>
 .include <bsd.files.mk>

Index: src/share/mk/bsd.kmodule.mk
diff -u src/share/mk/bsd.kmodule.mk:1.18 src/share/mk/bsd.kmodule.mk:1.19
--- src/share/mk/bsd.kmodule.mk:1.18	Sat Jan 24 22:14:45 2009
+++ src/share/mk/bsd.kmodule.mk	Fri Apr 10 16:16:12 2009
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.kmodule.mk,v 1.18 2009/01/24 22:14:45 rmind Exp $
+#	$NetBSD: bsd.kmodule.mk,v 1.19 2009/04/10 16:16:12 apb Exp $
 
 # We are not building this with PIE
 MKPIE=no
@@ -96,6 +96,9 @@
 .endif
 
 ##### Pull in related .mk logic
+LINKSOWN?= ${KMODULEOWN}
+LINKSGRP?= ${KMODULEGRP}
+LINKSMODE?= ${KMODULEMODE}
 .include <bsd.man.mk>
 .include <bsd.links.mk>
 .include <bsd.dep.mk>

Index: src/share/mk/bsd.lib.mk
diff -u src/share/mk/bsd.lib.mk:1.297 src/share/mk/bsd.lib.mk:1.298
--- src/share/mk/bsd.lib.mk:1.297	Wed Apr  1 17:47:39 2009
+++ src/share/mk/bsd.lib.mk	Fri Apr 10 16:16:12 2009
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.lib.mk,v 1.297 2009/04/01 17:47:39 perry Exp $
+#	$NetBSD: bsd.lib.mk,v 1.298 2009/04/10 16:16:12 apb Exp $
 #	@(#)bsd.lib.mk	8.3 (Berkeley) 4/22/94
 
 .include <bsd.init.mk>
@@ -733,6 +733,9 @@
 .endif	# !target(libinstall)						# }
 
 ##### Pull in related .mk logic
+LINKSOWN?= ${LIBOWN}
+LINKSGRP?= ${LIBGRP}
+LINKSMODE?= ${LIBMODE}
 .include <bsd.man.mk>
 .include <bsd.nls.mk>
 .include <bsd.files.mk>

Index: src/share/mk/bsd.links.mk
diff -u src/share/mk/bsd.links.mk:1.33 src/share/mk/bsd.links.mk:1.34
--- src/share/mk/bsd.links.mk:1.33	Sun Mar  1 09:42:41 2009
+++ src/share/mk/bsd.links.mk	Fri Apr 10 16:16:12 2009
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.links.mk,v 1.33 2009/03/01 09:42:41 isaki Exp $
+#	$NetBSD: bsd.links.mk,v 1.34 2009/04/10 16:16:12 apb Exp $
 
 .include <bsd.init.mk>
 
@@ -8,11 +8,22 @@
 ##### Default values
 LINKS?=
 SYMLINKS?=
+LINKSOWN?=	${BINOWN}
+LINKSGRP?=	${BINGRP}
+LINKSMODE?=	${NONBINMODE}
 
 __linkinstall: .USE
 	${_MKSHMSG_INSTALL} ${.TARGET}; \
-	${_MKSHECHO} "${INSTALL_LINK} ${.ALLSRC} ${.TARGET}" && \
-	${INSTALL_LINK} ${.ALLSRC} ${.TARGET}
+	${_MKSHECHO} "${INSTALL_LINK} \
+	    -o ${LINKSOWN_${.ALLSRC:T}:U${LINKSOWN}} \
+	    -g ${LINKSGRP_${.ALLSRC:T}:U${LINKSGRP}} \
+	    -m ${LINKSMODE_${.ALLSRC:T}:U${LINKSMODE}} \
+	    ${.ALLSRC} ${.TARGET}" && \
+	${INSTALL_LINK} \
+	    -o ${LINKSOWN_${.ALLSRC:T}:U${LINKSOWN}} \
+	    -g ${LINKSGRP_${.ALLSRC:T}:U${LINKSGRP}} \
+	    -m ${LINKSMODE_${.ALLSRC:T}:U${LINKSMODE}} \
+	    ${.ALLSRC} ${.TARGET}
 
 ##### Install rules
 .PHONY:		linksinstall

Index: src/share/mk/bsd.man.mk
diff -u src/share/mk/bsd.man.mk:1.99 src/share/mk/bsd.man.mk:1.100
--- src/share/mk/bsd.man.mk:1.99	Tue Mar 31 21:00:34 2009
+++ src/share/mk/bsd.man.mk	Fri Apr 10 16:16:12 2009
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.man.mk,v 1.99 2009/03/31 21:00:34 perry Exp $
+#	$NetBSD: bsd.man.mk,v 1.100 2009/04/10 16:16:12 apb Exp $
 #	@(#)bsd.man.mk	8.1 (Berkeley) 6/8/93
 
 .include <bsd.init.mk>
@@ -54,8 +54,10 @@
 # XXX consider including bsd.links.mk and using __linkinstall instead
 __linkinstallpage: .USE
 	${_MKSHMSG_INSTALL} ${.TARGET}; \
-	${_MKSHECHO} "${INSTALL_LINK} ${.ALLSRC} ${.TARGET}" && \
-	${INSTALL_LINK} ${.ALLSRC} ${.TARGET}
+	${_MKSHECHO} "${INSTALL_LINK} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} \
+	    ${.ALLSRC} ${.TARGET}" && \
+	${INSTALL_LINK} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} \
+	    ${.ALLSRC} ${.TARGET}
 
 ##### Build and install rules (source form pages)
 

Index: src/share/mk/bsd.prog.mk
diff -u src/share/mk/bsd.prog.mk:1.240 src/share/mk/bsd.prog.mk:1.241
--- src/share/mk/bsd.prog.mk:1.240	Mon Nov 24 02:13:08 2008
+++ src/share/mk/bsd.prog.mk	Fri Apr 10 16:16:12 2009
@@ -1,4 +1,4 @@
-#	$NetBSD: bsd.prog.mk,v 1.240 2008/11/24 02:13:08 cube Exp $
+#	$NetBSD: bsd.prog.mk,v 1.241 2009/04/10 16:16:12 apb Exp $
 #	@(#)bsd.prog.mk	8.2 (Berkeley) 4/2/94
 
 .ifndef HOSTPROG
@@ -442,6 +442,9 @@
 .PHONY:		scriptsinstall
 
 ##### Pull in related .mk logic
+LINKSOWN?= ${BINOWN}
+LINKSGRP?= ${BINGRP}
+LINKSMODE?= ${BINMODE}
 .include <bsd.man.mk>
 .include <bsd.nls.mk>
 .include <bsd.files.mk>

Index: src/share/zoneinfo/Makefile
diff -u src/share/zoneinfo/Makefile:1.42 src/share/zoneinfo/Makefile:1.43
--- src/share/zoneinfo/Makefile:1.42	Thu Nov  8 20:14:07 2007
+++ src/share/zoneinfo/Makefile	Fri Apr 10 16:16:12 2009
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.42 2007/11/08 20:14:07 drochner Exp $
+#	$NetBSD: Makefile,v 1.43 2009/04/10 16:16:12 apb Exp $
 
 .include <bsd.own.mk>
 
@@ -104,8 +104,10 @@
 				continue; \
 			fi; \
 			${_MKSHMSG_INSTALL} $$destfile; \
-			${_MKSHECHO} ${INSTALL_LINK} $$lastfile $$destfile; \
-			${INSTALL_LINK} $$lastfile $$destfile; \
+			${_MKSHECHO} ${INSTALL_LINK} -o ${BINOWN} -g ${BINGRP} \
+			    -m ${NONBINMODE} $$lastfile $$destfile; \
+			${INSTALL_LINK} -o ${BINOWN} -g ${BINGRP} \
+			    -m ${NONBINMODE} $$lastfile $$destfile; \
 		else \
 			lastdevino=$$devino; \
 			lastfile=$$destfile; \

Reply via email to