Subject: syspkgs (was: Re: OpenSSH installation from package source)
To: Rick Byers <rb-netbsd@BigScaryChildren.net>
From: Jasper Wallace <jasper@pointless.net>
List: tech-pkg
Date: 07/02/2002 15:26:43
-----BEGIN PGP SIGNED MESSAGE-----

On Mon, 1 Jul 2002, Rick Byers wrote:

> On Mon, 1 Jul 2002, Bill Studenmund wrote:
>
> > 1.6 has syspkgs, the packagized base. It's just not on by default.
>
> Cool!  Is there any documentation for this?  How is it "turned on"?

I've been playing with them for over a week now (in an attempt to make
minimal installs), here's what i've been using:

The contents of src/distrib/syspkg, and:

http://mail-index.netbsd.org/tech-install/2002/01/21/0000.html

After making the packages i ls -1 the resulting dir to a file and edit the
file to remove any packages from the list i don't want.

I then netboot the kernel thats used for the install floppies (the one with
an embedded ramdisk) on the system i'm installing onto, use sysinst to
partition, newfs, and install bootblocks on the systems disk (a 128Mb CF
card, wd0a), then exit sysinst.

i've nfs exported DESTDIR from my build machine, which i then mount on /mnt
on the install remdisk, i then chroot myself into /mnt.

(you may need to 'cd /dev ; sh ./MAKEDEV all' here).

i've also exported src/distrib/syspkg/packages which i mount on /mnt2
(whithin the chroot, so it's actally /mnt/mnt2, but thats not important).

i mkdir /mnt3, and then mount wd0a on it.

so:

i'm working in a nfs mounted chrooted DESTDIR from my build machine
which has all the syspkgs mounted on /mnt2
wd0 is already partitioned and has bootblocks in place.
and wd0a is mounted on /mnt3

then

# mkdir -p /mnt3/var/db/syspkg
# export PKG_DBDIR=/mnt3/var/db/syspkg
# cd /mnt2
# for f in `cat my_list_of_packages.txt | egrep -v "^#|^$"` ; do
# pkg_add -p /mnt3 -v $f
# done

[beacause we've used -p all the paths to the packages will be wrong after
the system is booted for real, so we need to fix them]

# cd /mnt3/var/db/syspkg
# for c in */+CONTENTS ; do
# sed 's#^@cwd /mnt3$#@cwd /#' $c > /mnt3/tmp/ctemp.$$
# mv -f /mnt3/tmp/ctemp.$$ $c
# done

[now rebuild var/db/syspkgpkgdb.byfile.db]

# pkg_admin rebuild

at this point wd0a is populated with syspkgs.

other things that you'll need to do:

copy a kernel to /mnt3/netbsd
edit /mnt3/etc/rc.conf
cd /mnt3/dev ; sh ./MAKEDEV all

Possibly beacause of the packages i'm leaving out, or beacause of bugs in
the syspkg sets you will need to:

cd /mnt3

mkdir -p tmp var/tmp var/at/jobs
chmod ugo+rwxt tmp var/tmp

cd usr/lib
ln -s libm387.so.0.0 libm387.so.0

/stand and /altroot are missing too, but we can live without them.

some of the log files that syslog expects to exist won't (e.g.
var/log/xferlog), so you'll need to 'touch' them or edit syslog.conf to make
it shutup.

some things in etc/rc.d will be missing (e.g. isdn, mountd), which makes the
rc system complaing abount missing dependancies, but it copes fine.

Some of the packing sets for the syspkgs are wrong - e.g. /usr/lkm/ext2fs.o
thinks it's in base-vfs-lkm, but the syspkg system thinks it's in
base-ext2fs-lkm.

I need to do some digging and come up with a PR for these problems.

I'd also like to split usb and audio support out into seperate packages.

pkg_* really need to be staticly linked.

- -- 
Information wants to be a lumberjack.
[http://pointless.net/]                                   [0x2ECA0975]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (NetBSD)
Comment: For info see http://www.gnupg.org

iQEVAwUBPSG4JgCB+Qwuygl1AQFmaAf/ZW8FmADEnRJebHcJmJsh1BbYJ9xHxXHU
vY8Jx1t+JG20MRNhsvYn9w0y2z/XW+g644yzyy4SRRrmAfkgMX1y0QSmHLZzagzs
1R/voUq5PrgG4PyXH2RxA5tvIyOCsxlHqLMmmyVSuXlUtPPRJdg6h8mplBUpGVAK
gM5m2d8PjctHF8cQI/Fjj3D6gBttDDYJQFbzaQ2E9RvCCXfnbnrkxRoiNt8Vo8Vx
sikpuSnziO3rrBR3AYwxaeBPfLCvyukWsEvJJ1X5Rcu/JNJEQ8alaU3wYdZcXnEu
jyRAxDBqNwgWZ8/CHh3lrgi6J+G6boiql4pk6BleQ8rmtePHG8rfZQ==
=knI3
-----END PGP SIGNATURE-----