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/03/07 - lpd(8) default spool directory change

The lpd(8) top spool directory /var/spool/output is now only writable by root.
Point the sd path in printcap(5) to a subdirectory where the daemon group has write access. It defaults to /var/spool/output/lpd.

2016/03/19 - csu and ld.so update

The definitions of environ and __progname for dynamically linked programs have been moved from the C startup code to ld.so(1). An updated ld.so must be built and installed before running make build.
cd /usr/src/libexec/ld.so
make SUBDIR= obj
make SUBDIR= depend
make SUBDIR=
make SUBDIR= install

2016/03/31 - changes in wscons and synaptics

The previous version of the synaptics driver won't work with a new version of the kernel. Touchpad users must rebuild that driver.

2016/04/01 - rcctl(8) syntax change

The keyword for listing enabled but stopped daemons with rcctl(8) has changed from faulty to failed.
rcctl ls failed

2016/04/24 - option WSDISPLAY_COMPAT_PCVT removed

The kernel option WSDISPLAY_COMPAT_PCVT and associated code have been removed. You need an X server built after April 3 before booting a new kernel.

2016/04/26 - softraid metadata version changed

The current softraid metadata version has been incremented as part of implementing support for sector sizes other than 512 bytes. Since on-disk metadata is automatically updated every time a softraid volume is mounted, once you mount a softraid volume on a current kernel that volume will no longer be recognized by older kernels.

2016/04/28 - /dev/bpf[0-9] to be replaced with /dev/bpf

Device cloning was enabled for bpf(4). If you upgrade to -current from source or by untarring sets on a running system, you need to finish up with
cd /dev && ./MAKEDEV bpf
to generate the new /dev/bpf device node.

2016/05/02 - clean out /usr/share/man

Formerly, hard links were used to provide the same man page under several different names. These hard links are no longer needed and may get in the way. Issue
rm -rf /usr/share/man
before upgrading to a new snapshot or building the system from source. If you upgrade from source, don't forget the
cd /usr/src/etc && doas env DESTDIR=/ make distrib-dirs
step before running make build.

2016/05/07 - MAJOR ABI BREAK: csu, ld.so, libc, libpthread update

Handling of single-threaded programs is now closer to multi-threaded, with ld.so and libc.a doing thread information base (TIB) allocation. Threaded programs from before the 2016/03/19 csu and ld.so update will no longer run. An updated ld.so must be built and installed before running make build.
cd /usr/src
make obj
make cleandir		# REQUIRED
make includes
cd /usr/src/libexec/ld.so
make SUBDIR= obj
make SUBDIR= depend
make SUBDIR=
make SUBDIR= install
PowerPC has been updated to offset the TIB from the hardware register. As a result, all threaded programs are broken until they have been rebuilt with the new libc and libpthread. perl must be built after building the libraries and before building the rest of base. These more convoluted steps are also needed when building with a base that predates the 2016/03/19 csu and ld.so update.
cd /usr/src
make obj
make cleandir		# REQUIRED
make includes
cd /usr/src/libexec/ld.so
make SUBDIR= obj
make SUBDIR= depend
make SUBDIR=
make SUBDIR= install
cd /usr/src/lib/libc
make depend
make
make install NOMAN=1
cd /usr/src/lib/librthread
make depend
make
make install NOMAN=1
cd /usr/src/gnu/usr.bin/perl
make -f Makefile.bsd-wrapper depend
make -f Makefile.bsd-wrapper
make -f Makefile.bsd-wrapper NOMAN=1 install

2016/05/08 - [packages] sysutils/runit default service directory change

Upstream moved back the default service directory to /service; to keep on using /var/service, install a symlink:
ln -s /var/service /

2016/05/20 - [packages] PostgreSQL major version update

PostgreSQL had a major version update. Follow instructions in the pkg-readme to dump your database before upgrading to a newer OS version and restore it after the update.

2016/05/23 - ld.so update on sparc64

On sparc64, ld(1) will now create binaries with a read-only PLT. Changes have been made to ld.so(1) to handle such binaries. An updated ld.so must be built and installed before running make build.

2016/05/27 - fstab needs wxallowed flag on /usr/local

W^X violating programs are no longer allowed by default, but will have to opt-in via some mechanisms which allow the violation. These mechanisms are being introduced into the system one by one, in cooperation with the ports development team. The first mechanism is that filesystems containing violating programs must be mounted using the wxallowed option, for instance:
01020304050607.h /usr/local ffs rw,nodev,nosuid,wxallowed 1 2
The base system has no W^X violating programs, but the ports tree contains a quite a few: chromium, mono, node, gnome, libreoffice, jdk, zeal, etc. Progress in this area will be defined by repairing libraries and programs so that they don't request PROT_WRITE | PROT_EXEC memory. The library libffi (Used by python for instance) was the first to be fixed. It is expected that most users will use the wxallowed option on /usr/local, but developers who wish to assist in the effort of repairing upstream software can keep it disabled and also use the kern.wxabort option (see sysctl(8)) which helps with debugging. The upgrade process cannot automatically modify fstab to add this flag to /usr/local; therefore it must be added by hand. Some ports also perform W^X violations during build-time, so the same option may be desireable on /usr/pobj or other directories.

2016/05/28 - iwm(4) needs new firmware

The iwm(4) wifi driver needs firmware with a newer major version. If you plan to use that device to carry out an upgrade, run fw_update(8) before rebooting onto the install kernel.


$OpenBSD: current.html,v 1.691 2016/06/18 17:42:02 guenther Exp $