OpenBSD Following -current and using snapshots [FAQ Index]


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.

2016/08/01 - new mandoc.db(5) format

To update all mandoc.db(5) files to the new format, run:
makewhatis

2016/08/08 - Mandatory W^X enforcement

W^X violations are now only permitted for binaries marked wxneeded executed from filesystems marked wxallowed.

2016/08/10 - RELRO by default on all archs but luna88k

The system now uses the RELRO design ("read-only after relocation") to lay out executables and libraries such that they use fewer mappings and more of the initial data can be protected as read-only. Unlike other OSes, this applies to all dynamic executables and libraries by default, as well as to static PIE executables.

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

2016/08/12 - [ports] py-elasticsearch-curator update

With the update of Elasticsearch Curator to the 4.x version, the CLI interface changed. Instead of parameters, yaml configuration files are used to steer actions of curator. Configuration file documentation can be found on the curator reference pages.

2016/08/14 - qabs(3) and qdiv(3) manpages removed

Their content was merged into the labs(3) and lldiv(3) manpages, so the separate files should be removed and and the database updated.
rm -f /usr/share/man/man3/qabs.3 /usr/share/man/man3/qdiv.3
makewhatis

2016/09/01 - armv7 complete ABI break

OpenBSD/armv7 moved to the ARM EABI. This is a hard ABI break which you cannot cross with a simple build. To upgrade through this break, you need to upgrade from a snapshot.

2016/09/01 - [ports] letskencrypt renamed/moved to base

letskencrypt, previously in ports/security, has been imported to base under its new name acme-client. Adjust scripts/cronjobs as necessary.

2016/09/03 - armv7 is now PIE

The armv7 platform has been switched to PIE (position-independent executables) by default. Everyone is encouraged to update via snapshots (dated after 2016/09/02); if you want to upgrade via sources, follow these instructions:

First, install the new system Makefiles with the change to PIE_ARCH in bsd.own.mk:

cd /usr/src/share/mk && make install
Then, recompile and install gcc and binutils.
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
Finally, recompile your system by following the procedure outlined in release(8).

2016/09/08 - armv7 now supports static PIE

The armv7 platform now also supports PIE for static binaries. Everyone is encouraged to update via snapshots (dated after 2016/09/09); if you want to upgrade via sources, follow these instructions:

First, install the new system Makefiles with the change to STATICPIE_ARCH in bsd.own.mk:

cd /usr/src/share/mk && make install
Then, build and install rcrt0.o:
cd /usr/src/lib/csu
make clean && make obj && make depend && make && make install
Then, recompile and install gcc:
cd /usr/src/gnu/usr.bin/cc
make clean && make obj && make depend && make && make install
Finally, recompile your system by following the procedure outlined in release(8).

2016/09/09 - /dev/sound removed

Remove unused device nodes:
rm -f /dev/sound*

2016/09/13 - [ports] Railo replaced with Lucee

Railo has been replaced with Lucee (a fork). Make notes on your existing Railo configuration before updating. You will need to adjust Tomcat configuration, and configure Lucee according to your previous Railo configuration.

2016/09/19 - softraid crypto switched to bcrypt PBKDF

New volumes will be created with bcrypt PBKDF, however existing volumes will continue to use PKCS5 PBKDF2 until a passphrase change is made.

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.

2016/09/23 - sqlite3 moved back to ports

SQLite has moved from base back to ports. The old files must be removed before building from ports:
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
Ports bulk builders must remove the old libraries before building new packages.

Otherwise, users should wait until updated packages are available before removing the libraries, otherwise many installed packages will break. You can check:

$ 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
If the sqlite3 version number is 32.0 or lower, they are not updated yet.
$OpenBSD: current.html,v 1.727 2016/09/24 10:28:51 tb Exp $