6 months exactly after the release of 5.1 (which brought nice improvements for IPv6 and firewalling), a new OpenBSD release is out today.
Services are gradually improving their IPv6 support and associated performance. rthreads (kernel-level threads) appear in this release and may significantly change pthread performance by moving user-level uthreads into the kernel, enabling multi-core/multi-CPU threading.
Below is a summary of notable changes reported by the OpenBSD team (source: http://www.openbsd.org/fr/52.html), and the detailed chronological list is available here: http://www.openbsd.org/plus52.html.
To download the amd64 ISO for OpenBSD 5.2 see: ftp://ftp.fr.openbsd.org/pub/OpenBSD/5.2/amd64/install52.iso
This is a partial list of features in OpenBSD 5.2. For the complete changelog see: http://www.openbsd.org/plus52.html
pthreads(3) support:
pthread_mutex_timedlock(3) and sem_timedwait(3).pthread_condattr_setclock(3).gdb(1).fork(2)/open(2) within threaded processes.ps(1), top(1), and fstat(1).dlopen() was made recursive so dl*() operations from atexit() handlers do not deadlock.Improved hardware support:
wsmouse(4) and synaptics(4)).ix(4).em(4).bnx(4).tcpcib(4) (Intel Atom E600) on embedded x86 systems.urndis(4).wbsio(4).glxpcib(4) and NVIDIA MCP89 to nviic(4).axe(4).mos(4).umidi(4).azalia(4) and piixpm(4).com(4).umsm(4).Generic network stack improvements:
iked(8).gif(4) is now possible.Routing daemons and userland networking improvements:
sndiod(1), bgpd(8), dvmrpd(8), ftp-proxy(8), iked(8), iscsid(8), ldapd(8), ldpd(8), nsd(8), ospf6d(8), ospfd(8), relayd(8), ripd(8), snmpd(8), spamd(8), sshd(8), tcpbench(1), and tmux(1) now throttle acceptance of new connections when file descriptors are exhausted.destination/prefixlen syntax to route(8) for IPv6 routes.tcpdump(8).tcpdump(8).isakmpd(8) and tcpdump(8) now recognize additional Internet Key Exchange DH groups.iked(8) gained various improvements including retransmission support.ipsecctl(8) SA lifetimes can now be specified in ipsec.conf(5).tftpd(8) was rewritten as a persistent non-blocking daemon.tftp(1) now supports IPv6.snmpd(8) now supports PF-MIB, UCD-DISKIO-MIB, and additional HOST-RESOURCES-MIB OIDs.bgpd(8) is more robust when facing network instability.bgpd(8) route decision logic was adjusted to better cover route-reflector checks.bgpd(8) gained error-reporting fixes including RFC 6608 support.bgpctl(8) can now trigger MRT dumps in bgpd(8) for debugging purposes.bgpd(8).selected option was added to bgpctl show rib.ospfd(8) now properly supports LSA_TYPE_AREA_OPAQ and LSA_TYPE_AS_OPAQ.relayd(8) can now handle transactions larger than 2 GiB.relayd(8) received various bug fixes and HTTP conformance improvements.rtadvd(8) can now advertise DNS servers and route search lists.rtadvd(8) can now send router advertisements without prefix information using the noifprefix option.ftp(1) now lets you choose the source IP address of the connection.ypldap(8) now handles larger directories and is more tolerant of group processing.inet_net_pton(3) and inet_net_ntop(3).pf(4) improvements:
pf(4) now ignores/preserves the 2 least significant bits of the TOS header used for ECN.pflog(4) interfaces are now supported.pf(4) now supports weighted load balancing of states.prio and tos options are now part of set { } blocks in pf.conf(5).pfsync(4) handles demotion better to avoid failovers with incomplete state tables.pfctl(8).Miscellaneous improvements:
nginx(8) was added to the base system as an HTTP, reverse-proxy, and mail-proxy server.libpcap was updated with key API features from libpcap 1.2.0.libtool(1) is now included in base.lint(1) was removed.raid(4) and raidctl(8)) was removed in favor of softraid(4).posix_spawn(3).mbsnrtowcs(3) and wcsnrtombs(3).getdelim(3) and getline(3).sysconf(3) and pathconf(2).dirfd(3) is now a function rather than a macro.posix_memalign(3) now supports arbitrary large alignments.realloc(3) performance improved.ld.so(1) now honors DF_1_NOOPEN and refuses to dlopen(3) shared objects linked with -z nodlopen.uvm allocator improved.amd64 systems with memory extensions.compat_linux(8) gained several fixes and compatibility additions.kdump(1) can now show thread IDs and dump more argument/result structures.smtpd(8) received broad reliability and feature work.mg(1) now supports cscope and can save backup files in the user’s home directory.kvm_getfile2() support for kernel crash dumps was fixed.ksh(1) improved Emacs-style shortcuts and long-string handling.halt(8) now disables suspend-on-lid-close to avoid suspending instead of halting.make(1) gained .CHEAP and .EXPENSIVE targets and other fixes.libusb can now access some non-ugen(4) devices, enabling tasks such as programming YubiKeys with a standard kernel.tmux(1) gained a session/window tree view, more commands, layout history, and wider -F format support.fsck_msdos(8) now works with devices whose sectors are not 512 bytes.quotacheck(8) now supports DUID-based fstab(5) files.fdisk(8) received many small improvements, including stronger validation and better partition sizing on large disks.dhclient(8) now rejects NULL values in option data and parses input more defensively.disklabel(8) improved physical-memory calculations during auto-allocation on non-512-byte sector devices.OpenSSH 6.1:
UsePrivilegeSeparation=sandbox.ssh-keygen(1) gained options for parallel candidate-module processing.sshd(8) match rules can now use local listen address and port.sshd_config match directives can now control AcceptEnv and {Allow,Deny}{Users,Groups}.ssh-keygen(1) can now convert RSA1 keys to PEM and PKCS8.PermitOpen can now accept none.AuthorizedPrincipalsFile also supports none.ssh-keyscan(1) now searches ECDSA keys by default.VersionAddendum was added to sshd_config./etc/nologin behavior.More than 7600 ports were available, with major build performance and stability improvements.
Prebuilt package counts by architecture included:
Some packaged software versions included:
As usual, many manual pages and other documentation were also improved.