xref: /freebsd/RELNOTES (revision 6d8cfd29d477c64376b3e286946cddb93c7373c5)
1Release notes for FreeBSD 15.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
13cd240957d7ba
14	Making a connection to INADDR_ANY (i.e., using INADDR_ANY as an alias
15	for localhost) is now disabled by default.  This functionality can be
16	re-enabled by setting the net.inet.ip.connect_inaddr_wild sysctl to 1.
17
18b61850c4e6f6
19	The bridge(4) sysctl net.link.bridge.member_ifaddrs now defaults to 0,
20	meaning that interfaces added to a bridge may not have IP addresses
21	assigned.  Refer to bridge(4) for more information.
22
2344e5a0150835, 9a37f1024ceb:
24	A new utility sndctl(8) has been added to concentrate the various
25	interfaces for viewing and manipulating audio device settings (sysctls,
26	/dev/sndstat), into a single utility with a similar control-driven
27	interface to that of mixer(8).
28
2993a94ce731a8:
30	ps(1)'s options '-a' and '-A', when combined with any other one
31	affecting the selection of processes except for '-X' and '-x', would
32	have no effect, in contradiction with the rule that one process is
33	listed as soon as any of the specified options selects it (inclusive
34	OR), which is both mandated by POSIX and arguably a natural expectation.
35	This bug has been fixed.
36
37	As a practical consequence, specifying '-a'/'-A' now causes all
38	processes to be listed regardless of other selection options (except for
39	'-X' and '-x', which still apply).  In particular, to list only
40	processes from specific jails, one must not use '-a' with '-J'.  Option
41	'-J', contrary to its apparent initial intent, never worked as a filter
42	in practice (except by accident with '-a' due to the bug), but instead
43	as any other selection options (e.g., '-U', '-p', '-G', etc.) subject to
44	the "inclusive OR" rule.
45
46995b690d1398:
47	ps(1)'s '-U' option has been changed to select processes by their real
48	user IDs instead of their effective one, in accordance with POSIX and
49	the use case of wanting to list processes launched by some user, which
50	is expected to be more frequent than listing processes having the rights
51	of some user.  This only affects the selection of processes whose real
52	and effective user IDs differ.	After this change, ps(1)'s '-U' flag
53	behaves differently then in other BSDs but identically to that of
54	Linux's procps and illumos.
55
561aabbb25c9f9:
57	ps(1)'s default list of processes now comes from matching its effective
58	user ID instead of its real user ID with the effective user ID of all
59	processes, in accordance with POSIX.  As ps(1) itself is not installed
60	setuid, this only affects processes having different real and effective
61	user IDs that launch ps(1) processes.
62
63f0600c41e754-de701f9bdbe0, bc201841d139:
64	mac_do(4) is now considered production-ready and its functionality has
65	been considerably extended at the price of breaking credentials
66	transition rules' backwards compatibility.  All that could be specified
67	with old rules can also be with new rules.  Migrating old rules is just
68	a matter of adding "uid=" in front of the target part, substituting
69	commas (",") with semi-colons (";") and colons (":") with greater-than
70	signs (">").  Please consult the mac_do(4) manual page for the new rules
71	grammar.
72
7302d4eeabfd73:
74	hw.snd.maxautovchans has been retired. The commit introduced a
75	hw.snd.vchans_enable sysctl, which along with
76	dev.pcm.X.{play|rec}.vchans, from now on work as tunables to only
77	enable/disable vchans, as opposed to setting their number and/or
78	(de-)allocating vchans. Since these sysctls do not trigger any
79	(de-)allocations anymore, their effect is instantaneous, whereas before
80	we could have frozen the machine (when trying to allocate new vchans)
81	when setting dev.pcm.X.{play|rec}.vchans to a very large value.
82
837e7f88001d7d:
84	The definition of pf's struct pfr_tstats and struct pfr_astats has
85	changed, breaking ABI compatibility for 32-bit powerpc (including
86	powerpcspe) and armv7. Users of these platforms should ensure kernel
87	and userspace are updated together.
88
895dc99e9bb985, 08e638c089a, 4009a98fe80:
90	The net.inet.{tcp,udp,raw}.bind_all_fibs tunables have been added.
91	They modify socket behavior such that packets not originating from the
92	same FIB as the socket are ignored.  TCP and UDP sockets belonging to
93	different FIBs may also be bound to the same address.  The default
94	behavior is unmodified.
95
96f87bb5967670, e51036fbf3f8:
97	Support for vinum volumes has been removed.
98
998ae6247aa966, cf0ede720391d, 205659c43d87bd, 1ccbdf561f417, 4db1b113b151:
100	The layout of NFS file handles for the tarfs, tmpfs, cd9660, and ext2fs
101	file systems has changed.  An NFS server that exports any of these file
102	systems will need its clients to unmount and remount the exports.
103
1041111a44301da:
105	Defer the January 19, 2038 date limit in UFS1 filesystems to
106	February 7, 2106. This affects only UFS1 format filesystems.
107	See the commit message for details.
108
10907cd69e272da:
110	Add a new -a command line option to mountd(8).
111	If this command line option is specified, when
112	a line in exports(5) has the -alldirs export option,
113	the directory must be a server file system mount point.
114
1150e8a36a2ab12:
116	Add a new NFS mount option called "mountport" that may be used
117	to specify the port# for the NFS server's Mount protocol.
118	This permits a NFSv3 mount to be done without running rpcbind(8).
119
120b2f7c53430c3:
121	Kernel TLS is now enabled by default in kernels including KTLS
122	support.  KTLS is included in GENERIC kernels for aarch64,
123	amd64, powerpc64, and powerpc64le.
124
125f57efe95cc25:
126	New mididump(1) utility which dumps MIDI 1.0 events in real time.
127
128ddfc6f84f242:
129	Update unicode to 16.0.0 and CLDR to 45.0.0.
130
131b22be3bbb2de:
132	Basic Cloudinit images no longer generate RSA host keys by default for
133	SSH.
134
135000000000000:
136	RSA host keys for SSH are deprecated and will no longer be generated
137	by default in FreeBSD 16.
138
1390aabcd75dbc2:
140	EC2 AMIs no longer generate RSA host keys by default for SSH.  RSA
141	host key generation can be re-enabled by setting sshd_rsa_enable="YES"
142	in /etc/rc.conf if it is necessary to support very old SSH clients.
143
144a1da7dc1cdad:
145	The SO_SPLICE socket option was added.  It allows TCP connections to
146	be spliced together, enabling proxy-like functionality without the
147	need to copy data in and out of user memory.
148
149fc12c191c087:
150	grep(1) no longer follows symbolic links by default for
151	recursive searches.  This matches the documented behavior in
152	the manual page.
153
154e962b37bf0ff:
155	When running bhyve(8) guests with a boot ROM, i.e., bhyveload(8) is not
156	used, bhyve now assumes that the boot ROM will enable PCI BAR decoding.
157	This is incompatible with some boot ROMs, particularly outdated builds
158	of edk2-bhyve.  To restore the old behavior, add
159	"pci.enable_bars='true'" to your bhyve configuration.
160
161	Note in particular that the uefi-edk2-bhyve package has been renamed
162	to edk2-bhyve.
163
16443caa2e805c2:
165	amd64 bhyve(8)'s "lpc.bootrom" and "lpc.bootvars" options are
166	deprecated.  Use the top-level "bootrom" and "bootvars" options
167	instead.
168
169822ca3276345:
170	byacc was updated to 20240109.
171
17221817992b331:
173	ncurses was updated to 6.5.
174
1751687d77197c0:
176	Filesystem manual pages have been moved to section four.
177	Please check ports you are maintaining for crossreferences.
178
1798aac90f18aef:
180	new MAC/do policy and mdo(1) utility which enables a user to
181	become another user without the requirement of setuid root.
182
1837398d1ece5cf:
184	hw.snd.version is removed.
185
186a15f7c96a276,a8089ea5aee5:
187	NVMe over Fabrics controller.  The nvmft(4) kernel module adds
188	a new frontend to the CAM target layer which exports ctl(4)
189	LUNs as NVMe namespaces to remote hosts.  The nvmfd(8) daemon
190	is responsible for accepting incoming connection requests and
191	handing off connected queue pairs to nvmft(4).
192
193a1eda74167b5,1058c12197ab:
194	NVMe over Fabrics host.  New commands added to nvmecontrol(8)
195	to establish connections to remote controllers.  Once
196	connections are established they are handed off to the nvmf(4)
197	kernel module which creates nvmeX devices and exports remote
198	namespaces as nda(4) disks.
199
20025723d66369f:
201	As a side-effect of retiring the unit.* code in sound(4), the
202	hw.snd.maxunit loader(8) tunable is also retired.
203
204eeb04a736cb9:
205	date(1) now supports nanoseconds. For example:
206	`date -Ins` prints "2024-04-22T12:20:28,763742224+02:00" and
207	`date +%N` prints "415050400".
208
2096d5ce2bb6344:
210	The default value of the nfs_reserved_port_only rc.conf(5) setting has
211	changed.  The FreeBSD NFS server now requires the source port of
212	requests to be in the privileged port range (i.e., <= 1023), which
213	generally requires the client to have elevated privileges on their local
214	system.  The previous behavior can be restored by setting
215	nfs_reserved_port_only=NO in rc.conf.
216
217aea973501b19:
218	ktrace(2) will now record detailed information about capability mode
219	violations. The kdump(1) utility has been updated to display such
220	information.
221
222f32a6403d346:
223	One True Awk updated to 2nd Edition. See https://awk.dev for details
224	on the additions. Unicode and CSVs (Comma Separated Values) are now
225	supported.
226
227fe86d923f83f:
228	usbconfig(8) now reads the descriptions of the usb vendor and products
229	from usb.ids when available, similarly to what pciconf(8) does.
230
2314347ef60501f:
232	The powerd(8) utility is now enabled in /etc/rc.conf by default on
233	images for the arm64 Raspberry Pi's (arm64-aarch64-RPI img files).
234	This prevents the CPU clock from running slow all the time.
235
2360b49e504a32d:
237	rc.d/jail now supports the legacy variable jail_${jailname}_zfs_dataset
238	to allow unmaintained jail managers like ezjail to make use of this
239	feature (simply rename jail_${jailname}_zfs_datasets in the ezjail
240	config to jail_${jailname}_zfs_dataset.
241
242e0dfe185cbca:
243	jail(8) now support zfs.dataset to add a list of ZFS datasets to a
244        jail.
245
24661174ad88e33:
247	newsyslog(8) now supports specifying a global compression method directly
248	at the beginning of the newsyslog.conf file, which will make newsyslog(8)
249	to behave like the corresponding option was passed to the newly added
250	'-c' option. For example:
251
252	<compress> none
253
254906748d208d3:
255	newsyslog(8) now accepts a new option, '-c' which overrides all historical
256	compression flags by treating their meaning as "treat the file as compressible"
257	rather than "compress the file with that specific method."
258
259	The following choices are available:
260	 * none: Do not compress, regardless of flag.
261	 * legacy: Historical behavior (J=bzip2, X=xz, Y=zstd, Z=gzip).
262	 * bzip2, xz, zstd, gzip: apply the specified compression method.
263
264	We plan to change the default to 'none' in FreeBSD 15.0.
265
2661a878807006c:
267	This commit added some statistics collection to the NFS-over-TLS
268	code in the NFS server so that sysadmins can moditor usage.
269	The statistics are available via the kern.rpc.tls.* sysctls.
270
2717c5146da1286:
272	Mountd has been modified to use strunvis(3) to decode directory
273	names in exports(5) file(s).  This allows special characters,
274	such as blanks, to be embedded in the directory name(s).
275	"vis -M" may be used to encode such directory name(s).
276
277c5359e2af5ab:
278	bhyve(8) has a new network backend, "slirp", which makes use of the
279	libslirp package to provide a userspace network stack.  This backend
280	makes it possible to access the guest network from the host without
281	requiring any extra network configuration on the host.
282
283bb830e346bd5:
284	Set the IUTF8 flag by default in tty(4).
285
286	128f63cedc14 and 9e589b093857 added proper UTF-8 backspacing handling
287	in the tty(4) driver, which is enabled by setting the new IUTF8 flag
288	through stty(1). Since the default locale is UTF-8, enable IUTF8 by
289	default.
290
291ff01d71e48d4:
292	dialog(1) has been replaced by bsddialog(1)
293
29441582f28ddf7:
295	FreeBSD 15.0 will not include support for 32-bit platforms.
296	However, 64-bit systems will still be able to run older 32-bit
297	binaries.
298
299	Support for executing 32-bit binaries on 64-bit platforms via
300	COMPAT_FREEBSD32 will remain supported for at least the
301	stable/15 and stable/16 branches.
302
303	Support for compiling individual 32-bit applications via
304	`cc -m32` will also be supported for at least the stable/15
305	branch which includes suitable headers in /usr/include and
306	libraries in /usr/lib32.
307
308	Support for 32-bit platforms in ports for 15.0 and later
309	releases is also deprecated, and these future releases may not
310	include binary packages for 32-bit platforms or support for
311	building 32-bit applications from ports.
312
313	stable/14 and earlier branches will retain existing 32-bit
314	kernel and world support.  Ports will retain existing support
315	for building ports and packages for 32-bit systems on stable/14
316	and earlier branches as long as those branches are supported
317	by the ports system.  However, all 32-bit platforms are Tier-2
318	or Tier-3 and support for individual ports should be expected
319	to degrade as upstreams deprecate 32-bit platforms.
320
321	With the current support schedule, stable/14 will be EOLed 5
322	years after the release of 14.0.  The EOL of stable/14 would
323	mark the end of support for 32-bit platforms including source
324	releases, pre-built packages, and support for building
325	applications from ports.  Given an estimated release date of
326	October 2023 for 14.0, support for 32-bit platforms would end
327	in October 2028.
328
329	The project may choose to alter this approach when 15.0 is
330	released by extending some level of 32-bit support for one or
331	more platforms in 15.0 or later.  Users should use the
332	stable/14 branch to migrate off of 32-bit platforms.
333