[FAQ Index]
Following -current
Table of Contents
Introduction
This document is for people who wish to follow -current.
It contains information about changes from 5.2-release to -current,
and should NOT be used by anyone upgrading from 5.1 or earlier, or people
wishing to follow -stable.
If you wish to update to 5.2-release or 5.2-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.
2012/08/08 - xf86-video-ati 6.14.6 is now selected by default
The
radeon(4)
X.Org driver has been updated to version 6.14.6 and is now selected by
default when running without an xorg.conf file.
To force the use of the
radeonold(4)
driver, add the following to /etc/X11/xorg.conf:
Section "Device"
Identifier "Old Radeon Card"
Driver "radeonold"
EndSection
2012/08/21 - IPv6 SLAAC defaults to privacy addresses
IPv6 stateless automatic address configuration (as used when you
configure an interface's address using "rtsol") now defaults to using
RFC4941 privacy addresses.
This means that when making outgoing connections, predictable addresses
based on the MAC address are no longer used as a source address, instead
temporary addresses are generated periodically and used (see
ifconfig(8)'s
description of "autoconfprivacy" for more information).
Incoming connections aren't affected by this; the IPv6 address based on
the MAC address is still configured on the interface and can be used for
incoming connections.
However if connections to other machines are restricted based on source
IPv6 addresses or reverse DNS lookups, you may need to make configuration
changes and either disable privacy addresses (e.g. echo
"up -autoconfprivacy" >> /etc/hostname.em0) or configure
addresses manually instead.
2012/08/23 - New toolchain behavior
ld(1)'s
linker scripts now recognizes .openbsd.randomdata sections, which libc has
also been updated to make use of. Normally ld(1) is not built until after libc,
so to explicitly build it first use:
cd /usr/src/gnu/usr.bin/binutils
make -f Makefile.bsd-wrapper obj
make -f Makefile.bsd-wrapper
make -f Makefile.bsd-wrapper install
You can verify that ld(1) is up to date by checking the output from
ld --verbose:
$ ld --verbose | grep randomdata
.openbsd.randomdata :
PROVIDE_HIDDEN (__openbsd_randomdata_start = .);
*(.openbsd.randomdata .openbsd.randomdata.*)
PROVIDE_HIDDEN (__openbsd_randomdata_end = .);
2012/08/30 - pmdb(1) removed
pmdb(1)
was removed from base. The binary and it's manual page can be removed:
rm /usr/bin/pmdb /usr/share/man/man1/pmdb.1
2012/08/31 - gcc(1) now uses __guard_local instead of __guard on ELF/GCC4 architectures
gcc(1)
now emits stack-smashing protection code that references __guard_local instead
__guard on ELF/GCC4 architectures. Because GCC is built at the end of a normal
"make build", it's necessary to either do two full builds, or you can short-cut
the first build by updating just the C runtime files and compiler:
cd /usr/src/lib/csu
make depend && make && sudo make install
cd /usr/src/gnu/usr.bin/cc
make depend && make && sudo make install
You can then proceed with a normal "make build" as per
release(8).
2012/08/31 - amd64, sgi, loongson and sparc64 are now PIE
The amd64, sgi, loongson and sparc64 platforms have been switched to
PIE (position-independent executables) by default.
Everyone is encouraged to update via snapshots (dated after 2012/08/31); 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 && sudo make install
Then, recompile and install gcc and binutils.
cd /usr/src/gnu/usr.bin/binutils
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 && sudo make install
cd /usr/src/gnu/usr.bin/binutils && sudo make -f Makefile.bsd-wrapper install
Finally, recompile your system by following the procedure outlined in
release(8).
2012/08/31 - alpha is now PIE
The alpha platform has been switched to PIE (position-independent executables)
by default.
Everyone is encouraged to update via snapshots (dated after 2012/09/01).
To do this conversion yourself, see the
instructions for PIE conversion on other architectures.
2012/09/02 - hppa is now PIE
The hppa platform has been switched to PIE (position-independent executables)
by default.
Everyone is encouraged to update via snapshots (dated after 2012/09/02).
To do this conversion yourself, see the
instructions for PIE conversion on other architectures.
2012/09/12 - landisk is now PIE
The landisk platform has been switched to PIE (position-independent executables)
by default.
Everyone is encouraged to update via snapshots (dated after 2012/09/12).
To do this conversion yourself, see the
instructions for PIE conversion on other architectures.
2012/09/20 - pf enforces 'frags' limit
pfctl will abort and fail to load the ruleset if the 'frags' limit in
pf.conf is higher than the kern.maxclusters sysctl.
This is to guard against allowing a system to run out of mbuf clusters.
If it is not set, the new default is 25% of kern.maxclusters.
2012/09/23 - imake moved to ports
Imake, the old X build system has been moved to ports, as none of the packages in xenocara uses it anymore. The version installed in /usr/X11R6 need to be manually removed:
sudo rm -rf /usr/X11R6/lib/X11/config
sudo rm -f /usr/X11R6/bin/{ccmakedep,cleanlinks,imake,makeg,mergelib,mkdirhier,mkhtmlindex,revpath,xmkmf}
sudo rm -f /usr/X11R6/man/man1/{ccmakedep,cleanlinks,imake,makeg,mergelib,mkdirhier,mkhtmlindex,revpath,xmkmf}.1
2012/09/24 - [ports] Major PostgreSQL update
Major update to 9.2.1. A dump/restore is required.
2012/10/11 - smtpd.conf syntax change
The "all" keyword becomes "any". You need to update your config. Be careful to really rewrite rules like:
accept from all [...]
to
accept from any [...]
because the former syntax is still valid, but it behaves completely differently now and it would break your ruleset.
2012/11/23 - sndiod(1) options changes
The rate (-r) and the encoding (-e) become per-device settings and as
such must precede the device they apply to (-f). Example, rewrite:
sndiod -frsnd/1 -r44100
by
sndiod -r44100 -frsnd/1
MIDI thru boxes are created dynamically so -M options must be removed.
MIDI ports (-q) cannot be connected to the sndiod control port,
so an external program must be used for that (eg. aucat(1) or the
audio/midish port). For instance, to make rmidi/5 control snd/0 do:
aucat -M -mmidi -qrmidi/5 -qsnd/0
2012/12/01 - m88k ports switch to gcc 3
OpenBSD/luna88k and OpenBSD/mvme88k now use gcc 3.3.6 as their system compiler.
Upgrading with a recent snapshot is recommended; however, for reference, the
manual upgrade steps are:
- Build and install a new assembler:
cd /usr/src/gnu/usr.bin/gas
make clean
make obj
make depend
make
make install
- Build the new C compiler with the existing compiler:
cd /usr/src/gnu/usr.bin/gcc
make -f Makefile.bsd-wrapper clean
make -f Makefile.bsd-wrapper obj
make -f Makefile.bsd-wrapper -DBOOTSTRAP depend
make -f Makefile.bsd-wrapper -DBOOTSTRAP
make -f Makefile.bsd-wrapper -DBOOTSTRAP includes
make -f Makefile.bsd-wrapper -DBOOTSTRAP install
- Let the rest of the system know the platform now runs gcc 3:
cd /usr/src/share/mk
make install
- Build and install an up-to-date preprocessor:
cd /usr/src/usr.bin/cpp
make clean
make obj
make depend
make
make install
- Rebuild libc and libiberty with the new C compiler:
cd /usr/src/lib/libc
make clean
make obj
make NOMAN= NOPROFILE= depend
make NOMAN= NOPROFILE=
make NOMAN= NOPROFILE= install
cd /usr/src/gnu/lib/libiberty
make -f Makefile.bsd-wrapper clean
make -f Makefile.bsd-wrapper obj
make -f Makefile.bsd-wrapper NOMAN= NOPROFILE= depend
make -f Makefile.bsd-wrapper NOMAN= NOPROFILE=
make -f Makefile.bsd-wrapper NOMAN= NOPROFILE= install
- Now rebuild the compiler set again:
cd /usr/src/gnu/usr.bin/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
- The system is now ready to be rebuilt with gcc3:
cd /usr/src
rm -fR /usr/include/g++
make obj
make build
2012/12/22 - ld.so(1) update required
As a first step towards a better mechanism to properly support
destructors in dynamic libraries it is necessary to build and install
a new dynamic linker on all OpenBSD platforms except for OpenBSD/m68k,
OpenBSD/m88k and OpenBSD/vax:
cd /usr/src/libexec/ld.so
make clean
make obj
make depend
make
make install
2013/01/05 - m88k ports switch to ELF
OpenBSD/luna88k and OpenBSD/mvme88k now use ELF instead of a.out as their native
binary file format.
Upgrading with a recent snapshot is recommended; however, for reference, the
manual upgrade steps are:
- Install new include files:
cd /usr/src
make obj
make cleandir
make includes
- Build, but do not install, binutils:
cd /usr/src/gnu/usr.bin/binutils
make -f Makefile.bsd-wrapper
- Partially build the new C compiler: (this will fail because as(1) is still
the a.out assembler; this step must be done nevertheless before binutils can
be installed)
cd /usr/src/gnu/usr.bin/gcc
make -f Makefile.bsd-wrapper -DBOOTSTRAP depend
make -f Makefile.bsd-wrapper -DBOOTSTRAP -k
- Install binutils:
cd /usr/src/gnu/usr.bin/binutils
make -f Makefile.bsd-wrapper install
- Resume compiler build and install it:
cd /usr/src/gnu/usr.bin/gcc
make -f Makefile.bsd-wrapper -DBOOTSTRAP
make -f Makefile.bsd-wrapper -DBOOTSTRAP install
- Let the rest of the system know the platform now uses an ELF toolchain:
cd /usr/src/share/mk
make install
- Rebuild csu, libc, libm, libutil and libiberty with the new C compiler:
cd /usr/src/lib/csu
make NOMAN= NOPROFILE= depend
make NOMAN= NOPROFILE=
make NOMAN= NOPROFILE= install
cd /usr/src/lib/libc
make NOMAN= NOPROFILE= depend
make NOMAN= NOPROFILE=
make NOMAN= NOPROFILE= install
cd /usr/src/lib/libm
make NOMAN= NOPROFILE= depend
make NOMAN= NOPROFILE=
make NOMAN= NOPROFILE= install
cd /usr/src/lib/libutil
make NOMAN= NOPROFILE= depend
make NOMAN= NOPROFILE=
make NOMAN= NOPROFILE= install
cd /usr/src/gnu/lib/libiberty
make -f Makefile.bsd-wrapper NOMAN= NOPROFILE= depend
make -f Makefile.bsd-wrapper NOMAN= NOPROFILE=
make -f Makefile.bsd-wrapper NOMAN= NOPROFILE= install
- Now rebuild the compiler set again:
cd /usr/src/gnu/usr.bin/gcc
make -f Makefile.bsd-wrapper clean
make -f Makefile.bsd-wrapper depend
make -f Makefile.bsd-wrapper
make -f Makefile.bsd-wrapper install
- The system is now ready to be rebuilt:
cd /usr/src
make build
2013/01/16 - pf.conf syntax change
Queue assignment is now done using "set queue" instead of just
"queue".
The new syntax is documented in
pf.conf(5)
2013/01/31 - m88k ports gain shared libraries support
OpenBSD/luna88k and OpenBSD/mvme88k now build and use ELF shared libraries.
Upgrading with a recent snapshot is recommended; however, for reference, the
manual upgrade steps are:
- Install new include files:
cd /usr/src
make obj
make cleandir
make includes
- Rebuild and install binutils:
cd /usr/src/gnu/usr.bin/binutils
make -f Makefile.bsd-wrapper obj
make -f Makefile.bsd-wrapper
make -f Makefile.bsd-wrapper install
- Rebuild and install the compiler:
cd /usr/src/gnu/usr.bin/gcc
make -f Makefile.bsd-wrapper obj
make -f Makefile.bsd-wrapper depend
make -f Makefile.bsd-wrapper
make -f Makefile.bsd-wrapper install
- Build and install ld.so:
cd /usr/src/libexec/ld.so
make obj
make depend
make
make install
- Let the rest of the system know the platform is now able to build and use
shared libraries:
cd /usr/src/share/mk
make install
- The system is now ready to be rebuilt:
cd /usr/src
make build
2013/02/02 - m68k ports switch to ELF
OpenBSD/hp300 and OpenBSD/mvme68k now use ELF instead of a.out as their native
binary file format.
There is no compatibility support for now old a.out binaries.
Third-party software, such as packages, will need to be reinstalled with ELF
binaries.
Reinstalling with a recent snapshot is recommended; upgrades will work since
all a.out components of the base system will get replaced with their ELF
counterparts.
Upgrading by source roughly involves building a static ELF toolchain
(forcing NOPIC to be set in share/mk/bsd.own.mk), building as many
static ELF binaries as possible (but ld.so), building a new kernel,
building new boot blocks, installing the new boot blocks, rebooting on the new
kernel, resuming userland build up to the point the whole userland is statically
linked, then removing all a.out shared libraries, removing NOPIC from
share/mk/bsd.own.mk, installing ld.so, and rebuilding the
system. You do not want to suffer through this.
2013/03/10 - fontconfig update
Fontconfig in xenocara has been updated to version 2.10.91 and has
switched to a BSD make build system.
This new version of fontconfig deprecates the use of
~/.fonts.conf for local configuration. Make sure the users
who have created this file move it to its new location:
mkdir -p ~/.config/fontconfig
mv ~/.fonts.conf ~/.config/fontconfig/fonts.conf
Until all ports have been updated to use the new fontconfig, expect
some (mostly harmless) warnings about syntax of some of the new files
in /etc/fonts/conf.d.
2013/03/11 - pf translation counter added
A separate "translation" counter was added to identify when NAT has failed
due to a lack of ports in the range configured in the rule.
Packages using PFIOCGETSTATUS (e.g. symon and pfstat) need to be updated
to current versions (and as usual kernel and userland must be in sync).
Package version numbers have been bumped so pkg_add -u will update them
when new packages are available.
2013/03/25 - Perl update
Perl has been updated to 5.16.3. Please note that any packages using
XS modules will need to be updated. If you are updating close to the time
of this being committed and rely on such packages, you might like to wait
for updated packages to become available to save the trouble of building
them yourself.
www@openbsd.org
$OpenBSD: current.html,v 1.373 2013/03/28 21:49:08 martynas Exp $