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.

Aggressive changes are sometimes pushed in this branch, and complications can arise when building the latest code or upgrading from a previous point in time. Some of the steps for getting over these hurdles are explained on this page. Make sure you've read and understand how to build the system from source before using -current and the instructions below.

In general, it's far easier to use snapshots, as developers will have gone through much of the trouble for you already.

You should always use a snapshot as the starting point for running -current. This process typically consists of downloading (and verifying) the appropriate bsd.rd file from the /snapshots/ directory of your preferred mirror, booting from it, and choosing (U)pgrade at the prompt. Any installed packages should then be upgraded after booting into the new system.

Upgrading to -current by compiling your own source code is not supported.

Most of these changes will have to be performed as root.

2017/10/19 - [packages] neomutt binary renamed

In neomutt releases since 20171013, binaries and other files have been renamed so that they can coexist with mutt. Users may wish to add a shell alias or a symlink for mutt -> neomutt.

2017/10/23 - libpthread-stubs removed

With the integration of the pthread stub functions in libc, libpthread-stubs is no longer needed in xenocara. After upgrading base and packages, users may want to remove the old installed library, either via the sysclean package or by running the following commands:
# cd /usr/X11R6/lib
# rm libpthread-stubs.a \ \

2017/10/29 - vmd(8): switch configuration

vmd(8) no longer automatically creates an underlying bridge interface for virtual switches defined in vm.conf(5). This will require users to create their bridges ahead of time, e.g. using /etc/hostname.bridge0. This also requires users to modify their vm.conf(5) files to add an interface line to the switch definition, for example:
switch "uplink" {
    interface bridge0

2017/11/05 - make room in /usr/share before upgrading

The relinking of libraries and kernels at boot time now happens in new directory /usr/share/relink. If you have little room left on the filesystem containing /usr/share, you may want to run
# rm -r /usr/share/compile
before rebooting into bsd.rd.

2017/11/08 - iked(8) and isakmpd(8): ECP group incompatibility

In the final RFC 5903, the computation for the DH shared secret changed. The iked(8) and isakmpd(8) programs were modified to follow the RFC. These changes are not backwards compatible, so if you are using ECP groups, please make sure to upgrade all peers at the same time.

2017/11/17 - ifconfig <if> deletetunnel option deprecated

The ifconfig(8) deletetunnel option has been replaced by -tunnel. Adjust your hostname.if(5) configuration and scripts accordingly.

2017/11/30 - [packages] PostgreSQL major update

There was a major update to PostgreSQL 10.1. Use pg_upgrade as described in the postgresql-server pkg-readme or do a dump/restore.

2017/12/05 - __cxa_thread_atexit implementation

This implementation requires an up-to-date to be installed before building any libraries. To update from source, the following steps are needed:
# cd /usr/src && make includes
# cd /usr/src/libexec/
# make obj
# make
# make install
Then build userland as normal.

2017/12/05 - [xenocara] New default setup for touchpads

X selects ws(4) as default driver for touchpads now. In the setup with ws, touchpad-specific input processing is done by wsmouse(4). Touchpad configuration parameters are made available in wsconsctl(8). Using synaptics(4) as input driver is still possible. It will require a custom xorg.conf file.

2017/12/18 - [packages] Buildbot major update

There was a major update to Buildbot 0.9. While the buildslave (renamed to buildworker) workdir is compatible between 0.8 and 0.9, this is not the case for the buildmaster. On top of this, a 0.9 buildworker won't work with a 0.8 buildmaster.

Refer to the upgrade guide for information on how to migrate your configuration. If you want to keep running a 0.8 buildmaster to keep access to your old build logs/history, it's advised to install the 0.8 branch from pip and run it outside of packages.

2018/01/19 - armv7: switch to clang

The default compiler on the armv7 architecture is now clang. To update from source, the following steps are needed:
# cd /usr/src/share/mk && make install
# ln -f /usr/bin/clang /usr/bin/cc
# ln -f /usr/bin/clang++ /usr/bin/c++
# ln -f /usr/bin/clang-cpp /usr/libexec/cpp
Then build kernel and userland as usual. Some ports may fail to run until they are updated.

2018/02/10 - RFC 7217 style IPv6 addresses enabled by default

Stateless address autoconfiguration and link local IPv6 addresses historically embeded the layer 2 (ethernet mac) address in the lower 64 bits of the IPv6 address. This has various downsides and RFC 7217 specifies an alternative scheme on how to generate autoconfiguration addresses that are stable between reboots. This has been enabled per default and IPv6 link local addresses will change if IPv6 is enabled on an interface. Furthermore stateless autoconfiguration IPv6 addresses will change if autoconfiguration is enabled on an interface.

If you need the old style stateless address calculated from the layer 2 address (i.e. ethernet mac address) put -soii into the /etc/hostname.if file.

2018/02/17 - [packages] newsbeuter has been removed

Upgrading newsbeuter using pkg_add will result in newsboat being installed. Upon running newsboat for the first time it will prompt if it should import an existing newsbeuter configuration.

2018/02/26 - [packages] memcached defaults to localhost only

memcached's documentation says, "you must not expose memcached directly to the internet, or otherwise any untrusted users". In order to provide sane defaults, the normal command line in memcached's rc script has been changed to listen on localhost only. See the pkg-readme file for information about changing this to listen to external network traffic if this is required.

2018/02/28 - inteldrm(4) ioctl changes

When using a new kernel with inteldrm(4) an updated xenocara build is required as ioctls have changed in a way that is not backwards compatible.

2018/03/01 - armv7 ABI break

The alignment of 64 bit types is now always on an 8 byte boundary as required by AAPCS. This breaks ABI, for example an old sshd binary will not work with a new kernel. Using a snapshot is highly recommended.

2018/03/13 - IPv6 link-local and stateless address autoconfiguration addresses change once more

A mistake has been discovered in how RFC 7217 style addresses were calculated. The fix causes these addresses to change once more.

Also see the entry from February 10th on RFC 7217 addresses.

$OpenBSD: current.html,v 1.890 2018/03/13 14:08:33 tb Exp $