Subject: pkgsrc to replace build.sh
To: None <tech-pkg@netbsd.org>
From: matthew sporleder <msporleder@gmail.com>
List: tech-pkg
Date: 08/30/2007 00:37:33
Hey, guys.  I know pkgsrc has been getting a lot more capable in terms
of cross-compilation, pkg options, and so forth; as such, the idea
that pkgsrc could be used to replace build.sh for building netbsd has
been running through my head a lot.  I just wanted to toss this out
there and see if anyone else was thinking in the same direction.

Basically, my vision goes something like this:
In pkgsrc there would be a /netbsd/ directory.  In there you could
have cmds/, libs/, kernels/, and meta/.
e.x.,
cmds/ls
cmds/file
libs/libc
libs/libcrypt
kernels/GENERIC
kernels/MYCUSTKERN
meta/base
meta/net
meta/distribution

Ideally, 'make GENERIC pkg' could go through and figure out which cmds
and libs were necessary to support the kernel options (do we need
wiconfig?  newfs_lfs?) as would also be true for any commands to
require their supporting libs.

Now the really fun part would be doing a 'make pkg kernel=GENERIC' in
meta/distribution and ending up with syspkgs for all to enjoy.  :)
Obviously from here we would want to modify sysinstall to pkg_add -K
/var/db/syspkg everything in the resulting build.

I made a crude (read short) attempt to creating a pkg from something
in the existing netbsd src tree, but it didn't go very far without a
proper Makefile and wouldn't do much good without the available
options for cross-building, etc, that build.sh provides.

It seems the largest hurdles would be: organizing the netbsd src tree
to support this idea, getting the build.sh infrastructure into the
more modular pkgsrc system (just port over src/share/mk to
pkgsrc/mk?), and keeping the projects separate enough so they don't
interfere with eachother (keeping the pkgsrc bootstrap smaller than
the full netbsd tools).

Just an idea I had,
Matthew Sporleder