OpenBSD & CVS
Every now and then I start up my OpenBSD VM to see how things are in BSD-land. And of course, after the VM has been asleep for a few month, I'd like to update the system too. As OpenBSD still uses CVS to manage their source repositories (for various reasons), we may have no other choice but to use it:
$ cd /usr/src/ $ time cvs -q up -rOPENBSD_5_8 -Pd [...] U usr.sbin/zic/zic.8 U usr.sbin/zic/zic.c P usr.sbin/ztsscale/ztsscale.c 158m51.96s real 0m16.85s user 7m34.07s systemThe tree is about 780 MB in size and took 2.6 hours to complete. And we haven't even started the build yet. Wat?
There's an unofficial Git tree for
openbsd-src
, but before we revert to that, let's try the recommended alternative, CVSync.Let's look at the available repositories first:
$ cvsync cvsync://anoncvs.usa.openbsd.org/ Name: openbsd, Release: rcs Comment: OpenBSD CVS Repository Name: openbsd-cvsroot, Release: rcs Name: openbsd-ports, Release: rcs Name: openbsd-src, Release: rcs Name: openbsd-www, Release: rcs Name: openbsd-x11, Release: rcs Name: openbsd-xf4, Release: rcs Name: openbsd-xenocara, Release: rcsWe're just interested in
openbsd-src
for now:
$ sudo mkdir -m0775 /cvs && sudo chgrp wsrc /cvs # We're not using doas yet. $ cat /etc/cvsync_openbsd.conf config { hostname anoncvs.usa.openbsd.org base-prefix /cvs collection { name openbsd-src release rcs umask 002 } } $ cvsync -c /etc/cvsync_openbsd.confThe initial sync took well over 3 hours to complete, but successive runs tend to complete in a few minutes, much less than updating with plain
cvs
.However, the result is unusable yet:
$ ls -1 /cvs/src/sys/arch/`uname -m`/conf Attic GENERIC,v GENERIC.MP,v Makefile.i386,v RAMDISK,v RAMDISK_CD,v files.i386,v ld.script,vNo, we have to checkout a local copy now, before we can start using it:
$ cd /usr/src $ cvs -d /cvs checkout -P src $ cvs -d /cvs up -PdOnly now we'll be able to actually update the system. At last, the Git checkout was quick and so much less painful:
$ time git clone https://bitbucket.org/braindamaged/openbsd-src.git openbsd-src-git [...] real 12m57.329s user 4m5.468s sys 0m54.316s $ cd $_ $ ls -1 sys/arch/`uname -m`/conf files.i386 GENERIC GENERIC.MP ld.script Makefile.i386 RAMDISK RAMDISK_CD