NetBSD's pkgsrc has been ported to many operating systems we care about - Darwin (Mac OS X), IRIX, Linux, Solaris, the other BSDs, and more. Can we integrate it with xhier? Let's try it first on OS X.
The Mac has been prepared with xcode 1.5 and the November 2004 Developer Toolkit update, as well as User X11 and X11 development.
First, create the standard xhier tree:
/fsys1/.software/{admin,arch,local,regional,share,spool}
, with links from
/.software
and
/software
.
I extracted a fairly recent (this week-ish) pkgsrc to
/usr/pkgsrc
.
A decision point: where to put the pkgsrc tools? This will influence where we bootstrap to. We can try building right into the /software tree, or we can keep the pkg tools separate from xhier's infrastructure. The latter seems easier, both short-term (less complex environment) and long-term (easier to duplicate the work on other platforms without requiring an xhier package for pkgsrc). Either way will require the use of pkgviews. It seems that long-term maybe we'll want to look at building in a chrooted tree rather than risk messing up the xhier directories with a botched install or a package that doesn't honour pkgviews.
Well, all that's well and good, except it wants to bootstrap to the same PREFIX as packages go, I think. So try
/etc/mk.conf
:
PKG_INSTALLATION_PREFS= pkgviews overwrite
LOCALBASE=/software
Where to put sysconfdir? It wants to be
PREFIX/etc
. We certainly don't want a
/software/etc
directory. Let's try putting it somewhere radical:
/pkgetc
. So try bootstrapping with:
[reasoner:/usr/pkgsrc/bootstrap] root# ./bootstrap --prefix=/software --sysconfdir=/pkgetc
That ought to be enough to get us started... hrm, it isn't quite what we wanted:
[reasoner:/software] root# pwd
/fsys1/.software/share
[reasoner:/software] root# ls -l
total 10
drwxr-xr-x 2 root wheel 1024 5 Mar 19:02 bin
drwxr-xr-x 2 root wheel 1024 5 Mar 18:59 lib
drwxr-xr-x 7 root wheel 1024 5 Mar 19:03 man
drwxr-xr-x 2 root wheel 1024 5 Mar 19:03 sbin
drwxr-xr-x 3 root wheel 1024 5 Mar 18:59 share
[reasoner:/software] root#
I'm not sure how we can put the pkgsrc stuff somewhere such that we can install packages to /software/packagename without having this goo. Try installing a package anyway, see what happens.
ld: warning -L: directory name (/software/packages/digest-20021220/lib) does not exist
=> Unwrapping files-to-be-installed.
[reasoner:pkgsrc/pkgtools/digest] root# cd /software/
[reasoner:/software] root# ls -l
total 10
drwxr-xr-x 2 root wheel 1024 5 Mar 19:02 bin
drwxr-xr-x 2 root wheel 1024 5 Mar 18:59 lib
drwxr-xr-x 7 root wheel 1024 5 Mar 19:03 man
drwxr-xr-x 2 root wheel 1024 5 Mar 19:03 sbin
drwxr-xr-x 3 root wheel 1024 5 Mar 18:59 share
[reasoner:/software] root# cd bin
[reasoner:/software/bin] root# ls
bmake cpio digest ftp pax tar
[reasoner:/software/bin] root#
Nope, not happy. :~(
--
MikePatterson - 05 Mar 2005