xref: /freebsd/RELNOTES (revision 22cf89c938886d14f5796fc49f9f020c23ea8eaf)
1Release notes for FreeBSD 14.0.
2
3This file describes new user-visible features, changes and updates relevant to
4users of binary FreeBSD releases.  Each entry should describe the change in no
5more than several sentences and should reference manual pages where an
6interested user can find more information.  Entries should wrap after 80
7columns.  Each entry should begin with one or more commit IDs on one line,
8specified as a comma separated list and/or range, followed by a colon and a
9newline.  Entries should be separated by a newline.
10
11Changes to this file should not be MFCed.
12
1341582f28ddf7:
14	FreeBSD 15.0 will not include support for 32-bit platforms.
15	However, 64-bit systems will still be able to run older 32-bit
16	binaries.
17
18	Support for executing 32-bit binaries on 64-bit platforms via
19	COMPAT_FREEBSD32 will remain supported for at least the
20	stable/15 and stable/16 branches.
21
22	Support for compiling individual 32-bit applications via
23	`cc -m32` will also be supported for at least the stable/15
24	branch which includes suitable headers in /usr/include and
25	libraries in /usr/lib32.
26
27	Support for 32-bit platforms in ports for 15.0 and later
28	releases is also deprecated, and these future releases may not
29	include binary packages for 32-bit platforms or support for
30	building 32-bit applications from ports.
31
32	stable/14 and earlier branches will retain existing 32-bit
33	kernel and world support.  Ports will retain existing support
34	for building ports and packages for 32-bit systems on stable/14
35	and earlier branches as long as those branches are supported
36	by the ports system.  However, all 32-bit platforms are Tier-2
37	or Tier-3 and support for individual ports should be expected
38	to degrade as upstreams deprecate 32-bit platforms.
39
40	With the current support schedule, stable/14 will be EOLed 5
41	years after the release of 14.0.  The EOL of stable/14 would
42	mark the end of support for 32-bit platforms including source
43	releases, pre-built packages, and support for building
44	applications from ports.  Given an estimated release date of
45	October 2023 for 14.0, support for 32-bit platforms would end
46	in October 2028.
47
48	The project may choose to alter this approach when 15.0 is
49	released by extending some level of 32-bit support for one or
50	more platforms in 15.0 or later.  Users should use the
51	stable/14 branch to migrate off of 32-bit platforms.
52
533cb2f5f369ec:
54	The lua-flavored loader(8) will now interpret .lua files that appear in
55	loader_conf_files as lua, and execute them in a sandbox.  Existing
56	loader environment variables are available as globals in the sandbox,
57	and any global variable set, if not a table value, will be reflected in
58	the loader environment upon successful execution of the configuration
59	file.  Environment variables with names that aren't valid lua names may
60	be accessed as indices of _ENV; e.g., _ENV['net.fibs'].
61
62bdc81eeda05d:
63	nda is now the default nvme device on all platforms. While nda creates
64	nvd links by default so fstab, etc continues to work, configuration
65	should be updated to the new nda devices.
66
67	To restore the old behavior, add hw.nvme.use_nvd=1 to loader.conf or
68	`options NVME_USE_NVD=1` to the kernel config.  To disable the nvd
69	compatibility aliases, add kern.cam.nda.nvd_compat=0 to loader.conf.
70
71bbb2d2ce4220:
72	Change pw (hence bsdinstall) not to move /home to /usr/home.
73	Previously, when creating the path to home directories, pw
74	would move any path in the root directory under /usr, creating
75	a symlink in root.  In particular, the default /home would become
76	/usr/home.  Now /home is at the top level by default.  /usr/home
77	can be used explicitly.
78
793416e102c4e9:
80	Remove TI code from armv7 GENERIC kernel.
81	This code doesn't cope with newer DTS and hasn't in a long time so
82	support for TI armv7 platform (like BeagleBone and Pandaboard) is now
83	removed from GENERIC.
84
85d198b8774d2c:
86	Add a new "fwget" utility.
87	The goal of this utility is to inspect the system for peripherals
88	that needs firmware and install the appropriate packages for them.
89	For now only pci subsystem is supported and only firmwares for Intel
90	and AMD GPUs are known.
91
92896516e54a8c:
93	Add a new "syskrb5" mount option for Kerberized NFSv4.1/4.2 mounts.
94	Without this patch, a Kerberized NFSv4.1/4.2 mount must provide
95	a Kerberos credential for the client at mount time.
96	This patch uses a feature of NFSv4.1/4.2 called SP4_NONE, which
97	allows the state maintenance operations to be performed by any
98	authentication mechanism, so that these operations may be done via
99	AUTH_SYS instead of RPCSEC_GSS (KerberosV).  As such, no Kerberos
100	credential is required at mount time.
101	See mount_nfs(8).
102
103330aa8acdec7,ff2f1f691cdb:
104	Adds support for the SP4_MACH_CRED case for the
105	NFSv4.1/4.2 ExchangeID operation since the Linux
106	NFSv4.1/4.2 client is now using this for Kerberized mounts.
107	This change should only affect Kerberized NFSv4.1/4.2 mounts.
108	The Linux Kerberized NFSv4.1/4.2 mounts currently work without
109	support for this because Linux will fall back to SP4_NONE,
110	but there is no guarantee this fallback will work forever.
111
1127344856e3a6d and many others:
113	Add support so that nfsd(8), nfsuserd(8), mountd(8), gssd(8)
114	and rpc.tlsservd(8) can be run in an appropriately configured
115	vnet prison.  The vnet prison must be on its own file system,
116	have the "allow.nfsd" jail parameter set on it and enforce_statfs
117	cannot be set to "0".  Use of UDP and pNFS server configurations
118	are not permitted.  (ie. The nfsd command line options "-u", "-p"
119	and "-m" are not supported.)
120	See jail(8), nfsd(8) and mountd(8).
121
1222fb4f839f3fc,d89513ed2050,3413ee88c39d,f97a19ecb985,021562c5020d,431d2a81d421:
123	sendmail has been updated to the latest upstream version (8.17.1).
124
1254a30d7bb373c,d670a8f7c596,af01b4722577,4e240e55d818:
126	The growfs(7) script can now add a swap partition at the end of
127	the expansion area, and does so by default if there is no existing
128	swap.  See growfs(7).
129
13086edb11e7491:
131	llvm-objump is now always installed as objdump.
132
133616f32ea6da7:
134	mta_start_script along with othermta rc.d script has been retired.
135
136a67b925ff3e5:
137	The default mail transport agent is now dma(8) replacing sendmail.
138
13922893e584032:
140	L3 filtering on if_bridge will do surprising things which aren't
141	fail-safe, so net.link.bridge.pfil_member and
142	net.link.bridge.pfil_bridge now default to zero.
143
144f0bc4ed144fc:
145	A new DTrace provider, kinst, is introduced and documented in
146	dtrace_kinst(4).  The provider allows kernel instructions to be traced,
147	similar to the FBT (function boundary tracing) provider except that all
148	instructions may be probed instead of logical entry and return
149	instructions.  The provider is currently amd64-only.
150
1510eea46fb1f83:
152	Removed telnetd.
153
154981ef32230b2,33721eb991d8:
155	These commits make the use of NFSv4.1/4.2 mounts with the "intr"
156	mount option fairly usable, although not 100% correct, so long as
157	the "nolockd" mount option is used as well.  See the mount_nfs(8)
158	manual page for more information.
159
160b875d4f5ddcb,0685c73cfe88:
161	The NFSv4.1/4.2 client and server will now generate console messages
162	if sessions are broken, suggesting that users check to ensure
163	that the /etc/hostid strings are unique for all NFSv4.1/4.2 clients.
164
165240afd8c1fcc:
166	makefs(8) has ZFS support; it can create a ZFS pool, backed by a
167	single disk vdev, containing one or more datasets populated from
168	the staging directory.
169
17078ee8d1c4cda,f4f56ff43dbd:
171	The in-tree qat(4) driver has been replaced with Intel's QAT driver.
172	The new version provides additional interfaces to the chipset's
173	cryptographic and compression offload functionality.
174
175	This will have no visible change for most users; however, the new
176	driver does not support Atom C2000 chipsets.  To preserve support for
177	those chipsets, the old driver has been renamed to qat_c2xxx and kept
178	in the tree.  Users of qat(4) on C2000 hardware will thus need to
179	ensure that qat_c2xxx(4) is loaded instead of qat(4).
180
181da5b7e90e740,5a8fceb3bd9f,7b0a665d72c0,13ec1e3155c7,318d0db5fe8a,1ae2c59bcf21:
182	Boottrace is a new kernel-userspace interface for capturing trace
183	events during system boot and shutdown. Event annotations are
184	present in:
185
186	- The boot and shutdown paths in the kernel
187	- Some key system utilities (init(8), shutdown(8), reboot(8))
188	- rc(8) scripts (via boottrace(8))
189
190	In contrast to other existing boot-time tracing facilities like TSLOG,
191	Boottrace focuses on the ease of use and is aimed primarily at system
192	administrators.
193
194	It is available in the default GENERIC kernel and can be enabled by
195	toggling a single sysctl(8) variable.
196
197	See boottrace(4) for more details.
198
19905a1d0f5d7ac:
200	Kernel TLS offload now supports receive-side offload of TLS 1.3.
201
20219dc64451179:
203	if_stf now supports 6rd (RFC5969).
204
205c1d255d3ffdb, 3968b47cd974, bd452dcbede6:
206	Add WiFi 6 support to wpa.
207
208ba48d52ca6c8,4ac3d08a9693,2533eca1c2b9:
209	The default bell tone is now 800Hz. It may be set with kbdcontrol
210	again. There's devd integration for people wishing to use their sound
211	cards for the beep.
212
21392b3e07229ba:
214	net.inet.tcp.nolocaltimewait enabled by default.  It prevents
215	creation of timewait entries for TCP connections that were
216	terminated locally.
217
218d410b585b6f0:
219	sh(1) is now the default shell for the root user.
220
221396851c20aeb:
222	libncursesw has been split into libtinfow and libncursesw, linker
223	scripts should make it transparent for consumers. pkg-config files
224	are also now installed to ease ports detecting the ncurses setup from
225	base.
226
227a422084abbda:
228	LLVM's MemorySanitizer can now be used in amd64 kernels.  See the
229	kmsan(9) manual page for more information.
230
23138da497a4dfc:
232	LLVM's AddressSanitizer can now be used in amd64 kernels.  See the
233	kasan(9) manual page for more information.
234
235f39dd6a97844,23f24377b1a9,628bd30ab5a4:
236	One True Awk has been updated to the latest from upstream
237	(20210727). All the FreeBSD patches, but one, have now been
238	either up streamed or discarded.  Notable changes include:
239		o Locale is no longer used for ranges
240		o Various bugs fixed
241		o Better compatibility with gawk and mawk
242
243	The one FreeBSD change, likely to be removed in FreeBSD 14, is that
244	we still allow hex numbers, prefixed with 0x, to be parsed and
245	interpreted as hex numbers while all other awks (including one
246	true awk now) interpret them as 0 in line with awk's historic
247	behavior.
248
249	A second change, less likely to be noticed, is the historic wart
250	if -Ft meaning to use hard tab characters as the field separator
251	is deprecated and will likely be removed in FreeBSD 14.
252
253ee29e6f31111:
254	Commit ee29e6f31111 added a new sysctl called vfs.nfsd.srvmaxio
255	that can be used to increase the maximum I/O size for the NFS
256	server to any power of 2 up to 1Mbyte while the nfsd(8) is not running.
257	The FreeBSD NFS client can now be set to use a 1Mbyte I/O size
258	via the vfs.maxbcachebuf tunable and the Linux NFS client
259	can also do 1Mbyte I/O.
260	kern.ipc.maxsockbuf will need to be increased.  A console
261	message will suggest a setting for it.
262
263d575e81fbcfa:
264	gconcat(8) has added support for appending devices to the device
265	not present at creation time.
266
26776681661be28:
268	Remove support for asymmetric cryptographic operations from
269	the kernel open cryptographic framework (OCF).
270
271a145cf3f73c7:
272	The NFSv4 client now uses the highest minor version of NFSv4
273	supported by the NFSv4 server by default instead of minor version 0,
274	for NFSv4 mounts.
275	The "minorversion" mount option may be used to override this default.
276