From owner-svn-src-projects@FreeBSD.ORG Wed Jan 9 03:04:16 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 3CDD08A7; Wed, 9 Jan 2013 03:04:16 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 26AC0D4A; Wed, 9 Jan 2013 03:04:16 +0000 (UTC) Received: from svn.freebsd.org (svn.FreeBSD.org [8.8.178.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r0934GOp008766; Wed, 9 Jan 2013 03:04:16 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r0934GO9008765; Wed, 9 Jan 2013 03:04:16 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201301090304.r0934GO9008765@svn.freebsd.org> From: Brooks Davis Date: Wed, 9 Jan 2013 03:04:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r245209 - projects/mtree X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jan 2013 03:04:16 -0000 Author: brooks Date: Wed Jan 9 03:04:15 2013 New Revision: 245209 URL: http://svnweb.freebsd.org/changeset/base/245209 Log: Allow installworld to succeed when performed by a nonroot user and optionally log the permissions to METALOG. In principle it should now be possible to do an installworld as non root and then use makefs to build a filesystem with correct perissions. Further polishing is likely required and future commits are likely change this to conform more closely to the NetBSD implementation. Modified: projects/mtree/Makefile.inc1 Modified: projects/mtree/Makefile.inc1 ============================================================================== --- projects/mtree/Makefile.inc1 Wed Jan 9 02:56:30 2013 (r245208) +++ projects/mtree/Makefile.inc1 Wed Jan 9 03:04:15 2013 (r245209) @@ -340,12 +340,23 @@ LIB32WMAKEFLAGS+= \ LIB32WMAKE= ${LIB32WMAKEENV} ${MAKE} ${LIB32WMAKEFLAGS} \ -DWITHOUT_BIND -DWITHOUT_MAN -DWITHOUT_INFO -DWITHOUT_HTML -LIB32IMAKE= ${LIB32WMAKE:NINSTALL=*:NDESTDIR=*:N_LDSCRIPTROOT=*} -DNO_INCS +LIB32IMAKE= ${LIB32WMAKE:NINSTALL=*:NDESTDIR=*:N_LDSCRIPTROOT=*} -DNO_INCS \ + INSTALL="install -N ${.CURDIR}/etc ${INSTALLFLAGS}" .endif # install stage +.if !empty(METALOG) +INSTALLFLAGS= -M ${METALOG} -D ${DESTDIR} +.endif +USER!= id -u +.if ${USER} != 0 +INSTALLFLAGS+= -U +MTREEFLAGS+= -W +.endif IMAKEENV= ${CROSSENV:N_LDSCRIPTROOT=*} -IMAKE= ${IMAKEENV} ${MAKE} -f Makefile.inc1 +IMAKE= ${IMAKEENV} ${MAKE} -f Makefile.inc1 \ + INSTALL="install -N ${.CURDIR}/etc ${INSTALLFLAGS}" \ + MTREE_CMD="nmtree -N ${.CURDIR}/etc ${MTREEFLAGS}" .if empty(.MAKEFLAGS:M-n) IMAKEENV+= PATH=${STRICTTMPPATH}:${INSTALLTMP} \ LD_LIBRARY_PATH=${INSTALLTMP} \ @@ -609,45 +620,17 @@ installcheck_DESTDIR: .endif # -# Check for missing UIDs/GIDs. -# -CHECK_UIDS= auditdistd -CHECK_GIDS= audit -.if ${MK_SENDMAIL} != "no" -CHECK_UIDS+= smmsp -CHECK_GIDS+= smmsp -.endif -.if ${MK_PF} != "no" -CHECK_UIDS+= proxy -CHECK_GIDS+= proxy authpf -.endif -installcheck: installcheck_UGID -installcheck_UGID: -.for uid in ${CHECK_UIDS} - @if ! `id -u ${uid} >/dev/null 2>&1`; then \ - echo "ERROR: Required ${uid} user is missing, see /usr/src/UPDATING."; \ - false; \ - fi -.endfor -.for gid in ${CHECK_GIDS} - @if ! `find / -prune -group ${gid} >/dev/null 2>&1`; then \ - echo "ERROR: Required ${gid} group is missing, see /usr/src/UPDATING."; \ - false; \ - fi -.endfor - -# # Required install tools to be saved in a scratch dir for safety. # .if ${MK_INFO} != "no" _install-info= install-info .endif .if ${MK_ZONEINFO} != "no" -_zoneinfo= zic tzsetup +_zoneinfo= zic tzsetup xargs .endif ITOOLS= [ awk cap_mkdb cat chflags chmod chown \ - date echo egrep find grep ${_install-info} \ + date echo egrep find grep id ${_install-info} \ ln lockf make mkdir mtree mv pwd_mkdb rm sed sh sysctl \ test true uname wc ${_zoneinfo} @@ -692,6 +675,7 @@ distributeworld installworld: installche done); \ cp $$libs $$progs ${INSTALLTMP} cp -R $${PATH_LOCALE:-"/usr/share/locale"} ${INSTALLTMP}/locale + rm -f ${METALOG} .if make(distributeworld) .for dist in ${EXTRA_DISTRIBUTIONS} -mkdir ${DESTDIR}/${DISTDIR}/${dist} @@ -1111,6 +1095,7 @@ bootstrap-tools: ${_ar} \ ${_dtc} \ ${_awk} \ + lib/libnetbsd \ usr.bin/lorder \ usr.bin/makewhatis \ ${_mklocale} \ @@ -1120,7 +1105,8 @@ bootstrap-tools: ${_lex} \ usr.bin/xinstall \ ${_gensnmptree} \ - usr.sbin/config + usr.sbin/config \ + usr.sbin/nmtree ${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \ cd ${.CURDIR}/${_tool}; \ ${MAKE} DIRPRFX=${_tool}/ obj; \