i have a number of systems throughout my house. gateway, access point, storage, desktop, laptop, all of which run openbsd. i keep them following -current pretty tightly, and i got tired of having to wait a year and a day for pkg_add -u to finish downloading. and then i'd have to wait when doing it again on the next system.
so, i decided to go with the following approach:
use PKG_PATH with 2 sites. one locally, to get updates, and the other remote, for initial installs. then, every night, have each system upload a list of installed packages to a central location, and then have something keep all those packages updated
there are 3 parts to my system
1. packages.sh - runs on each openbsd system to get package stem names and upload the list to a central server
2. sync-packages - runs on the 'server' which is where i locally keep a copy of all installed packages
3. nfs. my server, 'macmini', exports /var/media/openbsd through nfs. clients mount this. they also run 'packages.sh' from there. /var/media/openbsd/{amd64,i386} hold the packages that are installed somewhere on my machines
sprinkle some ssh keys and crontab around, and it's automatic.
personally, i created another user that had a valid $HOME, but the shell is /sbin/nologin
as for PKG_PATH, i set it like this:i**
PKG_PATH=/var/mnt/packages/`machine`/:ftp://ftp3.usa.openbsd.org/pub/OpenBSD/snapshots/packages/`machine` export PKG_PATH
every night, each 'client' sends it's list of installed packages to the 'server', which then turns around, a little later, and uses rsync to pull down any updated packages. i can then use pkg_add -u at my leisure and know that i've got a pretty up-to-date set of packages
** - according to pkg_add(1), all you've got to do is separate multiple sites in PKG_PATH with a : ... it also says that if it doesn't find the package in one, it will try the other. that doesn't work for me quite so well. i'm looking into it