Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Jun 2018 16:07:56 +0000 (UTC)
From:      Brooks Davis <brooks@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r335797 - head/share/mk
Message-ID:  <201806291607.w5TG7u1t061881@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: brooks
Date: Fri Jun 29 16:07:56 2018
New Revision: 335797
URL: https://svnweb.freebsd.org/changeset/base/335797

Log:
  Correct link metadata created when installing with -DNO_ROOT.
  
  Explicitly specify owner/group/mode metadata when creating links.
  
  More consistently use INSTALL_SYMLINK to install symlinks.
  
  Reviewed by:	bdrewery
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D11231

Modified:
  head/share/mk/bsd.README
  head/share/mk/bsd.lib.mk
  head/share/mk/bsd.man.mk
  head/share/mk/bsd.own.mk
  head/share/mk/bsd.prog.mk

Modified: head/share/mk/bsd.README
==============================================================================
--- head/share/mk/bsd.README	Fri Jun 29 14:51:36 2018	(r335796)
+++ head/share/mk/bsd.README	Fri Jun 29 16:07:56 2018	(r335797)
@@ -225,6 +225,24 @@ MANMODE		Manual mode.
 
 MANOWN		Manual owner.
 
+INSTALL_LINK	Command to install a hard link.
+
+INSTALL_SYMLINK	Command to install a symbolic link.
+
+INSTALL_RSYMLINK	Command to install a relative symbolic link.
+
+LINKOWN		Owner of hard links created by INSTALL_LINK.
+
+LINKGRP		Group of hard links created by INSTALL_LINK.
+
+LINKMODE	Mode of hard links created by INSTALL_LINK.
+
+SYMLINKOWN	Owner of hard links created by INSTALL_[R]SYMLINK.
+
+SYMLINKGRP	Group of hard links created by INSTALL_[R]SYMLINK.
+
+SYMLINKMODE	Mode of hard links created by INSTALL_[R]SYMLINK.
+
 This file is generally useful when building your own Makefiles so that
 they use the same default owners etc. as the rest of the tree.
 
@@ -320,6 +338,13 @@ LINKS		The list of binary links; should be full pathna
 
 			LINKS=	/bin/test /bin/[
 
+LINKOWN		Owner of links created with LINKS [${BINOWN}].
+
+LINKGRP		Group of links created with LINKS [${BINGRP}].
+
+LINKMODE	Mode of links created with LINKS [${BINMODE}].
+
+
 MAN		Manual pages.  If no MAN variable is defined,
 		"MAN=${PROG}.1" is assumed. See bsd.man.mk for more details.
 
@@ -528,6 +553,21 @@ LIB_CXX		The name of the library to build. It also cau
 		of LIB if LIB is also set.  Both a shared and static library
 		will be built.  NO_PIC can be set to only build a static
 		library.
+
+LINKS		The list of binary links; should be full pathnames, the
+		linked-to file coming first, followed by the linked
+		file.  The files are hard-linked.  For example, to link
+		/bin/test and /bin/[, use:
+
+			LINKS=	/bin/test /bin/[
+
+LINKOWN		Owner of links created with LINKS [${LIBOWN}].
+
+LINKGRP		Group of links created with LINKS [${LIBGRP}].
+
+LINKMODE	Mode of links created with LINKS [${LIBMODE}].
+
+LINTLIBDIR	Target directory for lint libraries.
 
 MAN		The manual pages to be installed. See bsd.man.mk for more
 		details.

Modified: head/share/mk/bsd.lib.mk
==============================================================================
--- head/share/mk/bsd.lib.mk	Fri Jun 29 14:51:36 2018	(r335796)
+++ head/share/mk/bsd.lib.mk	Fri Jun 29 16:07:56 2018	(r335797)
@@ -275,7 +275,7 @@ ${SHLIB_NAME_FULL}: ${SOBJS}
 	@${ECHO} building shared library ${SHLIB_NAME}
 	@rm -f ${SHLIB_NAME} ${SHLIB_LINK}
 .if defined(SHLIB_LINK) && !commands(${SHLIB_LINK:R}.ld) && ${MK_DEBUG_FILES} == "no"
-	@${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},development} ${SHLIB_NAME} ${SHLIB_LINK}
+	@${INSTALL_LIBSYMLINK} ${TAG_ARGS:D${TAG_ARGS},development} ${SHLIB_NAME} ${SHLIB_LINK}
 .endif
 	${_LD:N${CCACHE_BIN}} ${LDFLAGS} ${SSP_CFLAGS} ${SOLINKOPTS} \
 	    -o ${.TARGET} -Wl,-soname,${SONAME} \
@@ -291,7 +291,7 @@ ${SHLIB_NAME}: ${SHLIB_NAME_FULL} ${SHLIB_NAME}.debug
 	${OBJCOPY} --strip-debug --add-gnu-debuglink=${SHLIB_NAME}.debug \
 	    ${SHLIB_NAME_FULL} ${.TARGET}
 .if defined(SHLIB_LINK) && !commands(${SHLIB_LINK:R}.ld)
-	@${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},development} ${SHLIB_NAME} ${SHLIB_LINK}
+	@${INSTALL_LIBSYMLINK} ${TAG_ARGS:D${TAG_ARGS},development} ${SHLIB_NAME} ${SHLIB_LINK}
 .endif
 
 ${SHLIB_NAME}.debug: ${SHLIB_NAME_FULL}
@@ -398,7 +398,7 @@ _libinstall:
 	    ${_INSTALLFLAGS} ${SHLIB_LINK:R}.ld \
 	    ${DESTDIR}${_LIBDIR}/${SHLIB_LINK}
 .for _SHLIB_LINK_LINK in ${SHLIB_LDSCRIPT_LINKS}
-	${INSTALL_SYMLINK} ${SHLIB_LINK} ${DESTDIR}${_LIBDIR}/${_SHLIB_LINK_LINK}
+	${INSTALL_LIBSYMLINK} ${SHLIB_LINK} ${DESTDIR}${_LIBDIR}/${_SHLIB_LINK_LINK}
 .endfor
 .else
 .if ${_SHLIBDIR} == ${_LIBDIR}
@@ -437,6 +437,11 @@ _libinstall:
 .include <bsd.confs.mk>
 .endif
 
+LINKOWN?=	${LIBOWN}
+LINKGRP?=	${LIBGRP}
+LINKMODE?=	${LIBMODE}
+SYMLINKOWN?=	${LIBOWN}
+SYMLINKGRP?=	${LIBGRP}
 .include <bsd.links.mk>
 
 .if ${MK_MAN} != "no" && !defined(LIBRARIES_ONLY)

Modified: head/share/mk/bsd.man.mk
==============================================================================
--- head/share/mk/bsd.man.mk	Fri Jun 29 14:51:36 2018	(r335796)
+++ head/share/mk/bsd.man.mk	Fri Jun 29 16:07:56 2018	(r335797)
@@ -227,7 +227,7 @@ maninstall: ${MAN}
 .endif
 .for l t in ${_MANLINKS}
 	rm -f ${DESTDIR}${t} ${DESTDIR}${t}${MCOMPRESS_EXT}; \
-	    ${INSTALL_LINK} ${TAG_ARGS} ${DESTDIR}${l}${ZEXT} ${DESTDIR}${t}${ZEXT}
+	    ${INSTALL_MANLINK} ${TAG_ARGS} ${DESTDIR}${l}${ZEXT} ${DESTDIR}${t}${ZEXT}
 .endfor
 
 manlint:

Modified: head/share/mk/bsd.own.mk
==============================================================================
--- head/share/mk/bsd.own.mk	Fri Jun 29 14:51:36 2018	(r335796)
+++ head/share/mk/bsd.own.mk	Fri Jun 29 16:07:56 2018	(r335797)
@@ -124,6 +124,18 @@
 #
 # PKG_CMD	Program for creating and manipulating packages.
 #               [pkg] 
+#
+# LINKOWN	Hard link owner [${BINOWN}]
+#
+# LINKGRP	Hard link group [${BINGRP}]
+#
+# LINKMODE	Hard link mode [${NOBINMODE}]
+#
+# SYMLINKOWN	Symbolic link owner [${BINOWN} or ${LIBOWN}]
+#
+# SYMLINKGRP	Symbolic link group [${BINGRP} or ${LIBGRP}]
+#
+# SYMLINKMODE	Symbolic link mode [755]
 
 .if !target(__<bsd.own.mk>__)
 __<bsd.own.mk>__:
@@ -217,12 +229,22 @@ INCLUDEDIR?=	/usr/include
 #
 # install(1) parameters.
 #
-HRDLINK?=	-l h
-SYMLINK?=	-l s
-RSYMLINK?=	-l rs
+_LINKOWN?=	${LINKOWN:U${BINOWN}}
+_LINKGRP?=	${LINKGRP:U${BINGRP}}
+_LINKMODE?=	${LINKMODE:U${NOBINMODE}}
+_SYMLINKOWN?=	${SYMLINKOWN:U${BINOWN}}
+_SYMLINKGRP?=	${SYMLINKGRP:U${BINGRP}}
+_SYMLINKMODE?=	${SYMLINKMODE:U755}
+HRDLINK?=	-l h -o ${_LINKOWN} -g ${_LINKGRP} -m ${_LINKMODE}
+MANHRDLINK?=	-l h -o ${MANOWN} -g ${MANGRP} -m ${MANMODE}
+SYMLINK?=	-l s -o ${_SYMLINKOWN} -g ${_SYMLINKGRP} -m ${_SYMLINKMODE}
+LSYMLINK?=	-l s -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE}
+RSYMLINK?=	-l rs -o ${_SYMLINKOWN} -g ${_SYMLINKGRP} -m ${_SYMLINKMODE}
 
 INSTALL_LINK?=		${INSTALL} ${HRDLINK}
+INSTALL_MANLINK?=	${INSTALL} ${MANHRDLINK}
 INSTALL_SYMLINK?=	${INSTALL} ${SYMLINK}
+INSTALL_LIBSYMLINK?=	${INSTALL} ${LSYMLINK}
 INSTALL_RSYMLINK?=	${INSTALL} ${RSYMLINK}
 
 # Common variables

Modified: head/share/mk/bsd.prog.mk
==============================================================================
--- head/share/mk/bsd.prog.mk	Fri Jun 29 14:51:36 2018	(r335796)
+++ head/share/mk/bsd.prog.mk	Fri Jun 29 16:07:56 2018	(r335797)
@@ -285,6 +285,10 @@ NLSNAME?=	${PROG}
 .include <bsd.confs.mk>
 .include <bsd.files.mk>
 .include <bsd.incs.mk>
+
+LINKOWN?=	${BINOWN}
+LINKGRP?=	${BINGRP}
+LINKMODE?=	${BINMODE}
 .include <bsd.links.mk>
 
 .if ${MK_MAN} != "no"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201806291607.w5TG7u1t061881>