[OpenBSD]

[FAQ Index]

Following -current


Table of Contents


Introduction

This document is for people who wish to follow -current. It contains information about changes from 4.9-release to -current, and should NOT be used by anyone upgrading from 4.7 or earlier, or people wishing to follow -stable.

If you wish to update to 4.9-release or 4.9-stable from previous versions, see the upgrade guide.

Make sure you have read and understood FAQ 5 - Building 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.

2011/03/13 - -current mklocale required

mklocale needs to be built and installed to avoid a "conflicting map entries" error:
cd /usr/src/usr.bin/mklocale
make obj
make depend
make
make install

2011/03/19 - [ports] incompatible groff update

In case you are building ports, update src/usr.sbin/pkg_add/OpenBSD at the same time as upgrading from groff-1.15 to groff-1.21. New groff and old pkg_create build manuals with ANSI escapes, old groff and new pkg_create cause ports build failures.

2011/04/14 - Kernel "make depend" now no-op

Kernel Makefiles now autogenerate dependencies during compilation, so the "make depend" target now quietly exits, doing nothing. Users of most platforms will not have to do anything about this.

Users of gcc2-based platforms (hp300, mvme68k, mvme88k, sparc, vax) will have to rebuild gcc before this will work to implement the required gcc options.

# gcc2 platforms only!!
rm -r /usr/obj/gnu/egcs/gcc/*
cd /usr/src/gnu/egcs/gcc
make -f Makefile.bsd-wrapper clean
make -f Makefile.bsd-wrapper obj
make -f Makefile.bsd-wrapper depend
make -f Makefile.bsd-wrapper
make -f Makefile.bsd-wrapper install
make -f Makefile.bsd-wrapper clean
make -f Makefile.bsd-wrapper depend
make -f Makefile.bsd-wrapper
make -f Makefile.bsd-wrapper install
But as always, starting from a newer snapshot is a much better idea.

2011/04/17 - new security(8) script

Apply revision 1.70 to daily(8). In case you have added code to the file /etc/security, move that code to /etc/daily.local. Delete the file /etc/security, it has been replaced by the file /usr/libexec/security now contained in the base file set. Also delete the line containing /etc/security from the file /etc/changelist.

2011/04/18 - vnd removed, svnd renamed to vnd

The traditional vnd that bypasses the buffer cache has been removed, and svnd has been renamed to vnd. It is also no longer possible to swap to vnds. Users running current will notice that the kernel will treat svndX and vndX as the same device from now, so older svnd device nodes will continue to function.

2011/04/22 - [ports] SOGo update

SOGo has been updated to 1.3.6. The new session handling requires a new configuration default named OCSSessionsFolderURL. For more information consult the package README file or the general SOGo Installation Guide installed with the package.

2011/04/22 - [ports] www/opera-flashplugin removed

www/opera-flashplugin has been removed. You can install GNU Gnash as a replacement.

2011/04/28 - ftp-proxy(8) pf.conf change required

ftp-proxy(8) has changed to using divert-to instead of rdr-to, avoiding an expensive state lookup using the DIOCNATLOOK ioctl. PF rules must be adjusted to compensate - old rules like these:
pass in quick proto tcp to port ftp rdr-to 127.0.0.1 port 8021
should be replaced with:
pass in quick inet proto tcp to port ftp divert-to 127.0.0.1 port 8021
Note that with divert-to, the address family (in this example inet) must be specified explicitly.

2011/05/05 - tftp-proxy(8) pf.conf change required

tftp-proxy(8) has also changed to using divert-to. PF rules must be adjusted to compensate - old rules like these:
pass in quick on internal proto udp to port tftp rdr-to 127.0.0.1 port 6969
should be replaced with:
pass in quick on internal inet proto udp to port tftp divert-to 127.0.0.1 port 6969
Again note that the address family must be specified explicitly.

2011/05/20 - pf.conf 'set skip' now handles groups

In pf.conf, 'set skip on <...>' now works with interface groups. Previously if an interface type (without number) was used, e.g. 'set skip on vlan' or 'set skip on em' was used, it would have the undocumented behaviour of matching any interface of that type. Now it will only match an interface which is a member of the named group.

This results in changed behaviour for some users: If you currently use "set skip" with a physical interface type (e.g. "set skip on ix") you will need to add the interface to a group of that name: 'ifconfig ix0 group ix' or add 'group ix' to hostname.ix0.

Interfaces cloned at runtime (e.g. lo, trunk, vlan, pppoe, carp, gif, mpe and others) default to being in a group named after the interface type, so for these interfaces there will be no change in behaviour unless you have deliberately changed groups, e.g. with 'ifconfig carp456 -group carp'.

2011/05/25 - removed support for legacy audio and MIDI device names

Legacy naming won't work any longer so any scripts or configuration files of applications using sndio(7) should be updated. Examples:
     /dev/audio0   -->   sun:0
     /dev/audio1   -->   sun:1
     /dev/rmidi2   -->   rmidi:2
     default       -->   aucat:0
     mystuff       -->   aucat:0.mystuff

2011/05/28 - [ports] Dovecot update

Dovecot has had a major update, needing some changes in configuration files. See the notes on upgrading from 1.1 to 2.0 on Dovecot's wiki for more information about how to handle this.

The database support has been moved from flavoured versions of Dovecot (dovecot-1.2.16p5-ldap, -mysql, -postgresql, -sqlite, etc) to plugins in subpackages (dovecot-ldap-2.0.13, etc). All older versions will be upgraded to the new main package; if you're using a flavoured version for database support, you will need to add the relevant subpackage/s yourself. Berkeley DB is no longer supported, if you're using this you will need to switch to a SQL database instead.

2011/05/31 - -current config(8) required to build kernel

config(8) needs to be built and installed to avoid "excess elements in struct initializer" errors in ioconf.o during a kernel build:
cd /usr/src/usr.sbin/config
make obj
make depend
make
make install
Afterwards, any existing kernel compilation directories must be rebuilt by running config again:
cd /usr/src/sys/arch/${ARCH}/conf
config ${CONFIG}
Finally, the kernel can be built:
cd /usr/src/sys/arch/${ARCH}/compile/${CONFIG}
make

2011/06/02 - [Xenocara] switched to xkeyboard-config

Keyboard definition files from the old xkb-data package in /etc/X11/xkb have been replaced by files from xkeyboard-config, which are now installed in /usr/X11R6/share/X11/xkb. The old ones can be removed:
rm -rf /etc/X11/xkb
If you have an
/etc/X11/xorg.conf
file that exists mainly to set keyboard type and nationality that file should be removed, otherwise you may find yourself without keyboard functionality in X.

2011/06/29 - [Xenocara] New input device configuration code

A new autoconfiguration mechanism for input devices has been implemented in the X server. It provides even better support for various input devices: synaptics touchpads (not yet ready) or touchscreens without a configuration file. The InputDevice sections can be removed from xorg.conf in most cases.
To override the autoconfiguration with an InputDevice section for an input device that would normally be auto-configured, the following needs to be added to /etc/X11/xorg.conf:

Section "ServerFlags"
    Option "AutoAddDevices" "False"
EndSection

2011/07/04 - pf.conf "set require-order" removed

The pf.conf(5) set require-order option has been removed; you must remove it from any ruleset which uses it or the ruleset will not load. This option was used to relax requirements on ruleset ordering; these have not been enforced by default for some time.

2011/07/06 - [ports] pstoraster moved to its own package

The pstoraster print filter has moved out of ghostscript into the gstoraster package. If you use a CUPS print filter that requires pstoraster to run, you need to install the new package manually:
# pkg_add gstoraster

2011/07/07 - rc.conf 'rc_scripts' variable renamed to 'pkg_scripts'

The rc.conf(8) rc_scripts variable has been renamed to pkg_scripts. Edit rc.conf.local(8) accordingly to be able to start package daemons automatically on boot.
This change was introduced to make it clear that pkg_scripts should only be used to store packages(7) rc.d(8) scripts names.

2011/07/08 - OpenBSD/sparc switched to gcc4

OpenBSD/sparc now uses gcc4. Upgrade from source is non-trivial and time consuming, and will not be supported. Upgrade by snapshot dated after July 9 before attempting to build from source.

Make sure your boot loader is up to date -- use installboot if you don't use bsd.rd to install the snapshot.

2011/07/10 - OpenBSD/armish and OpenBSD/zaurus switched to gcc4

The ARM based platforms now use gcc4. Upgrade from source is non-trivial and time consuming, and will not be supported. Upgrade by snapshot dated after July 10 before attempting to build from source.

2011/07/14 - [ports] PHP: support for multiple versions

Multiple PHP versions are now supported in packages.

php.ini moved
The directory layout of the PHP port has been adjusted. /var/www/conf/php.ini has been replaced by /etc/php-$VERSION.ini. If you have made changes to /var/www/conf/php.ini file, make sure they are carried across to the relevant file for whichever version you will be running (/etc/php-5.2.ini or /etc/php-5.3.ini).

php5.conf renamed to php-5.2.conf
If you are currently using PHP with the web server in base, you will need to adjust your configuration:
cd /var/www/conf/modules
rm php5.conf
ln -s /var/www/conf/modules.sample/php-5.2.conf /var/www/conf/modules/php.conf
php module changes
The various PHP modules (for example gd, mysql, postgresql, xcache, and various other modules which are part of PHP or from PECL) had their configuration files in /var/www/conf/php5.sample; symbolic links for active modules were placed in /var/www/conf/php5. These have moved to /etc/php-5.2.sample and /etc/php-5.2 respectively. You will need to check for existing links in /var/www/conf/php5 and create equivalent links in /etc/php-5.2. Note that mbstring is now part of the main php-5.2 package so an existing mbstring.ini symbolic link can be ignored.

2011/07/17 - [ports] change in startup procedure for Postfix and exim

The base OS has moved to using scripts in /etc/rc.d to start all daemons. The script for sendmail does not function fully for alternative MTAs (in particular it will display "failed" at startup, although the daemon will still be started, and "/etc/rc.d/sendmail reload" or "...stop" will not work as expected). If you were using Postfix or exim and starting it using the standard method of setting sendmail_flags in rc.conf.local, you should set sendmail_flags=NO and start the relevant daemon via pkg_scripts, e.g.
pkg_scripts="${pkg_scripts} postfix"

2011/07/20 - [ports] Amavisd-new update

Amavisd-new has had a major update, needing some changes in sql schema. See the notes on upgrading from 2.6 to 2.7 on Amavisd-new's web site for more information about how to handle this.

2011/08/04 - [ports] pecl-imagick needs pthread

ImageMagick has been updated to a version which now requires threads support.

Due to the current userland threading mechanism in OpenBSD it is necessary that programs calling libraries needing threads do themselves load the thread library to ensure that i/o wrapper functions are used.

This can be done by linking the programs with the -pthread compiler flag, which is commonly done in ports, but can't always be done so sometimes extra configuration is needed - common examples are Perl and httpd in the base OS.

The typical symptom is a failure of the program to start, with complaints about missing pthread-related library functions. In those cases you can run the program with LD_PRELOAD=libpthread.so set in the environment which has the desired effect. For pecl-imagick (notably required by Horde/IMP), the simplest way is to create a login(1) class under /etc/login.conf(5) named after the Apache rc.d(8) script, i.e. "httpd":

 httpd:\
	:setenv=LD_PRELOAD=/usr/lib/libpthread.so:\
	:tc=daemon:
and ensure that /etc/rc.d/httpd is used to start/restart the server (N.B. log rotation scripts might need to be adjusted).
[back] www@openbsd.org
$OpenBSD: current.html,v 1.288 2011/08/18 19:13:19 sthen Exp $