Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Oct 2017 15:30:20 +0000 (UTC)
From:      Jilles Tjoelker <jilles@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r452153 - head/Mk
Message-ID:  <201710151530.v9FFUKUJ074249@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jilles (src committer)
Date: Sun Oct 15 15:30:20 2017
New Revision: 452153
URL: https://svnweb.freebsd.org/changeset/ports/452153

Log:
  Make COPYTREE_* work with POSIX-compliant sh -c
  
  The COPYTREE_BIN and COPYTREE_SHARE macros use constructs like
  
  sh -c 'command' -- arg0 arg1
  
  and assume that $0 will expand to arg0 and $1 will expand to arg1.
  
  Our current sh implements it that way. However, POSIX specifies that $0 will
  expand to -- and $1 will expand to arg0, since the command string is an
  operand and not an option-argument. Bug #220587 requests making sh
  POSIX-compliant in this regard.
  
  If the argument after the command string does not start with '-', the
  current sh behaves as required by POSIX. Therefore, adjust the macros so
  this is always the case.
  
  PR:		222870
  Approved by:	portmgr (antoine)

Modified:
  head/Mk/bsd.port.mk

Modified: head/Mk/bsd.port.mk
==============================================================================
--- head/Mk/bsd.port.mk	Sun Oct 15 15:22:41 2017	(r452152)
+++ head/Mk/bsd.port.mk	Sun Oct 15 15:30:20 2017	(r452153)
@@ -2150,12 +2150,12 @@ SCRIPTS_ENV+=	${INSTALL_MACROS}
 # In the -exec shell commands, we add add a . as the first argument, it would
 # end up being $0 aka the script name, which is not part of $@, so we force it
 # to be able to use $@ directly.
-COPYTREE_BIN=	${SH} -c '(${FIND} -Ed $$0 $$2 | ${CPIO} -dumpl $$1 >/dev/null 2>&1) && \
-						   ${FIND} -Ed $$0 $$2 \(   -type d -exec ${SH} -c '\''cd '\''$$1'\'' && chmod 755 "$$@"'\'' -- . {} + \
-												 -o -type f -exec ${SH} -c '\''cd '\''$$1'\'' && chmod ${BINMODE} "$$@"'\'' -- . {} + \)' --
-COPYTREE_SHARE=	${SH} -c '(${FIND} -Ed $$0 $$2 | ${CPIO} -dumpl $$1 >/dev/null 2>&1) && \
-						   ${FIND} -Ed $$0 $$2 \(   -type d -exec ${SH} -c '\''cd '\''$$1'\'' && chmod 755 "$$@"'\'' -- . {} + \
-												 -o -type f -exec ${SH} -c '\''cd '\''$$1'\'' && chmod ${_SHAREMODE} "$$@"'\'' -- . {} + \)' --
+COPYTREE_BIN=	${SH} -c '(${FIND} -Ed $$1 $$3 | ${CPIO} -dumpl $$2 >/dev/null 2>&1) && \
+						   ${FIND} -Ed $$1 $$3 \(   -type d -exec ${SH} -c '\''cd '\''$$2'\'' && chmod 755 "$$@"'\'' . {} + \
+												 -o -type f -exec ${SH} -c '\''cd '\''$$2'\'' && chmod ${BINMODE} "$$@"'\'' . {} + \)' COPYTREE_BIN
+COPYTREE_SHARE=	${SH} -c '(${FIND} -Ed $$1 $$3 | ${CPIO} -dumpl $$2 >/dev/null 2>&1) && \
+						   ${FIND} -Ed $$1 $$3 \(   -type d -exec ${SH} -c '\''cd '\''$$2'\'' && chmod 755 "$$@"'\'' . {} + \
+												 -o -type f -exec ${SH} -c '\''cd '\''$$2'\'' && chmod ${_SHAREMODE} "$$@"'\'' . {} + \)' COPYTREE_SHARE
 
 # The user can override the NO_PACKAGE by specifying this from
 # the make command line



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