Allow user install

Eric van Gyzen eric at vangyzen.net
Tue Jun 26 15:42:07 UTC 2012


On 06/26/2012 10:18, Tim Kientzle wrote:
>
> On Jun 26, 2012, at 3:54 AM, Dag-Erling Smørgrav wrote:
>
>> Simon Gerraty<sjg at juniper.net>  writes:
>>> The patch below is a step towards supporting unprivileged buildworld
>>> etc.  Eg.
>>
>> Wow, this is really cool - and long overdue.
>>
>> I've been thinking for a while that some bor^H^H^Henterprising soul
>> should hack install(1) so that if a specific environment variable is
>> set, it writes the file to a tarball instead of writing it to disk.
>> Unfortunately, there would still be a ton of ${LN} etc. that would need
>> to be handled somehow.
>
> Better idea:  have the build write a textual description of the
> tar entries.  That description can then be fed to tar to build
> the actual tarball.
>
> The description format that tar already supports is a variant
> mtree format borrowed from NetBSD.  Each line specifies
> the tar entry fields (filename, owner, permissions, etc) and
> the filename where the file contents are stored.

Simon:  Thank you for working on this and contributing it.  I expect it 
will help a lot of people...including me.  :)

Tim's idea sounds great, and would cover several use-cases. 
Specifically, it leaves the build artifacts in the usual places so 
other, later builds can build against them, whereas writing the 
artifacts directly to a tar file does not.  Building a manifest would 
also be very handy, and even necessary for correct packaging of the 
artifacts from an unprivileged build, where the on-disk meta data are 
not "correct".

I'm already doing something like this at $WORK, but not using 
buildworld/installworld (to my dismay).  I manually maintain an mtree 
file which gets fed to makefs to build an mfsroot.  Although I like the 
fascist control of this method, it's more work to maintain.  Automation 
is good.

Eric


More information about the freebsd-arch mailing list