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