Date: Thu, 3 Jun 2004 22:58:54 +0900 (JST) From: Hiroki Sato <hrs@FreeBSD.org> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/67529: patch for bsd.port.mk: OPTIONS can make 2/ directory Message-ID: <200406031358.i53DwsRv019024@alph.allbsd.org> Resent-Message-ID: <200406031400.i53E0ufn090839@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 67529 >Category: ports >Synopsis: patch for bsd.port.mk: OPTIONS can make 2/ directory >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Thu Jun 03 07:00:54 PDT 2004 >Closed-Date: >Last-Modified: >Originator: Hiroki Sato >Release: FreeBSD 4.9-STABLE i386 >Organization: Tokyo University of Science >Environment: System: FreeBSD alph.allbsd.org 4.9-STABLE FreeBSD 4.9-STABLE #2: Fri Mar 19 04:20:12 JST 2004 hrs@alph.allbsd.org:/usr/obj/usr/src/sys/ALPH i386 >Description: When OPTIONS is set and "make config" is invoked by a non-root user with no INSTALL_AS_USER, switching to the root user is occurred. However, if the root user uses csh as his login shell it can make a directory called "2" in the current directory. This is because the following code in bsd.port.mk calls /usr/bin/su root -c "mkdir -p foo 2> /dev/null": |4717 .if ${UID} != 0 && !defined(INSTALL_AS_USER) |4718 @${ECHO_MSG} "===> Switching to root credentials to create `${DIRNAME} ${_OPTIONSFILE}`" |4719 @(${SU_CMD} "${MKDIR} `${DIRNAME} ${_OPTIONSFILE}` 2> /dev/null") || \ |4720 (${ECHO_MSG} "===> Cannot create `${DIRNAME} ${_OPTIONSFILE}`, check permissions"; exit 1) |4721 @${ECHO_MSG} "===> Returning to user credentials" |4722 .else csh interprets this command as "mkdir -p foo 2 > /dev/null" so it makes two directories foo and 2. This is wrong behavior I think. >How-To-Repeat: do "make config" as a non-root user. >Fix: Index: bsd.port.mk =================================================================== RCS file: /home/ncvs/ports/Mk/bsd.port.mk,v retrieving revision 1.490 diff -d -u -I\$FreeBSD:.*\$ -I\$NetBSD:.*\$ -I\$OpenBSD:.*\$ -I\$DragonFly:.*\$ -I\$Id:.*\$ -I\$hrs:.*\$ -r1.490 bsd.port.mk --- bsd.port.mk 31 May 2004 18:07:57 -0000 1.490 +++ bsd.port.mk 3 Jun 2004 13:42:10 -0000 @@ -4716,7 +4716,7 @@ .endif .if ${UID} != 0 && !defined(INSTALL_AS_USER) @${ECHO_MSG} "===> Switching to root credentials to create `${DIRNAME} ${_OPTIONSFILE}`" - @(${SU_CMD} "${MKDIR} `${DIRNAME} ${_OPTIONSFILE}` 2> /dev/null") || \ + @(${SU_CMD} "${SH} -c \"${MKDIR} `${DIRNAME} ${_OPTIONSFILE}` 2> /dev/null\"") || \ (${ECHO_MSG} "===> Cannot create `${DIRNAME} ${_OPTIONSFILE}`, check permissions"; exit 1) @${ECHO_MSG} "===> Returning to user credentials" .else >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200406031358.i53DwsRv019024>