Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 Jul 2004 11:17:00 +0200 (CEST)
From:      Harti Brandt <harti@freebsd.org>
To:        Ruslan Ermilov <ru@freebsd.org>
Cc:        hackers@freebsd.org
Subject:   Re: make installworld for non-root user
Message-ID:  <20040707110933.I3576@beagle.kn.op.dlr.de>
In-Reply-To: <20040707080739.GB66260@ip.net.ua>
References:  <20040707095457.J3232@beagle.kn.op.dlr.de> <20040707080739.GB66260@ip.net.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 7 Jul 2004, Ruslan Ermilov wrote:

RE>On Wed, Jul 07, 2004 at 09:57:52AM +0200, Harti Brandt wrote:
RE>> 
RE>> Hi all,
RE>> 
RE>> is there an easy way for a non-root user to test the installworld target?
RE>> I came up with
RE>> 
RE>> make SHAREOWN=harti SHAREGRP=harti LIBOWN=harti LIBGRP=harti \
RE>> NOFSCHG=yes INFOMODE=644 INFOOWN=harti INFOGRP=harti MANOWN=harti \
RE>> MANGRP=harti BINOWN=harti BINGRP=harti DESTDIR=/t/scratch/harti/root/ \
RE>> installworld
RE>> 
RE>> but that one breaks in libexec/pt_chown (which has a hard-coded 
RE>> BINOWN=root).
RE>> 
RE>> Perhaps I can't see the obvious solution?
RE>> 
RE>Many bits hardcode owners/groups/modes/flags, but it's still
RE>possible to install as non-root.  In fact, buildworld already
RE>does this for you -- it uses src/tools/install.sh as INSTALL
RE>to do it (see the BMAKEENV setting in Makefile.inc1).

So it seems that:

make SHAREOWN=harti SHAREGRP=harti INSTALL="sh `pwd`/release/install.sh" \
DESTDIR="/somewhere" installworld

almost works. Almost, because bsd.lib.mk contains

SHLINSTALLFLAGS += -fschg

That case is not handled in install.sh and should probably read

SHLINSTALLFLAGS += -f schg

Additionally I had to add

 -fschg) shift;;

to install.sh, because it seems that the installworld target uses the 
currently installed mk files not those from src/share/mk.

The SHAREOWN SHAREGRP is needed because share/zoneinfo/Makefile passes 
these directly to zic. This could probably be fixed by calling zic
during buildworld and just install the compiled files during installworld.

Thanks for your help,
harti



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