Active OpenBSD development is known as the -current branch. These sources are frequently compiled into releases known as snapshots. Active development sometimes pushes aggressive changes, and complications can arise when building the latest code from a previous point in time. Some of the shortcuts for getting over these hurdles are explained on this page. In general, it's far better to use the OpenBSD upgrade procedure with a newer snapshot, as developers will have gone through the trouble for you already.
Make sure you've read and understand how to build the system from source before using -current and the instructions below.
You should always use a snapshot as the starting point for running -current. Upgrading by compiling your own source code is not supported.
Most of these changes will have to be performed as root.
To upgrade over this, start from a system running 6.0-release or later and an up-to-date source tree:
cd /usr/src && make obj && make clean && make includes cd /usr/src/libexec/ld.so make SUBDIR= depend && make SUBDIR= && doas make SUBDIR= install cd /usr/src/lib/csu make depend && make && doas make install cd /usr/src/gnu/usr.bin/binutils-2.17 make -f Makefile.bsd-wrapper && doas make -f Makefile.bsd-wrapper install cd /usr/src && make build
rm -f /usr/share/man/man3/qabs.3 /usr/share/man/man3/qdiv.3 makewhatis
First, install the new system Makefiles with the change to PIE_ARCH in bsd.own.mk:
Then, recompile and install gcc and binutils.cd /usr/src/share/mk && make install
Finally, recompile your system by following the procedure outlined in release(8).cd /usr/src/gnu/usr.bin/binutils-2.17 make -f Makefile.bsd-wrapper clean && make -f Makefile.bsd-wrapper obj && \ make -f Makefile.bsd-wrapper depend && make -f Makefile.bsd-wrapper cd /usr/src/gnu/usr.bin/cc make clean && make obj && make depend && make && make install cd /usr/src/gnu/usr.bin/binutils-2.17 && make -f Makefile.bsd-wrapper install
First, install the new system Makefiles with the change to STATICPIE_ARCH in bsd.own.mk:
Then, build and install rcrt0.o:cd /usr/src/share/mk && make install
Then, recompile and install gcc:cd /usr/src/lib/csu make clean && make obj && make depend && make && make install
Finally, recompile your system by following the procedure outlined in release(8).cd /usr/src/gnu/usr.bin/cc make clean && make obj && make depend && make && make install
rm -f /dev/sound*
If you're booting from softraid crypto, ensure that your boot loader has been upgraded to a version that supports bcrypt prior to changing your passphrase. That is to say, it should be from a snapshot dated after 2016/09/19. The boot(8) version should be at least 3.33 on amd64 and 3.31 on i386. Also be aware that once the passphrase has been changed, an older version of bioctl(8) (one that does not support bcrypt PBKDF) will not be able to "unlock" the volume.
Ports bulk builders must remove the old libraries before building new packages.rm /usr/bin/sqlite3 rm /usr/include/sqlite3*.h rm /usr/lib/pkgconfig/sqlite3.pc rm /usr/libdata/perl5/site_perl/*-openbsd/sqlite3*.ph rm /usr/share/man/man1/sqlite3.1 rm /usr/lib/libsqlite3* # see below
Otherwise, users should wait until updated packages are available before removing the libraries, otherwise many installed packages will break. You can check:
If the sqlite3 version number is 32.0 or lower, they are not updated yet.$ pkg_info -S nss Information for inst:nss-3.26 Signature: nss-3.26,@nspr-4.12p0,c.89.1,nspr4.23.3,plc4.23.3,plds4.23.3,pthread.23.0,sqlite3.33.0,z.5.0