------------------------------------------------------------------------
- OpenBSD 7.2 RELEASED -------------------------------------------------

October 20, 2022.

We are pleased to announce the official release of OpenBSD 7.2.
This is our 53rd release.  We remain proud of OpenBSD's record of more
than twenty years with only two remote holes in the default install.

As in our previous releases, 7.2 provides significant improvements,
including new features, in nearly all areas of the system:

 - New/extended platforms:
    o Added support for Ampere Altra
    o Added support for Apple M2
    o Added support for Lenovo ThinkPad x13s and other machines using
      the Qualcomm Snapdragon 8cx Gen 3 (SC8280XP) SoC.

 - Various kernel improvements:
    o Allowed bsd.rd and bsd/bsd.mp to boot on Oracle Cloud amd64
      instances.
    o Added support for switching from glass console to serial console
      on arm64 systems that default to glass console.
    o pf(4) automatically allows IGMP and ICMP6 MLD packets with the
      router alert option. Special allow-opts rules are no longer needed
      for multicast discovery.
    o Fixed a pf(4) NULL dereference panic triggered by relayd(8).
    o Implement "show all routes" to print routing tables in ddb(4).
    o Added a method (ESC D) to enter ddb(4) on serial drivers that do
      not have a true BREAK mechanism.
    o Added "show all routes" and the ability to show individual routes
      (e.g. "show route 0xfffffd807e9b0000") to ddb(4).
    o Added a "show swap" command to ddb(4) to help debugging.
    o Count dropped network packets due to low memory in netstat(1).
    o Simplified machine command handling in ddb(4).
    o Changed to a simpler formula to calculate a default kern.maxthread
      value: 2*NPROCESS.
    o Enabled kstat(4), a device that exports kernel statistics that can
      be read by kstat(1).
    o Added CPU frequency sensors for each core on CPUs that have
      MPERF/APERF support.
    o Merged the UVM swap-backed and object-backed inactive page lists.
    o Fixed rwlock(9) implementation to be fair to writers. Previously,
      readers could grab the lock even if writers were waiting first.
    o Made the CPU frequency scaling duration relative to the load when
      in automatic mode on battery.
    o Fixed luna88k MULTIPROCESSOR kernels booting with CPU modules
      installed in arbitrary slots.
    o Added a missing kqueue(2) wakeup, found by a Go testcase hang.
    o Bumped the maximum number of supported CPUs to 256 on arm64.
    o Ensure uvm_swap_io() can succeed, even in out of memory
      situations, by reserving a second segment for the page daemon.
    o Ensured progress in the swapper by pre-allocating pages in a
      DMA-reachable region.
    o 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.
    o 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.
    o Added support for using non-standard UARTs (such as the Synopsys
      DesignWare UART) as an early console.
    o Remove NexGen CPU identification code as the kernel cannot run on
      these CPUs anyway.
    o Remove Rise CPU identification code.
    o Dropped detection code for 386sx/386dx CPUs. OpenBSD/i386 hasn't
      actually supported running on either for some time.
    o Dropped detection code for Cyrix CPUs older than the Cyrix M2.
    o Implemented the fundamentals for suspend/resume on arm64.
    o Simplified TSC synchronization testing on amd64.
    o Corrected sparc64 ofwboot to default to the softraid(4) 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.
    o Removed the obsolete kern.nselcoll sysctl(2).
    o Changed mips64, octeon, and loongson to trigger deferred clock
      interrupts from splx(9). This isolates the clock interrupt
      schedule from the MD clock interrupt code.
    o 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().
    o 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 delay(9) are managed.

 - SMP Improvements
    o Make route timer MP safe and use rttimer pool.
    o 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.
    o Start up to 4 softnet tasks to run IP input and forwarding in
      parallel on multiple cores.
    o Run IPv4 packet reassembly in parallel.
    o Run IPv6 hop-by-hop options processing in parallel.
    o Add a mutex to rate limiting functions to make them MP safe.
    o Introduce mutex and reference counter for internet protocol
      control block.
    o Protect UDP, raw IP, and divert packet input routines with a
      per-socket mutex.
    o Protect recv(2) system call for UDP and raw IP packets with a
      per-socket mutex and shared netlock. Allows to receive packets
      while forwarding in parallel.
    o Protect multicast deliver loop for UDP and raw IP sockets with
      rwlock.
    o Only grab netlock in IGMP and MLD timer when necessary.
    o TCP slow timer runs without netlock.
    o Rework rwlock so that a writer will get the lock eventually.
      Readers cannot share the lock forever. This prevents starvation of
      the writer.
    o Run interface media ioctl with shared netlock so packets can be
      processed while running ifconfig(8).
    o btrace(8) can be used to debug reference counting.
    o Use MP safe refcount for interface addresses.
    o Unlocked kbind(2).
    o Unlocked the pledge(2) system call.
    o Made UNIX domain sockets locking per-socket rather than coarse
      locking of the entire domain sockets layer.

 - Direct Rendering Manager and graphics drivers
    o Updated drm(4) to Linux 5.15.69
    o inteldrm(4): support for Alder Lake, Raptor Lake
    o Reimplemented the TTM page allocation code using bus_dma(9) APIs
      to make sure DMA addresses are translated properly on
      architectures with an IOMMU. This fixed amdgpu(4) and radeondrm(4)
      on powerpc64, sparc64, and arm64 machines with SMMU.
    o Implemented support for framebuffers that don't start on a page
      boundary (like those on the 2021 14" and 16" MacBook Pro).
    o Added handling for framebuffers where the first pixel isn't
      page-aligned to wsfb(4).
    o Fixed Xorg(1) when using the luna88k 1bpp framebuffer hardware.

 - VMM/VMD improvements
    o Improved error handling and logging in vmd(8)
    o Unify all internal structures and interfaces between vmd(8),
      vmctl(8) and vmm(4) to use bytes for memory and disk sizes.
    o Fix rebooting a received VM in vmd(8).
    o Have vmd(8) provide a copy of bios at 4g boundary. SeaBIOS and
      newer Linux kernels expect it there.
    o In vmd(8), fix off by one in VM memory range check.
    o In vmd(8), add support for MMIO assist. In vmm(4), send all port
      I/O emulation to userland.
    o Have vmd(8) compute i8254 read-back command latch from singular
      timestamp.
    o Improve the command line parsing in vmctl(8).
    o Let vmm(4) allow reading MSR_TSC on Intel hosts.
    o In vmm(4), reference count VMs and VCPUs.
    o In vmm(4), zero virtual addresses of VCPU state pages after
      freeing.
    o Fix `vmctl send` on Intel hosts by load the vmcs before reading
      VCPU registers in vmm(4).
    o Fix `vmctl receive` on Intel hosts by adding an additional fault
      type in vmm(4).
    o Add additional dt(4) tracepoints in various vmm(4) codepaths.
    o Add snmpd(8) AgentX support based around VM-MIB (RFC7666).

 - Various new userland features:
    o Replaced rc.d(8) $rcexec variable with an rc_exec function. This
      will require a mechanical change from ${rcexec} to rc_exec in rc.d
      scripts. Kept compatibility to give people a chance to fix their
      custom scripts.
    o Introduced a new daemon_execdir variable to rc.d(8) for changing
      to a specified directory before running rc_exec.
    o Added ts(1), a timestamp utility.
    o Add a new configtest action to rc.d(8) and rcctl(8) to check
      configuration syntax of a daemon.
    o Added forest (-f) mode to ps(1).

 - Various bugfixes and tweaks in userland:
    o Fixed openrsync(1) on sparc64 by eliminating a redundant second
      conversion of the int value from little to host endian.
    o Added connection timeout functionality to openrsync(1) via the
      --contimeout option.
    o Set the default openrsync(1) connection timeout that
      rpki-client(8) uses to 15 seconds.
    o Made use of the fact that repositories are unique objects in
      pkg_add(1) and annotated the quirks repository as cached, allowing
      for a large speed increase.
    o Enabled pkg_add(1) caching by default.
    o Changed the tied algorithm in pkg_add(1) to prevent O(n^2)
      behavior when packages contain several hundred copies of the same
      file.
    o Added a "processing" message for when pkg_add(1) is transferring
      data to inform the user that pkg_add is still working.
    o Added missing uuid_dec_le() to init_gp() so fdisk(8) -A works on
      big-endian architectures.
    o Aligned fdisk(8) logic with that used in the kernel to allow the
      protective EFI GPT partition to be in MBR partitions 0-3, not just
      0.
    o Prevented use of "-u" when fdisk(8) is operating on GPT formatted
      disks.
    o Stopped telling fdisk(8) that macppc HAS_MBR.
    o Made fdisk(8) reject input of excessive length.
    o Fixed an fdisk(8) regression to allow editing an MBR of all
      zeroes.
    o Changed fdisk(8) to restrict user actions if neither GPT nor MBR
      structures can be found on the disk.
    o Made fdisk(8) print a warning when an MBR partition starts or
      extends past the end of the device.
    o Made fdisk(8) print a warning when a GPT partition start or end is
      outside the usable LBA area of the device.
    o Made fdisk(8) display "Microsoft basic data" instead of "FAT12"
      for GPT_UUID_MSDOS partitions.
    o Made fdisk(8) print GPT attributes in verbose output.
    o Made fdisk(8) use the correct GPT bootable attribute bit.
    o Made fdisk(8) not spoof GPT partitions with the attribute
      REQUIRED.
    o Made fdisk(8) ensure GPT headers, table entries and usable area
      don't overlap each other.
    o Installed useful btrace(8) scripts in /usr/share/btrace.
    o Made btrace(8) execute the END probe upon receiving a SIGTERM
      signal.
    o Moved the wait for autoconf interfaces from rc(8) to netstart(8)
      to fix tunnel interfaces that depend on working autoconf
      interfaces.
    o Made netstart(8) create virtual interfaces up front if specified
      on the command line.
    o Changed rc.subr(8) to copy the message to stdout when using
      logger(1) to avoid needing to check syslog when running in debug
      mode.
    o Fixed kbd(8) so it doesn't fail silently when executed by a
      regular user.
    o In the sndio library, added the function sio_flush(3) to stop
      playback immediately. Altered sndiod(8) to wait until the buffer
      is drained before closing the device.
    o Made xterm(1) use a much safer FD-passing idiom for updating
      utmp(5).
    o Prevented a crash in vi(1) when cursor key support is disabled.
    o Updated vi(1) to apply expandtab to the output of a ! command.
    o Made mg(1) automatically delete trailing whitespace on RET in
      c-mode and auto-indent-mode.
    o Made grep(1) provide full context when using match count (-m)
    o Added the --null flag to grep(1) which makes grep print an ASCII
      NUL byte after the file name to make the output unambiguous.
    o Fixed multiple memory leaks in awk(1).
    o Changed compress(1) to print a more accurate message when -v is
      used with -k.
    o Fixed gzip(1) byte counts with 32-bit integers.
    o Fixed the growth check in compress(1) and gzip(1) in cases of
      small files or files with sufficiently random data.
    o Made timeout(1) -s accept HUP like kill(1) and GNU timeout(1) do.
    o Updated capitals and countries in the game quiz(6).
    o Set default sleep value of ico(1) to 10ms.
    o Fixed a bug in cron(8) where it could exit silently if ppoll(2)
      exited. Now it will log to syslog(3) instead of stderr.
    o Added llvm-profdata(1) to base so that ports can benefit from
      profiled builds.
    o Changed rc(8) to only attempt to set the yp(8) domainname if it
      has not been set yet.
    o Raised the "staff" login class data-size-cur on arm64 to be the
      same as that for amd64 in login.conf(5) (1536M).
    o Fixed patch(1) locate-hunk in empty files.
    o Fixed patch(1) in the case of reversing a patch that creates a
      file.
    o Added seconds to the uptime display of top(1).
    o Made putenv(3) return an error if the string starts with the '='
      character. This matches the behavior on FreeBSD and NetBSD.
    o Fixed overflow of the number of errors in renice(8) by setting
      error instead of incrementing it.
    o Removed the "-c" compatibility option from vnconfig(8).
    o Stopped vnconfig(8) from printing the device name on failure.
    o Print a message when ld.so(1) fails inside execve(2) to clarify
      the failure mode when a dynamic executable is run while /usr isn't
      mounted.
    o Improved bioctl(8) RAID level parsing to check numeric levels
      before checking single character levels. This allows recognition
      of RAID 10 as a valid but unsupported level.
    o Fixed installboot(8) messaging when verbose (-v) and dry-run (-n)
      modes are combined with softraid(4).
    o Sped up wc(1) word counting.

 - Improved hardware support and driver bugfixes, including:
    o New aplaudio(4) driver for Apple audio subsystem.
    o New aplmca(4) driver for Apple MCA controller.
    o New aplsart(4) driver for Apple SART address filter.
    o New alpdc, apldchidev, apldckbd, apldcms, and aplrtk drivers for
      keyboard and trackpad on Apple M2 laptops.
    o New qcgpio(4) driver for Qualcomm Snapdragon GPIO controller.
    o New qciic(4) driver for Qualcomm Snapdragon GENI I2C controller.
    o New sfgpio(4) driver for SiFive GPIO controller.
    o New stfclock(4) driver for StarFive JH7100 clock controller.
    o New stfpinctrl(4) driver for StarFive JH7100 pin configuration.
    o New stftemp driver for StarFive JH7100 temperature sensor.
    o New sxirintc(4) driver for Allwinner wakeup interrupt controller.
    o New gpiorestart driver for system reset via GPIO pin.
    o Added support for more power sensors to ipmi(4).
    o Added support for the ehci(4) controller on Marvell 3720 boards.
    o Extended ksmn(4) to show CCD temperatures if available.
    o Fixed missing interrupts for trackpads on some machines after
      resume by making sure amdgpio(4) restores pin configuration on
      resume.
    o Added FIFO support and allow baud rate changes to pluart(4).
    o Added support for the Synopsys DesignWare UART found on the Ryzen
      Embedded V1000 SoCs to com(4).
    o Added xhci(4) support for the dual role controllers integrated on
      the Qualcomm Snapdragon 8cx gen 3 SoC.
    o Added support for using the power button to wake up from suspend
      to axppmic(4).
    o Modified pms(4) to discard relative movement packets outside of
      the [-127, 127] range to prevent cursor jumps when using the
      trackpoint on some Lenovo laptops.
    o Allowed spdmem(4) to attach to gdiumiic(4).
    o Make spdmem(4) attach on 2F-based loongson systems.
    o Added power button support to aplsmc(4).
    o Changed the mfii(4) RAID controller driver to allow the firmware
      more time to transition out of the UNDEFINED state.
    o Added Wacom One S (CTL-472) support to uwacom(4).

 - New or improved network hardware support:
    o Increased rx buffer size on uaq(4) to 62kB.
    o Repaired rge(4) hardware VLAN tagging.
    o Provide statistics via kstats for mvneta(4).
    o Enabled aq(4) on arm64.
    o Implemented and enabled IPv4, TCP, and UDP checksum offloading for
      igc(4).
    o Fixed a panic triggered by ifconfig bnxt0 down by changing bnxt(4)
      devices to not run rx and tx interrupt handlers when the interface
      is not running.
    o Introduced Large Receive Offloading of TCP segment offloading in
      ix(4). Also added a tso option to ifconfig(8) to enable and
      disable this feature.

 - Added or improved wireless network drivers:
    o Made device matching in iwx(4) more similar to Linux iwlwifi in
      order to recognize more devices.
    o Added support for AX210/AX211 devices to iwx(4).
    o Fixed iwx(4) setting of HT/VHT bits in rate flags of the Tx
      command that could cause a firmware panic.
    o Added handling of 9k devices which do not support antenna B to
      iwm(4).
    o Fixed bwfm(4) ifconfig media display on devices with sta_info
      command version 3.
    o Fixed a bwfm(4) crash during USB detach.
    o Fixed detection of the Rx data rate on rtl8192eu urtwn(4) devices.
    o Fixed integer overflows in the iwm(4) and iwx(4) firmware file
      parsers.

 - IEEE 802.11 wireless stack improvements and bugfixes:
    o Make sure drivers initialize all of ieee80211_rxinfo struct.

 - Installer, upgrade and bootloader improvements:
    o Fixed the watchdog in the installer so that it is reset after each
      download and each set installation.
    o Ensured that running sysupgrade(8) on -stable will move to the
      next release, not -current.
    o Added the -b option to sysupgrade(8) to set an alternative base
      directory to which the installation files will be downloaded.
    o Increased the disklabel(8) auto partitioner's maximum size for
      /usr to 30G.
    o Altered installer behavior so the vlan(4) question won't be asked
      unless another network interface exists.
    o Added support for wildcards in fw_update(8) patterns.
    o Added support for booting from RAID 1C softraid(4) volumes on
      amd64, sparc64 and arm64.
    o Added NFS client support to the luna88k RAMDISK kernel.
    o Made the EFI bootloader provide the extra parameters necessary to
      use non-standard UARTs on the AMD Ryzen Embedded V1000 SoCs as
      console.
    o Switched bootloaders to the extended BOOTARG_CONSDEV struct.
    o Added UFS2 support to landisk boot blocks.

 - Security improvements:
    o Implemented privilege separation in xlock(1).
    o Added privilege separation to snmpd(8).
    o The TZ environment variable no longer supports absolute paths, to
      fit better into the pledge(2) bypass model.
    o AF_UNIX socket bind(2) and connect(2) now follow unveil(2)
      configuration.
    o New ypconnect(2) 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 pledge(2) rules.
    o Processes that pledge("vminfo") may now use the read-only
      swapctl(2) operations SWAP_NSWAP and SWAP_STATS providing
      information on swap devices.
    o Randomized the rekey interval of arc4random(3).
    o Reduce the attack surface by introducing a 'local bind' mode to
      ypldap(8). In this mode ypldap binds its RPC sockets to loopback,
      so YP services are only available to the host it's running on.
      ypldap writes the YP binding file in /var/yp/binding itself and
      replaces ypbind(8) and ypserv(8). This also implies that
      portmap(8) doesn't need to be running anymore when local bind mode
      is used.
    o Changed the /sbin daemons dhcpleased(8), mountd(8), nfsd(8),
      pflogd(8), resolvd(8), slaacd(8), and unwind(8) 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.

 - Changes in the network stack:
    o Added the recvmmsg(2) system call that allows receiving multiple
      msghdrs at once, and the sendmmsg syscall that allows sending
      multiple msghdrs at once.
    o Relaxed address availability check for multicast(4) binds so
      processes listening for the same multicast address do not need to
      be the same UID.
    o Introduced dedicated link entries for snapshots to pfsync(4).
    o Changed pf(4) handling of IGMP and ICMP6 MLD packets to allow
      multicast control packets to work by default.
    o Made pf(4) more paranoid about IGMP/MLD messages.
    o Fixed a logic bug in pf_find_state() that could cause pf(4) to
      incorrectly block a packet.
    o Fixed pf(4) syncookies during fast TCP port reuse.
    o Fixed a bug in pf(4) 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.
    o Fixed a kernel panic in pf(4) if IP options with an ICMP payload
      were truncated. Such packets will now be dropped instead.
    o Allow forwarding to and from IPs in the 240/4 range.
    o Corrected the Virtual Ethernet Bridge veb(4) to avoid calling
      if_enqueue from an smr critical section.
    o Reworked the kroute rttimer code to fix icmp_pmtu_timeout crashes.
    o Fixed an interrupt storm upon suspend on Amlogic arm64 boards.
    o Fixed a race between pflow_output_process() and
      pflow_clone_destroy() in pflow(4).
    o Added a missing input validation step to pipex(4) MPPE keylenbits.

 - Routing daemons and other userland network improvements:
    o IPsec support was improved:
       - Made iked(8) ignore any CERT payload after the first rather
         than failing the exchange when more than one CERT payload is
         received.
       - Added iked(8) support for sending certificate chains with
         intermediate CAs in multiple CERT payloads.
       - Added an OpenIKED Vendor ID payload in the iked(8) initial
         handshake to make it easier to handle interoperability
         problems with older versions in the future.
       - Added iked(8) connection statistics for successful and failed
         connections, error types, and other events that can be
         printed with "ikectl show stats".
    o In bgpd(8),
       - Implement max-communities filter to limit the number of
         allowed communities, ext-communities and large-communities.
       - Fix insertion of additional non-transitive extended
         communities when sending out prefixes.
       - Relax IP address limitation by allowing prefixes in 240/4.
       - Implement RFC 9234 - Route Leak Prevention and Detection
         Using Roles in UPDATE and OPEN Messages.
       - Full support for RFC 7911 - Advertisement of Multiple Paths
         in BGP (ADD-PATH).
       - Improve FIB code, handle IPv6 scoped addresses properly.
       - Add bgplgd(8), a FastCGI server providing a REST API to
         execute bgpctl(8) commands.
       - Bugfix: bgpd(8) could fail to invalidate nexthops and
         incorrectly leave them in the FIB or Adj-RIB-Out.
       - Speedup bgpctl show rib 10/8 or-longer and show rib 10/8
         or-shorter
       - Switch various static hash tables to RB trees improving
         performance on large systems
       - Export per neighbor pending update and withdraw statistics
       - Fix race between a neighbor session reset and its update
         message backlog
       - Improve handling of nexthop reachability state changes
       - Made sure only one bgpd(8) roa softreconfig runner is run at
         any time.
    o rpki-client(8) saw some changes:
       - Allowed more than one CRL URI in certificates.
       - 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.
       - 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.
       - Emit a warning when a RRDP session serial number decreases.
       - DER decoding functions were refactored to leverage ASN.1
         templates.
       - Add support to validate & inspect .sig files containing RPKI
         Signed Checklists in filemode (-f).
         (draft-ietf-sidrops-rpki-rsc-08)
       - Print various statistics after the completion of the main
         process.
       - Add support to decode & print TAL (RFC 8630) details in
         filemode (-f).
       - Emit objects in Concatenated JSON format when filemode (-f)
         and the JSON output flag (-j) are combined.
       - 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.
       - Set rsync(1) connection I/O idle timeout to 15 seconds.
       - Unify the maximum idle I/O and connect timeouts for rsync(1)
         & HTTPS.
       - rpki-client(8) now performs stricter EE certificate
         validation:
          o Disallow AS Resources extensions in ROA EE certificates.
          o Disallow Subject Information Access (SIA) extensions in
            RPKI Signed Checklist (RSC) EE certs.
          o Check the resources in ROAs and RSCs against EE certs.
       - Improve readability and add various information being printed
         in verbose mode.
       - Extend filemode (-f) output and print X.509 certificates in
         PEM format when increased verbosity (-vv) is specified.
       - Shorten the RRDP I/O idle timeout.
       - 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.
       - Abort a currently running RRDP request process when the
         per-repository timeout is reached.
       - 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.
       - Resolve a potential for a race condition in non-atomic RRDP
         deltas.
       - Fix some memory leaks.
       - Improve compliance with the HTTP protocol specification.
    o In snmpd(8),
       - Allow object names to be used in addition to OIDs in
         snmpd.conf(5).
       - Better type hinting for debug logging.
       - Introduce a blocklist feature, which removes subtrees from
         view.
       - Reintroduce AgentX master support.
       - Move non-SNMP related metrics to their own AgentX based
         backend.
       - The snmpe process is now pledged stdio recvfd inet unix.
       - Imported snmpd_metrics(8). This allows those who need to use
         net-snmpd the ability to access base snmpd(8) metrics.
    o In ldapd(8), match password schemas case sensitive.
    o In ospfd(8), 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.
    o Added check to acme-client(1) to ensure the challenge token is
      turned into a filename that is base64url encoded.
    o Added RFC 9234 "BGP Role" support to tcpdump(8)
    o Have tcpdump(8) print ASnumbers in 'asplain' format instead of the
      old 'asdot' format.
    o Fixed a crash in libpcap when it would walk off the end of the
      array performing frees.
    o Made -X connect SOCKS work with IPv6 addresses in nc(1).
    o Introduced a blocklist backend and keyword to snmpd(8), this
      deprecates filter-pf-addresses.
    o Changed dhclient(8) to defer to dhcpleased(8) by doing execve
      ifconfig and providing syslog warnings about deprecated options.
    o Implemented dig(1) support for SVCB and HTTPS record types.
    o Made resolvd(8) write /etc/resolv.conf in a more atomic manner.
    o Added a slowcgi(8) -t flag to change the request timeout.
    o Corrected handling of an abnormal FastCGI termination in httpd(8).
    o Made newer MIME type definitions take precedence over existing
      ones in httpd(8).
    o Moved the relayd(8) daemon(3) call to just before forking the
      children so the parent disassociates from its controlling terminal
      and shell, but not from its children.
    o Changed ftp(1) to use non-blocking connect(2) with ppoll(2) and
      timeout instead of alarm(3). This allows failing over to another
      IP address for hosts that have more than one.

 - tmux(1) improvements and bug fixes:
    o Added an ACL list for multiple users attaching to the tmux(1)
      socket.
    o Ensured cursor remains on selected item on menu.
    o Added support for OSC 8 hyperlinks.
    o Added support for hyperlinks with capture-pane -e and a
      mouse_hyperlink format.
    o Added an "all" state to allow-passthrough to work even in
      invisible panes.
    o Fixed a crash when searching for .* with extremely long lines.
    o Added vi(1) Home/End bindings.
    o Added a Nobr terminfo capability to tell tmux(1) the terminal does
      not use bright colors for bold.
    o Added a notification when a paste buffer is deleted.
    o Fixed window size reporting.

 - LibreSSL version 3.6.0
    o New features
       - EVP API for HKDF ported from OpenSSL and subsequently cleaned
         up.
       - 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.
       - Experimental support for the BoringSSL QUIC API.
       - Add initial support for TS ESSCertIDv2 verification.
       - LibreSSL now uses the Baillie-PSW primality test instead of
         Miller-Rabin.
    o Compatibility changes
       - 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.
       - ASN1_AFLG_BROKEN was removed.
       - Error check tls_session_secret_cb() like OpenSSL.
       - Added ASN1_INTEGER_{get,set}_{u,}int64()
       - Move leaf certificate checks to the last thing after chain
         validation.
       - Added -s option to openssl(1) ciphers that only shows the
         ciphers supported by the specified protocol.
       - Use TLS_client_method(3) instead of TLSv1_client_method(3) in
         the openssl(1) ciphers command.
       - Validate the protocols in SSL{_CTX,}_set_alpn_protos().
       - Made TS and PKCS12 opaque.
       - Per RFC 7292, safeContentsBag is a SEQUENCE OF, not a SET OF.
       - Align PKCS12_key_gen_uni() with OpenSSL
       - Various PKCS12 and TS accessors were added. In particular,
         the TS_RESP_CTX_set_time_cb() function was added back.
       - Allow a NULL header in PEM_write{,_bio}()
       - Allow empty attribute sets in CSRs.
       - Adjust signatures of BIO_ctrl functions.
       - Provide additional defines for EVP AEAD.
       - Provide OPENSSL_cleanup().
       - Make BIO_info_cb() identical to bio_info_cb().
    o Bug fixes
       - Avoid use of uninitialized in BN_mod_exp_recp().
       - Fix X509_get_extension_flags() by ensuring that
         EXFLAG_INVALID is set on X509_get_purpose() failure.
       - Fix HMAC() with NULL key.
       - Add ERR_load_{COMP,CT,KDF}_strings() to
         ERR_load_crypto_strings().
       - Avoid strict aliasing violations in BN_nist_mod_*().
       - Do not return X509_V_ERR_UNSPECIFIED from X509_check_ca(). 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().
       - Rewrite and fix X509v3_asid_subset() to avoid segfaults on
         some valid input.
       - Call the ASN1_OP_D2I_PRE callback after ASN1_item_ex_new().
       - Fix d2i_ASN1_OBJECT to advance the *der_in pointer correctly.
       - Avoid use of uninitialized in ASN1_STRING_to_UTF8().
       - Do not pass uninitialized pointer to ASN1_STRING_to_UTF8().
       - Do not refuse valid IPv6 addresses in nc(1)'s HTTP CONNECT
         proxy.
       - Do not reject primes in trial divisions.
       - Error out on negative shifts in BN_{r,l}shift() instead of
         accessing arrays out of bounds.
       - Fix URI name constraints, allow for URIs with no host part.
       - Fix the legacy verifier callback behaviour for untrusted
         certs.
       - Correct serfver-side handling of TLSv1.3 key updates.
       - Plug leak in PKCS12_setup_mac().
       - Plug leak in X509V3_add1_i2d().
       - Only print X.509 versions we know about.
       - Avoid signed integer overflow due to unary negation
       - Initialize readbytes in BIO_gets().
       - Plug memory leak in CMS_add_simple_smimecap().
       - Plug memory leak in X509_REQ_print_ex().
       - Check HMAC() return value to avoid a later use of
         uninitialized.
       - Avoid potential NULL dereference in ssl_set_pkey().
       - Check return values in ssl_print_tmp_key().
       - Switch loop bounds from size_t to int in check_hosts().
       - Avoid division by zero if no connection was made in s_time.c.
       - Check sk_SSL_CIPHER_push() return value
       - Avoid out-of-bounds read in ssl_cipher_process_rulestr().
       - Use LONG_MAX as the limit for ciphers with long based APIs.
    o Internal improvements
       - Avoid expensive RFC 3779 checks during cert verification.
       - The templated ASN.1 decoder has been cleaned up, refactored,
         modernized with parts rewritten using CBB and CBS.
       - The ASN.1 time parser has been rewritten.
       - Rewrite and fix ASN1_STRING_to_UTF8().
       - Use asn1_abs_set_unused_bits() rather than inlining it.
       - Simplify ec_asn1_group2curve().
       - First pass at a clean up of ASN1_item_sign_ctx()
       - ssl_txt.c was cleaned up.
       - Internal function arguments and struct member have been
         changed to size_t.
       - Lots of missing error checks of EVP API were added.
       - Clean up and clarify BN_kronecker().
       - Simplify ASN1_INTEGER_cmp()
       - Rewrite ASN1_INTEGER_{get,set}() using CBS and CBB and reuse
         the ASN1_INTEGER functions for ASN1_ENUMERATED.
       - Use ASN1_INTEGER to parse and build {Z,}LONG_it
       - Refactored and cleaned up group (elliptic curve) handling in
         t1_lib.c.
       - Simplify certificate list handling code in the legacy server.
       - Make CBB_finish() fail if *out_data is not NULL.
       - Remove tls_buffer_set_data() and remove/revise callers.
       - Rewrite SSL{_CTX,}_set_alpn_protos() using CBS.
       - Simplify tlsext_supported_groups_server_parse().
       - Remove redundant length checks in tlsext parse functions.
       - Simplify tls13_server_encrypted_extensions_recv().
       - Add read and write support to tls_buffer.
       - Convert TLS transcript from BUF_MEM to tls_buffer.
       - Clear key on exit in PKCS12_gen_mac().
       - Minor fixes in PKCS12_parse().
       - Provide and use a primitive clear function for BIGNUM_it.
       - Use ASN1_INTEGER to encode/decode BIGNUM_it.
       - Add stack frames to AES-NI x86_64 assembly.
       - Use named initialisers for BIGNUMs.
       - Tidy up some of BN_nist_mod_*.
       - Expand BLOCK_CIPHER_* and related macros.
       - Avoid shadowing the cbs function parameter in
         tlsext_alpn_server_parse()
       - Deduplicate peer certificate chain processing code.
       - Make it possible to signal an error from an i2c_* function.
       - Rewrite i2c_ASN1_INTEGER() using CBB/CBS.
       - Remove UINT32_MAX limitation on ChaCha() and
         CRYPTO_chacha_20().
       - Remove bogus length checks from EVP_aead_chacha20_poly1305().
       - Reworked DSA_size() and ECDSA_size().
       - Stop using CBIGNUM_it internal to libcrypto.
       - Provide c2i_ASN1_ENUMERATED_cbs() and call it from
         asn1_c2i_primitive().
       - Ensure ASN.1 types are appropriately encoded.
       - Avoid recycling ASN1_STRINGs when decoding ASN.1.
       - Tidy up asn1_c2i_primitive() slightly.
       - Mechanically expand IMPLEMENT_BLOCK_CIPHER, IMPLEMENT_CFBR,
         BLOCK_CIPHER and the looney M_do_cipher macros.
       - Use correct length for EVP CFB mode ciphers.
       - Provide a version of ssl_msg_callback() that takes a CBS.
       - Use CBS to parse TLS alerts in the legacy stack.
       - Increment the input and output position for EVP AES CFB1.
       - Ensure there is no trailing data for a CCS received by the
         TLSv1.3 stack.
       - Use CBS when procesing a CCS message in the legacy stack.
       - Be stricter with middlebox compatibility mode in the TLSv1.3
         server.

 - OpenSSH 9.1
    o Security
       - ssh-keyscan(1): fix a one-byte overflow in SSH banner
         processing
       - ssh-keygen(1): fix double free() in error path of
         signing/verify code
       - ssh-keysign(8): fix double-free in error path introduced in
         OpenSSH 8.9.
    o Potentially-incompatible changes
       - 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.
       - 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.
       - 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).
         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
       - sftp-server(8): add a users-groups-by...@openssh.com
         extension request that allows the client to obtain user/group
         names that correspond to a set of uids/gids.
       - sftp(1): use users-groups-by...@openssh.com sftp-server
         extension (when available) to fill in user/group names for
         directory listings.
       - sftp-server(8): support the home-directory extension request
         defined in draft-ietf-secsh-filexfer-extensions-00. This
         overlaps a bit with the existing "expand-p...@openssh.com",
         but some other clients support it.
       - 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.
         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.
       - sftp(1): allow arguments to the sftp -D option, e.g. sftp -D
         /usr/libexec/sftp-server -el debug3.
       - ssh-keygen(1): allow the existing -U (use agent) flag to work
         with -Y sign operations, where it will be interpreted to
         require that the private keys is hosted in an agent.
    o Bugfixes
       - 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.
       - ssh-agent(1): hook up the restrict_websafe command-line flag;
         previously the flag was accepted but never actually used.
       - 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.
       - 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.
       - 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.
       - sshd(8): improve logging of errors when opening
         authorized_keys files.
       - ssh(1): avoid multiplexing operations that could cause
         SIGPIPE from causing the client to exit early. bz3454
       - ssh_config(5), sshd_config(5): clarify that the RekeyLimit
         directive applies to both transmitted and received data.
       - ssh-keygen(1): avoid double fclose() in error path.
       - sshd(8): log an error if pipe() fails while accepting a
         connection.
       - ssh(1), ssh-keygen(1): fix possible NULL deref when built
         without FIDO support.
       - ssh-keyscan(1): add missing *-sk types to ssh-keyscan
         manpage.
       - sshd(8): ensure that authentication passwords are cleared
         from memory in error paths.
       - ssh(1), ssh-agent(1): avoid possibility of notifier code
         executing kill(-1).
       - ssh_config(5): note that the ProxyJump directive also accepts
         the same tokens as ProxyCommand.
       - scp(1): do not not ftruncate(3) files early when in sftp
         mode. The previous behaviour of unconditionally truncating
         the destination file would cause scp ~/foo localhost: and scp
         localhost:foo ~/ to delete all the contents of their
         destination.
       - ssh-keygen(1): improve error message when ssh-keygen -Y sign
         is unable to load a private key.
       - 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. cd /tmp/a*/, get *.txt should have the get
         operation treat the path /tmp/a* literally and not attempt to
         expand it.
       - ssh(1), sshd(8): be stricter in which characters will be
         accepted in specifying a mask length; allow only 0-9.
       - ssh-keygen(1): avoid printing hash algorithm twice when
         dumping a KRL.
       - 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.
       - ssh(1), sshd(8): avoid potential poll() spin during rekeying
       - Further hardening for sshbuf internals: disallow
         "reparenting" a hierarchical sshbuf and zero the entire
         buffer if reallocation fails.

 - mandoc 1.14.6 plus some new features and many bugfixes, including:
    o Significantly improved accessibility of mandoc(1) -T html and
      man.cgi(8) output by using semantically better HTML elements in
      several places and by adding ARIA and DPUB-ARIA roles and
      aria-label attributes to several HTML elements.
    o Got rid of archaic HTML table markup for header and footer lines
      in favor of flexbox CSS. Rendering now adapts to browser windows
      of arbitrary narrowness.
    o Prevented -T html output from turning breakable hyphens into
      underscores in URI fragment identifiers.
    o Improved the roff(7) escape sequence parser in several fundamental
      ways regarding output correctness and groff compatibility.
    o Corrected output that depends on the order of evaluation of
      roff(7) escape sequences by parsing them left-to-right rather than
      right-to-left.
    o Significantly improved -T lint diagnostics regarding syntax errors
      in roff(7) escape sequences and in their arguments.
    o Stopped emitting vertical space before the tbl(7) .TS (table
      start) macro for compatibility with the same change in groff. This
      implies .PP or .Pp macros may need to be inserted before .TS in
      some (but not all!) places in some manual pages using tbl(7).
    o Stopped skipping vertical space after the tbl(7) .TE (table end)
      macro of boxed tables for compatibility with the same change in
      groff. This implies .sp requests may need to be removed after .TE
      in some manual pages using tbl(7).
    o Corrected the calculation of the width of spanned tbl(7) columns.
    o Improved the handling of literal tab characters in filled text in
      multiple ways for compatibility with groff and Heirloom troff.
    o Plus bugfixes for two segfaults, two infinite loops, and several
      assertion failures.

 - Ports and packages:
    o Pre-built packages are available for the following architectures on
      the day of release:
       - aarch64 (arm64): 11261
       - amd64: 11451
       - i386: 10225
       - mips64: 8759
       - powerpc64: XXX
       - riscv64: 9808
       - sparc64: 9275
    o Packages for the following architectures will be made available as
      their builds complete:
       - arm
       - powerpc

 - Some highlights:

    o Asterisk 16.28.0, 18.14.0 and   o Mozilla Thunderbird 102.3.0
      19.6.0                          o Mutt 2.2.7 and NeoMutt 20220429
    o Audacity 2.4.2                  o Node.js 16.17.1
    o CMake 3.24.2                    o OCaml 4.12.1
    o Chromium 105.0.5195.125         o OpenLDAP 2.6.3
    o Emacs 28.2                      o PHP 7.4.30, 8.0.23 and 8.1.10
    o FFmpeg 4.4.2                    o Postfix 3.7.2
    o GCC 8.4.0 and 11.2.0            o PostgreSQL 14.5
    o GHC 9.2.4                       o Python 2.7.18, 3.9.14 and 3.10.7
    o GNOME 42.4                      o Qt 5.15.6 and 6.3.1
    o Go 1.19.1                       o R 4.2.1
    o JDK 8u342, 11.0.16 and 17.0.4   o Ruby 2.7.6, 3.0.4 and 3.1.2
    o KDE Applications 22.08.1        o Rust 1.63.0
    o KDE Frameworks 5.98.0           o SQLite 3.39.3
    o Krita 5.1.1                     o Shotcut 22.06.23
    o LLVM/Clang 13.0.0               o Sudo 1.9.11.2
    o LibreOffice 7.4.1.2             o Suricata 6.0.6
    o Lua 5.1.5, 5.2.4 and 5.3.6      o Tcl/Tk 8.5.19 and 8.6.12
    o MariaDB 10.9.3                  o TeX Live 2021
    o Mono 6.12.0.182                 o Vim 9.0.0192 and Neovim 0.7.2
    o Mozilla Firefox 105.0.1 and     o Xfce 4.16
      ESR 102.3.0

 - As usual, steady improvements in manual pages and other documentation.

 - The system includes the following major components from outside suppliers:
    o 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)
    o LLVM/Clang 13.0.0 (+ patches)
    o GCC 4.2.1 (+ patches) and 3.3.6 (+ patches)
    o Perl 5.32.1 (+ patches)
    o NSD 4.6.0
    o Unbound 1.16.3
    o Ncurses 5.7
    o Binutils 2.17 (+ patches)
    o Gdb 6.3 (+ patches)
    o Awk September 12, 2022 version
    o Expat 2.4.9

------------------------------------------------------------------------
- SECURITY AND ERRATA --------------------------------------------------

We provide patches for known security threats and other important
issues discovered after each release.  Our continued research into
security means we will find new security problems -- and we always
provide patches as soon as possible.  Therefore, we advise regular
visits to

        https://www.OpenBSD.org/security.html
and
        https://www.OpenBSD.org/errata.html

------------------------------------------------------------------------
- MAILING LISTS AND FAQ ------------------------------------------------

Mailing lists are an important means of communication among users and
developers of OpenBSD.  For information on OpenBSD mailing lists, please
see:

        https://www.OpenBSD.org/mail.html

You are also encouraged to read the Frequently Asked Questions (FAQ) at:

        https://www.OpenBSD.org/faq/

------------------------------------------------------------------------
- DONATIONS ------------------------------------------------------------

The OpenBSD Project is a volunteer-driven software group funded by
donations.  Besides OpenBSD itself, we also develop important software
like OpenSSH, LibreSSL, OpenNTPD, OpenSMTPD, the ubiquitous pf packet
filter, the quality work of our ports development process, and many
others.  This ecosystem is all handled under the same funding umbrella.

We hope our quality software will result in contributions that maintain
our build/development infrastructure, pay our electrical/internet costs,
and allow us to continue operating very productive developer hackathon
events.

All of our developers strongly urge you to donate and support our future
efforts.  Donations to the project are highly appreciated, and are
described in more detail at:

        https://www.OpenBSD.org/donations.html

------------------------------------------------------------------------
- OPENBSD FOUNDATION ---------------------------------------------------

For those unable to make their contributions as straightforward gifts,
the OpenBSD Foundation (https://www.openbsdfoundation.org) is a Canadian
not-for-profit corporation that can accept larger contributions and
issue receipts.  In some situations, their receipt may qualify as a
business expense write-off, so this is certainly a consideration for
some organizations or businesses.

There may also be exposure benefits since the Foundation may be
interested in participating in press releases.  In turn, the Foundation
then uses these contributions to assist OpenBSD's infrastructure needs.
Contact the foundation directors at direct...@openbsdfoundation.org for
more information.

------------------------------------------------------------------------
- HTTPS INSTALLS -------------------------------------------------------

OpenBSD can be easily installed via HTTPS downloads.  Typically you need
a single small piece of boot media (e.g., a USB flash drive) and then
the rest of the files can be installed from a number of locations,
including directly off the Internet.  Follow this simple set of
instructions to ensure that you find all of the documentation you will
need while performing an install via HTTPS.

1) Read either of the following two files for a list of HTTPS mirrors
   which provide OpenBSD, then choose one near you:

        https://www.OpenBSD.org/ftp.html
        https://ftp.openbsd.org/pub/OpenBSD/ftplist

   As of October 20, 2022, the following HTTPS mirror sites have the
   7.2 release:

        https://cdn.openbsd.org/pub/OpenBSD/7.2/            Global
        https://ftp.eu.openbsd.org/pub/OpenBSD/7.2/         Stockholm, Sweden
        https://ftp.hostserver.de/pub/OpenBSD/7.2/          Frankfurt, Germany
        https://ftp.bytemine.net/pub/OpenBSD/7.2/           Oldenburg, Germany
        https://ftp.fr.openbsd.org/pub/OpenBSD/7.2/         Paris, France
        https://mirror.aarnet.edu.au/pub/OpenBSD/7.2/       Brisbane, Australia
        https://ftp.usa.openbsd.org/pub/OpenBSD/7.2/        CO, USA
        https://ftp5.usa.openbsd.org/pub/OpenBSD/7.2/       CA, USA
        https://mirror.esc7.net/pub/OpenBSD/7.2/            TX, USA
        https://openbsd.cs.toronto.edu/pub/OpenBSD/7.2/     Toronto, Canada
        https://cloudflare.cdn.openbsd.org/pub/OpenBSD/7.2/ Global
        https://fastly.cdn.openbsd.org/pub/OpenBSD/7.2/     Global

        The release is also available at the master site:

        https://ftp.openbsd.org/pub/OpenBSD/7.2/            Alberta, Canada

        However it is strongly suggested you use a mirror.

   Other mirror sites may take a day or two to update.

2) Connect to that HTTPS mirror site and go into the directory
   pub/OpenBSD/7.2/ which contains these files and directories.
   This is a list of what you will see:

        ANNOUNCEMENT     armv7/        octeon/             root.mail
        README           hppa/         openbsd-72-base.pub sparc64/
        SHA256           i386/         packages/           src.tar.gz
        SHA256.sig       landisk/      packages-stable/    sys.tar.gz
        alpha/           loongson/     ports.tar.gz        xenocara.tar.gz
        amd64/           luna88k/      powerpc64/
        arm64/           macppc/       riscv64/

   It is quite likely that you will want at LEAST the following
   files which apply to all the architectures OpenBSD supports.

        README          - generic README
        root.mail       - a copy of root's mail at initial login.
                          (This is really worthwhile reading).

3) Read the README file.  It is short, and a quick read will make
   sure you understand what else you need to fetch.

4) Next, go into the directory that applies to your architecture,
   for example, amd64.  This is a list of what you will see:

        BOOTIA32.EFI*   bsd*            floppy72.img    pxeboot*
        BOOTX64.EFI*    bsd.mp*         game72.tgz      xbase72.tgz
        BUILDINFO       bsd.rd*         index.txt       xfont72.tgz
        INSTALL.amd64   cd72.iso        install72.img   xserv72.tgz
        SHA256          cdboot*         install72.iso   xshare72.tgz
        SHA256.sig      cdbr*           man72.tgz
        base72.tgz      comp72.tgz      miniroot72.img

   If you are new to OpenBSD, fetch _at least_ the file INSTALL.amd64
   and install72.iso.  The install72.iso file (roughly 583MB in size)
   is a one-step ISO-format install CD image which contains the various
   *.tgz files so you do not need to fetch them separately.

   If you prefer to use a USB flash drive, fetch install72.img and
   follow the instructions in INSTALL.amd64.

5) If you are an expert, follow the instructions in the file called
   README; otherwise, use the more complete instructions in the
   file called INSTALL.amd64.  INSTALL.amd64 may tell you that you
   need to fetch other files.

6) Just in case, take a peek at:

        https://www.OpenBSD.org/errata.html

   This is the page where we talk about the mistakes we made while
   creating the 7.2 release, or the significant bugs we fixed
   post-release which we think our users should have fixes for.
   Patches and workarounds are clearly described there.

------------------------------------------------------------------------
- X.ORG FOR MOST ARCHITECTURES -----------------------------------------

X.Org has been integrated more closely into the system.  This release
contains X.Org 7.7.  Most of our architectures ship with X.Org, including
amd64, sparc64 and macppc.  During installation, you can install X.Org
quite easily using xenodm(1), our simplified X11 display manager forked
from xdm(1).

------------------------------------------------------------------------
- PACKAGES AND PORTS ---------------------------------------------------

Many third party software applications have been ported to OpenBSD and
can be installed as pre-compiled binary packages on the various OpenBSD
architectures.  Please see https://www.openbsd.org/faq/faq15.html for
more information on working with packages and ports.

Note: a few popular ports, e.g., NSD, Unbound, and several X
applications, come standard with OpenBSD and do not need to be installed
separately.

------------------------------------------------------------------------
- SYSTEM SOURCE CODE ---------------------------------------------------

The source code for all four subsystems can be found in the
pub/OpenBSD/7.2/ directory:

        xenocara.tar.gz     ports.tar.gz   src.tar.gz     sys.tar.gz

The README (https://ftp.OpenBSD.org/pub/OpenBSD/7.2/README) file
explains how to deal with these source files.

------------------------------------------------------------------------
- THANKS ---------------------------------------------------------------

Ports tree and package building by Jasper Lievisse Adriaanse,
Jeremie Courreges-Anglas, Visa Hankala, Stuart Henderson, Peter Hessler,
George Koehler, Kurt Mosiejczuk, and Christian Weisgerber.  Base and X
system builds by Kenji Aoyama, Theo de Raadt, and Miod Vallat.  Release
art contributed by Jon Chad.

We would like to thank all of the people who sent in bug reports, bug
fixes, donation cheques, and hardware that we use.  We would also like
to thank those who bought our previous CD sets.  Those who did not
support us financially have still helped us with our goal of improving
the quality of the software.

Our developers are:

    Aaron Bieber, Adam Wolk, Alexander Bluhm, Alexander Hall,
    Alexandr Nedvedicky, Alexandr Shadchin, Alexandre Ratchov,
    Andrew Fresh, Anil Madhavapeddy, Anthony J. Bentley,
    Antoine Jacoutot, Anton Lindqvist, Asou Masato, Ayaka Koshibe,
    Benoit Lecocq, Bjorn Ketelaars, Bob Beck, Brandon Mercer,
    Brent Cook, Brian Callahan, Bryan Steele, Can Erkin Acar,
    Caspar Schutijser, Charlene Wendling, Charles Longeau,
    Chris Cappuccio, Christian Weisgerber, Christopher Zimmermann,
    Claudio Jeker, Dale Rahn, Damien Miller, Daniel Dickman,
    Daniel Jakots, Darren Tucker, Dave Voutila, David Coppa,
    David Gwynne, David Hill, Denis Fondras, Edd Barrett,
    Elias M. Mariani, Eric Faurot, Florian Obser, Florian Riehm,
    Frederic Cambus, George Koehler, Gerhard Roth, Giannis Tsaraias,
    Gilles Chehade, Giovanni Bechis, Gleydson Soares,
    Gonzalo L. Rodriguez, Greg Steuck, Helg Bredow, Henning Brauer,
    Ian Darwin, Ian Sutton, Igor Sobrado, Ingo Feinerer, Ingo Schwarze,
    Inoguchi Kinichiro, James Hastings, James Turner, Jan Klemkow,
    Jason McIntyre, Jasper Lievisse Adriaanse, Jeremie Courreges-Anglas,
    Jeremy Evans, Job Snijders, Joel Sing, Joerg Jung, Jonathan Armani,
    Jonathan Gray, Jonathan Matthew, Jordan Hargrave, Joris Vink,
    Joshua Stein, Juan Francisco Cantero Hurtado, Kazuya Goda,
    Kenji Aoyama, Kenneth R Westerback, Kent R. Spillner, Kevin Lo,
    Kirill Bychkov, Klemens Nanni, Kurt Miller, Kurt Mosiejczuk,
    Landry Breuil, Lawrence Teo, Lucas Raab, Marc Espie, Marcus Glocker,
    Mark Kettenis, Mark Lumsden, Markus Friedl, Martijn van Duren,
    Martin Natano, Martin Pieuchot, Martin Reindl, Martynas Venckus,
    Matthew Dempsky, Matthias Kilian, Matthieu Herrb, Michael Mikonos,
    Mike Belopuhov, Mike Larkin, Miod Vallat, Moritz Buhl, Nam Nguyen,
    Nayden Markatchev, Nicholas Marriott, Nigel Taylor, Okan Demirmen,
    Omar Polo, Ori Bernstein, Otto Moerbeek, Paco Esteban,
    Pamela Mosiejczuk, Pascal Stumpf, Patrick Wildt, Paul Irofti,
    Pavel Korovin, Peter Hessler, Philip Guenther,
    Pierre-Emmanuel Andre, Pratik Vyas, Rafael Sadowski,
    Rafael Zalamena, Raphael Graf, Remi Locherer, Remi Pointel,
    Renato Westphal, Ricardo Mestre, Richard Procter, Rob Pierce,
    Robert Nagy, Sasano Takayoshi, Scott Soule Cheloha,
    Sebastian Benoit, Sebastian Reitenbach, Sebastien Marie,
    Solene Rapenne, Stefan Fritsch, Stefan Hagen, Stefan Kempf,
    Stefan Sperling, Steven Mestdagh, Stuart Cassoff, Stuart Henderson,
    Sunil Nimmagadda, T.J. Townsend, Ted Unangst, Theo Buehler,
    Theo de Raadt, Thomas Frohwein, Tim van der Molen, Tobias Heider,
    Tobias Stoeckmann, Todd C. Miller, Todd Mortimer, Tom Cosgrove,
    Tracey Emery, Ulf Brosziewski, Uwe Stuehler, Vadim Zhukov,
    Vincent Gross, Visa Hankala, Vitaliy Makkoveev, Yasuoka Masahiko,
    Yojiro Uo

Reply via email to