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; \