File: [local] / www / 72.html (download) (as text)
Revision 1.55, Tue Oct 4 11:29:34 2022 UTC (20 months ago) by stsp
Branch: MAIN
Changes since 1.54: +2 -2 lines
minor clarifications in the wifi section
|
<!doctype html>
<html lang=en id=release>
<head>
<meta charset=utf-8>
<title>OpenBSD 7.2</title>
<meta name="description" content="OpenBSD 7.2">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="openbsd.css">
<link rel="canonical" href="https://www.openbsd.org/72.html">
</head><body>
<h2 id=OpenBSD>
<a href="index.html">
<i>Open</i><b>BSD</b></a>
7.2
</h2>
<table>
<tr>
<td>
<a href="images/XXX.png">
<img width="227" height="303" src="images/XXX-s.gif" alt="XXX"></a>
<td>
Released Oct 20, 2022. (53rd OpenBSD release)<br>
Copyright 1997-2022, Theo de Raadt.<br>
<br>
Artwork by Jon Chad.
<br>
<ul>
<li>See the information on <a href="ftp.html">the FTP page</a> for
a list of mirror machines.
<li>Go to the <code class=reldir>pub/OpenBSD/7.2/</code> directory on
one of the mirror sites.
<li>Have a look at <a href="errata72.html">the 7.2 errata page</a> for a list
of bugs and workarounds.
<li>See a <a href="plus72.html">detailed log of changes</a> between the
7.1 and 7.2 releases.
<p>
<li><a href="https://man.openbsd.org/signify.1">signify(1)</a>
pubkeys for this release:<p>
<table class=signify>
<tr><td>
openbsd-72-base.pub:
<td>
<a href="https://ftp.openbsd.org/pub/OpenBSD/7.2/openbsd-72-base.pub">
RWQTKNnK3CZZ8Lid7/kWPO1WxjEsTeuxiXbJSSg6RDir9OJmV+t7GrOo</a>
<tr><td>
openbsd-72-fw.pub:
<td>
RWRvwsB/ZxwZxiQBgNVhuCnEacKE1MhrcDX25jFccqaj0pxsY9oIPJq4
<tr><td>
openbsd-72-pkg.pub:
<td>
RWSyNc+EwQQo5bZ5XtDpnk0FUl8NrIl+Ocq4FV/5VTvP9rOgHzKEnBx0
<tr><td>
openbsd-72-syspatch.pub:
<td>
RWQuBB7PRAc2Zy+C7VAynLuan8WDVtQ9R4xLpl8yjf1zxfqEBRRJ+66w
</table>
</ul>
<p>
All applicable copyrights and credits are in the src.tar.gz,
sys.tar.gz, xenocara.tar.gz, ports.tar.gz files, or in the
files fetched via <code>ports.tar.gz</code>.
</table>
<hr>
<section id=new>
<h3>What's New</h3>
<p>
This is a partial list of new features and systems included in OpenBSD 7.2.
For a comprehensive list, see the <a href="plus72.html">changelog</a> leading
to 7.2.
<ul>
<li>New/extended platforms:
<ul>
<li>Added support for Ampere Altra
<li>Added support for Apple M2
<li>Added support for Lenovo ThinkPad x13s and other machines using
the Qualcomm Snapdragon 8cx Gen 3 (SC8280XP) SoC.
</ul>
<li>Various kernel improvements:
<ul>
<li>Allowed bsd.rd and bsd/bsd.mp to boot on Oracle Cloud amd64 instances.
<li>Added support for switching from glass console to serial console
on arm64 systems that default to glass console.
<li><a href="https://man.openbsd.org/pf.4">pf(4)</a> automatically allows
IGMP and ICMP6 MLD packets with router alert option.
Special allow-opts rules are no longer needed for multicast
discovery.
<li>Fixed a <a href="https://man.openbsd.org/pf.4">pf(4)</a> NULL
dereference panic triggered by <a
href="https://man.openbsd.org/relayd.8">relayd(8)</a>.
<li>Implement "show all routes" to print routing tables in
<a href="https://man.openbsd.org/ddb.4">ddb(4)</a>.
<li>Added a method (ESC D) to enter <a
href="https://man.openbsd.org/ddb.4">ddb(4)</a> on serial drivers that
do not have a true BREAK mechanism.
<li>Added "show all routes" and the ability to show individual routes
(e.g. "show route 0xfffffd807e9b0000") to <a
href="https://man.openbsd.org/ddb.4">ddb(4)</a>.
<li>Added a "show swap" command to <a
href="https://man.openbsd.org/ddb.4">ddb(4)</a> to help debugging.
<li>Count dropped network packets due to low memory in
<a href="https://man.openbsd.org/netstat.1">netstat(1)</a>.
<li>Simplified machine command handling in <a
href="https://man.openbsd.org/ddb.4">ddb(4)</a>.
<li>Changed to a simpler formula to calculate a default kern.maxthread
value: 2*NPROCESS.
<li>Enabled <a href="https://man.openbsd.org/kstat.4">kstat(4)</a>, a
device that exports kernel statistics that can be read by <a
href="https://man.openbsd.org/kstat.1">kstat(1)</a>.
<li>Added cpu frequency sensors for each core on CPUs that have MPERF/APERF support.
<li>Merged the UVM swap-backed and object-backed inactive page lists.
<li>Fixed <a href="https://man.openbsd.org/rwlock.9">rwlock(9)</a>
implementation to be fair to writers. Previously, readers could grab
the lock even if writers were waiting first.
<li>Made the CPU frequency scaling duration relative to the load
when in automatic mode on battery.
<li>Fixed luna88k MULTIPROCESSOR kernels booting with CPU modules
installed in arbitrary slots.
<li>Added a missing <a
href="https://man.openbsd.org/kqueue.2">kqueue(2)</a> wakeup, found by
a Go testcase hang.
<li>Bumped the maximum number of supported CPUs to 256 on arm64.
<!-- XXX should the following be here (swapper, pmem...) or maybe one entry describing them together? -->
<li>Ensure uvm_swap_io() can succeed, even in out of memory
situations, by reserving a second segment for the page daemon.
<li>Ensured progress in the swapper by pre-allocating pages in a DMA-reachable region.
<li>Made the page daemon consider pmemrange regions when trying to
free pages from the inactive list. Previously the page daemon could
use a lot of CPU without freeing a page because the global limits were
satisfied.
<li>Ensured that uvm_swap_get() will always sleep rather than
returning an error. Previously an error could be returned to the fault
handler which would result in processes dying when a system was under
a lot of memory pressure.
<!-- ... up to here -->
<li>Added support for using non-standard UARTs (such as the Synopsys
DesignWare UART) as an early console.
<li>Remove NexGen CPU identification code as the kernel cannot run on these CPUs anyway.
<li>Remove Rise CPU identification code.
<li>Dropped detection code for 386sx/386dx CPUs. OpenBSD/i386 hasn't
actually supported running on either for some time.
<li>Dropped detection code for Cyrix CPUs older than the Cyrix M2.
<li>Implemented the fundamentals for suspend/resume on arm64.
<li>Simplified TSC synchronization testing on amd64.
<li>Corrected sparc64 ofwboot to default to the <a
href="https://man.openbsd.org/softraid.4">softraid(4)</a> volume on the
boot device to make root on softraid work out of the box on sparc64
and be more consistent with softraid boot on other architectures.
<li>Removed the obsolete kern.nselcoll <a
href="https://man.openbsd.org/sysctl.2">sysctl(2)</a>.
<li>Changed mips64, octeon, and loongson to trigger deferred clock
interrupts from <a href="https://man.openbsd.org/splx.9">splx(9)</a>.
This isolates the clock interrupt schedule from the MD clock interrupt
code.
<li>Fixed a potential kernel panic when an msdos partition is out
of space by fixing instances where msdosfs passed a NULL proc pointer
to detrunc().
<li>Add a delay_init() function that helps on i386 and amd64
architectures in setting up delay_func for different timers and
switching between them depending on their quality properties. This
improves how timers backing <a
href="https://man.openbsd.org/delay.9">delay(9)</a> are managed.
</ul>
<li>SMP Improvements
<ul>
<li>Make route timer MP safe and use rttimer pool.
<li>Use kernel lock to protect parts of ARP, ND6 and PPPoE that
are not MP safe.
Lookup of existing ARP entries is MP safe and can run in parallel.
<li>Start up to 4 softnet tasks to run IP input and forwarding
in parallel on multiple cores.
<li>Run IPv4 packet reassembly in parallel.
<li>Run IPv6 hop-by-hop options processing in parallel.
<li>Add a mutex to rate limiting functions to make them MP safe.
<li>Introduce mutex and reference counter for internet protocol
control block.
<li>Protect <a href="https://man.openbsd.org/udp.4">UDP</a>, raw <a
href="https://man.openbsd.org/ip.4">IP</a>, and <a
href="https://man.openbsd.org/divert.4">divert</a> packet input
routines with a per socket mutex.
<li>Protect <a href="https://man.openbsd.org/recv.2">recv(2)</a> system call
for UDP and raw IP packets with a per socket mutex and shared netlock.
Allows to receive packets while forwarding in parallel.
<li>Protect multicast deliver loop for UDP and raw IP sockets with rwlock.
<li>Only grab netlock in IGMP and MLD timer when necessary.
<li>TCP slow timer runs without netlock.
<li>Rework rwlock so that a writer will get the lock eventually.
Readers cannot share the lock forever.
This prevents starvation of the writer.
<li>Run interface media ioctl with shared netlock so packets
can be processed while running
<a href="https://man.openbsd.org/ifconfig.8">ifconfig(8)</a>.
<li><a href="https://man.openbsd.org/btrace.8">btrace(8)</a> can be used
to debug reference counting.
<li>Use MP safe refcount for interface addresses.
<li>Unlocked <a href="https://man.openbsd.org/kbind.2">kbind(2)</a>.
<li>Unlocked the <a href="https://man.openbsd.org/pledge.2">pledge(2)</a> system call.
<li>Made <a href="https://man.openbsd.org/unix.4">UNIX</a> domain
sockets locking per-socket rather than coarse locking of the entire
domain sockets layer.
</ul>
<li>Direct Rendering Manager and graphics drivers
<ul>
<li>Updated <a href="https://man.openbsd.org/drm.4">drm(4)</a>
to Linux 5.15.69
<li><a href="https://man.openbsd.org/inteldrm.4">inteldrm(4)</a>:
support for Alder Lake, Raptor Lake
<li>Reimplemented the TTM page allocation code using <a
href="https://man.openbsd.org/bus_dma.9">bus_dma(9)</a> APIs to make
sure DMA addresses are translated properly on architectures with an
IOMMU. This fixed <a
href="https://man.openbsd.org/amdgpu.4">amdgpu(4)</a> and <a
href="https://man.openbsd.org/radeondrm.4">radeondrm(4)</a> on
powerpc64, sparc64, and arm64 machines with SMMU.
<li>Implemented support for framebuffers that don't start on a page
boundary (like those on the 2021 14" and 16" MacBook Pro).
<li>Added handling for framebuffers where the first pixel isn't
page-aligned to <a href="https://man.openbsd.org/wsfb.4">wsfb(4)</a>.
<li>Fixed <a href="https://man.openbsd.org/Xorg.1">Xorg(1)</a> when
using the luna88k 1bpp framebuffer hardware.
</ul>
<li>VMM/VMD improvements
<ul>
<li>Improved error handling and logging in <a
href="https://man.openbsd.org/vmd.8">vmd(8)</a>
<li>Unify all internal structures and interfaces between <a
href="https://man.openbsd.org/vmd.8">vmd(8)</a>, <a
href="https://man.openbsd.org/vmctl.8">vmctl(8)</a> and <a
href="https://man.openbsd.org/vmm.4">vmm(4)</a> to use bytes for
memory and disk sizes.
<li>Fix rebooting a received VM in <a
href="https://man.openbsd.org/vmd.8">vmd(8)</a>.
<li>Have <a href="https://man.openbsd.org/vmd.8">vmd(8)</a> provide
a copy of bios at 4g boundary, SeaBIOS and newer Linux kernels expect
it there.
<li>In <a href="https://man.openbsd.org/vmd.8">vmd(8)</a>, fix off by
one in VM memory range check.
<li>In <a href="https://man.openbsd.org/vmd.8">vmd(8)</a>, add
support for MMIO assist. In <a
href="https://man.openbsd.org/vmm.4">vmm(4)</a>, send all port I/O
emulation to userland.
<li>Have <a href="https://man.openbsd.org/vmd.8">vmd(8)</a> compute
i8254 read-back command latch from singular timestamp.
<li>Improve the command line parsing in <a
href="https://man.openbsd.org/vmctl.8">vmctl(8)</a>.
<li>Let <a href="https://man.openbsd.org/vmm.4">vmm(4)</a> allow
reading MSR_TSC on Intel hosts.
<li>In <a href="https://man.openbsd.org/vmm.4">vmm(4)</a>, reference
count VMs and VCPUs.
<li>In <a href="https://man.openbsd.org/vmm.4">vmm(4)</a>, zero
virtual addresses of VCPU state pages after freeing.
<li>Fix `vmctl send` on Intel hosts by load the vmcs before reading
VCPU registers in <a href="https://man.openbsd.org/vmm.4">vmm(4)</a>.
<li>Fix `vmctl receive` on Intel hosts by adding an additional fault
type in <a href="https://man.openbsd.org/vmm.4">vmm(4)</a>.
<li>Add additional <a href="https://man.openbsd.org/dt.4">dt(4)</a>
tracepoints in various <a
href="https://man.openbsd.org/vmm.4">vmm(4)</a> codepaths.
<li>Add <a href="https://man.openbsd.org/snmpd.8">snmpd(8)</a>
AgentX support based around VM-MIB (RFC7666).
</ul>
<li>Various new userland features:
<ul>
<li>Replaced <a href="https://man.openbsd.org/rc.d.8">rc.d(8)</a>
$rcexec variable with an rc_exec function. <em>This will require a
mechanical change from <code>${rcexec}</code> to <code>rc_exec</code>
in rc.d scripts.</em> Kept compatibility to give people a chance to
fix their custom scripts.
<li>Introduced a new daemon_execdir variable to <a
href="https://man.openbsd.org/rc.d.8">rc.d(8)</a> for changing to a
specified directory before running rc_exec.
<li>Added <a href="https://man.openbsd.org/ts.1">ts(1)</a>, a
timestamp utility.
<li>Add a new <i>configtest</i> action to <a
href="https://man.openbsd.org/rc.d.8">rc.d(8)</a> and <a
href="https://man.openbsd.org/rcctl.8">rcctl(8)</a> to check
configuration syntax of a daemon.
<li>Added forest (-f) mode to <a
href="https://man.openbsd.org/ps.1">ps(1)</a>.
</ul>
<li>Various bugfixes and tweaks in userland:
<ul>
<!-- openrsync -->
<li>Fixed <a href="https://man.openbsd.org/openrsync.1">openrsync(1)</a>
on sparc64 by eliminating a redundant second conversion of the int
value from little to host endian.
<li>Added connection timeout functionality to <a
href="https://man.openbsd.org/openrsync.1">openrsync(1)</a> via the
--contimeout option.
<li>Set the default <a
href="https://man.openbsd.org/openrsync.1">openrsync(1)</a> connection
timeout that <a
href="https://man.openbsd.org/rpki-client.8">rpki-client(8)</a> uses
to 15 seconds.
<!-- pkg_add -->
<li>Made use of the fact that repositories are unique objects in <a
href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a> and annotated
the quirks repository as cached, allowing for a large speed increase.
<li>Enabled <a href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a> caching by default.
<li>Changed the tied algorithm in <a
href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a> to prevent
O(n^2) behavior when packages contain several hundred copies of the
same file.
<li>Added a "processing" message for when <a
href="https://man.openbsd.org/pkg_add.1">pkg_add(1)</a> is
transferring data to inform the user that pkg_add is still working.
<!-- fdisk -->
<li>Added missing uuid_dec_le() to init_fp() so <a
href="https://man.openbsd.org/fdisk.8">fdisk(8)</a> -A works on
big-endian architectures.
<li>Aligned <a href="https://man.openbsd.org/fdisk.8">fdisk(8)</a>
logic with that used in the kernel to allow the protective EFI GPT
partition to be in MBR partitions 0-3, not just 0.
<li>Prevented use of "-u" when <a
href="https://man.openbsd.org/fdisk.8">fdisk(8)</a> is operating on
GPT formatted disks.
<li>Stopped telling <a
href="https://man.openbsd.org/fdisk.8">fdisk(8)</a> that macppc
HAS_MBR.
<li>Make <a href="https://man.openbsd.org/fdisk.8">fdisk(8)</a>
reject input of excessive length.
<li>Fixed an <a href="https://man.openbsd.org/fdisk.8">fdisk(8)</a>
regression to allow editing an MBR of all zeroes.
<li>Changed <a href="https://man.openbsd.org/fdisk.8">fdisk(8)</a> to
restrict user actions if neither GPT nor MBR structures can be found
on the disk.
<li>Made <a href="https://man.openbsd.org/fdisk.8">fdisk(8)</a> print
a warning when an MBR partition starts or extends past the end of the
device.
<li>Made <a href="https://man.openbsd.org/fdisk.8">fdisk(8)</a> print
a warning when a GPT partition start or end is outside the usable LBA
area of the device.
<!-- btrace -->
<li>Installed useful <a
href="https://man.openbsd.org/btrace.8">btrace(8)</a> scripts in
/usr/share/btrace.
<li>Made <a href="https://man.openbsd.org/btrace.8">btrace(8)</a>
execute the END probe upon receiving a SIGTERM signal.
<!-- netstart/rc -->
<li>Moved the wait for autoconf interfaces from <a
href="https://man.openbsd.org/rc.8">rc(8)</a> to <a
href="https://man.openbsd.org/netstart.8">netstart(8)</a> to fix
tunnel interfaces that depend on working autoconf interfaces.
<li>Made <a href="https://man.openbsd.org/netstart.8">netstart(8)</a>
create virtual interfaces up front if specified on the command line.
<li>Changed <a
href="https://man.openbsd.org/rc.subr.8">rc.subr(8)</a> to copy the
message to stdout when using <a
href="https://man.openbsd.org/logger.1">logger(1)</a> to avoid needing
to check syslog when running in debug mode.
<li>Fixed <a href="https://man.openbsd.org/kbd.8">kbd(8)</a> so it
doesn't fail silently when executed by a regular user.
<li>In the <i>sndio</i> library, added the function <a
href="https://man.openbsd.org/sio_flush.3">sio_flush(3)</a> to stop
playback immediately. Altered <a
href="https://man.openbsd.org/sndiod.8">sndiod(8)</a> to wait until
the buffer is drained before closing the device.
<li>Made <a href="https://man.openbsd.org/xterm.1">xterm(1)</a> use a
much safer FD-passing idiom for updating <a
href="https://man.openbsd.org/utmp.5">utmp(5)</a>.
<li>Prevented a crash in <a
href="https://man.openbsd.org/vi.1">vi(1)</a> when cursor key support is
disabled.
<li>Updated <a href="https://man.openbsd.org/vi.1">vi(1)</a> to apply
expandtab to the output of a ! command.
<li>Made <a href="https://man.openbsd.org/mg.1">mg(1)</a>
automatically delete trailing whitespace on RET in c-mode and
auto-indent-mode.
<li>Made <a href="https://man.openbsd.org/grep.1">grep(1)</a> provide
full context when using match count (<code>-m</code>
<li>Added the --null flag to <a
href="https://man.openbsd.org/grep.1">grep(1)</a> which makes grep
print an ASCII NUL byte after the file name to make the output
unambiguous.
<li>Fixed multiple memory leaks in <a
href="https://man.openbsd.org/awk.1">awk(1)</a>.
<li>Changed <a href="https://man.openbsd.org/compress.1">compress(1)</a>
to print a more accurate message when -v is used with -k.
<li>Fixed <a href="https://man.openbsd.org/gzip.1">gzip(1)</a> byte
counts with 32-bit integers.
<li>Fixed the growth check in <a
href="https://man.openbsd.org/compress.1">compress(1)</a> and <a
href="https://man.openbsd.org/gzip.1">gzip(1)</a> in cases of small
files or files with sufficiently random data.
<li>Made <a href="https://man.openbsd.org/timeout.1">timeout(1)</a> -s
accept HUP like <a href="https://man.openbsd.org/kill.1">kill(1)</a>
and GNU timeout(1) do.
<li>Updated capitals and countries in the game <a
href="https://man.openbsd.org/quiz.6">quiz(6)</a>.
<li>Set default sleep value of <a
href="https://man.openbsd.org/ico.1">ico(1)</a> to 10ms.
<li>Fixed a bug in <a
href="https://man.openbsd.org/cron.8">cron(8)</a> where it could exit
silently if <a href="https://man.openbsd.org/ppoll.2">ppoll(2)</a>
exited. Now it will log to <a
href="https://man.openbsd.org/syslog.3">syslog(3)</a> instead of
stderr.
<li>Added <a
href="https://man.openbsd.org/llvm-profdata.1">llvm-profdata(1)</a> to
base so that ports can benefit from profiled builds.
<li>Changed <a href="https://man.openbsd.org/rc.8">rc(8)</a> to only
attempt to set the <a href="https://man.openbsd.org/yp.8">yp(8)</a>
domainname if it has not been set yet.
<li>Raised the "staff" login class data-size-cur on arm64 to be the
same as that for amd64 in <a
href="https://man.openbsd.org/login.conf.5">login.conf(5)</a> (1536M).
<li>Fixed <a href="https://man.openbsd.org/patch.1">patch(1)</a>
locate-hunk in empty files.
<li>Fixed <a href="https://man.openbsd.org/patch.1">patch(1)</a> in
the case of reversing a patch that creates a file.
<li>Added seconds to the uptime display of <a
href="https://man.openbsd.org/top.1">top(1)</a>.
<li>Made <a href="https://man.openbsd.org/putenv.3">putenv(3)</a>
return an error if the string starts with the '=' character. This
matches the behavior on FreeBSD and NetBSD.
<li>Fixed overflow of the number of errors in <a
href="https://man.openbsd.org/renice.8">renice(8)</a> by setting error
instead of incrementing it.
<li>Removed the "-c" compatibility option from <a
href="https://man.openbsd.org/vnconfig.8">vnconfig(8)</a>.
<li>Stopped <a
href="https://man.openbsd.org/vnconfig.8">vnconfig(8)</a> from
printing the device name on failure.
<li>Print a message when <a
href="https://man.openbsd.org/ld.so.1">ld.so(1)</a> fails inside <a
href="https://man.openbsd.org/execve.2">execve(2)</a> to clarify the
failure mode when a dynamic executable is run while /usr isn't
mounted.
<li>Improved <a href="https://man.openbsd.org/bioctl.8">bioctl(8)</a>
RAID level parsing to check numeric levels before checking single
character levels. This allows recognition of RAID 10 as a valid but
unsupported level.
<li>Fixed <a
href="https://man.openbsd.org/installboot.8">installboot(8)</a>
messaging when verbose (-v) and dry-run (-n) modes are combined with
<a href="https://man.openbsd.org/softraid.4">softraid(4)</a>.
<li>Sped up <a href="https://man.openbsd.org/wc.1">wc(1)</a> word counting.
</ul>
<li>Improved hardware support and driver bugfixes, including:
<ul>
<li>New <a href="https://man.openbsd.org/arm64/aplaudio.4">aplaudio(4)</a>
driver for Apple audio subsystem.
<li>New <a href="https://man.openbsd.org/arm64/aplmca.4">aplmca(4)</a>
driver for Apple MCA controller.
<li>New <a href="https://man.openbsd.org/arm64/aplsart.4">aplsart(4)</a>
driver for Apple SART address filter.
<li>New alpdc, apldchidev, apldckbd, apldcms, and aplrtk drivers for
keyboard and trackpad on Apple M2 laptops.
<li>New <a href="https://man.openbsd.org/arm64/qcgpio.4">qcgpio(4)</a>
driver for Qualcomm Snapdragon GPIO controller.
<li>New <a href="https://man.openbsd.org/arm64/qciic.4">qciic(4)</a>
driver for Qualcomm Snapdragon GENI I2C controller.
<li>New <a href="https://man.openbsd.org/riscv64/sfgpio.4">sfgpio(4)</a>
driver for SiFive GPIO controller.
<li>New <a href="https://man.openbsd.org/riscv64/stfclock.4">stfclock(4)</a>
driver for StarFive JH7100 clock controller.
<li>New <a href="https://man.openbsd.org/riscv64/stfpinctrl.4">stfpinctrl(4)</a>
driver for StarFive JH7100 pin configuration.
<li>New stftemp
driver for StarFive JH7100 temperature sensor.
<li>New <a href="https://man.openbsd.org/sxirintc.4">sxirintc(4)</a>
driver for Allwinner wakeup interrupt controller.
<li>New gpiorestart
driver for system reset via GPIO pin.
<li>Added support for more power sensors to <a
href="https://man.openbsd.org/ipmi.4">ipmi(4)</a>.
<li>Added support for the <a
href="https://man.openbsd.org/ehci.4">ehci(4)</a> controller on
Marvell 3720 boards.
<li>Extended <a href="https://man.openbsd.org/ksmn.4">ksmn(4)</a> to
show CCD temperatures if available.
<li>Fixed missing interrupts for trackpads on some machines after
resume by making sure <a
href="https://man.openbsd.org/amdgpio.4">amdgpio(4)</a> restores pin
configuration on resume.
<li>Added FIFO support and allow baud rate changes to
<a href="https://man.openbsd.org/pluart.4">pluart(4)</a>.
<li>Added support for the Synopsys DesignWare UART found on the Ryzen
Embedded V1000 SoCs to <a
href="https://man.openbsd.org/com.4">com(4)</a>.
<li>Added <a href="https://man.openbsd.org/xhci.4">xhci(4)</a> support
for the dual role controllers integrated on the Qualcomm Snapdragon
8cx gen 3 SoC.
<li>Added support for using the power button to wake up from suspend
to <a href="https://man.openbsd.org/axppmic.4">axppmic(4)</a>.
<li>Modified <a href="https://man.openbsd.org/pms.4">pms(4)</a> to
discard relative movement packets outside of the [-127, 127] range to
prevent cursor jumps when using the trackpoint on some Lenovo laptops.
<li>Allowed <a href="https://man.openbsd.org/spdmem.4">spdmem(4)</a>
to attach to <a
href="https://man.openbsd.org/loongson/gdiumiic.4">gdiumiic(4)</a>.
<li>Make <a href="https://man.openbsd.org/spdmem.4">spdmem(4)</a>
attach on 2F-based loongson systems.
<li>Added power button support to <a
href="https://man.openbsd.org/arm64/aplsmc.4">aplsmc(4)</a>.
<li>Changed the <a href="https://man.openbsd.org/mfii.4">mfii(4)</a>
RAID controller driver to allow the firmware more time to transition
out of the UNDEFINED state.
<li>Added Wacom One S (CTL-472) support to <a
href="https://man.openbsd.org/uwacom.4">uwacom(4)</a>.
</ul>
<li>New or improved network hardware support:
<ul>
<li>Increased rx buffer size on <a
href="https://man.openbsd.org/uaq.4">uaq(4)</a> to 62kB.
<li>Repaired <a href="https://man.openbsd.org/rge.4">rge(4)</a>
hardware VLAN tagging.
<li>Provide statistics via kstats for <a
href="https://man.openbsd.org/mvneta.4">mvneta(4)</a>.
<li>Enabled <a href="https://man.openbsd.org/aq.4">aq(4)</a> on arm64.
<li>Implemented and enabled IPv4, TCP, and UDP checksum offloading for
<a href="https://man.openbsd.org/igc.4">igc(4)</a>.
<li>Fixed a panic triggered by ifconfig bnxt0 down by changing <a
href="https://man.openbsd.org/bnxt.4">bnxt(4)</a> devices to not run
rx and tx interrupt handlers when the interface is not running.
<li>Introduced Large Receive Offloading of TCP segment offloading in
<a href="https://man.openbsd.org/ix.4">ix(4)</a>. Also added a tso
option to <a href="https://man.openbsd.org/ifconfig.8">ifconfig(8)</a>
to enable and disable this feature.
</ul>
<li>Added or improved wireless network drivers:
<ul>
<li>Made device matching in <a
href="https://man.openbsd.org/iwx.4">iwx(4)</a> more similar to Linux
iwlwifi in order to recognize more devices.
<li>Added support for AX210/AX211 devices to <a
href="https://man.openbsd.org/iwx.4">iwx(4)</a>.
<li>Fixed <a href="https://man.openbsd.org/iwx.4">iwx(4)</a> setting
of HT/VHT bits in rate flags of the Tx command that could cause a
firmware panic.
<li>Added handling of 9k devices which do not support antenna B to <a
href="https://man.openbsd.org/iwm.4">iwm(4)</a>.
<li>Fixed <a href="https://man.openbsd.org/bwfm.4">bwfm(4)</a>
ifconfig media display on devices with sta_info command version 3.
<li>Fixed a <a href="https://man.openbsd.org/bwfm.4">bwfm(4)</a> crash during USB detach.
<li>Fixed detection of the Rx data rate on rtl8192eu <a
href="https://man.openbsd.org/urtwn.4">urtwn(4)</a> devices.
<li>Fixed integer overflows in the <a
href="https://man.openbsd.org/iwm.4">iwm(4)</a> and <a
href="https://man.openbsd.org/iwx.4">iwx(4)</a> firmware file parsers.
</ul>
<li>IEEE 802.11 wireless stack improvements and bugfixes:
<ul>
<li>Make sure drivers initialize all of ieee80211_rxinfo struct.
</ul>
<li>Installer, upgrade and bootloader improvements:
<ul>
<li>Fixed the watchdog in the installer so that the watchdog is reset
after each download and each set installation.
<li>Ensured that when running <a
href="https://man.openbsd.org/sysupgrade.8">sysupgrade(8)</a> on
-stable that it will move to the next release, not -current.
<li>Added the -b option to <a
href="https://man.openbsd.org/sysupgrade.8">sysupgrade(8)</a> to set
an alternative base directory to which the installation files will be
downloaded to.
<li>Increased the <a
href="https://man.openbsd.org/disklabel.8">disklabel(8)</a> auto
partitioner's maximum size for /usr to 30G.
<li>Altered installer behavior so the <a
href="https://man.openbsd.org/vlan.4">vlan(4)</a> question won't be
asked unless another network interface exists.
<li>Added support for wildcards in <a
href="https://man.openbsd.org/fw_update.8">fw_update(8)</a> patterns.
<!-- bootblock stuff -->
<li>Added support for booting from RAID 1C <a
href="https://man.openbsd.org/softraid.4">softraid(4)</a> volumes on
amd64, sparc64 and arm64.
<li>Added NFS client support to the luna88k RAMDISK kernel.
<li>Made the EFI bootloader provide the extra parameters necessary to
use non-standard UARTs on the AMD Ryzen Embedded V1000 SoCs as console.
<li>Switched bootloaders to the extended BOOTARG_CONSDEV struct.
<li>Added UFS2 support to landisk boot blocks.
</ul>
<li>Security improvements:
<ul>
<li>Implemented privilege separation in <a
href="https://man.openbsd.org/xlock.1">xlock(1)</a>.
<li>Added privilege separation to <a
href="https://man.openbsd.org/snmpd.8">snmpd(8)</a>.
<li>The TZ environment variable no longer supports absolute paths,
to fit better into the <a
href="https://man.openbsd.org/pledge.2">pledge(2)</a> bypass model.
<li>AF_UNIX socket <a
href="https://man.openbsd.org/bind.2">bind(2)</a> and <a
href="https://man.openbsd.org/connect.2">connect(2)</a> now follow <a
href="https://man.openbsd.org/unveil.2">unveil(2)</a> configuration.
<li>New <a
href="https://man.openbsd.org/ypconnect.2">ypconnect(2)</a> system
call creates a socket based upon the IP address encoded directly in a
locked ypbinding file, thereby removing a horrible hack to support YP
lookups in programs using strong
<a href="https://man.openbsd.org/pledge.2">pledge(2)</a> rules.
<li>Processes that pledge("vminfo") may only use the <a
href="https://man.openbsd.org/swapctl.2">swapctl(2)</a> operations
SWAP_NSWAP and SWAP_STATS providing information on swap devices.
<li>Randomized the rekey interval of <a
href="https://man.openbsd.org/arc4random.3">arc4random(3)</a>.
<li>Reduce the attack surface by introducing a 'local bind' mode to <a
href="https://man.openbsd.org/ypldap.8">ypldap(8)</a>. In this mode
ypldap binds its RPC sockets to loopback, so YP services are only
available to the host it's running on. ypldap replaces <a
href="https://man.openbsd.org/ypbind.8">ypbind(8)</a> and writes the
YP binding file in /var/yp/binding itself. This also implies that <a
href="https://man.openbsd.org/portmap.8">portmap(8)</a> doesn't need
to be running anymore when local bind mode is used.
<li>Changed the /sbin daemons <a
href="https://man.openbsd.org/dhcpleased.8">dhcpleased(8)</a>, <a
href="https://man.openbsd.org/mountd.8">mountd(8)</a>, <a
href="https://man.openbsd.org/nfsd.8">nfsd(8)</a>, <a
href="https://man.openbsd.org/pflogd.8">pflogd(8)</a>, <a
href="https://man.openbsd.org/resolvd.8">resolvd(8)</a>, <a
href="https://man.openbsd.org/slaacd.8">slaacd(8)</a>, and <a
href="https://man.openbsd.org/unwind.8">unwind(8)</a> to be
dynamically linked to allow them to benefit from all the additional
mitigations that dynamically linked executables gain. NFS mounting of
/usr must now use statically configured IP addresses.
</ul>
<li>Changes in the network stack:
<ul>
<li>Added the <a
href="https://man.openbsd.org/recvmmsg.2">recvmmsg(2)</a> system call
that allows receiving multiple msghdrs at once, and the <a
href="https://man.openbsd.org/sendmmsg.2">sendmmsg</a> syscall that
allows sending multiple msghdrs at once.
<li>Relaxed address availability check for <a
href="https://man.openbsd.org/multicast.4">multicast(4)</a> binds so
processes listening for the same multicast address do not need to be
the same UID.
<li>Introduced dedicated link entries for snapshots to <a
href="https://man.openbsd.org/pfsync.4">pfsync(4)</a>.
<li>Changed <a href="https://man.openbsd.org/pf.4">pf(4)</a> handling
of IGMP and ICMP6 MLD packets to allow multicast control packets to
work by default.
<li>Made <a href="https://man.openbsd.org/pf.4">pf(4)</a> more paranoid about
IGMP/MLD messages.
<li>Fixed a logic bug in pf_find_state() that could cause <a
href="https://man.openbsd.org/pf.4">pf(4)</a> to incorrectly block a
packet.
<li>Fixed <a href="https://man.openbsd.org/pf.4">pf(4)</a> syncookies during fast TCP port reuse.
<li>Fixed a bug in <a href="https://man.openbsd.org/pf.4">pf(4)</a>
where a pool defined like "172.16.0.0/16" would count as a pool size
of one address. Also fixed random selection of source address to be
uniform across the whole pool.
<li>Fixed a kernel panic in <a
href="https://man.openbsd.org/pf.4">pf(4)</a> if IP options with an
ICMP payload were truncated. Such packets will now be dropped instead.
<li>Allow forwarding to and from IPs in the 240/4 range.
<li>Corrected the Virtual Ethernet Bridge <a
href="https://man.openbsd.org/veb.4">veb(4)</a> to avoid calling
if_enqueue from an smr critical section.
<li>Reworked the kroute rttimer code to fix icmp_pmtu_timeout crashes.
<li>Fixed an interrupt storm upon suspend on Amlogic arm64 boards.
<li>Fixed a race between pflow_output_process() and
pflow_clone_destroy() in <a
href="https://man.openbsd.org/pflow.4">pflow(4)</a>.
<li>Added a missing input validation step to <a
href="https://man.openbsd.org/pipex.4">pipex(4)</a> MPPE keylenbits.
</ul>
<li>Routing daemons and other userland network improvements:
<ul>
<li>IPsec support was improved:
<ul>
<li>Made <a href="https://man.openbsd.org/iked.8">iked(8)</a> ignore
any CERT payload after the first rather than failing the exchange when
more than one CERT payload is received.
<li>Added <a href="https://man.openbsd.org/iked.8">iked(8)</a> support
for sending certificate chains with intermediate CAs in multiple CERT
payloads.
<li>Added an OpenIKED Vendor ID payload in the <a
href="https://man.openbsd.org/iked.8">iked(8)</a> initial handshake to
make it easier to handle interoperability problems with older versions
in the future.
<li>Added <a href="https://man.openbsd.org/iked.8">iked(8)</a>
connection statistics for successful and failed connections, error
types, and other events that can be printed with "ikectl show stats".
</ul>
<li>In <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a>,
<ul>
<li>Implement max-communities filter to limit the number of allowed
communities, ext-communities and large-communities.
<li>Fix insertion of additional non-transitive extended communities when
sending out prefixes.
<li>Relax IP address limitation by allowing prefixes in 240/4.
<li>Implement RFC 9234 - Route Leak Prevention and Detection Using Roles
in UPDATE and OPEN Messages.
<li>Full support for RFC 7911 - Advertisement of Multiple Paths in BGP (ADD-PATH).
<li>Improve FIB code, handle IPv6 scoped addresses properly.
<li>Add <a href="https://man.openbsd.org/bgplgd.8">bgplgd(8)</a>,
a FastCGI server providing a REST API to execute
<a href="https://man.openbsd.org/bgpctl.8">bgpctl(8)</a> commands.
<li>Bugfix: <a href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> could
fail to invalidate nexthops and incorrectly leave them in the FIB or
Adj-RIB-Out.
<li>Speedup <a href="https://man.openbsd.org/bgpctl.8">bgpctl</a>
<code>show rib 10/8 or-longer</code> and <code>show rib 10/8
or-shorter</code>
<li>Switch various static hash tables to RB trees improving
performance on large systems
<li>Export per neighbor pending update and withdraw statistics
<li>Fix race between a neighbor session reset and its update message
backlog
<li>Improve handling of nexthop reachability state changes
<li>Made sure only one <a
href="https://man.openbsd.org/bgpd.8">bgpd(8)</a> roa softreconfig
runner is run at any time.
</ul>
<li><a href="https://man.openbsd.org/rpki-client.8">rpki-client(8)</a> saw some changes:
<ul>
<li>Allowed more than one CRL URI in certificates.
<li>Do not apply timezone offsets when converting X509 times. X509
times are in UTC and comparing them to times in different timezones
would cause validity problems.
<li>Add support for an operator-configurable skiplist facility.
Operators can specify a list of FQDNs which should not be contacted
when synchronizing the local cache to the network.
<li>Emit a warning when a RRDP session serial number decreases.
<li>DER decoding functions were refactored to leverage ASN.1 templates.
<li>Add support to validate & inspect .sig files containing RPKI Signed
Checklists in filemode (-f). (draft-ietf-sidrops-rpki-rsc-08)
<li>Print various statistics after the completion of the main process.
<li>Add support to decode & print TAL (RFC 8630) details in filemode (-f).
<li>Emit objects in Concatenated JSON format when filemode (-f) and the JSON
output flag (-j) are combined.
<li>Add support for validating Autonomous System Provider Authorization
(ASPA) objects conforming to draft-ietf-sidrops-aspa-profile-10.
Validated ASPA payloads are visible in JSON and filemode (-f) output.
<li>Set <a href="https://man.openbsd.org/openrsync.1">rsync(1)</a> connection I/O idle timeout to 15 seconds.
<li>Unify the maximum idle I/O and connect timeouts for <a href="https://man.openbsd.org/openrsync.1">rsync(1)</a> & HTTPS.
<li><a href="https://man.openbsd.org/rpki-client.8">rpki-client(8)</a> now performs stricter EE certificate validation:
<ul>
<li>Disallow AS Resources extensions in ROA EE certificates.
<li>Disallow Subject Information Access (SIA) extensions in RPKI
Signed Checklist (RSC) EE certs.
<li>Check the resources in ROAs and RSCs against EE certs.
</ul>
<li>Improve readability and add various information being printed in
verbose mode.
<li>Extend filemode (-f) output and print X.509 certificates in PEM
format when increased verbosity (-vv) is specified.
<li>Shorten the RRDP I/O idle timeout.
<li>Introduce a deadline timer that aborts all repository synchronization
after seven eights of timeout (-s). With this rpki-client has improved
chances to complete and produce an output even when a CA is excessively
slow.
<li>Abort a currently running RRDP request process when the per-repository
timeout is reached.
<li>Permit multiple AccessDescription entries in SIA X.509 extensions. While
fetching from secondary locations is not yet supported, rpki-client will
not treat occurrence as a fatal error.
<li>Resolve a potential for a race condition in non-atomic RRDP deltas.
<li>Fix some memory leaks.
<li>Improve compliance with the HTTP protocol specification.
</ul>
<li>In <a href="https://man.openbsd.org/snmpd.8">snmpd(8)</a>,
<ul>
<li>Allow object names to be used in addition to OIDs in
<a href="https://man.openbsd.org/snmpd.conf.5">snmpd.conf(5)</a>.
<li>Better type hinting for debug logging.
<li>Introduce a blocklist feature, which removes subtrees from view.
<li>Reintroduce AgentX master support.
<li>Move non-SNMP related metrics to their own AgentX based backend.
<li>The snmpe process is now pledged <code>stdio recvfd inet unix</code>.
<li>Imported <a
href="https://man.openbsd.org/snmpd_metrics.8">snmpd_metrics(8)</a>.
This allows those who need to use net-snmpd the ability to access base
<a href="https://man.openbsd.org/snmpd.8">snmpd(8)</a> metrics.
</ul>
<li>In <a href="https://man.openbsd.org/ldapd.8">ldapd(8)</a>,
match password schemas case sensitive.
<li>In <a href="https://man.openbsd.org/ospfd.8">ospfd(8)</a>,
relax the limitations on what is an acceptable unicast IP. There are no
more experiments in IPv4 and so there is less reason for network
daemons to deny formerly experimental IP space. Multicast IPs
(224/4) and loopback (127/8) are still disallowed.
<li>Added check to <a
href="https://man.openbsd.org/acme-client.1">acme-client(1)</a> to
ensure the challenge token is turned into a filename that is base64url
encoded.
<li>Added RFC 9234 "BGP Role" support to <a
href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a>
<li>Have <a
href="https://man.openbsd.org/tcpdump.8">tcpdump(8)</a> print
ASnumbers in 'asplain' format instead the old 'asdot' format.
<li>Fixed a crash in libpcap when it would walk off the end of the array performing frees.
<li>Made -X connect SOCKS work with IPv6 addresses in <a href="https://man.openbsd.org/nc.1">nc(1)</a>.
<li>Introduced a blocklist backend and keyword to <a
href="https://man.openbsd.org/snmpd.8">snmpd(8)</a>, This deprecates
filter-pf-addresses.
<li>Changed <a
href="https://man.openbsd.org/dhclient.8">dhclient(8)</a> to defer to
<a href="https://man.openbsd.org/dhcpleased.8">dhcpleased(8)</a> by
doing execve ifconfig and providing syslog warnings about deprecated
options.
<li>Implemented <a href="https://man.openbsd.org/dig.1">dig(1)</a>
support for SVCB and HTTPS record types.
<li>Made <a href="https://man.openbsd.org/resolvd.8">resolvd(8)</a>
write /etc/resolv.conf in a more atomic manner.
<li>Added a <a href="https://man.openbsd.org/slowcgi.8">slowcgi(8)</a>
-t flag to change the request timeout.
<li>Corrected handling of an abnormal FastCGI termination in <a
href="https://man.openbsd.org/httpd.8">httpd(8)</a>.
<li>Made newer MIME type definitions take precedence over existing
ones in <a href="https://man.openbsd.org/httpd.8">httpd(8)</a>.
<li>Moved the <a href="https://man.openbsd.org/relayd.8">relayd(8)</a>
<a href="https://man.openbsd.org/daemon.3">daemon(3)</a> call to just
before forking the children so the parent disassociates from its
controlling terminal and shell, but not from its children.
<li>Changed <a href="https://man.openbsd.org/ftp.1">ftp(1)</a> to use
non-blocking <a
href="https://man.openbsd.org/connect.2">connect(2)</a> with <a
href="https://man.openbsd.org/ppoll.2">ppoll(2)</a> and timeout
instead of <a href="https://man.openbsd.org/alarm.3">alarm(3)</a>.
This allows failing over to another IP address for hosts that have
more than one.
</ul>
<li><a href="https://man.openbsd.org/tmux.1">tmux(1)</a> improvements and bug fixes:
<ul>
<li>Added an ACL list for multiple users attaching to the <a
href="https://man.openbsd.org/tmux.1">tmux(1)</a> socket.
<li>Ensured cursor remains on selected item on menu in <a
href="https://man.openbsd.org/tmux.1">tmux(1)</a>.
<li>Added <a href="https://man.openbsd.org/tmux.1">tmux(1)</a>
support for OSC 8 hyperlinks.
<li>Added support for hyperlinks with capture-pane -e and a
mouse_hyperlink format to <a
href="https://man.openbsd.org/tmux.1">tmux(1)</a>.
<li>Added an "all" state to <a
href="https://man.openbsd.org/tmux.1">tmux(1)</a> allow-passthrough to
work even in invisible panes.
<li>Fixed a <a href="https://man.openbsd.org/tmux.1">tmux(1)</a> crash
when searching for .* with extremely long lines.
<li>Added <a href="https://man.openbsd.org/vi.1">vi(1)</a> Home/End
bindings to <a href="https://man.openbsd.org/tmux.1">tmux(1)</a>.
<li>Added a Nobr terminfo capability to tell <a
href="https://man.openbsd.org/tmux.1">tmux(1)</a> the terminal does
not use bright colors for bold.
<li>Added a notification when a paste buffer is deleted to <a
href="https://man.openbsd.org/tmux.1">tmux(1)</a>.
<li>Fixed <a href="https://man.openbsd.org/tmux.1">tmux(1)</a> window
size reporting.
</ul>
<li>LibreSSL version 3.6.0
<ul>
<li>New features
<ul>
<li>EVP API for HKDF ported from OpenSSL and subsequently cleaned up.
<li>The security level API (SSL_{,CTX}_{get,set}_security_level()) is
now available. Callbacks and ex_data are not supported. Sane
software will not be using this.
<li>Experimental support for the BoringSSL QUIC API.
<li>Add initial support for TS ESSCertIDv2 verification.
<li>LibreSSL now uses the Baillie-PSW primality test instead of
Miller-Rabin.
</ul>
<li>Compatibility changes
<ul>
<li>The ASN.1 time parser has been refactored and rewritten using CBS.
It has been made stricter in that it now enforces the rules from
RFC 5280.
<li>ASN1_AFLG_BROKEN was removed.
<li>Error check tls_session_secret_cb() like OpenSSL.
<li>Added ASN1_INTEGER_{get,set}_{u,}int64()
<li>Move leaf certificate checks to the last thing after chain
validation.
<li>Added -s option to <a
href="https://man.openbsd.org/openssl.1">openssl(1)</a> ciphers
that only shows the ciphers supported by the specified protocol.
<li>Use <a href="https://man.openbsd.org/TLS_client_method.3">TLS_client_method(3)</a>
instead of <a href="https://man.openbsd.org/TLSv1_client_method.3">TLSv1_client_method(3)</a> in
the <a
href="https://man.openbsd.org/openssl.1">openssl(1)</a> ciphers command.
<li>Validate the protocols in <a
href="https://man.openbsd.org/SSL_CTX_set_alpn_protos.3">SSL{_CTX,}_set_alpn_protos()</a>.
<li>Made TS and PKCS12 opaque.
<li>Per RFC 7292, safeContentsBag is a SEQUENCE OF, not a SET OF.
<li>Align PKCS12_key_gen_uni() with OpenSSL
<li>Various PKCS12 and TS accessors were added. In particular, the
TS_RESP_CTX_set_time_cb() function was added back.
<li>Allow a NULL header in <a
href="https://man.openbsd.org/PEM_write.3">PEM_write{,_bio}()</a>
<li>Allow empty attribute sets in CSRs.
<li>Adjust signatures of <a
href="https://man.openbsd.org/BIO_ctrl.3">BIO_ctrl</a> functions.
<li>Provide additional defines for EVP AEAD.
<li>Provide OPENSSL_cleanup().
<li>Make <a
href="https://man.openbsd.org/BIO_info_cb.3">BIO_info_cb()</a> identical to bio_info_cb().
</ul>
<li>Bug fixes
<ul>
<li>Avoid use of uninitialized in BN_mod_exp_recp().
<li>Fix <a
href="https://man.openbsd.org/X509_get_extension_flags.3">X509_get_extension_flags()</a>
by ensuring that EXFLAG_INVALID is
set on X509_get_purpose() failure.
<li>Fix <a
href="https://man.openbsd.org/HMAC.3">HMAC()</a> with NULL key.
<li>Add ERR_load_{COMP,CT,KDF}_strings() to <a
href="https://man.openbsd.org/ERR_load_crypto_strings.3">ERR_load_crypto_strings()</a>.
<li>Avoid strict aliasing violations in BN_nist_mod_*().
<li>Do not return X509_V_ERR_UNSPECIFIED from <a
href="https://man.openbsd.org/X509_check_ca.3">X509_check_ca()</a>.
No return value of X509_check_ca() indicates failure. Application
code should therefore issue a checked call to X509_check_purpose()
before calling X509_check_ca().
<li>Rewrite and fix X509v3_asid_subset() to avoid segfaults on some
valid input.
<li>Call the ASN1_OP_D2I_PRE callback after ASN1_item_ex_new().
<li>Fix d2i_ASN1_OBJECT to advance the *der_in pointer correctly.
<li>Avoid use of uninitialized in <a
href="https://man.openbsd.org/ASN1_STRING_to_UTF8.3">ASN1_STRING_to_UTF8()</a>.
<li>Do not pass uninitialized pointer to <a
href="https://man.openbsd.org/ASN1_STRING_to_UTF8.3">ASN1_STRING_to_UTF8()</a>.
<li>Do not refuse valid IPv6 addresses in <a
href="https://man.openbsd.org/nc.1">nc(1)</a>'s HTTP CONNECT proxy.
<li>Do not reject primes in trial divisions.
<li>Error out on negative shifts in BN_{r,l}shift() instead of
accessing arrays out of bounds.
<li>Fix URI name constraints, allow for URIs with no host part.
<li>Fix the legacy verifier callback behaviour for untrusted certs.
<li>Correct serfver-side handling of TLSv1.3 key updates.
<li>Plug leak in PKCS12_setup_mac().
<li>Plug leak in <a
href="https://man.openbsd.org/X509V3_add1_i2d.3">X509V3_add1_i2d()</a>.
<li>Only print X.509 versions we know about.
<li>Avoid signed integer overflow due to unary negation
<li>Initialize readbytes in <a
href="https://man.openbsd.org/BIO_gets.3">BIO_gets()</a>.
<li>Plug memory leak in CMS_add_simple_smimecap().
<li>Plug memory leak in <a
href="https://man.openbsd.org/X509_REQ_print_ex.3">X509_REQ_print_ex()</a>.
<li>Check <a
href="https://man.openbsd.org/HMAC.3">HMAC()</a> return value to avoid a later use of uninitialized.
<li>Avoid potential NULL dereference in ssl_set_pkey().
<li>Check return values in ssl_print_tmp_key().
<li>Switch loop bounds from size_t to int in check_hosts().
<li>Avoid division by zero if no connection was made in s_time.c.
<li>Check sk_SSL_CIPHER_push() return value
<li>Avoid out-of-bounds read in ssl_cipher_process_rulestr().
<li>Use LONG_MAX as the limit for ciphers with long based APIs.
</ul>
<li>Internal improvements
<ul>
<li>Avoid expensive RFC 3779 checks during cert verification.
<li>The templated ASN.1 decoder has been cleaned up, refactored,
modernized with parts rewritten using CBB and CBS.
<li>The ASN.1 time parser has been rewritten.
<li>Rewrite and fix <a
href="https://man.openbsd.org/ASN1_STRING_to_UTF8.3">ASN1_STRING_to_UTF8()</a>.
<li>Use asn1_abs_set_unused_bits() rather than inlining it.
<li>Simplify ec_asn1_group2curve().
<li>First pass at a clean up of ASN1_item_sign_ctx()
<li>ssl_txt.c was cleaned up.
<li>Internal function arguments and struct member have been changed
to size_t.
<li>Lots of missing error checks of EVP API were added.
<li>Clean up and clarify BN_kronecker().
<li>Simplify ASN1_INTEGER_cmp()
<li>Rewrite ASN1_INTEGER_{get,set}() using CBS and CBB and reuse
the ASN1_INTEGER functions for ASN1_ENUMERATED.
<li>Use ASN1_INTEGER to parse and build {Z,}LONG_it
<li>Refactored and cleaned up group (elliptic curve) handling in
t1_lib.c.
<li>Simplify certificate list handling code in the legacy server.
<li>Make CBB_finish() fail if *out_data is not NULL.
<li>Remove tls_buffer_set_data() and remove/revise callers.
<li>Rewrite SSL{_CTX,}_set_alpn_protos() using CBS.
<li>Simplify tlsext_supported_groups_server_parse().
<li>Remove redundant length checks in tlsext parse functions.
<li>Simplify tls13_server_encrypted_extensions_recv().
<li>Add read and write support to tls_buffer.
<li>Convert TLS transcript from BUF_MEM to tls_buffer.
<li>Clear key on exit in PKCS12_gen_mac().
<li>Minor fixes in PKCS12_parse().
<li>Provide and use a primitive clear function for BIGNUM_it.
<li>Use ASN1_INTEGER to encode/decode BIGNUM_it.
<li>Add stack frames to AES-NI x86_64 assembly.
<li>Use named initialisers for BIGNUMs.
<li>Tidy up some of BN_nist_mod_*.
<li>Expand BLOCK_CIPHER_* and related macros.
<li>Avoid shadowing the cbs function parameter in
tlsext_alpn_server_parse()
<li>Deduplicate peer certificate chain processing code.
<li>Make it possible to signal an error from an i2c_* function.
<li>Rewrite i2c_ASN1_INTEGER() using CBB/CBS.
<li>Remove UINT32_MAX limitation on ChaCha() and CRYPTO_chacha_20().
<li>Remove bogus length checks from EVP_aead_chacha20_poly1305().
<li>Reworked DSA_size() and ECDSA_size().
<li>Stop using CBIGNUM_it internal to libcrypto.
<li>Provide c2i_ASN1_ENUMERATED_cbs() and call it from
asn1_c2i_primitive().
<li>Ensure ASN.1 types are appropriately encoded.
<li>Avoid recycling ASN1_STRINGs when decoding ASN.1.
<li>Tidy up asn1_c2i_primitive() slightly.
<li>Mechanically expand IMPLEMENT_BLOCK_CIPHER, IMPLEMENT_CFBR,
BLOCK_CIPHER and the looney M_do_cipher macros.
<li>Use correct length for EVP CFB mode ciphers.
<li>Provide a version of ssl_msg_callback() that takes a CBS.
<li>Use CBS to parse TLS alerts in the legacy stack.
<li>Increment the input and output position for EVP AES CFB1.
<li>Ensure there is no trailing data for a CCS received by the
TLSv1.3 stack.
<li>Use CBS when procesing a CCS message in the legacy stack.
<li>Be stricter with middlebox compatibility mode in the TLSv1.3
server.
</ul>
</ul>
<li>OpenSSH 9.1
<ul>
<li>Security
<ul>
<li>ssh-keyscan(1): fix a one-byte overflow in SSH- banner processing
<li>ssh-keygen(1): fix double free() in error path of signing/verify code
<li>ssh-keysign(8): fix double-free in error path introduced in OpenSSH 8.9.
</ul>
<li>Potentially-incompatible changes
<ul>
<li>ssh(1), sshd(8): SetEnv directives in ssh_config and sshd_config
are now first-match-wins to match other directives. Previously
if an environment variable was multiply specified the last set
value would have been used.
<li>ssh-keygen(8): ssh-keygen -A (generate all default host key types)
will no longer generate DSA keys, as these are insecure and have
not been used by default for some years.
<li>ssh(1), sshd(8): add a RequiredRSASize directive to set a minimum
RSA key length. Keys below this length will be ignored for user
authentication and for host authentication in sshd(8).<br>
ssh(1) will terminate a connection if the server offers an RSA key
that falls below this limit, as the SSH protocol does not include
the ability to retry a failed key exchange
<li>sftp-server(8): add a <code>users-groups-by-id@openssh.com</code>
extension request that allows the client to obtain user/group names that
correspond to a set of uids/gids.
<li>sftp(1): use <code>users-groups-by-id@openssh.com</code> sftp-server
extension (when available) to fill in user/group names for
directory listings.
<li>sftp-server(8): support the <code>home-directory</code> extension
request defined in draft-ietf-secsh-filexfer-extensions-00. This overlaps
a bit with the existing "expand-path@openssh.com", but some other
clients support it.
<li>ssh-keygen(1), sshd(8): allow certificate validity intervals,
sshsig verification times and authorized_keys expiry-time options
to accept dates in the UTC time zone in addition to the default
of interpreting them in the system time zone. YYYYMMDD and
YYMMDDHHMM[SS] dates/times will be interpreted as UTC if suffixed
with a 'Z' character.<br>
Also allow certificate validity intervals to be specified in raw
seconds-since-epoch as hex value, e.g. -V 0x1234:0x4567890. This
is intended for use by regress tests and other tools that call
ssh-keygen as part of a CA workflow.
<li>sftp(1): allow arguments to the sftp -D option, e.g. sftp -D
<code>/usr/libexec/sftp-server -el debug3</code>.
<li>ssh-keygen(1): allow the existing -U (use agent) flag to work
with <code>-Y sign</code> operations, where it will be interpreted to
require that the private keys is hosted in an agent.
</ul>
<li>Bugfixes
<ul>
<li>ssh-keygen(1): implement the "verify-required" certificate option.
This was already documented when support for user-verified FIDO
keys was added, but the ssh-keygen(1) code was missing.
<li>ssh-agent(1): hook up the restrict_websafe command-line flag;
previously the flag was accepted but never actually used.
<li>sftp(1): improve filename tab completions: never try to complete
names to non-existent commands, and better match the completion
type (local or remote filename) against the argument position
being completed.
<li>ssh-keygen(1), ssh(1), ssh-agent(1): several fixes to FIDO key
handling, especially relating to keys that request
user-verification. These should reduce the number of unnecessary
PIN prompts for keys that support intrinsic user verification.
<li>ssh-keygen(1): when enrolling a FIDO resident key, check if a
credential with matching application and user ID strings already
exists and, if so, prompt the user for confirmation before
overwriting the credential.
<li> sshd(8): improve logging of errors when opening authorized_keys
files.
<li>ssh(1): avoid multiplexing operations that could cause SIGPIPE from
causing the client to exit early. bz3454
<li>ssh_config(5), sshd_config(5): clarify that the RekeyLimit
directive applies to both transmitted and received data.
<li>ssh-keygen(1): avoid double fclose() in error path.
<li>sshd(8): log an error if pipe() fails while accepting a connection.
<li>ssh(1), ssh-keygen(1): fix possible NULL deref when built without
FIDO support.
<li>ssh-keyscan(1): add missing *-sk types to ssh-keyscan manpage.
<li>sshd(8): ensure that authentication passwords are cleared from
memory in error paths.
<li>ssh(1), ssh-agent(1): avoid possibility of notifier code executing
kill(-1).
<li>ssh_config(5): note that the ProxyJump directive also accepts the
same tokens as ProxyCommand.
<li>scp(1): do not not ftruncate(3) files early when in sftp mode. The
previous behaviour of unconditionally truncating the destination
file would cause <code>scp ~/foo localhost:</code> and <code>scp
localhost:foo ~/</code> to delete all the contents of their destination.
<li>ssh-keygen(1): improve error message when <code>ssh-keygen -Y sign
</code> is unable to load a private key.
<li>sftp(1), scp(1): when performing operations that glob(3) a remote
path, ensure that the implicit working directory used to construct
that path escapes glob(3) characters. This prevents glob characters
from being processed in places they shouldn't, e.g. <code>cd
/tmp/a*/</code>, <code>get *.txt</code> should have the get operation
treat the path <code>/tmp/a*</code> literally and not attempt to expand
it.
<li>ssh(1), sshd(8): be stricter in which characters will be accepted
in specifying a mask length; allow only 0-9.
<li>ssh-keygen(1): avoid printing hash algorithm twice when dumping a
KRL.
<li>ssh(1), sshd(8): continue running local I/O for open channels
during SSH transport rekeying. This should make ~-escapes work in
the client (e.g. to exit) if the connection happened to have
stalled during a rekey event.
<li>ssh(1), sshd(8): avoid potential poll() spin during rekeying
<li>Further hardening for sshbuf internals: disallow "reparenting" a
hierarchical sshbuf and zero the entire buffer if reallocation
fails.
</ul>
</ul>
<li>mandoc 1.14.6 plus several bugfixes, including:
<ul>
<li>Fixed calculation of the width of spanned columns in <a
href="https://man.openbsd.org/mandoc.1">mandoc(1)</a>.
<li>Made <a href="https://man.openbsd.org/mandoc.1">mandoc(1)</a>'s
roff_expand() parse left-to-right rather than right-to-left.
<li>Implemented a rudimentary version of the <a
href="https://man.openbsd.org/roff.7">roff(7)</a> <code>\A</code>
escape sequence for <a
href="https://man.openbsd.org/mandoc.1">mandoc(1)</a>.
<li>Matched groff behavior to allow arbitrary argument delimiters for
\C in <a href="https://man.openbsd.org/mandoc.1">mandoc(1)</a>.
<li>Improved accessibility of <a
href="https://man.openbsd.org/mandoc.1">mandoc(1)</a> -T html -O toc
output by using the <nav> element in the DPUB-ARIA doc-toc role.
<li>Improved accessibility of <a
href="https://man.openbsd.org/man.cgi.8">man.cgi(8)</a> output.
<li>Got rid of <a
href="https://man.openbsd.org/mandoc.1">mandoc(1)</a> archaic table
markup for header and footer lines in favor of flexbox CSS. Rendering
now adapts to browser windows of arbitrary narrowness.
<li>Prevented <a href="https://man.openbsd.org/mandoc.1">mandoc(1)</a>
from turning breakable hyphens in segment identifiers into
underscores.
</ul>
<li>Ports and packages:
<p>Many pre-built packages for each architecture:
<!-- number of FTP packages minus SHA256, SHA256.sig, index.txt -->
<ul style="column-count: 3">
<li>aarch64: 11261
<li>amd64: 11451
<li>arm: XXXX
<li>i386: 10225
<li>mips64: XXXX
<li>powerpc: XXXX
<li>powerpc64: XXXX
<li>riscv64: XXXX
<li>sparc64: 9275
</ul>
<p>Some highlights:
<ul style="column-count: 3">
<li>Asterisk 16.28.0, 18.14.0 and 19.6.0
<li>Audacity 2.4.2
<li>CMake 3.24.2
<li>Chromium 105.0.5195.125
<li>Emacs 28.2
<li>FFmpeg 4.4.2
<li>GCC 8.4.0 and 11.2.0
<li>GHC 9.2.4
<li>GNOME 42.4
<li>Go 1.19.1
<li>JDK 8u342, 11.0.16 and 17.0.4
<li>KDE Applications 22.08.1
<li>KDE Frameworks 5.98.0
<li>Krita 5.1.1
<li>LLVM/Clang 13.0.0
<li>LibreOffice 7.4.1.2
<li>Lua 5.1.5, 5.2.4 and 5.3.6
<li>MariaDB 10.9.3
<li>Mono 6.12.0.182
<li>Mozilla Firefox 105.0.1 and ESR 102.3.0
<li>Mozilla Thunderbird 102.3.0
<li>Mutt 2.2.7 and NeoMutt 20220429
<li>Node.js 16.17.1
<li>OCaml 4.12.1
<li>OpenLDAP 2.6.3
<li>PHP 7.4.30, 8.0.23 and 8.1.10
<li>Postfix 3.7.2
<li>PostgreSQL 14.5
<li>Python 2.7.18, 3.9.14 and 3.10.7
<li>Qt 5.15.6 and 6.3.1
<li>R 4.2.1
<li>Ruby 2.7.6, 3.0.4 and 3.1.2
<li>Rust 1.63.0
<li>SQLite 3.39.3
<li>Shotcut 22.06.23
<li>Sudo 1.9.11.2
<li>Suricata 6.0.6
<li>Tcl/Tk 8.5.19 and 8.6.12
<li>TeX Live 2021
<li>Vim 9.0.0192 and Neovim 0.7.2
<li>Xfce 4.16
</ul>
<p>
<li>As usual, steady improvements in manual pages and other documentation.
<li>The system includes the following major components from outside suppliers:
<ul>
<li>Xenocara (based on X.Org 7.7 with xserver 21.1.4 + patches,
freetype 2.12.1, fontconfig 2.13.94, Mesa 22.1.7, xterm 372,
xkeyboard-config 2.20, fonttosfnt 1.2.2 and more)
<li>LLVM/Clang 13.0.0 (+ patches)
<li>GCC 4.2.1 (+ patches) and 3.3.6 (+ patches)
<li>Perl 5.32.1 (+ patches)
<li>NSD 4.6.0
<li>Unbound 1.16.3
<li>Ncurses 5.7
<li>Binutils 2.17 (+ patches)
<li>Gdb 6.3 (+ patches)
<li>Awk September 12, 2022
<li>Expat 2.4.9
</ul>
</ul>
</section>
<hr>
<section id=install>
<h3>How to install</h3>
<p>
Please refer to the following files on the mirror site for
extensive details on how to install OpenBSD 7.2 on your machine:
<ul>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/7.2/alpha/INSTALL.alpha">
.../OpenBSD/7.2/alpha/INSTALL.alpha</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/7.2/amd64/INSTALL.amd64">
.../OpenBSD/7.2/amd64/INSTALL.amd64</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/7.2/arm64/INSTALL.arm64">
.../OpenBSD/7.2/arm64/INSTALL.arm64</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/7.2/armv7/INSTALL.armv7">
.../OpenBSD/7.2/armv7/INSTALL.armv7</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/7.2/hppa/INSTALL.hppa">
.../OpenBSD/7.2/hppa/INSTALL.hppa</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/7.2/i386/INSTALL.i386">
.../OpenBSD/7.2/i386/INSTALL.i386</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/7.2/landisk/INSTALL.landisk">
.../OpenBSD/7.2/landisk/INSTALL.landisk</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/7.2/loongson/INSTALL.loongson">
.../OpenBSD/7.2/loongson/INSTALL.loongson</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/7.2/luna88k/INSTALL.luna88k">
.../OpenBSD/7.2/luna88k/INSTALL.luna88k</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/7.2/macppc/INSTALL.macppc">
.../OpenBSD/7.2/macppc/INSTALL.macppc</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/7.2/octeon/INSTALL.octeon">
.../OpenBSD/7.2/octeon/INSTALL.octeon</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/7.2/powerpc64/INSTALL.powerpc64">
.../OpenBSD/7.2/powerpc64/INSTALL.powerpc64</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/7.2/riscv64/INSTALL.riscv64">
.../OpenBSD/7.2/riscv64/INSTALL.riscv64</a>
<li><a href="https://ftp.openbsd.org/pub/OpenBSD/7.2/sparc64/INSTALL.sparc64">
.../OpenBSD/7.2/sparc64/INSTALL.sparc64</a>
</ul>
</section>
<hr>
<section id=quickinstall>
<p>
Quick installer information for people familiar with OpenBSD, and the use of
the "<a href="https://man.openbsd.org/disklabel.8">disklabel</a> -E" command.
If you are at all confused when installing OpenBSD, read the relevant
INSTALL.* file as listed above!
<h3>OpenBSD/alpha:</h3>
<p>
If your machine can boot from CD, you can write <i>install72.iso</i> or
<i>cd72.iso</i> to a CD and boot from it.
Refer to INSTALL.alpha for more details.
<h3>OpenBSD/amd64:</h3>
<p>
If your machine can boot from CD, you can write <i>install72.iso</i> or
<i>cd72.iso</i> to a CD and boot from it.
You may need to adjust your BIOS options first.
<p>
If your machine can boot from USB, you can write <i>install72.img</i> or
<i>miniroot72.img</i> to a USB stick and boot from it.
<p>
If you can't boot from a CD, floppy disk, or USB,
you can install across the network using PXE as described in the included
INSTALL.amd64 document.
<p>
If you are planning to dual boot OpenBSD with another OS, you will need to
read INSTALL.amd64.
<h3>OpenBSD/arm64:</h3>
<p>
Write <i>install72.img</i> or <i>miniroot72.img</i> to a disk and boot from it
after connecting to the serial console. Refer to INSTALL.arm64 for more
details.
<h3>OpenBSD/armv7:</h3>
<p>
Write a system specific miniroot to an SD card and boot from it after connecting
to the serial console. Refer to INSTALL.armv7 for more details.
<h3>OpenBSD/hppa:</h3>
<p>
Boot over the network by following the instructions in INSTALL.hppa or the
<a href="hppa.html#install">hppa platform page</a>.
<h3>OpenBSD/i386:</h3>
<p>
If your machine can boot from CD, you can write <i>install72.iso</i> or
<i>cd72.iso</i> to a CD and boot from it.
You may need to adjust your BIOS options first.
<p>
If your machine can boot from USB, you can write <i>install72.img</i> or
<i>miniroot72.img</i> to a USB stick and boot from it.
<p>
If you can't boot from a CD, floppy disk, or USB,
you can install across the network using PXE as described in
the included INSTALL.i386 document.
<p>
If you are planning on dual booting OpenBSD with another OS, you will need to
read INSTALL.i386.
<h3>OpenBSD/landisk:</h3>
<p>
Write <i>miniroot72.img</i> to the start of the CF
or disk, and boot normally.
<h3>OpenBSD/loongson:</h3>
<p>
Write <i>miniroot72.img</i> to a USB stick and boot bsd.rd from it
or boot bsd.rd via tftp.
Refer to the instructions in INSTALL.loongson for more details.
<h3>OpenBSD/luna88k:</h3>
<p>
Copy 'boot' and 'bsd.rd' to a Mach or UniOS partition, and boot the bootloader
from the PROM, and then bsd.rd from the bootloader.
Refer to the instructions in INSTALL.luna88k for more details.
<h3>OpenBSD/macppc:</h3>
<p>
Burn the image from a mirror site to a CDROM, and power on your machine
while holding down the <i>C</i> key until the display turns on and
shows <i>OpenBSD/macppc boot</i>.
<p>
Alternatively, at the Open Firmware prompt, enter <i>boot cd:,ofwboot
/7.2/macppc/bsd.rd</i>
<h3>OpenBSD/octeon:</h3>
<p>
After connecting a serial port, boot bsd.rd over the network via DHCP/tftp.
Refer to the instructions in INSTALL.octeon for more details.
<h3>OpenBSD/powerpc64:</h3>
<p>
To install, write <i>install72.img</i> or <i>miniroot72.img</i> to a
USB stick, plug it into the machine and choose the <i>OpenBSD
install</i> menu item in Petitboot.
Refer to the instructions in INSTALL.powerpc64 for more details.
<h3>OpenBSD/riscv64:</h3>
<p>
To install, write <i>install72.img</i> or <i>miniroot72.img</i> to a
USB stick, and boot with that drive plugged in.
Make sure you also have the microSD card plugged in that shipped with the
HiFive Unmatched board.
Refer to the instructions in INSTALL.riscv64 for more details.
<h3>OpenBSD/sparc64:</h3>
<p>
Burn the image from a mirror site to a CDROM, boot from it, and type
<i>boot cdrom</i>.
<p>
If this doesn't work, or if you don't have a CDROM drive, you can write
<i>floppy72.img</i> or <i>floppyB72.img</i>
(depending on your machine) to a floppy and boot it with <i>boot
floppy</i>. Refer to INSTALL.sparc64 for details.
<p>
Make sure you use a properly formatted floppy with NO BAD BLOCKS or your install
will most likely fail.
<p>
You can also write <i>miniroot72.img</i> to the swap partition on
the disk and boot with <i>boot disk:b</i>.
<p>
If nothing works, you can boot over the network as described in INSTALL.sparc64.
</section>
<hr>
<section id=upgrade>
<h3>How to upgrade</h3>
<p>
If you already have an OpenBSD 7.1 system, and do not want to reinstall,
upgrade instructions and advice can be found in the
<a href="faq/upgrade72.html">Upgrade Guide</a>.
</section>
<hr>
<section id=sourcecode>
<h3>Notes about the source code</h3>
<p>
<code>src.tar.gz</code> contains a source archive starting at <code>/usr/src</code>.
This file contains everything you need except for the kernel sources,
which are in a separate archive.
To extract:
<blockquote><pre>
# <kbd>mkdir -p /usr/src</kbd>
# <kbd>cd /usr/src</kbd>
# <kbd>tar xvfz /tmp/src.tar.gz</kbd>
</pre></blockquote>
<p>
<code>sys.tar.gz</code> contains a source archive starting at <code>/usr/src/sys</code>.
This file contains all the kernel sources you need to rebuild kernels.
To extract:
<blockquote><pre>
# <kbd>mkdir -p /usr/src/sys</kbd>
# <kbd>cd /usr/src</kbd>
# <kbd>tar xvfz /tmp/sys.tar.gz</kbd>
</pre></blockquote>
<p>
Both of these trees are a regular CVS checkout. Using these trees it
is possible to get a head-start on using the anoncvs servers as
described <a href="anoncvs.html">here</a>.
Using these files
results in a much faster initial CVS update than you could expect from
a fresh checkout of the full OpenBSD source tree.
</section>
<hr>
<section id=ports>
<h3>Ports Tree</h3>
<p>
A ports tree archive is also provided. To extract:
<blockquote><pre>
# <kbd>cd /usr</kbd>
# <kbd>tar xvfz /tmp/ports.tar.gz</kbd>
</pre></blockquote>
<p>
Go read the <a href="faq/ports/index.html">ports</a> page
if you know nothing about ports
at this point. This text is not a manual of how to use ports.
Rather, it is a set of notes meant to kickstart the user on the
OpenBSD ports system.
<p>
The <i>ports/</i> directory represents a CVS checkout of our ports.
As with our complete source tree, our ports tree is available via
<a href="anoncvs.html">AnonCVS</a>.
So, in order to keep up to date with the -stable branch, you must make
the <i>ports/</i> tree available on a read-write medium and update the tree
with a command like:
<blockquote><pre>
# <kbd>cd /usr/ports</kbd>
# <kbd>cvs -d anoncvs@server.openbsd.org:/cvs update -Pd -rOPENBSD_7_2</kbd>
</pre></blockquote>
<p>
[Of course, you must replace the server name here with a nearby anoncvs
server.]
<p>
Note that most ports are available as packages on our mirrors. Updated
ports for the 7.2 release will be made available if problems arise.
<p>
If you're interested in seeing a port added, would like to help out, or just
would like to know more, the mailing list
<a href="mail.html">ports@openbsd.org</a> is a good place to know.
</section>
</body>
</html>