OpenBSD -current Changelog


This selection is intended to include all important and all user-visible changes. For a complete record of all changes, please see the "source-changes" mailing list, called "OpenBSD CVS" in the archives, or use CVS.

For changes in other releases, click below:
2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6,
3.7, 3.8, 3.9, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5.0, 5.1, 5.2, 5.3,
5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7.0,
7.1, 7.2, 7.3, 7.4, 7.5, 7.6. 7.7,

Changes made between OpenBSD 7.6 and -current

  • Prevented incorrect warnings indicating that a system won't boot after bootblocks have been installed but EFI variables haven't been set.
  • Cache route per softnet thread with netstack.
  • Updated to xserver 21.1.16.
  • Fixed RunTimeToEmpty on some EATON models in upd(4).
  • Add %-token and environment variable expansion to SetEnv in ssh_config(5).
  • Fixed ssh(1) PerSourcePenalty incorrectly using "crash" penalty when LoginGraceTime was exceeded.
  • Fixed TCP checksum for IPv6 packets with extension headers.
  • Moved to 7.7-beta.
  • Added USB 3.0 speed support to xhci(4) and uvideo(4).
  • Allow ssh_config(5) %-token and environment variable expansion in User, with the exception of %r and %C which are self-referential.
  • Forced update of backlight level on init following 6.12 drm update.
  • Fixed moduser use-after-free when locking/unlocking an account.
  • Support colorformat from uvideo(4) device.
  • Added options to interactive sdiff(1) merge for choosing both sides of a diff.
  • Fixed connector initialization in intel_dp_add_mst_connector(), avoiding NULL deref on certain docks.
  • Introduced calendar(1) RECIPIENT_EMAIL.
  • Prevented use of comma in hostnames in ssh(1).
  • Updated unbound to 1.22.0.
  • Abstracted bgpd(8) internal time into monotime and increased resolution to microseconds.
  • Added installboot -c option that sets up the machine to boot from the specified disk.
  • Added use of Toeplitz hash for UDP and IPv6 TCP output, giving an improvement in traffic distribution over the queues and 20% performance increase with UDP send on v4/v6 and TCP send on v6 without pf.
  • Pushed KERNEL_LOCK() inside __realpath(2).
  • Made wakeup of parent process in dowait6 reliable even without kernel lock.
  • Used ps_mtx to lock the child process that is being checked by dowait6.
  • Introduced ps_trapped, a pointer to the struct proc that is stopped in the debugger trap.
  • Added support for reading eeprom pages for aq(4) cards with SFP slots.
  • Fixed userland console output display on some Alder Lake machines after 6.12 drm update.
  • On amd64, with ACPI >= 5, assume UEFI and default to GPT.
  • Added tunneldf support to sec(4).
  • Added kern.audio.kbdcontrol sysctl(2) variable, allowing the volume keys on multimedia keyboards to be handled as regular keys if set to 0.
  • Added "Match version" support to ssh_config(5), allowing matching on the local version of OpenSSH.
  • Added support for "Match sessiontype" to ssh_config(5), allowing matching on the type of session requested.
  • Added mtrng(4), a driver supporting the 32-bit random number generator on MediaTek SoCs.
  • Use socket lock for inpcb notify.
  • Changes to the per-process unveil datastructures can be raced by either pledge() [removing all path promises] or unveil() [adding new paths], against namei() inspecting in other thread system calls, use SINGLE_UNWIND.
  • Implemented support for SVE (Scalable Vector Extension) on arm64.
  • Introduced a pckbc@acpi attachment for use instead of pckbc@isa when interruption configuration will not be handled correctly, unbreaking keyboards including some from various ChromeBooks.
  • Cache CRLs in issuer cache (libcrypto).
  • Reworked the "Default IPv6 router?" question in the installer to behave like the others.
  • Respect checksum offloading in dhcrelay(8) and dhcrelay6(8).
  • Respect checksum offloading for incoming UDP in dhcpd(8).
  • Prevented installation of path MTU routes for IPsec transport mode SAs.
  • Updated drm to linux 6.12.12.
  • Limited net.bpf.maxbufsize sysctl(8) to a value that malloc(9) can handle.
  • Fixed race in inpcb mutex to socket lock conversion.
  • Restricted scanned channels appropriately when qwx(4) runs in a fixed phy mode.
  • Updated awk(1) to the Jan 14, 2025 version.
  • Enabled reception and redistribution of EVPN NLRI to allow bgpd(8) to act as an EVPN route-reflector.
  • Limited RX queue of loopback interfaces with 8192 packets, preventing unlimited queues from reaching mbuf limits and making network unusable on some architectures.
  • Added RSS/multiqueue support for AQC11x models ("aq2").
  • Enabled PAC on hardware that uses the new QARMA3 cipher.
  • Forced 32-bit accesses when reading 8-bit or 16-bit registers, allowing use of xhci(4) on a Cadence xHCI controller as seen on the Radxa Orion O6.
  • Optimized pmap teardown by skipping TLB flushes, giving ~5% performance boost for kernel build on arm64.
  • Improved bgpd(8) default multiproto capability announcement selection.
  • Made wsmouse(4) and wstpad filterops mp-safe.
  • Added missing pieces to run the lower fault handler in parallel (off by default).
  • Made radiusd(8) reserve NAS-{Identifier,IP-Address,IPV6-Address} of Access-Request to delete the records before Accounting-Start with Acct-On or Acct-Off.
  • Fall back to parsing the DBG2 table on arm64 if there's no SPCR table or usable serial console, allowing the user to use the port as serial console by entering "set tty com0" on the bootloader prompt.
  • Made virtio(4) 1.x the default if the hypervisor offers both 0.9 and 1.x.
  • Added mtintc(4) a driver supporting interrupt controllers found on MediaTek SoCs.
  • Added L = Leaked to the flags list in the header of bgpctl(8) show rib.
  • Unlocked open(2) and openat(2).
  • Made iscsid send out all the values for session and connection params for each login stage, keeping control of what is selected, making it possible to connect to a lio target.
  • Changed bgpd(8) reject as-set from default no to yes.
  • Updated to perl-5.40.1.
  • Added wg(4) logging of IP addresses of remote endpoints.
  • Made process_continue take a process as argument and prevented a possible panic in setrunnable.
  • Provided a readable assembly implementation for MD5 on amd64.
  • When syslogd8 acting as logserver with TLS (-S) and client-certificates are used for authentication (-K), use the CN from the client's certificate as hostname.
  • Fixed inpcb leak in divert attach.
  • Made btrace(8) support additional interval/profile units (hz, us, ms, s).
  • Fixed out-of-band data in socket splicing.
  • Make single_thread_check() always return when deep is true and not suspend the curproc.
  • Implemented iscsid(8) handling of HeaderDigest and DataDigest params.
  • Completely removed SB_MTXLOCK.
  • Fixed riscv64 sigcode copying.
  • Used `ws_mtx' mutex(9) to make wsmux(4) filterops mp-safe.
  • Unlocked wskbd(4) kqueue filterops.
  • Pushed the KERNEL_LOCK() down to namei(9) in stat(2), lstat(2) & fstatat(2)
  • Made mandoc "-T html" output translate ".%R RFC " to a hyperlink to rfc-editor.org.
  • Implemented a new pmap_populate() interface on arm64 and riscv64 to help pmap_enter(9) succeed when there's enough free physical memory but we can't allocate KVA to map that memory.
  • Unveiled privileged child's write/create to mountdtab file, drop exec.
  • Included ARIN's RPKI Trust Anchor Locator in rpki-client(8).
  • Synced video(4) V4L2 with Linux-6.13-rc7.
  • Added pkg-config(1) support for relocatable .pc files.
  • Let pppoe(4) data packets go through if_vinput instead of the pppoeinq, improving throughput and possibly reducing packet loss.
  • Unlocked sysctl_malloc().
  • Enabled multiqueue for vio(4).
  • Made uvideo(4) bypass unknown pixelformat to consumer rather than rejecting unknown driver formats.
  • Extended bgpd(8) nexthop encoding support (RFC8950) for the RIB.
  • Stopped zeroing free pages to reduce time needed to suspend when there are many.
  • Made security(8) ignore quota(1) files and all subdirectories of /var/mail when checking the ownership and mode of mailboxes.
  • Added 'socket' refcnt type to dt(4).
  • Began adding bgpd(8) RFC 8950 support (IPv4 routes with IPv6 nexthop).
  • Adjusted bgpd.conf(5) config of announce statement to allow for RFC 8654 extended message support.
  • Increased the default count of /dev/videoX from 2 to 4.
  • Added LED support for ikbd(4) keyboards.
  • Added ifconfig(8) vxlan "[-]endpoint" command.
  • Unlocked fstat(2).
  • Unlocked accept(2) for tcp sockets.
  • Updated to fontconfig 2.15.0.
  • Fixed uaudio(4) devices that don't support sample rate changes.
  • Streamlined the BIRD output in rpki-client(8) and removed the -T option, structuring BIRD outputs similar to bgpd(8) output.
  • Released rpki-client 9.4.
  • Reworked rwlocks to reduce pressure on the scheduler and SCHED_LOCK.
  • Made nfsd(8) default to UDP when using only -n.
  • Deprecated rpki-client(8) -T.
  • Replaced BIRD v1 output with BIRD v3 output in rpki-client(8).
  • Introduced reference counts on struct mount.
  • Improved lldp output of tcpdump(8).
  • Added a tmux(1) option allowing users to override the width of individual Unicode codepoints.
  • Added uvideo(4) support for devices which report bulk and isochronous endpoints.
  • Abandoned hibernate or resume when an i/o or memory allocation fails.
  • Ensured uvideo(4) fills v4l2_capability correctly (allowing some V4L consumers to use bus_info to identify the desired webcam when attempting to switch devices).
  • Adjusted rDNS lifetime to RFC 8106 default (minimum) value in rad(8).
  • Implemented zoneversion edns option (RFC 9660) in dig(1).
  • Run TCP output in parallel.
  • Prevented a possible crash in qemu where the clang -fzero-call-used-regs feature is used with retguard.
  • Set pltime to 0 in dhcp6leased when upstream interface goes down so clients form and prefer new addresses.
  • Added preservation of fdisk info to libexec/security daily script.
  • Limited hibernate writes to within the area of the swap partition allocated by uvm_hibswap() for hibernation.
  • Added support for the 'AttribRawProcessBytes' attribute, which makes the HP Omnibook X 14 boot in ACPI mode.
  • Made tcp_mss() MP safe so it can be called with socket lock.
  • Updated to util-macros 1.20.2.
  • Updated to xprop 1.2.8.
  • Updated to xlogo 1.0.7.
  • Updated to xkbevd 1.1.6.
  • Updated to xcompmgr 1.1.10.
  • Updated to oclock 1.0.6.
  • Made uvideo forward error bits to the consumer, fixing the integrated cameras on ThinkPad T14 Gen 5, ThinkPad X1 nano 2 and Lenovo x13.
  • Based offsets for ISOCHRONOUS IN frames on a fixed packet size, ensuring accuracy even with shorter frames.
  • Updated to xserver 21.1.15.
  • Used per-sockbuf mutex(9) to protect `'so_rcv' buffer of tcp(4) sockets.
  • Implemented regulator-based signal voltage switch support in dwmmc(4), fixing bootup on the MNT Reform2 with the RK3588 module.
  • Scheduled future rpki-client(8) rejection of ultra long-lived TA certificates (02-02-2026/03-03-2027).
  • Let LLDP packets fall through to being handled on the port interfaces for aggr(4).
  • Unlocked sysctl_video()
  • Added an AF_FRAME socket domain and an IFT_ETHER protocol family under it, allowing userland to use sockets to send and receive Ethernet frames.
  • Made `video_filtops' mp-safe.
  • Unlocked KERN_GLOBAL_PTRACE.
  • Unlocked KERN_WXABORT.
  • Implemented Notification Message Support for BGP Graceful Restart (RFC 8538) in bgpd(8).
  • Cached the Adj-RIB-Out for bgpd(8) sessions that have not been down for more than INTERVAL_SESSION_DOWN (3600) seconds.
  • Corrected behavior of sed(1) c command to match POSIX.
  • Added bgpd(8) support for extended messages (RFC 8654), extending the maximum message size of BGP from 4096 to 65535.
  • Added ratelimits to logging of connections dropped by sshd(8) PerSourcePenalties.
  • Allowed glob(3) patterns for sshd_config(5) AuthorizedKeysFile and AuthorizedPrincipalsFile directives.
  • Provided a SHA-1 assembly implementation for amd64 using SHA-NI, providing a 2-2.5x performance gain on some Intel CPUs and many AMD CPUs.
  • Made qcpon(4) query hardware for the button state to detect release even if the press event is missed, and to signal wakeup when the button is pressed.
  • Fixed ssh-keygen(1) -l output when the file contains CR characters.
  • Provided a replacement assembly implementation for SHA-1 on amd64.
  • Prevent integer overflow in x11 port handling in ssh(1) in cases of admin or user misconfiguration.
  • Unlocked gre_sysctl().
  • Unlocked virtio.
  • Added support for FIDO tokens that return no attestation data, e.g. recent WinHello.
  • In rpki-client(8), when AS0 TALs are provided, by default omit VRPs derived from them.
  • Prefer AES-GCM to AES-CTR.
  • Made pkg_add run ldconfig(8) after each updateset if the list of shared libraries was changed.
  • Added PercentLoad sensor to upd.4, reporting the % of the available UPS power drawn by output outlets.