git: b33c18e1d3 - main - 14.0 relnotes: more additions and cleanups

From: Mike Karels <karels_at_FreeBSD.org>
Date: Thu, 02 Nov 2023 12:51:21 UTC
The branch main has been updated by karels:

URL: https://cgit.FreeBSD.org/doc/commit/?id=b33c18e1d3f60b2311f5bfaae8677639f80d1ced

commit b33c18e1d3f60b2311f5bfaae8677639f80d1ced
Author:     Mike Karels <karels@FreeBSD.org>
AuthorDate: 2023-11-02 12:49:30 +0000
Commit:     Mike Karels <karels@FreeBSD.org>
CommitDate: 2023-11-02 12:49:30 +0000

    14.0 relnotes: more additions and cleanups
    
    - Mention base64(1), bc/dc, tcpdump/libpcap, ncurses/terminfo,
      timerfd, kvm_clock.
    - Add example for sleep(1).
    - Catch up with Relnotes entries: freebsd-update file removal.
    - Another version upgrade for OpenSSL.
    - Add Azure entry in Cloud section
    - Include kernel crypto additions.
    - Note that kinst was ported to arm64 and riscv.
    - Move vnode statistics item to Storage section
    - Add UFS section with info about hardening.
    - Add Other Storage section with msdosfs, synthetic file systems,
      and tarfs.
    - Add placeholder for netlink.
    - Address earlier comments on wording and markup from
      grahamperrin@gmail.com.
    
    Reviewed by:    carlavilla
    Differential Revision:  https://reviews.freebsd.org/D42431
---
 website/content/en/releases/14.0R/relnotes.adoc | 94 +++++++++++++++++++++----
 1 file changed, 82 insertions(+), 12 deletions(-)

diff --git a/website/content/en/releases/14.0R/relnotes.adoc b/website/content/en/releases/14.0R/relnotes.adoc
index 4332e5bc4f..f838d23ca7 100644
--- a/website/content/en/releases/14.0R/relnotes.adoc
+++ b/website/content/en/releases/14.0R/relnotes.adoc
@@ -78,10 +78,10 @@ Otherwise, the partition may be mounted manually, using the partition listed in
 See man:loader.efi[8] for another example.
 
 The value in the `File` field in the `efibootmgr -v` output, `\EFI\freebsd\loader.efi` in this case, is the MS-DOS name for the boot loader in use on the ESP.
-If the mount point is `/boot/efi`, this file will translate to `/boot/efi/efi/freebsd/loader.efi`.
+If the mount point is [.filename]#/boot/efi#, this file will translate to `/boot/efi/efi/freebsd/loader.efi`.
 (Case does not matter on MS-DOSFS file sytems; FreeBSD uses lower case.)
 Another common value for `File` would be `\EFI\boot\bootXXX.efi`, where `XXX` is `x64` for amd64, `aa64` for aarch64, or `riscv64` for riscv64; this is the default bootstrap if none is configured.
-Both the configured and default boot loaders should be updated by copying from [.filename]#/boot/loader.efi# to the correct path in `/boot/efi`.
+Both the configured and default boot loaders should be updated by copying from [.filename]#/boot/loader.efi# to the correct path in [.filename]#/boot/efi#.
 
 [IMPORTANT]
 ====
@@ -175,6 +175,9 @@ gitref:2651609fcbd7[repository=src]
 [[userland-programs]]
 === Userland Application Changes
 
+The man:base64[1] utility has been added.
+gitref:540a99289bb1[repository=src]
+
 The man:cpuset[8] utility has been moved from [.filename]#/usr/bin# to [.filename]#/bin# so that it is always available during startup processing.
 [.filename]#/usr/bin/cpuset# is now a symbolic link.
 gitref:f05948d4e98d[repository=src]
@@ -185,6 +188,9 @@ gitref:31edf56b1571[repository=src]
 The deprecated man:fmtree[8] utility has been removed.
 gitref:e4d63c5d5ff8[repository=src]
 
+man:freebsd-update[8] now documents that files under [.filename]#/var/db/freebsd-update# may be deleted if an upgrade is not in progress and rollback will not be required.
+gitref:80b003e81684[repository=src] (Sponsored by The FreeBSD Foundation)
+
 A new man:fwget[8] utility inspects the system for peripherals that need firmware, and installs the appropriate packages for them.
 For now, only the PCI subsystem is supported, and only video firmware for Intel and AMD GPUs is known.
 gitref:d198b8774d2c[repository=src] gitref:d198b8774d2c[repository=src] (Sponsored by Beckhoff Automation GmbH & Co. KG)
@@ -220,7 +226,7 @@ The man:pw[8] and man:bsdinstall[8] programs now create home directories for use
 The default symbolic link for [.filename]#/home#, referencing [.filename]#/usr/home#, is no longer created.
 gitref:bbb2d2ce4220[repository=src]
 
-The man:sleep[1] utility now accepts units other than seconds, and accepts multiple delay values that are summed.
+The man:sleep[1] utility now accepts units other than seconds, and accepts multiple delay values that are summed (for example, `1h 30m`).
 gitref:34978f7edd15[repository=src] gitref:be038c3afcae[repository=src]
 
 The man:sockstat[1] utility is now run in a sandbox with capsicum.
@@ -260,6 +266,8 @@ All the FreeBSD patches but one have now been either up-streamed or discarded.
 Notable changes include: locale is no longer used for ranges; better compatibility with `gawk` and `mawk`.
 gitref:f39dd6a97844[repository=src] gitref:23f24377b1a9[repository=src] gitref:628bd30ab5a4[repository=src]
 
+The man:bc[1] and man:dc[1] commands have been updated to version 6.6.0, which fixes a problem with line editing and complex scripts with multiple read() commands, and adds some functions to bc's (non-standard) extended math library.
+
 `libbsdxml` (`expat`, man:libbsdxml[3]) has been upgraded to version 2.4.7.
 gitref:7ed8e142a00d[repository=src]
 
@@ -292,10 +300,16 @@ gitref:348bea10b6f2[repository=src] (Sponsored by The FreeBSD Foundation)
 The `VersionAddendum` option has been removed from the man:ssh[1] client.
 gitref:bffe60ead024[repository=src] (Sponsored by The FreeBSD Foundation)
 
-OpenSSL has been upgraded to version 3.0.11.
+OpenSSL has been upgraded to version 3.0.12.
 This is a major upgrade from version 1.1.1, which has reached its end of life.
 Many components of the base system use a backward-compatible API, but will be migrated later.
-gitref:aa7957345732[repository=src] gitref:b077aed33b7b[repository=src] (Sponsored by The FreeBSD Foundation)
+gitref:aa7957345732[repository=src] gitref:930cec16d9ee[repository=src] gitref:b077aed33b7b[repository=src] (Sponsored by The FreeBSD Foundation)
+
+`tcpdump` has been upgraded to version 4.99.4.
+gitref:ee67461e5682[repository=src] gitref:171a7bbfc048[repository=src] gitref:1ad8d2ee1f7d[repository=src] (Sponsored by The FreeBSD Foundation)
+
+`libpcap` has been upgraded to version 1.10.4.
+gitref:6f9cba8f8b5e[repository=src] gitref:dd744a896be3[repository=src] (Sponsored by The FreeBSD Foundation)
 
 `xz` has been upgraded to version 5.4.3.
 
@@ -319,6 +333,12 @@ Linker scripts should make this transparent for consumers.
 man:pkg-config[8] files are now installed, to ease ports detecting the `ncurses` setup from base.
 gitref:396851c20aeb[repository=src]
 
+The man:ncurses[3X] library is now able to use man:terminfo[5] as well as man:termcap[5], and uses terminfo preferentially.
+gitref:61f66a1f4403[repository=src]
+
+The default search path for terminfo databases in man:ncurses[3X] now includes [.filename]#/usr/local/share/terminfo#, facilitating the use of a database from ports or packages.
+gitref:b75fb12b6827[repository=src]
+
 The prototype of man:qsort_r[3] has been modified to match POSIX, which adopted the glibc-based interface.
 gitref:af3c78886fd8[repository=src]
 
@@ -338,6 +358,11 @@ FreeBSD now provides experimental cloud-init EC2 AMIs on AWS.
 See the package:net/cloud-init[] port for information.
 (Sponsored by https://www.patreon.com/cperciva[])
 
+FreeBSD now provides arm64 as well as amd64 images for Azure.
+Both UFS and ZFS images are available.
+Gen2 VMs are now supported.
+(Sponsored by The FreeBSD Foundation) (Sponsored by Microsoft)
+
 [[kernel]]
 == Kernel
 
@@ -364,11 +389,16 @@ gitref:84f9f2c5cf78[repository=src] (Sponsored by The FreeBSD Foundation)
 
 man:boottrace[4] is a new kernel-userspace interface for capturing trace events during system boot and shutdown.
 Event annotations are present in the boot and shutdown paths in the kernel; system utilities (man:init[8], man:shutdown[8], man:reboot[8]); and man:rc[8] scripts (via man:boottrace[8]).
-`boottrace` focuses on ease of use and is aimed primarily at system administrators.
+This facility focuses on ease of use and is aimed primarily at system administrators.
 It is available in the default `GENERIC` kernel and can be enabled by toggling a man:sysctl[8] variable.
-See man:boottrace[4] for more details.
 gitref:da5b7e90e740[repository=src] gitref:5a8fceb3bd9f[repository=src] gitref:7b0a665d72c0[repository=src] gitref:13ec1e3155c7[repository=src] gitref:318d0db5fe8a[repository=src] gitref:1ae2c59bcf21[repository=src] (Sponsored by NetApp, Inc.) (Sponsored by Klara, Inc)
 
+Support has been added to the kernel crypto for the XChaCha20-Poly1035 AEAD cipher.
+gitref:8f35841f1f35[repository=src] (Sponsored by The FreeBSD Foundation)
+
+An API has been added to the kernel crypto for curve25519.
+gitref:0c6274a819ff[repository=src] (Sponsored by The FreeBSD Foundation)
+
 FreeBSD can now run inside the Firecracker VMM via the amd64 `FIRECRACKER` kernel configuration.
 gitref:469ad8603127[repository=src] (Sponsored by https://www.patreon.com/cperciva[])
 
@@ -380,9 +410,11 @@ gitref:84ec7df0d796[repository=src] (Sponsored by https://www.patreon.com/cperci
 
 A new DTrace provider, `kinst`, has been added; see man:dtrace_kinst[4].
 The provider allows kernel instructions to be traced, similar to the FBT (function boundary tracing) provider except that all instructions may be probed instead of just logical entry and return instructions.
-The provider is currently amd64-only.
 gitref:f0bc4ed144fc[repository=src] (Sponsored by Google, Inc. via GSoC 2022)
 
+`kinst` was ported to arm64 and riscv.
+gitref:07864a8a2466[repository=src] gitref:2d7bb03adb43[repository=src] (Sponsored by The FreeBSD Foundation)
+
 LLVM's MemorySanitizer can now be used in amd64 kernels.
 See the man:kmsan[9] manual page for more information.
 gitref:a422084abbda[repository=src] (Sponsored by The FreeBSD Foundation)
@@ -394,8 +426,10 @@ gitref:38da497a4dfc[repository=src] (Sponsored by The FreeBSD Foundation)
 Support for asymmetric cryptographic operations has been removed from the kernel open cryptographic framework (OCF), as they are not used by modern OpenSSL versions.
 gitref:76681661be28[repository=src]
 
-In the course of debugging and resolving a problem with vnode recycling in the generic file system code, sysctls for vnode-related statistics have been grouped under `vfs.vnode` for greater visibility.
-gitref:d3e647891243[repository=src]
+A native man:timerfd[2] facility has been added to facilitate porting Linux programs that use timerfd.
+Previously, timerfd was only available under Linux emulation.
+For programs written only for FreeBSD, the man:kqueue[2] EVFILT_TIMER filter is preferred for establishing arbitrary timers.
+gitref:af93fea71038[repository=src]
 
 [[drivers]]
 == Devices and Drivers
@@ -442,6 +476,9 @@ The man:iwlwifi[4] driver for Intel wireless interfaces has been updated to the
 
 The man:rtw88[4] driver for Realtek wireless PCI interfaces has been updated.
 
+A kvm_clock driver has been added for the KVM paravirtualized clock.
+gitref:6c69c6bb4c7f[repository=src] (Sponsored by Juniper Networks, Inc.) (Sponsored by Klara, Inc.)
+
 There have been stability fixes and enhancements to the KPI to support Linux device drivers, along with the net80211 layer for wireless drivers.
 (Sponsored by The FreeBSD Foundation)
 
@@ -505,7 +542,10 @@ gitref:d575e81fbcfa[repository=src]
 
 A new man:gunion[8] utility tracks changes to a read-only disk on a writable disk.
 This can be useful for making tentative changes to the disk, such as file system repairs or software upgrades, and then either committing or reverting them.
-gitref:c7996ddf8000[repository=src]
+gitref:c7996ddf8000[repository=src] (Sponsored by Netflix)
+
+In the course of debugging and resolving a problem with vnode recycling in the generic file system code, sysctls for vnode-related statistics have been grouped under `vfs.vnode` for greater visibility.
+gitref:d3e647891243[repository=src]
 
 [[storage-nfs]]
 === NFS Changes
@@ -544,6 +584,18 @@ That facility is used by the Linux NFSv4.1/4.2 client for Kerberized mounts.
 It was handled by a fallback in the past, but is now supported directly.
 gitref:330aa8acdec7[repository=src] gitref:ff2f1f691cdb[repository=src]
 
+[[storage-ufs]]
+=== UFS Changes
+
+Superblocks, cylinder group maps, and inodes have had check hashes added to detect corruption.
+Far more extensive checks are made of the superblock (120) and cylinder groups (20) than just the magic number check done previously.
+(Sponsored by The FreeBSD Foundation)
+
+The man:libufs[3] library has been updated to include these checks so that they are now done by all the filesystem utilities.
+The checks are implemented in one kernel file that is also included by libufs.
+Another change to libufs is that the code to find alternate superblocks has been moved from man:fsck_ffs[8] into the shared file so it is now available in the kernel loader as well as all the filesystem utilities.
+(Sponsored by The FreeBSD Foundation)
+
 [[storage-zfs]]
 === ZFS Changes
 
@@ -567,6 +619,21 @@ Performance improvements include:
 ZFS has been enabled on 32-bit `powerpc`/`powerpcspe`.
 gitref:63715498ac6b[repository=src]
 
+[[storage-other]]
+=== Other Storage Changes
+
+The man:msdosfs[5] file system now records available directory entries in the root directory of FAT12 and FAT16 file systems (e.g. EFI boot partitions) and reports them as inodes.
+gitref:c33db74b5323[repository=src]
+
+The man:msdosfs[5] file system now correctly calculates the available and used blocks of FAT12 and FAT16 file systems, and no longer rejects mounting file systems created using valid but uncommon parameters.
+gitref:0728695c63e[repository=src]
+
+The synthetic file systems (man:devfs[5], man:procfs[5], etc.) now report 0 blocks used so that they are not reported as 100% full.
+gitref:88a795e80c03f[repository=src]
+
+The man:tarfs[5] file system has been added, which is backed by POSIX tar archives optionally compressed with man:zstd[1].
+gitref:69d94f4c7608[repository=src] (Sponsored by Juniper Networks, Inc.) (Sponsored by Klara, Inc.)
+
 [[boot]]
 == Boot Changes
 
@@ -599,6 +666,9 @@ gitref:137818006de5[repository=src]
 Layer 3 filtering on man:if_bridge[4] will do surprising things which aren't fail-safe, so `net.link.bridge.pfil_member` and `net.link.bridge.pfil_bridge` now default to zero.
 gitref:22893e584032[repository=src]
 
+man:netlink[4] is a user/kernel communication protocol used primarily for network configuration.
+It has been expanded and improved, and a number of network configuration utilities have been converted to use netlink.
+
 The deprecated `NgATM` (netgraph ATM support) and remaining ATM support have been removed.
 
 The man:pf[4] packet filter now supports scrubbing with OpenBSD syntax and behavior.
@@ -651,7 +721,7 @@ This section covers general hardware support for physical machines, hypervisors,
 [[hardware-arch]]
 === Hardware Architecture Support
 
-The project no longer provides armv6 artifacts with 14.0.
+The project no longer provides armv6 artifacts with {releaseCurrent}.
 
 [[hardware-virtualization]]
 === Virtualization Support