]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - RELNOTES
vfs: fixup WANTIOCTLCAPS on open
[FreeBSD/FreeBSD.git] / RELNOTES
1 Release notes for FreeBSD 13.0.
2
3 This file describes new user-visible features, changes and updates relevant to
4 users of binary FreeBSD releases.  Each entry should describe the change in no
5 more than several sentences and should reference manual pages where an
6 interested user can find more information.  Entries should wrap after 80
7 columns.  Each entry should begin with one or more commit IDs on one line,
8 specified as a comma separated list and/or range, followed by a colon and a
9 newline.  Entries should be separated by a newline.
10
11 Changes to this file should not be MFCed.
12
13 33ff39796ffe,8719e8a951b7:
14         A new rc(8) service script zfskeys allows for automatic decryption
15         of ZFS datasets encrypted with ZFS native encryption during boot.
16         See the rc.conf(5) manual page for more information.
17
18 b7a2cf0d9102 - eae02d959363:
19         Upgrade bhyve's emulation to version 1.4 of the NVMe specification
20
21 0a6760a1de32, 3f3676a71266, 580c04df4db6:
22         Add WiFi 6 support.
23
24 various:
25         Add support for the HiFive Unmatched RISC-V board.
26
27 9fb6e613373c:
28         Add a sysctl called vfs.nfsd.srvmaxio that can be used to
29         increase the NFS server's maximum I/O size from 128Kbytes
30         to any power of 2 up to 1Mbyte.  It can only be set when
31         the nfsd threads are not running and will normally require
32         an increase in kern.ipc.maxsockbuf to at least the value
33         recommended by the console log message generated when
34         setting vfs.nfsd.srvmaxio is first attempted.
35
36 9ec7dbf46b0a:
37         Add a new NFSv4.1/4.2 mount option "nconnect" that can
38         be used to specify the number of TCP connections that
39         will be used for the mount, up to a maximum of 16.
40         The first (default) TCP connection will be used for
41         all RPCs that consist of small RPC messages.
42         The RPCs that can consist of large RPC messages
43         (Read/Readdir/ReaddirPlus/Write) will be sent on the
44         additional TCP connections in a round robin fashion.
45         If either the NFS client or NFS server have multiple
46         network interfaces aggregated together or a network
47         interface that uses multiple queues, this can increase
48         NFS performance for the mount.
49
50 various:
51         One True Awk has been updated to the latest from upstream
52         (20210215). All the FreeBSD patches, but one, have now been
53         either up streamed or discarded.  Notable changes include:
54                 o Locale is no longer used for ranges
55                 o Various bugs fixed
56                 o Better compatibility with gawk and mawk
57
58         The one FreeBSD change, likely to be removed in FreeBSD 14, is that
59         we still allow hex numbers, prefixed with 0x, to be parsed and
60         interpreted as hex numbers while all other awks (including one
61         true awk now) interpret them as 0 in line with awk's historic
62         behavior.
63
64 8a04edfdcbd2:
65         Change the default minor version used for an NFSv4 mount
66         to the highest minor version supported by the NFSv4 server.
67         This default can be overridden by using the "minorversion"
68         mount option.
69
70 2c76eebca71b, 59f6f5e23c1a:
71         Add two daemons rpc.tlsclntd(8) and rpc.tlsservd(8) that provide
72         support for NFS-over-TLS as described in the Internet Draft titled
73         "Towards Remote Procedure Call Encryption By Default".
74         These daemons are only built when WITH_OPENSSL_KTLS is specified
75         and are only tested on amd64 at this time.
76         They use KTLS to encrypt/decrypt all NFS RPC message traffic, plus
77         optional verification of machine identity via X.509 certificates.
78
79 f76393a6305b6:
80         Add AES-GCM support to armv8crypto(4) providing accelerated
81         support for KTLS, IPsec, and other crypto API consumers.
82
83 074a91f746bd:
84         The aesni(4) and armv8crypto(4) devices are now included in
85         GENERIC on amd64, i386, and arm64.
86
87 2e1c94aa1fd5:
88         Add support for enforcing W^X mapping policy for user
89         processes.  The policy is not enforced by default but can be
90         enabled by setting the kern.elf32.allow_wx and
91         kern.elf64.allow_wx sysctls to 0.  Individual binaries can be
92         exempted from the policy by elfctl(1) via the wxneeded
93         feature.
94
95 4979620ece98:
96         Add AES-XTS support to armv8crypto(4) providing accelerated
97         software support for the default GELI cipher on arm64 systems.
98
99 022ca2fc7fe0:
100         Add aio_writev(2) and aio_readv(2), vectored analogues of aio_write(2)
101         and aio_read(2).
102
103 92bbfe1f0d1f:
104         The fusefs(5) protocol has been updated to 7.28.  Support for
105         FUSE_COPY_FILE_RANGE and FUSE_LSEEK is added.
106
107 r368667:
108         GDB 6.1.1 was removed.  Users of crashinfo(8) should install the
109         gdb package or devel/gdb port.
110
111 r368559:
112         The hme(4) driver was removed.
113
114 r367660:
115         Fixes the case where gssd will not startup because /usr is a separate
116         local file system that is not yet mounted.  It does not fix the case
117         where /usr is a separately mounted remote file system (such as NFS).
118         This latter case can be fixed by adding mountcritremote to the
119         REQUIRED line.  Unfortunately doing so implies that all Kerberized
120         NFS mounts in /etc/fstab will need the "late" mount option.
121         This was not done, since the requirement for "late" would introduce
122         a POLA violation.
123
124 r367423:
125         This commit added a new startup scripts variable called
126         nfsv4_server_only which uses the -R option on mountd added by r367026.
127         When nfsv4_server_only is set to "YES" in /etc/rc.conf, the NFS server
128         only handles NFSv4 and does not register with rpcbind.  As such, rpcbind
129         does not need to be running.  Useful for sites which consider rpcbind a
130         security issue.
131
132 r366267:
133         Kernel option ACPI_DMAR was renamed to IOMMU.  amd64's IOMMU subsystem
134         was split out from amd64 DMAR support and is now generic, i.e., it can
135         be used by all architectures.
136
137 r364896:
138         A series of commits ending with r364896 added NFS over TLS
139         to the kernel.  This is believed to be compatible with
140         the Internet Draft titled "Towards Remote Procedure Call Encryption
141         By Default" (expected to soon become an RFC).
142         The mount_nfs(8) and exports(5) man pages describe the mount and
143         export option(s) related to NFS over TLS.
144         For NFS over TLS to work, the rpctlscd(8) { client } or rpctlssd(8)
145         { server } must be running on a kernel built with "options KERN_TLS"
146         on an architecture where PMAP_HAS_DMAP != 0.
147
148 r364725:
149         Changes to one obscure devd event generated on resume need to
150         be documented. The old form will still be generated in 13, but not
151         in 14.
152
153 r363679:
154         Applications using regex(3), e.g. sed/grep, will no longer accept
155         redundant escapes for most ordinary characters.
156
157 r363253:
158         SCTP support has been removed from GENERIC kernel configurations.
159         The SCTP stack is now built as sctp.ko and can be dynamically loaded.
160
161 r363233:
162         Merge sendmail 8.16.1: See contrib/sendmail/RELEASE_NOTES for details.
163
164 r363180:
165         The safexcel(4) crypto offload driver has been added.
166
167 r363084:
168         nc(1) now implements SCTP mode, enabled by specifying the --sctp option.
169
170 r362681:
171         A new implementation of bc and dc has been imported. It offers
172         better standards compliance, performance, localization and comes
173         with extensive test cases that are optionally installed.
174         Use WITHOUT_GH_BC=yes to build and install the world with the
175         previous version instead of the new one, if required.
176
177 r362158, r362163:
178         struct export_args has changed so that the "user" specified for
179         the -maproot and -mapall exports(5) options may be in more than
180         16 groups.
181
182 r361884:
183         sed(1) has learned about hex escapes (e.g. \x27) and will now do the
184         right thing with them, removing the need for printf magic or obnoxious
185         escaping in many scenarios.
186
187 r361238, r361798, r361799:
188         ZFS will now unconditionally reject read(2) of a directory with EISDIR.
189         Additionally, read(2) of a directory is now rejected with EISDIR by
190         default and may be re-enabled for non-ZFS filesystems that allow it with
191         the sysctl(8) MIB 'security.bsd.allow_read_dir'.
192
193         Aliases for grep to default to '-d skip' may be desired if commonly
194         non-recursively grepping a list that includes directories and the
195         possibility of EISDIR errors in stderr is not tolerable.  Example
196         aliases, commented out, have been installed in /root/.cshrc and
197         /root/.shrc.
198
199 r361066:
200         Add exec.prepare and exec.release hooks for jail(8) and jail.conf(5).
201         exec.prepare runs before mounts, so can be used to populate new jails.
202         exec.release runs after unmounts, so can be used to remove ephemeral
203         jails.
204
205 r360920,r360923,r360924,r360927,r360928,r360931,r360933,r360936:
206         Remove support for ARC4, Blowfish, Cast, DES, Triple DES, MD5,
207         MD5-KPDK, MD5-HMAC, SHA1-KPDK, and Skipjack algorithms from
208         the kernel open cryptographic framework (OCF).
209
210 r360562:
211         Remove support for ARC4, Blowfish, Cast, DES, Triple DES,
212         MD5-HMAC, and Skipjack algorithms from /dev/crypto.
213
214 r360557:
215         Remove support for DES, Triple DES, Blowfish, Cast, and
216         Camellia ciphers from IPsec(4).  Remove support for MD5-HMAC,
217         Keyed MD5, Keyed SHA1, and RIPEMD160-HMAC from IPsec(4).
218
219 r359945:
220         Remove support for Triple DES, Blowfish, and MD5 HMAC from
221         geli(4).
222
223 r359786-r359787:
224         Remove support for DES, Triple DES, and RC4 from in-kernel GSS
225         authentication.
226
227 r357627:
228         remove elf2aout.
229
230 r357560-r357565:
231         init(8), service(8), and cron(8) will now adopt user/class environment
232         variables (excluding PATH, by default, which will be overwritten) by
233         default.  Notably, environment variables for all cron jobs and rc
234         services can now be set via login.conf(5).
235
236 r357455:
237         sparc64 has been removed from FreeBSD.
238
239 r355677:
240         Adds support for NFSv4.2 (RFC-7862) and Extended Attributes
241         (RFC-8276) to the NFS client and server.
242         NFSv4.2 is comprised of several optional features that can be supported
243         in addition to NFSv4.1. This patch adds the following optional features:
244         - posix_fadvise(POSIX_FADV_WILLNEED/POSIX_FADV_DONTNEED)
245         - posix_fallocate()
246         - intra server file range copying via the copy_file_range(2) syscall
247         --> Avoiding data tranfer over the wire to/from the NFS client.
248         - lseek(SEEK_DATA/SEEK_HOLE)
249         - Extended attribute syscalls for "user" namespace attributes as defined
250           by RFC-8276.
251         
252         For the client, NFSv4.2 is only used if the mount command line option
253         minorversion=2 is specified.
254         For the server, two new sysctls called vfs.nfsd.server_min_minorversion4
255         and vfs.nfsd.server_max_minorversion4 have been added that allow
256         sysadmins to limit the minor versions of NFSv4 supported by the nfsd
257         server.
258         Setting vfs.nfsd.server_max_minorversion4 to 0 or 1 will disable NFSv4.2
259         on the server.
260
261 r356263:
262         armv5 support has been removed from FreeBSD.
263
264 r354517:
265         iwm(4) now supports most Intel 9260, 9460 and 9560 Wi-Fi devices.
266
267 r354269:
268         sqlite3 is updated to sqlite3-3.30.1.
269
270 r352668:
271         cron(8) now supports the -n (suppress mail on succesful run) and -q
272         (suppress logging of command execution) options in the crontab format.
273         See the crontab(5) manpage for details.
274
275 r352304:
276         ntpd is no longer by default locked in memory. rlimit memlock 32
277         or rlimit memlock 0 can be used to restore this behaviour.
278
279 r351863:
280         rc.subr(8) now honors ${name}_env in all rc(8) scripts.  Previously,
281         environment variables set by a user via ${name}_env were ignored
282         if the service defined a custom *_cmd variable to control the behavior
283         of the run_rc_command function, e.g., start_cmd, instead of relying on
284         the variables like command and command_args,
285
286 r351770,r352920,r352922,r352923:
287         dd(1) now supports conv=fsync, conv=fdatasync, oflag=fsync, oflag=sync,
288         and iflag=fullblock flags, compatible with illumos and GNU.
289
290 r351522:
291         Add kernel-side support for in-kernel Transport Layer Security
292         (KTLS).  KTLS permits using sendfile(2) over sockets using
293         TLS.
294
295 r351397:
296         WPA is updated from 2.8 to 2.9.
297
298 r351361:
299         Add probes for lockmgr(9) to the lockstat DTrace provider, add
300         corresponding lockstat(1) events, and document the new probes in
301         dtrace_lockstat.4.
302
303 r351356:
304         Intel RST is a new 'feature' that remaps NVMe devices from
305         their normal location to part of the AHCI bar space.  This
306         will eliminate the need to set the BIOS SATA setting from RST
307         to AHCI causing the nvme drive to be erased before FreeBSD
308         will see the nvme drive. FreeBSD will now be able to see the
309         nvme drive now in the default config.
310
311 r351201, r351372:
312         Add a vop_stdioctl() call, so that file systems that do not support
313         holes will have a trivial implementation of lseek(SEEK_DATA/SEEK_HOLE).
314         The algorithm appears to be compatible with the POSIX draft and
315         the implementation in Linux for the case of a file system that
316         does not support holes.  Prior to this patch, lseek(2) would reply
317         -1 with errno set to ENOTTY for SEEK_DATA/SEEK_HOLE on files in
318         file systems that do not support holes.
319         r351372 maps ENOTTY to EINVAL for lseek(SEEK_DATA/SEEK_HOLE) for
320         any other cases, such as a ENOTTY return from vn_bmap_seekhole().
321
322 r350665:
323         The fuse driver has been renamed to fusefs(5) and been substantially
324         rewritten.  The new driver includes many bug fixes and performance
325         enhancements, as well as the following user-visible features:
326         * Optional kernel-side permissions checks (-o default_permissions)
327         * mknod(2), socket(2), and pipe(2) support
328         * server side locking with fcntl(2)
329         * FUSE operations are now interruptible when mounted with -o intr
330         * server side handling of UTIME_NOW during utimensat(2)
331         * mount options may be updated with "mount -u"
332         * fusefs file system may now be exported over NFS
333         * RLIMIT_FSIZE support
334         * support for fuse file systems using protocols as old as 7.4
335         
336         FUSE file system developers should also take note of the following new
337         features:
338         * The protocol level has been raised from 7.8 to 7.23
339         * kqueue support on /dev/fuse
340         * server-initiated cache invalidation via FUSE_NOTIFY_REPLY
341
342 r350471:
343         gnop(8) can now configure a delay to be applied to read and write
344         request delays.  See the -d, -q and -x parameters.
345
346 r350315, r350316:
347         Adds a Linux compatible copy_file_range(2) syscall.
348
349 r350307:
350         libcap_random(3) has been removed.  Applications can use native
351         APIs to get random data in capability mode.
352
353 r349529,r349530:
354         Add support for using unmapped mbufs with sendfile(2).
355
356 r349352:
357         nand(4) and related components have been removed.
358
359 r349349:
360         The UEFI loader now supports HTTP boot.
361
362 r349335:
363         bhyve(8) now implements a High Definition Audio (HDA) driver, allowing
364         guests to play to and record audio data from the host.
365
366 r349286:
367         swapon(8) can now erase a swap device immediately before enabling it,
368         similar to newfs(8)'s -E option.  This behaviour can be specified by
369         adding -E to swapon(8)'s command-line parameters, or by adding the
370         "trimonce" option to a swap device's /etc/fstab entry.
371
372 r347908-r347923:
373         The following network drivers have been removed: bm(4), cs(4), de(4),
374         ed(4), ep(4), ex(4), fe(4), pcn(4), sf(4), sn(4), tl(4), tx(4), txp(4),
375         vx(4), wb(4), xe(4).
376
377 r347532:
378         Wired page accounting has been split into kernel wirings and user
379         wirings (e.g., by mlock(2)).  Kernel wirings no long count towards
380         the global limit, which is renamed to vm.max_user_wired.  bhyve -S
381         allocates user-wired memory and is now subject to that limit.
382
383 $FreeBSD$