diff --git a/website/content/en/releases/13.1R/relnotes.adoc b/website/content/en/releases/13.1R/relnotes.adoc index ef5dc916ee..6cd545a17c 100644 --- a/website/content/en/releases/13.1R/relnotes.adoc +++ b/website/content/en/releases/13.1R/relnotes.adoc @@ -1,198 +1,262 @@ --- title: "FreeBSD 13.1-RELEASE Release Notes" sidenav: download --- :releaseCurrent: 13.1-RELEASE :releaseBranch: 13-STABLE :releasePrev: 13.0-RELEASE :releaseNext: 13.2-RELEASE :releaseType: release include::shared/en/urls.adoc[] = FreeBSD {releaseCurrent} Release Notes :doctype: article :toc: macro :toclevels: 1 :icons: font == Abstract [.abstract-title] The release notes for FreeBSD {releaseCurrent} contain a summary of the changes made to the FreeBSD base system on the {releaseBranch} development line. This document lists applicable security advisories that were issued since the last release, as well as significant changes to the FreeBSD kernel and userland. Some brief remarks on upgrading are also presented. [[intro]] == Introduction This document contains the release notes for FreeBSD {releaseCurrent}. It describes recently added, changed, or deleted features of FreeBSD. It also provides some notes on upgrading from previous versions of FreeBSD. The {releaseType} distribution to which these release notes apply represents the latest point along the {releaseBranch} development branch since {releaseBranch} was created. Information regarding pre-built, binary {releaseType} distributions along this branch can be found at https://www.FreeBSD.org/releases/[https://www.FreeBSD.org/releases/]. The {releaseType} distribution to which these release notes apply represents a point along the {releaseBranch} development branch between {releasePrev} and the future {releaseNext}. Information regarding pre-built, binary {releaseType} distributions along this branch can be found at https://www.FreeBSD.org/releases/[https://www.FreeBSD.org/releases/]. This distribution of FreeBSD {releaseCurrent} is a {releaseType} distribution. It can be found at https://www.FreeBSD.org/releases/[https://www.FreeBSD.org/releases/] or any of its mirrors. More information on obtaining this (or other) {releaseType} distributions of FreeBSD can be found in the link:{handbook}/mirrors[Obtaining FreeBSD appendix] to the link:{handbook}/[FreeBSD Handbook]. All users are encouraged to consult the release errata before installing FreeBSD. The errata document is updated with "late-breaking" information discovered late in the release cycle or after the release. Typically, it contains information on known bugs, security advisories, and corrections to documentation. An up-to-date copy of the errata for FreeBSD {releaseCurrent} can be found on the FreeBSD Web site. This document describes the most user-visible new or changed features in FreeBSD since {releasePrev}. In general, changes described here are unique to the {releaseBranch} branch unless specifically marked as MERGED features. Typical release note items document recent security advisories issued after {releasePrev}, new drivers or hardware support, new commands or options, major bug fixes, or contributed software upgrades. They may also list changes to major ports/packages or release engineering practices. Clearly the release notes cannot list every single change made to FreeBSD between releases; this document focuses primarily on security advisories, user-visible changes, and major architectural improvements. [[upgrade]] == Upgrading from Previous Releases of FreeBSD Binary upgrades between RELEASE versions (and snapshots of the various security branches) are supported using the man:freebsd-update[8] utility. The binary upgrade procedure will update unmodified userland utilities, as well as unmodified GENERIC kernels distributed as a part of an official FreeBSD release. The man:freebsd-update[8] utility requires that the host being upgraded have Internet connectivity. Source-based upgrades (those based on recompiling the FreeBSD base system from source code) from previous versions are supported, according to the instructions in [.filename]#/usr/src/UPDATING#. Users of all powerpc architectures, after successful kernel and world installation, will need to run manually "kldxref /boot/kernel". [IMPORTANT] ==== Upgrading FreeBSD should only be attempted after backing up _all_ data and configuration files. ==== //// XXX: gjb will fill this in just before the release is final [[security-errata]] == Security and Errata This section lists the various Security Advisories and Errata Notices since {releasePrev}. [[security]] === Security Advisories [width="100%",cols="40%,30%,30%",options="header",] |=== |Advisory |Date |Topic |link:https://www.freebsd.org/security/advisories/FreeBSD-SA-20:31.icmp6.asc[FreeBSD-SA-20:31.icmp6] |1 December 2020 |Use-after-free in error message handling |=== [[errata]] === Errata Notices [width="100%",cols="40%,30%,30%",options="header",] |=== |Errata |Date |Topic |link:https://www.freebsd.org/security/advisories/FreeBSD-EN-20:19.audit.asc[FreeBSD-EN-20:19.audit] |1 December 2020 |execve/fexecve system call auditing |=== //// [[userland]] == Userland This section covers changes and additions to userland applications, contributed software, and system utilities. [[userland-config]] === Userland Configuration Changes // SAMPLE ENTRY: // A new man:rc.conf[5] variable has been added, `linux_mounts_enable`, which controls if Linux(R)-specific filesystems are mounted in [.filename]#/compat/linux# if `linux_enable` is set to `YES`. {{< revision "364883" >}} (Sponsored by The FreeBSD Foundation) [[userland-programs]] === Userland Application Changes Add a new `zfskeys` man:rc[8] service script, which allows for automatic decryption of ZFS datasets encrypted with ZFS native encryption during boot. See the man:rc.conf[5] manual page for more information. gitref:33ff39796ffe[repository=src], gitref:8719e8a951b7[repository=src] (Sponsored by Modirum and Klara Inc.) +The NVMe emulation in man:bhyve[8] has been upgraded to version 1.4 of the NVMe specification. gitref:b7a2cf0d9102[repository=src] - gitref:eae02d959363[repository=src] + [[userland-contrib]] === Contributed Software Enable building LLDB on all powerpc architectures. gitref:cb1bee9bd34[repository=src] +One True Awk has been updated to the latest from upstream +(20210215). All the FreeBSD patches but one have now been +either upstreamed or discarded. Notable changes include: + +* Locale is no longer used for ranges +* Various bugs fixed +* Better compatibility with `gawk` and `mawk` + +The one remaining FreeBSD change, likely to be removed in FreeBSD 14, is that +we still allow hex numbers, prefixed with `0x`, to be parsed and +interpreted as hex numbers, while all other awks (now including One +True Awk) interpret them as `0`, in line with awk's historic behavior. + [[userland-libraries]] === Runtime Libraries and API Add assembly optimized code for OpenSSL on powerpc, powerpc64 and powerpc64le. gitref:ce35a3bc852[repository=src] Enable building ASAN and UBSAN libraries on riscv64 and riscv64sf. gitref:8c56b338da7[repository=src] Enable building OFED libraries on riscv64 and riscv64sf. gitref:2b978245733[repository=src] Enable building OPENMP libraries on riscv64 and riscv64sf. gitref:aaf56e35569[repository=src] [[kernel]] == Kernel This section covers changes to kernel configurations, system tuning, and system control parameters that are not otherwise categorized. [[kernel-general]] === General Kernel Changes Fix output corruption on serial console on powerpc64. gitref:dca829138ca[repository=src] Change CAS to support Radix MMU. gitref:cc8e726c85b[repository=src] Fix running FreeBSD with HPT superpages enabled on QEMU with TCG on powerpc64(le). gitref:f05174ed354[repository=src] Add superpages support to pmap_mincore on powerpc64(le). gitref:32b50b8520d[repository=src] [[drivers]] == Devices and Drivers This section covers changes and additions to devices and device drivers since {releasePrev}. [[drivers-device]] === Device Drivers Fix for VGA / HDMI console with AST2500 during boot on powerpc64(le). gitref:c41d129485e[repository=src] Fix PCI common read/write functions on big endian targets in man:virtio[4]. gitref:7e583075a41[repository=src], gitref:8d589845881[repository=src] Add big-endian support to man:mpr[4]. gitref:7d45bf699dc[repository=src], gitref:2954aedb8e5[repository=src], gitref:c80a1c1072d[repository=src] Reduce max I/O size to avoid DMA issues in man:aacraid[4]. gitref:572e3575dba[repository=src] +[[drivers-platform]] +=== Supported Platforms + +Support has been added for the HiFive Unmatched RISC-V board. + [[storage]] == Storage This section covers changes and additions to file systems and other storage subsystems, both local and networked. [[storage-general]] === General Storage +[[storage-nfs]] +=== NFS Changes + +Two new daemons, man:rpc.tlsclntd[8] and man:rpc.tlsservd[8], are now +built by default on amd64 and arm64. +They provide support for NFS-over-TLS as described in the Internet Draft +entitled "Towards Remote Procedure Call Encryption By Default". +These daemons are built when WITH_OPENSSL_KTLS is specified. +They use KTLS to encrypt/decrypt all NFS RPC message traffic, and provide +optional verification of machine identity via X.509 certificates. +gitref:2c76eebca71b[repository=src] gitref:59f6f5e23c1a[repository=src] + +The default minor version used for an NFSv4 mount has been changed +to the highest minor version supported by the NFSv4 server. +This default can be overridden by using the `minorversion` +mount option. +gitref:8a04edfdcbd2[repository=src] + +A new NFSv4.1/4.2 mount option `nconnect` has been added that can +be used to specify the number of TCP connections that +will be used for the mount, up to a maximum of 16. +The first (default) TCP connection will be used for +all RPCs that consist of small RPC messages. +The RPCs that can consist of large RPC messages +(Read/Readdir/ReaddirPlus/Write) will be sent on the +additional TCP connections in a round-robin fashion. +If either the NFS client or NFS server have multiple +network interfaces aggregated together, or a network +interface that uses multiple queues, this can increase +NFS performance for the mount. +gitref:9ec7dbf46b0a[repository=src] + +A sysctl called `vfs.nfsd.srvmaxio` has been added that can be used to +increase the NFS server's maximum I/O size from 128Kbytes +to any power of 2 up to 1Mbyte. It can only be set when +the nfsd threads are not running, and will normally require +an increase in `kern.ipc.maxsockbuf` to at least the value +recommended by the console log message generated when +setting `vfs.nfsd.srvmaxio` is first attempted. +gitref:9fb6e613373c[repository=src] + [[boot]] == Boot Loader Changes This section covers the boot loader, boot menu, and other boot-related changes. [[boot-loader]] === Boot Loader Changes Fix boot1 and loader on powerpc64le. gitref:8a62b07bce7[repository=src] [[network]] == Networking This section describes changes that affect networking in FreeBSD. [[network-general]] === General Network The handling of the lowest address on an IPv4 (sub)net (host 0) has been changed so that packets are not sent as a broadcast unless this address has been set as the broadcast address. This makes the lowest address usable for a host. The old behavior can be restored with the `net.inet.ip.broadcast_lowest` sysctl. See https://datatracker.ietf.org/doc/draft-schoen-intarea-unicast-lowest-address/[https://datatracker.ietf.org/doc/draft-schoen-intarea-unicast-lowest-address/] for background information. gitref:3ee882bf21af[repository=src] +WiFi 6 support has been added. gitref:0a6760a1de32[repository=src] gitref:3f3676a71266[repository=src] gitref:580c04df4db6[repository=src] + + [[future-releases]] == General Notes Regarding Future FreeBSD Releases [[future-releases-cputype]] === Default `CPUTYPE` Change Starting with FreeBSD-13.0, the default `CPUTYPE` for the i386 architecture will change from `486` to `686`. This means that, by default, binaries produced will require a 686-class CPU, including but not limited to binaries provided by the FreeBSD Release Engineering team. FreeBSD 13.0 will continue to support older CPUs, however users needing this functionality will need to build their own releases for official support. As the primary use for i486 and i586 CPUs is generally in the embedded market, the general end-user impact is expected to be minimal, as new hardware with these CPU types has long faded, and much of the deployed base of such systems is nearing retirement age, statistically. There were several factors taken into account for this change. For example, i486 does not have 64-bit atomics, and while they can be emulated in the kernel, they cannot be emulated in the userland. Additionally, the 32-bit amd64 libraries have been i686 since their inception. As the majority of 32-bit testing is done by developers using the lib32 libraries on 64-bit hardware with the `COMPAT_FREEBSD32` option in the kernel, this change ensures better coverage and user experience. This also aligns with what the majority of Linux(R) distributions have been doing for quite some time. This is expected to be the final bump of the default `CPUTYPE` in i386. [IMPORTANT] ==== This change does not affect the FreeBSD 12.x series of releases. ====