From owner-freebsd-ports-bugs@FreeBSD.ORG Wed Jun 6 17:50:08 2007 Return-Path: X-Original-To: freebsd-ports-bugs@hub.freebsd.org Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id F234F16A421 for ; Wed, 6 Jun 2007 17:50:08 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.freebsd.org (Postfix) with ESMTP id CE41A13C44C for ; Wed, 6 Jun 2007 17:50:08 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id l56Ho3E2009279 for ; Wed, 6 Jun 2007 17:50:03 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id l56Ho38J009278; Wed, 6 Jun 2007 17:50:03 GMT (envelope-from gnats) Resent-Date: Wed, 6 Jun 2007 17:50:03 GMT Resent-Message-Id: <200706061750.l56Ho38J009278@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Dmitry Marakasov Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 3968D16A46C for ; Wed, 6 Jun 2007 17:44:06 +0000 (UTC) (envelope-from amdmi3@amdmi3.ru) Received: from cp65.agava.net (cp65.agava.net [89.108.66.215]) by mx1.freebsd.org (Postfix) with ESMTP id A79E413C4AE for ; Wed, 6 Jun 2007 17:44:05 +0000 (UTC) (envelope-from amdmi3@amdmi3.ru) Received: from clamav by cp65.agava.net with drweb-scanned (Exim 4.44 (FreeBSD)) id 1HvzY7-000KRW-Nm for FreeBSD-gnats-submit@freebsd.org; Wed, 06 Jun 2007 21:43:59 +0400 Received: from [213.148.29.33] (helo=nexii.panopticon) by cp65.agava.net with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.44 (FreeBSD)) id 1HvzY7-000KRH-K5 for FreeBSD-gnats-submit@freebsd.org; Wed, 06 Jun 2007 21:43:59 +0400 Received: from hades.panopticon (hades.panopticon [192.168.0.2]) by nexii.panopticon (Postfix) with ESMTP id 7EA8717047 for ; Wed, 6 Jun 2007 21:44:04 +0400 (MSD) Received: by hades.panopticon (Postfix, from userid 1000) id 9C153417C; Wed, 6 Jun 2007 21:44:25 +0400 (MSD) Message-Id: <20070606174425.9C153417C@hades.panopticon> Date: Wed, 6 Jun 2007 21:44:25 +0400 (MSD) From: Dmitry Marakasov To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: ports/113425: [PATCH] bsd.port.mk: make COPYTREE_* work under plain user X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Dmitry Marakasov List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Jun 2007 17:50:09 -0000 >Number: 113425 >Category: ports >Synopsis: [PATCH] bsd.port.mk: make COPYTREE_* work under plain user >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Jun 06 17:50:03 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Dmitry Marakasov >Release: FreeBSD 6.1-RELEASE-p12 i386 >Organization: >Environment: System: FreeBSD hades.panopticon 6.1-RELEASE-p12 FreeBSD 6.1-RELEASE-p12 #0: Tue Jan 16 23:12:21 MSK 2007 amdmi3@hades.panopticon:/usr/obj/usr/src/sys/HADES i386 >Description: When using ports as a plain user (not root), INSTALL_* macros don't try to change ownership of installed files, but COPYTREE_* macros do, so an attempt to install a port that uses COPYTREE_* macros under non-root will fail. The patch attached fixes this by adding alternative COPYTREE_* macros to be used when running as non-root. Also COPYTREE_* macros are moved closer to INSTALL_, where they do logically belong. >How-To-Repeat: Try to install any port that uses COPYTREE_* macros as a plain user. >Fix: --- bsd.port.mk.patch begins here --- --- bsd.port.mk.orig Wed Jun 6 21:29:52 2007 +++ bsd.port.mk Wed Jun 6 21:32:28 2007 @@ -2201,18 +2201,6 @@ REINPLACE_ARGS?= -i.bak REINPLACE_CMD?= ${SED} ${REINPLACE_ARGS} -# Macro for coping entire directory tree with correct permissions -COPYTREE_BIN= ${SH} -c '(${FIND} -d $$0 $$2 | ${CPIO} -dumpl $$1 >/dev/null \ - 2>&1) && \ - ${CHOWN} -R ${BINOWN}:${BINGRP} $$1 && \ - ${FIND} $$1 -type d -exec chmod 755 {} \; && \ - ${FIND} $$1 -type f -exec chmod ${BINMODE} {} \;' -- -COPYTREE_SHARE= ${SH} -c '(${FIND} -d $$0 $$2 | ${CPIO} -dumpl $$1 >/dev/null \ - 2>&1) && \ - ${CHOWN} -R ${SHAREOWN}:${SHAREGRP} $$1 && \ - ${FIND} $$1/ -type d -exec chmod 755 {} \; && \ - ${FIND} $$1/ -type f -exec chmod ${SHAREMODE} {} \;' -- - # Names of cookies used to skip already completed stages EXTRACT_COOKIE?= ${WRKDIR}/.extract_done.${PORTNAME}.${PREFIX:S/\//_/g} CONFIGURE_COOKIE?= ${WRKDIR}/.configure_done.${PORTNAME}.${PREFIX:S/\//_/g} @@ -2380,6 +2368,29 @@ BSD_INSTALL_MAN="${INSTALL_MAN}" MAKE_ENV+= ${INSTALL_MACROS} SCRIPTS_ENV+= ${INSTALL_MACROS} + +# Macro for coping entire directory tree with correct permissions +.if ${UID} == 0 +COPYTREE_BIN= ${SH} -c '(${FIND} -d $$0 $$2 | ${CPIO} -dumpl $$1 >/dev/null \ + 2>&1) && \ + ${CHOWN} -R ${BINOWN}:${BINGRP} $$1 && \ + ${FIND} $$1 -type d -exec chmod 755 {} \; && \ + ${FIND} $$1 -type f -exec chmod ${BINMODE} {} \;' -- +COPYTREE_SHARE= ${SH} -c '(${FIND} -d $$0 $$2 | ${CPIO} -dumpl $$1 >/dev/null \ + 2>&1) && \ + ${CHOWN} -R ${SHAREOWN}:${SHAREGRP} $$1 && \ + ${FIND} $$1/ -type d -exec chmod 755 {} \; && \ + ${FIND} $$1/ -type f -exec chmod ${SHAREMODE} {} \;' -- +.else +COPYTREE_BIN= ${SH} -c '(${FIND} -d $$0 $$2 | ${CPIO} -dumpl $$1 >/dev/null \ + 2>&1) && \ + ${FIND} $$1 -type d -exec chmod 755 {} \; && \ + ${FIND} $$1 -type f -exec chmod ${BINMODE} {} \;' -- +COPYTREE_SHARE= ${SH} -c '(${FIND} -d $$0 $$2 | ${CPIO} -dumpl $$1 >/dev/null \ + 2>&1) && \ + ${FIND} $$1/ -type d -exec chmod 755 {} \; && \ + ${FIND} $$1/ -type f -exec chmod ${SHAREMODE} {} \;' -- +.endif # The user can override the NO_PACKAGE by specifying this from # the make command line --- bsd.port.mk.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted: