Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Jun 2005 13:46:23 +0100
From:      Brian Candler <B.Candler@pobox.com>
To:        Robert Watson <rwatson@FreeBSD.org>
Cc:        gnn@FreeBSD.org, Poul-Henning Kamp <phk@phk.freebsd.dk>, current@FreeBSD.org, Garance A Drosehn <gad@FreeBSD.org>
Subject:   Re: Summary: experiences with NanoBSD, successes and nits on a Soekris 4801
Message-ID:  <20050620124623.GA1107@uk.tiscali.com>
In-Reply-To: <20050620094835.Q19830@fledge.watson.org>
References:  <20050619155228.Y6413@fledge.watson.org> <66959.1119209763@critter.freebsd.dk> <m2br613i8n.wl%gnn@neville-neil.com> <p0621021dbedbfa4dd5ff@[128.113.24.47]> <20050620094835.Q19830@fledge.watson.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jun 20, 2005 at 09:58:46AM +0100, Robert Watson wrote:
> >Another thing I was thinking about was that we could have more 
> >components which trim themselves down based on #defines for something 
> >like MINIMALIST_USER or MINIMALIST_USERBIN .  I almost tried that with 
> >the recent changes to `env', for instance.  The new options I added are 
> >very nice, but they do add something like 20%-40% to the size of the 
> >executable.  And someone putting together a minimal system could easily 
> >avoid writing scripts that need the new options.

Hmm... unless we can make the manpages also update themselves conditionally,
IMO it might be better to keep a separate tree of cut-down binaries.

Can I offer a lateral suggestion on this thread: another option is to take a
standard FreeBSD binary distribution and separate out the bits you want and
those you don't.

I wrote a tiny program using libarchive which does this:
http://psg.com/~brian/software/tarsplit/

It's controlled by a simple config file, specifying which file patterns go
into which output bins. The way I chose to split it, from the base.?? files
I got:

-rw-r--r--  1 brian  brian  12259050 May  9 11:49 splitbsd-5.4-base.tar.gz
-rw-r--r--  1 brian  brian   3739936 May  9 11:49 splitbsd-5.4-bind.tar.gz
-rw-r--r--  1 brian  brian   7895611 May  9 11:49 splitbsd-5.4-boot.tar.gz
-rw-r--r--  1 brian  brian  17848825 May  9 11:49 splitbsd-5.4-devel.tar.gz
-rw-r--r--  1 brian  brian   2085982 May  9 11:49 splitbsd-5.4-doc.tar.gz
-rw-r--r--  1 brian  brian    287388 May  9 11:49 splitbsd-5.4-legacy.tar.gz
-rw-r--r--  1 brian  brian    810702 May  9 11:49 splitbsd-5.4-netif.tar.gz
-rw-r--r--  1 brian  brian    371588 May  9 11:49 splitbsd-5.4-nisker.tar.gz
-rw-r--r--  1 brian  brian    663606 May  9 11:49 splitbsd-5.4-sendmail.tar.gz
-rw-r--r--  1 brian  brian   1164703 May  9 11:49 splitbsd-5.4-text.tar.gz

The -base package gives you a reasonably functional FreeBSD system, in 12MB
compressed / 35MB 'du' uncompressed. Just add a kernel of your choice.

When you re-run the same config against a newer distribution, say 5.5, then
tarsplit indicates which files are new (filename don't match any pattern)
and have gone (pattern doesn't match any file), which helps you keep the
control file up to date incrementally.

Now, if only I could tell for sure which files are GPL-tainted. Perhaps we
could add a UFS flag for this :-)

Regards,

Brian.



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