Subject: Re: sysinstall "local" tarball
To: None <>
From: Simon Burge <>
List: tech-install
Date: 09/18/1998 17:03:33
On 17 Sep 1998 14:29:37 GMT  Heiko W.Rupp wrote:

> Simon Burge wrote:
> |This is cool.  A "sets.lst" file or somesuch with the set name (assume
> This would also have the advantage, that one can present the user a list
> of sets before disk partitioning. The user is asked which sets she wants
> and the system can then figrure out good siez for /, /usr and /var

Ok, I've had a quick tinker and come up with the following which is
lightly based on the Solaris "packagetoc" file on their installation
CDs.  For each set, we define the following properties:

	* SET         set name
	* DESC        yada yada yada
	  FLAGS       ...
	  DEPENDS     <other set>
	  DEPENDS     <other set>
	  DEPENDS     <other set>
	  ROOTSIZE    <stuff not in /usr and /var in Kbytes>
	  USRSIZE     <stuff in /usr in Kbytes>
	  VARSIZE     <stuff in /var in Kbytes>
	* MD5         12345678901234567890123456789012

Properties marked with a "*" are required, others are optional.  A
blank line or end-of-file could mark the end of a set definition or
maybe another keyword "ENDSET".  Whatever.  At the moment, the only
FLAGS value I can think of would be "required" and this would apply
(for example) to the base and etc sets in a new installation.

As Heiko suggests, we can then read this file before partitioning the
disk(s) and actually know how big each filesystem needs to be - this
would be a real win.  We'd now have "what do you want, and where do you
want to put it" rather than "where do you want to put it and now what do
you want - it doesn't fit - suffer".  I've only split up the filesystem
requirements in to /, /usr and /var - maybe we need a /usr/pkg split and
binary packages can be part of this overall install system too?

Another idea I haven't thought about too much is the idea of subsets.
For example, we might break up xfont into 75dpi fonts, 100dpi fonts and
the rest and let the user choose only those subsets they want/need.
Something like:

	* SUBSET      subset name
	* SETPARENT   name of set subset belongs to
	  FLAGS       ...
	  DEPENDS     <other set>
	  DEPENDS     <other set>
	  ROOTSIZE    <in Kbytes>
	  USRSIZE     <in Kbytes>
	  VARSIZE     <in Kbytes>

and subsets could be individual tar files inside the set tar file.  Or
perhaps having dozens of smaller subset files may be better than a
couple of large set files.  You can then choose the entire set, or just
some parts of the set.  A really, really obvious use of subsets is the
package system - select the pkg-lang set, choose the extra languages you
want to install and you're off and running.  Anyways, this one needs a
lot more thought.

For the complete "sets.lst" file that would have come with NetBSD/pmax
1.3.2, see below.

Ideas, comments, flames, free burritos?


SET		base
DESC		Base binary distribution
FLAGS		required
USRSIZE		24409
MD5		28af8a1e524d0ca95fce7538bfaf15ba

SET		comp
DESC		Compiler tools
USRSIZE		43933
MD5		fbb73e03005cbe926a2d0692d49f5535

SET		etc
DESC		System configuration files
FLAGS		required
MD5		d0fe8bbed82ff12202c98fd99496076b

SET		games
DESC		Games and their manual pages
MD5		b31c38f2ee64d9624571a789fdac5cd1

SET		kern
DESC		Bootable kernel
MD5		9daa62281e4107453b46168364d3a1c5

SET		man
DESC		Manual pages for software in base set
MD5		58de789a0915bfc3cc834dd03a3ef1f9

SET		misc
DESC		System dictionaries, typesettable document set, extra man pages
MD5		997523daae2e6e5fa5478889bd6ded63

SET		text
DESC		Text processing tools
MD5		d3bc68d345407678e09ed1c9da8c35a6

SET		xbase
DESC		Basic X client environment
USRSIZE		11270
MD5		e1dc1c4d144fdf9153795174251164ef

SET		xcomp
DESC		X libraries and include files
DEPENDS		xbase
USRSIZE		10332
MD5		2c2b241aa2f2ed167cc5c692cb6ef850

SET		xcontrib
DESC		Programs that were contributed to X
DEPENDS		xbase
MD5		524938ba9fdf3276042484dc3dfd2e26

SET		xfont
DESC		X fonts
DEPENDS		xbase
MD5		79a15b1067a91cebacb42590ae6fe4cf

SET		xserver
DESC		X servers built from X11R5
DEPENDS		xbase
MD5		d1229130277b338b299f076bd140dba9