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.
# cd /usr/src/share/mk && make install
If you build your own releases, note that make release now needs more than 2G space on /usr/obj. Increasing the size to 3G is recommended.
If you wish to upgrade from source, you need to bootstrap clang:
Compile libcompiler_rt:# pkg_add g++ # cd /usr/src/gnu/usr.bin/clang # make obj # make BOOTSTRAP_CLANG=yes # make install
Then do a regular make build and make release.# cd /usr/src/lib/libcompiler_rt # make obj # make depend # make # make install
# cd /usr/src/gnu/usr.bin/cc # make obj # make depend # make # make install
Then do a fresh install and restore the data from the backup.# fdisk -iy -g -b 960 sdN
After the upgrade, you can use ksh_hist.txt as your history file.$ fc -ln 1 | cut -f2- > ~/ksh_hist.txt
If you upgrade from source, note that the old ksh recklessly truncates a history file that it doesn't understand, so be careful not to run interactive sessions of the old and new ksh in parallel. A reboot after the build is recommended.
# rm /usr/sbin/slaacd
In any kernel directory, you must issue make config:# cd /usr/src/usr.sbin/config # make obj # make && make install
The make install step will also enable the kernel relinking on each boot. Therefore, installing kernels with make install is recommended. Developers can deactivate the kernel relinking at reboot time by installing kernels with cp obj/bsd /bsd and reactivate the automatic process using make install.# cd /sys/arch/$(machine)/compile/GENERIC.MP # make obj # make config # make && make install
The vlan, vlandev, and -vlandev options are now deprecated in favour of vnetid, -vnetid, parent, and -parent when using ifconfig(8) or in hostname.if(8) configuration files. Use of the vlan option must be replaced with vnetid. Because VLAN tag 0 is invalid according to the relevant VLAN specifications, the vnetid option does not accept 0 as a valid network identifier. To use VLAN tag 0 on the wire the vnetid can be unconfigured with -vnetid. Use of vlandev and -vlandev must be replaced with parent and -parent respectively.
Unlike vlan and vlandev, vnetid and parent do not implicitly bring the vlan interface up. Similarly, the vlan option is no longer implied by the interface's minor when it is not explicitly set.
ifconfig(8) no longer outputs a vlan specific status line, or separate vnetid and parent lines. The vnetid and parent lines have been merged into a single encap line containing the VLAN tag and parent information.
An example of the changes to a vlan(4) configuration file and the ifconfig(8) output is below. Before the changes:
After the changes:# cat /etc/hostname.vlan7 vlandev em0 # vlan 7 and up are implied lladdr random # ifconfig vlan7 vlan7: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 70:a7:3a:75:da:2d index 7 priority 0 llprio 3 vlan: 7 parent interface: em0 vnetid: 7 parent: em0 status: active
# cat /etc/hostname.vlan7 vnetid 7 parent em0 up lladdr random # ifconfig vlan7 vlan7: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 60:e8:d7:0d:10:6d index 7 priority 0 llprio 3 encap: vnetid 7 parent: em0 groups: vlan status: active
has to be replaced withlisten on $iface secure pki $pki
Relaying syntax is not affected by this change.listen on $iface tls pki $pki listen on $iface smtps pki $pki
In addition, you must issue make config:# cd /usr/src/usr.sbin/config # make obj # make && make install
before installing and rebooting into the new kernel, otherwise the kernel relink by rc(8) will fail.# cd /sys/arch/$(machine)/compile/GENERIC.MP # make obj # make config # make && make install