Starting with 2.7, OpenBSD provides a source tree that contains important patches and fixes (i.e. those from the errata plus others which are obvious and simple, but do not deserve an errata entry) and makes it available via CVS in addition to the current source. Thus, users can choose three options :
As a general principle, all Errata entries will be merged into the patch branch within 48 hours of when an errata is published. Other post release patches may be merged in as well, subject to a number of conditions:
To obtain the patch branch for a particular release of OpenBSD, you can update on top of a pre-existing source tree (from FTP or the CD) or you can grab the source tree freshly from an AnonCVS server. Instructions for getting the patch branch and staying up to date are described in the Getting Started section of the AnonCVS documentation. Note that patch branches do not help to upgrade from one release of OpenBSD to another, e.g. to go from 3.8 to 3.9. They only provide a means for staying up to date with the patches within a given release. If you are trying to go from one release to another via source, please visit the upgrade guide. Also, you cannot go backwards, from -current back to -stable, because of library versioning problems.
To rebuild the default kernel from stable:
# cd /usr/src/sys/arch/i386/conf # /usr/sbin/config GENERIC # cd /usr/src/sys/arch/i386/compile/GENERIC # make clean && make depend && make
Replace i386 with your architecture, e.g. sparc, alpha, etc.
To reboot with the newly compiled kernel:
# cd /usr/src/sys/arch/i386/compile/GENERIC # cp /bsd /bsd.old (Save an old copy of your kernel) # cp bsd /bsd (Copy the new kernel into place) # reboot
As above, substitute your architecture for i386. If your system has trouble booting the new kernel, you can easily go back and reboot from the old kernel, now called bsd.old.
To rebuild the system binaries:
# rm -rf /usr/obj/* # cd /usr/src # make obj # cd /usr/src/etc && env DESTDIR=/ make distrib-dirs # cd /usr/src # make build
This will take awhile...