xref: /freebsd-12.1/UPDATING (revision 3df06c28)
1 Updating Information for FreeBSD current users.
2
3This file is maintained and copyrighted by M. Warner Losh <[email protected]>.
4See end of file for further details.  For commonly done items, please see the
5COMMON ITEMS: section later in the file.  These instructions assume that you
6basically know what you are doing.  If not, then please consult the FreeBSD
7handbook:
8
9    https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
10
11Items affecting the ports and packages system can be found in
12/usr/ports/UPDATING.  Please read that file before running portupgrade.
13
14NOTE: FreeBSD has switched from gcc to clang. If you have trouble bootstrapping
15from older versions of FreeBSD, try WITHOUT_CLANG and WITH_GCC to bootstrap to
16the tip of head, and then rebuild without this option. The bootstrap process
17from older version of current across the gcc/clang cutover is a bit fragile.
18
1920210128:	p13	FreeBSD-EN-21:01.tzdata
20			FreeBSD-EN-21:03.vnet
21			FreeBSD-SA-21:01.fsdisclosure
22			FreeBSD-SA-21:02.xenoom
23
24	Update timezone database information [EN-21:01.tzdata]
25
26	Panic when destroying VNET and epair simultaneously [EN-21:03.vnet]
27
28	Uninitialized file system kernel stack leaks [SA-21:01.fsdisclosure]
29
30	Xen guest-triggered out of memory [SA-21:02.xenoom]
31
3220201208:	p12	FreeBSD-SA-20:33.openssl
33
34        Fix OpenSSL NULL pointer de-reference. [SA-20:33.openssl]
35
3620201201:	p11	FreeBSD-EN-20:20.tzdata
37			FreeBSD-SA-20:31.icmp6
38			FreeBSD-SA-20:32.rtsold
39
40        Update timezone database information. [EN-20:20.tzdata]
41
42        Fix ICMPv6 use-after-free in error message handling. [SA-20:31.icmp6]
43
44        Fix multiple vulnerabilities in rtsold. [SA-20:32.rtsold]
45
4620200915	p10	FreeBSD-SA-20:27.ure
47			FreeBSD-SA-20:28.bhyve_vmcs
48			FreeBSD-SA-20:29.bhyve_svm
49			FreeBSD-SA-20:30.ftpd
50
51        Fix ure device driver susceptible to packet-in-packet attack.
52          [SA-20:27.ure]
53
54        Fix bhyve privilege escalation via VMCS access. [SA-20:28.bhyve_vmcs]
55
56        Fix bhyve SVM guest escape. [SA-20:29.bhyve_svm]
57
58        Fix ftpd privilege escalation via ftpchroot. [SA-20:30.ftpd]
59
6020200902	p9	FreeBSD-EN-20:17.linuxthread
61			FreeBSD-SA-20:25.sctp
62			FreeBSD-SA-20:26.dhclient
63
64        Fix FreeBSD Linux ABI kernel panic. [EN-20:17.linuxthread]
65
66        Fix SCTP socket use-after-free. [SA-20:25.sctp]
67
68        Fix dhclient heap overflow. [SA-20:26.dhclient]
69
7020200805	p8	FreeBSD-EN-20:16.vmx
71			FreeBSD-SA-20:21.usb_net
72			FreeBSD-SA-20:22.unbound
73			FreeBSD-SA-20:23.ipv6
74
75        Fix vmx driver packet loss and degraded performance. [EN-20:16.vmx]
76
77        Fix memory corruption in USB network device drivers. [SA-20:21.usb_net]
78
79        Fix multiple vulnerabilities in sqlite3. [SA-20:22.sqlite]
80
81        Fix sendmsg(2) privilege escalation. [SA-20:23.sendmsg]
82
8320200708	p7	FreeBSD-EN-20:13.bhyve
84			FreeBSD-EN-20:14.linuxkpi
85			FreeBSD-EN-20:15.mps
86			FreeBSD-SA-20:19.unbound
87			FreeBSD-SA-20:20.ipv6
88
89        Fix host crash in bhyve with PCI device passthrough. [EN-20:13.bhyve]
90
91        Fix kernel panic in LinuxKPI subsystem. [EN-20:14.linuxpki]
92
93        Fix kernel panic in mps(4) driver. [EN-20:15.mps]
94
95        Fix multiple vulnerabilities in unbound. [SA-20:19.unbound]
96
97        Fix IPv6 socket option race condition and use after free. [SA-20:20.ipv6]
98
9920200609	p6	FreeBSD-EN-20:11.ena
100			FreeBSD-EN-20:12.iflib
101			FreeBSD-SA-20:17.usb
102
103        Fix stability issues in ena(4) driver. [EN-20:11.ena]
104
105        Fix iflib watchdog timeout resetting idle queues. [EN-20:12.iflib]
106
107        Fix USB HID descriptor parsing error. [SA-20:17.usb]
108
10920200512	p5	FreeBSD-EN-20:08.tzdata
110			FreeBSD-EN-20:09.igb
111			FreeBSD-EN-20:10.build
112			FreeBSD-SA-20:12.libalias
113			FreeBSD-SA-20:13.libalias
114			FreeBSD-SA-20:15.cryptodev
115			FreeBSD-SA-20:16.cryptodev
116
117        Import tzdata 2020a. [EN-20:08.tzdata]
118
119        Fix igb interfaces failing to switch to inactive state [EN-20:09.igb]
120
121        Fix incorrect build host Clang version detection [EN-20:10.build]
122
123	Fix insufficient packet length validation in libalias [SA-20:12.libalias]
124
125	Fix memory disclosure vulnerability in libalias [SA-20:13.libalias]
126
127	Fix use after free in cryptodev module [SA-20:15.cryptodev]
128
129	Fix insufficient cryptodev MAC key length check [SA-20:16.cryptodev]
130
13120200421	p4	FreeBSD-EN-20:07.quotad
132			FreeBSD-SA-20:10.ipfw
133			FreeBSD-SA-20:11.openssl
134
135        Fix regression in rpc.rquotad with certain NFS servers [EN-20:07.quotad]
136
137        Fix ipfw invalid mbuf handling [SA-20:10.ipfw]
138
139        Fix OpenSSL remote denial of service vulnerability [SA-20:11.openssl]
140
14120200319	p3	FreeBSD-EN-20:03.sshd
142			FreeBSD-EN-20:05.mlx5en
143			FreeBSD-EN-20:06.ipv6
144			FreeBSD-SA-20:04.tcp
145			FreeBSD-SA-20:05.if_oce_ioctl
146			FreeBSD-SA-20:06.if_ixl_ioctl
147			FreeBSD-SA-20:07.epair
148			FreeBSD-SA-20:08.jail
149			FreeBSD-SA-20:09.ntp
150
151        Fix misleading log messages upon successful sshd login [EN-20:03.sshd]
152
153        Fix packet forwarding performance in mlx5en(4) driver [EN-20:05.mlx5en]
154
155        Fix incorrect checksum calculations with IPv6 extension headers [EN-20:06.ipv6]
156
157	Fix TCP IPv6 SYN cache kernel information disclosure [SA-20:04.tcp]
158
159	Fix insufficient oce(4) ioctl(2) privilege checking [SA-20:05.if_oce_ioctl]
160
161	Fix insufficient ixl(4) ioctl(2) privilege checking [SA-20:06.if_ixl_ioctl]
162
163	Fix incorrect user-controlled pointer use in epair [SA-20:07.epair]
164
165	Fix kernel memory disclosure with nested jails [SA-20:08.jail]
166
167	Fix multiple denial of service in ntpd [SA-20:09.ntp]
168
16920200128	p2	FreeBSD-EN-20:01.ssp
170			FreeBSD-SA-20:01.libfetch
171			FreeBSD-SA-20:03.thrmisc
172
173        Fix imprecise ordering of SSP canary initialization [EN-20:01.ssp]
174
175        Fix libfetch buffer overflow [SA-20:01.libfetch]
176
177        Fix kernel stack data disclosure [SA-20:03.thrmisc]
178
17920191112	p1	FreeBSD-EN-19:19.loader
180			FreeBSD-SA-19:25.mcepsc
181
182	Fix UEFI Loader Memory Fragmentation [EN-19:19.loader]
183
184	Fix Machine Check Exception on Page Size Change [SA-19:25.mcepsc]
185
18620191104:
187	12.1-RELEASE.
188
18920190914:
190	The vfs.fusefs.sync_unmount and vfs.fusefs.init_backgrounded sysctls
191	and the "-o sync_unmount" and "-o init_backgrounded" mount options have
192	been removed from mount_fusefs(8).  You can safely remove them from
193	your scripts, because they had no effect.
194
195	The vfs.fusefs.fix_broken_io, vfs.fusefs.sync_resize,
196	vfs.fusefs.refresh_size, vfs.fusefs.mmap_enable,
197	vfs.fusefs.reclaim_revoked, and vfs.fusefs.data_cache_invalidate
198	sysctls have been removed.  If you felt the need to set any of them to
199	a non-default value, please tell [email protected] why.
200
20120190906:
202	The fuse(4) module has been renamed to fusefs(4) for consistency with
203	other filesystems.  You should update any kld_load="fuse" entries in
204	/etc/rc.conf, fuse_load="YES" entries in /boot/loader.conf, and
205	"options FUSE" enties in kernel config files.
206
20720190811:
208	Default permissions on the /var/account/acct file (and copies of it
209	rotated by periodic daily scripts) are changed from 0644 to 0640
210	because the file contains sensitive information that should not be
211	world-readable.  If the /var/account directory must be created by
212	rc.d/accounting, the mode used is now 0750.  Admins who use the
213	accounting feature are encouraged to change the mode of an existing
214	/var/account directory to 0750 or 0700.
215
21620190723:
217	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
218	been upgraded to 8.0.1.  Please see the 20141231 entry below for
219	information about prerequisites and upgrading, if you are not already
220	using clang 3.5.0 or higher.
221
22220190413:
223	Now Clang 8 has been merged (see the 20190412 entry below), the ifunc
224	functionality needed for the RETPOLINE option should work properly
225	again.  The RETPOLINE option has been removed from BROKEN_OPTIONS.
226
22720190412:
228	Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
229	8.0.0.  Please see the 20141231 entry below for information about
230	prerequisites and upgrading, if you are not already using clang 3.5.0
231	or higher.
232
23320190307:
234	The RETPOLINE option produces non-functional ifunc-using binaries
235	with Clang 7.0.1, and has been forced off (via BROKEN_OPTIONS).
236	Once Clang 8 is merged it may be enabled again.
237
23820190216:
239	Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
240	7.0.1.  Please see the 20141231 entry below for information about
241	prerequisites and upgrading, if you are not already using clang 3.5.0
242	or higher.
243
24420190226:
245	geom_uzip(4) depends on the new module xz.  If geom_uzip is statically
246	compiled into your custom kernel, add 'device xz' statement to the
247	kernel config.
248
24920190214:
250	Iflib is no longer unconditionally compiled into the kernel.  Drivers
251	using iflib and statically compiled into the kernel, now require
252	the 'device iflib' config option.  For the same drivers loaded as
253	modules on kernels not having 'device iflib', the iflib.ko module
254	is loaded automatically.
255
25620181228:
257	r342561 modifies the NFSv4 server so that it obeys vfs.nfsd.nfs_privport
258	in the same as it is applied to NFSv2 and 3.  This implies that NFSv4
259	servers that have vfs.nfsd.nfs_privport set will only allow mounts
260	from clients using a reserved port#. Since both the FreeBSD and Linux
261	NFSv4 clients use reserved port#s by default, this should not affect
262	most NFSv4 mounts.
263
26420181129:
265	On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld
266	linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as
267	it produces broken binaries when ifuncs are in use.  Users needing
268	GNU ld should install the binutils port or package.
269
27020181115:
271	The set of CTM commands (ctm, ctm_smail, ctm_rmail, ctm_dequeue)
272	has been converted to a port (misc/ctm) and will be removed from
273	FreeBSD-13.  A depreciation warning will be printed to stderr by
274	the ctm command, but the functionality will remain in base for all
275	FreeBSD-12 releases.
276
27720181019:
278	The stable/12 branch has been created in subversion from head
279	revision r339432.
280
28120181015:
282	Ports for the DRM modules have been simplified. Now, amd64 users should
283	just install the drm-kmod port. All others should install
284	drm-legacy-kmod.
285
286	Graphics hardware that's newer than about 2010 usually works with
287	drm-kmod.  For hardware older than 2013, however, some users will need
288	to use drm-legacy-kmod if drm-kmod doesn't work for them. Hardware older
289	than 2008 usually only works in drm-legacy-kmod. The graphics team can
290	only commit to hardware made since 2013 due to the complexity of the
291	market and difficulty to test all the older cards effectively. If you
292	have hardware supported by drm-kmod, you are strongly encouraged to use
293	that as you will get better support.
294
295	Other than KPI chasing, drm-legacy-kmod will not be updated. As outlined
296	elsewhere, the drm and drm2 modules will be eliminated from the src base
297	soon (with a limited exception for arm). Please update to the package asap
298	and report any issues to [email protected].
299
300	Generally, anybody using the drm*-kmod packages should add
301	WITHOUT_DRM_MODULE=t and WITHOUT_DRM2_MODULE=t to avoid nasty
302	cross-threading surprises, especially with automatic driver
303	loading from X11 startup. These will become the defaults in 13-current
304	shortly.
305
30620181012:
307	The ixlv(4) driver has been renamed to iavf(4).  As a consequence,
308	custom kernel and module loading configuration files must be updated
309	accordingly.  Moreover, interfaces previous presented as ixlvN to the
310	system are now exposed as iavfN and network configuration files must
311	be adjusted as necessary.
312
31320181009:
314	OpenSSL has been updated to version 1.1.1.  This update included
315	additional various API changes througout the base system.  It is
316	important to rebuild third-party software after upgrading.  The value
317	of __FreeBSD_version has been bumped accordingly.
318
31920181006:
320	The legacy DRM modules and drivers have now been added to the loader's
321	module blacklist, in favor of loading them with kld_list in rc.conf(5).
322	The module blacklist may be overridden with the loader.conf(5)
323	'module_blacklist' variable, but loading them via rc.conf(5) is strongly
324	encouraged.
325
32620181002:
327	The cam(4) based nda(4) driver will be used over nvd(4) by default on
328	powerpc64. You may set 'options NVME_USE_NVD=1' in your kernel conf or
329	loader tunable 'hw.nvme.use_nvd=1' if you wish to use the existing
330	driver.  Make sure to edit /boot/etc/kboot.conf and fstab to use the
331	nda device name.
332
33320180913:
334	Reproducible build mode is now on by default, in preparation for
335	FreeBSD 12.0.  This eliminates build metadata such as the user,
336	host, and time from the kernel (and uname), unless the working tree
337	corresponds to a modified checkout from a version control system.
338	The previous behavior can be obtained by setting the /etc/src.conf
339	knob WITHOUT_REPRODUCIBLE_BUILD.
340
34120180826:
342	The Yarrow CSPRNG has been removed from the kernel as it has not been
343	supported by its designers since at least 2003. Fortuna has been the
344	default since FreeBSD-11.
345
34620180822:
347	devctl freeze/thaw have gone into the tree, the rc scripts have been
348	updated to use them and devmatch has been changed.  You should update
349	kernel, userland and rc scripts all at the same time.
350
35120180818:
352	The default interpreter has been switched from 4th to Lua.
353	LOADER_DEFAULT_INTERP, documented in build(7), will override the default
354	interpreter.  If you have custom FORTH code you will need to set
355	LOADER_DEFAULT_INTERP=4th (valid values are 4th, lua or simp) in
356	src.conf for the build.  This will create default hard links between
357	loader and loader_4th instead of loader and loader_lua, the new default.
358	If you are using UEFI it will create the proper hard link to loader.efi.
359
360	bhyve uses userboot.so. It remains 4th-only until some issues are solved
361	regarding coexisting with multiple versions of FreeBSD are resolved.
362
36320180815:
364	ls(1) now respects the COLORTERM environment variable used in other
365	systems and software to indicate that a colored terminal is both
366	supported and desired.  If ls(1) is suddenly emitting colors, they may
367	be disabled again by either removing the unwanted COLORTERM from your
368	environment, or using `ls --color=never`.  The ls(1) specific CLICOLOR
369	may not be observed in a future release.
370
37120180808:
372	The default pager for most commands has been changed to "less".  To
373	restore the old behavior, set PAGER="more" and MANPAGER="more -s" in
374	your environment.
375
37620180731:
377	The jedec_ts(4) driver has been removed. A superset of its functionality
378	is available in the jedec_dimm(4) driver, and the manpage for that
379	driver includes migration instructions. If you have "device jedec_ts"
380	in your kernel configuration file, it must be removed.
381
38220180730:
383	amd64/GENERIC now has EFI runtime services, EFIRT, enabled by default.
384	This should have no effect if the kernel is booted via BIOS/legacy boot.
385	EFIRT may be disabled via a loader tunable, efi.rt.disabled, if a system
386	has a buggy firmware that prevents a successful boot due to use of
387	runtime services.
388
38920180727:
390	Atmel AT91RM9200 and AT91SAM9, Cavium CNS 11xx and XScale
391	support has been removed from the tree. These ports were
392	obsolete and/or known to be broken for many years.
393
39420180723:
395	loader.efi has been augmented to participate more fully in the
396	UEFI boot manager protocol. loader.efi will now look at the
397	BootXXXX environment variable to determine if a specific kernel
398	or root partition was specified. XXXX is derived from BootCurrent.
399	efibootmgr(8) manages these standard UEFI variables.
400
40120180720:
402	zfsloader's functionality has now been folded into loader.
403	zfsloader is no longer necessary once you've updated your
404	boot blocks. For a transition period, we will install a
405	hardlink for zfsloader to loader to allow a smooth transition
406	until the boot blocks can be updated (hard link because old
407	zfs boot blocks don't understand symlinks).
408
40920180719:
410	ARM64 now have efifb support, if you want to have serial console
411	on your arm64 board when an screen is connected and the bootloader
412	setup a frambuffer for us to use, just add :
413	boot_serial=YES
414	boot_multicons=YES
415	in /boot/loader.conf
416	For Raspberry Pi 3 (RPI) users, this is needed even if you don't have
417	an screen connected as the firmware will setup a framebuffer are that
418	u-boot will expose as an EFI framebuffer.
419
42020180719:
421	New uid:gid added, ntpd:ntpd (123:123).  Be sure to run mergemaster
422	or take steps to update /etc/passwd before doing installworld on
423	existing systems.  Do not skip the "mergemaster -Fp" step before
424	installworld, as described in the update procedures near the bottom
425	of this document.  Also, rc.d/ntpd now starts ntpd(8) as user ntpd
426	if the new mac_ntpd(4) policy is available, unless ntpd_flags or
427	the ntp config file contain options that change file/dir locations.
428	When such options (e.g., "statsdir" or "crypto") are used, ntpd can
429	still be run as non-root by setting ntpd_user=ntpd in rc.conf, after
430	taking steps to ensure that all required files/dirs are accessible
431	by the ntpd user.
432
43320180717:
434	Big endian arm support has been removed.
435
43620180711:
437	The static environment setup in kernel configs is no longer mutually
438	exclusive with the loader(8) environment by default.  In order to
439	restore the previous default behavior of disabling the loader(8)
440	environment if a static environment is present, you must specify
441	loader_env.disabled=1 in the static environment.
442
44320180705:
444	The ABI of syscalls used by management tools like sockstat and
445	netstat has been broken to allow 32-bit binaries to work on
446	64-bit kernels without modification.  These programs will need
447	to match the kernel in order to function.  External programs may
448	require minor modifications to accommodate a change of type in
449	structures from pointers to 64-bit virtual addresses.
450
45120180702:
452	On i386 and amd64 atomics are now inlined. Out of tree modules using
453	atomics will need to be rebuilt.
454
45520180701:
456	The '%I' format in the kern.corefile sysctl limits the number of
457	core files that a process can generate to the number stored in the
458	debug.ncores sysctl. The '%I' format is replaced by the single digit
459	index. Previously, if all indexes were taken the kernel would overwrite
460	only a core file with the highest index in a filename.
461	Currently the system will create a new core file if there is a free
462	index or if all slots are taken it will overwrite the oldest one.
463
46420180630:
465	Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
466	6.0.1.  Please see the 20141231 entry below for information about
467	prerequisites and upgrading, if you are not already using clang 3.5.0
468	or higher.
469
47020180628:
471	r335753 introduced a new quoting method. However, etc/devd/devmatch.conf
472	needed to be changed to work with it. This change was made with r335763
473	and requires a mergemaster / etcupdate / etc to update the installed file.
474
47520180612:
476	r334930 changed the interface between the NFS modules, so they all
477	need to be rebuilt.  r335018 did a __FreeBSD_version bump for this.
478
47920180530:
480	As of r334391 lld is the default amd64 system linker; it is installed
481	as /usr/bin/ld.  Kernel build workarounds (see 20180510 entry) are no
482	longer necessary.
483
48420180530:
485	The kernel / userland interface for devinfo changed, so you'll
486	need a new kernel and userland as a pair for it to work (rebuilding
487	lib/libdevinfo is all that's required). devinfo and devmatch will
488	not work, but everything else will when there's a mismatch.
489
49020180523:
491	The on-disk format for hwpmc callchain records has changed to include
492	threadid corresponding to a given record. This changes the field offsets
493	and thus requires that libpmcstat be rebuilt before using a kernel
494	later than r334108.
495
49620180517:
497	The vxge(4) driver has been removed.  This driver was introduced into
498	HEAD one week before the Exar left the Ethernet market and is not
499	known to be used.  If you have device vxge in your kernel config file
500	it must be removed.
501
50220180510:
503	The amd64 kernel now requires a ld that supports ifunc to produce a
504	working kernel, either lld or a newer binutils. lld is built by default
505	on amd64, and the 'buildkernel' target uses it automatically. However,
506	it is not the default linker, so building the kernel the traditional
507	way requires LD=ld.lld on the command line (or LD=/usr/local/bin/ld for
508	binutils port/package). lld will soon be default, and this requirement
509	will go away.
510
511	NOTE: As of r334391 lld is the default system linker on amd64, and no
512	workaround is necessary.
513
51420180508:
515	The nxge(4) driver has been removed.  This driver was for PCI-X 10g
516	cards made by s2io/Neterion.  The company was aquired by Exar and
517	no longer sells or supports Ethernet products.  If you have device
518	nxge in your kernel config file it must be removed.
519
52020180504:
521	The tz database (tzdb) has been updated to 2018e.  This version more
522	correctly models time stamps in time zones with negative DST such as
523	Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and
524	Africa/Windhoek (1994/2017).  This does not affect the UT offsets, only
525	time zone abbreviations and the tm_isdst flag.
526
52720180502:
528	The ixgb(4) driver has been removed.  This driver was for an early and
529	uncommon legacy PCI 10GbE for a single ASIC, Intel 82597EX. Intel
530	quickly shifted to the long lived ixgbe family.  If you have device
531	ixgb in your kernel config file it must be removed.
532
53320180501:
534	The lmc(4) driver has been removed.  This was a WAN interface
535	card that was already reportedly rare in 2003, and had an ambiguous
536	license.  If you have device lmc in your kernel config file it must
537	be removed.
538
53920180413:
540	Support for Arcnet networks has been removed.  If you have device
541	arcnet or device cm in your kernel config file they must be
542	removed.
543
54420180411:
545	Support for FDDI networks has been removed.  If you have device
546	fddi or device fpa in your kernel config file they must be
547	removed.
548
54920180406:
550	In addition to supporting RFC 3164 formatted messages, the
551	syslogd(8) service is now capable of parsing RFC 5424 formatted
552	log messages. The main benefit of using RFC 5424 is that clients
553	may now send log messages with timestamps containing year numbers,
554	microseconds and time zone offsets.
555
556	Similarly, the syslog(3) C library function has been altered to
557	send RFC 5424 formatted messages to the local system logging
558	daemon. On systems using syslogd(8), this change should have no
559	negative impact, as long as syslogd(8) and the C library are
560	updated at the same time. On systems using a different system
561	logging daemon, it may be necessary to make configuration
562	adjustments, depending on the software used.
563
564	When using syslog-ng, add the 'syslog-protocol' flag to local
565	input sources to enable parsing of RFC 5424 formatted messages:
566
567		source src {
568			unix-dgram("/var/run/log" flags(syslog-protocol));
569		}
570
571	When using rsyslog, disable the 'SysSock.UseSpecialParser' option
572	of the 'imuxsock' module to let messages be processed by the
573	regular RFC 3164/5424 parsing pipeline:
574
575		module(load="imuxsock" SysSock.UseSpecialParser="off")
576
577	Do note that these changes only affect communication between local
578	applications and syslogd(8). The format that syslogd(8) uses to
579	store messages on disk or forward messages to other systems
580	remains unchanged. syslogd(8) still uses RFC 3164 for these
581	purposes. Options to customize this behaviour will be added in the
582	future. Utilities that process log files stored in /var/log are
583	thus expected to continue to function as before.
584
585	__FreeBSD_version has been incremented to 1200061 to denote this
586	change.
587
58820180328:
589	Support for token ring networks has been removed. If you
590	have "device token" in your kernel config you should remove
591	it. No device drivers supported token ring.
592
59320180323:
594	makefs was modified to be able to tag ISO9660 El Torito boot catalog
595	entries as EFI instead of overloading the i386 tag as done previously.
596	The amd64 mkisoimages.sh script used to build amd64 ISO images for
597	release was updated to use this. This may mean that makefs must be
598	updated before "make cdrom" can be run in the release directory. This
599	should be as simple as:
600
601		$ cd $SRCDIR/usr.sbin/makefs
602		$ make depend all install
603
60420180212:
605	FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for
606	now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf.
607	Co-existance for the transition period will come shortly. Booting is a
608	complex environment and test coverage for Lua-enabled loaders has been
609	thin, so it would be prudent to assume it might not work and make
610	provisions for backup boot methods.
611
61220180211:
613	devmatch functionality has been turned on in devd. It will automatically
614	load drivers for unattached devices. This may cause unexpected drivers to
615	be loaded. Please report any problems to current@ and [email protected].
616
61720180114:
618	Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
619	6.0.0.  Please see the 20141231 entry below for information about
620	prerequisites and upgrading, if you are not already using clang 3.5.0
621	or higher.
622
62320180110:
624	LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker.
625	This means it is used to link the kernel and userland libraries and
626	executables, but is not yet installed as /usr/bin/ld by default.
627
628	To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set
629        WITHOUT_LLD_BOOTSTRAP=yes
630
63120180110:
632	On i386, pmtimer has been removed. Its functionality has been folded
633	into apm. It was a no-op on ACPI in current for a while now (but was still
634	needed on i386 in FreeBSD 11 and earlier). Users may need to remove it
635	from kernel config files.
636
63720180104:
638	The use of RSS hash from the network card aka flowid has been
639	disabled by default for lagg(4) as it's currently incompatible with
640	the lacp and loadbalance protocols.
641
642	This can be re-enabled by setting the following in loader.conf:
643	net.link.lagg.default_use_flowid="1"
644
64520180102:
646	The SW_WATCHDOG option is no longer necessary to enable the
647	hardclock-based software watchdog if no hardware watchdog is
648	configured. As before, SW_WATCHDOG will cause the software
649	watchdog to be enabled even if a hardware watchdog is configured.
650
65120171215:
652	r326887 fixes the issue described in the 20171214 UPDATING entry.
653	r326888 flips the switch back to building GELI support always.
654
65520171214:
656	r362593 broke ZFS + GELI support for reasons unknown. However,
657	it also broke ZFS support generally, so GELI has been turned off
658	by default as the lesser evil in r326857. If you boot off ZFS and/or
659	GELI, it might not be a good time to update.
660
66120171125:
662	PowerPC users must update loader(8) by rebuilding world before
663	installing a new kernel, as the protocol connecting them has
664	changed. Without the update, loader metadata will not be passed
665	successfully to the kernel and users will have to enter their
666	root partition at the kernel mountroot prompt to continue booting.
667	Newer versions of loader can boot old kernels without issue.
668
66920171110:
670	The LOADER_FIREWIRE_SUPPORT build variable as been renamed to
671	WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed
672	to WITH/OUT_LOADER_GELI.
673
67420171106:
675	The naive and non-compliant support of posix_fallocate(2) in ZFS
676	has been removed as of r325320.  The system call now returns EINVAL
677	when used on a ZFS file.  Although the new behavior complies with the
678	standard, some consumers are not prepared to cope with it.
679	One known victim is lld prior to r325420.
680
68120171102:
682	Building in a FreeBSD src checkout will automatically create object
683	directories now rather than store files in the current directory if
684	'make obj' was not ran.  Calling 'make obj' is no longer necessary.
685	This feature can be disabled by setting WITHOUT_AUTO_OBJ=yes in
686	/etc/src-env.conf (not /etc/src.conf), or passing the option in the
687	environment.
688
68920171101:
690	The default MAKEOBJDIR has changed from /usr/obj/<srcdir> for native
691	builds, and /usr/obj/<arch>/<srcdir> for cross-builds, to a unified
692	/usr/obj/<srcdir>/<arch>.  This behavior can be changed to the old
693	format by setting WITHOUT_UNIFIED_OBJDIR=yes in /etc/src-env.conf,
694	the environment, or with -DWITHOUT_UNIFIED_OBJDIR when building.
695	The UNIFIED_OBJDIR option is a transitional feature that will be
696	removed for 12.0 release; please migrate to the new format for any
697	tools by looking up the OBJDIR used by 'make -V .OBJDIR' means rather
698	than hardcoding paths.
699
70020171028:
701	The native-xtools target no longer installs the files by default to the
702	OBJDIR.  Use the native-xtools-install target with a DESTDIR to install
703	to ${DESTDIR}/${NXTP} where NXTP defaults to /nxb-bin.
704
70520171021:
706	As part of the boot loader infrastructure cleanup, LOADER_*_SUPPORT
707	options are changing from controlling the build if defined / undefined
708	to controlling the build with explicit 'yes' or 'no' values. They will
709	shift to WITH/WITHOUT options to match other options in the system.
710
71120171010:
712	libstand has turned into a private library for sys/boot use only.
713	It is no longer supported as a public interface outside of sys/boot.
714
71520171005:
716	The arm port has split armv6 into armv6 and armv7. armv7 is now
717	a valid TARGET_ARCH/MACHINE_ARCH setting. If you have an armv7 system
718	and are running a kernel from before r324363, you will need to add
719	MACHINE_ARCH=armv7 to 'make buildworld' to do a native build.
720
72120171003:
722	When building multiple kernels using KERNCONF, non-existent KERNCONF
723	files will produce an error and buildkernel will fail. Previously
724	missing KERNCONF files silently failed giving no indication as to
725	why, only to subsequently discover during installkernel that the
726	desired kernel was never built in the first place.
727
72820170912:
729	The default serial number format for CTL LUNs has changed.  This will
730	affect users who use /dev/diskid/* device nodes, or whose FibreChannel
731	or iSCSI clients care about their LUNs' serial numbers.  Users who
732	require serial number stability should hardcode serial numbers in
733	/etc/ctl.conf .
734
73520170912:
736	For 32-bit arm compiled for hard-float support, soft-floating point
737	binaries now always get their shared libraries from
738	LD_SOFT_LIBRARY_PATH (in the past, this was only used if
739	/usr/libsoft also existed). Only users with a hard-float ld.so, but
740	soft-float everything else should be affected.
741
74220170826:
743	The geli password typed at boot is now hidden.  To restore the previous
744	behavior, see geli(8) for configuration options.
745
74620170825:
747	Move PMTUD blackhole counters to TCPSTATS and remove them from bare
748	sysctl values.  Minor nit, but requires a rebuild of both world/kernel
749	to complete.
750
75120170814:
752	"make check" behavior (made in ^/head@r295380) has been changed to
753	execute from a limited sandbox, as opposed to executing from
754	${TESTSDIR}.
755
756	Behavioral changes:
757	- The "beforecheck" and "aftercheck" targets are now specified.
758	- ${CHECKDIR} (added in commit noted above) has been removed.
759	- Legacy behavior can be enabled by setting
760	  WITHOUT_MAKE_CHECK_USE_SANDBOX in src.conf(5) or the environment.
761
762	If the limited sandbox mode is enabled, "make check" will execute
763	"make distribution", then install, execute the tests, and clean up the
764	sandbox if successful.
765
766	The "make distribution" and "make install" targets are typically run as
767	root to set appropriate permissions and ownership at installation time.
768	The end-user should set "WITH_INSTALL_AS_USER" in src.conf(5) or the
769	environment if executing "make check" with limited sandbox mode using
770	an unprivileged user.
771
77220170808:
773	Since the switch to GPT disk labels, fsck for UFS/FFS has been
774	unable to automatically find alternate superblocks. As of r322297,
775	the information needed to find alternate superblocks has been
776	moved to the end of the area reserved for the boot block.
777	Filesystems created with a newfs of this vintage or later
778	will create the recovery information. If you have a filesystem
779	created prior to this change and wish to have a recovery block
780	created for your filesystem, you can do so by running fsck in
781	foreground mode (i.e., do not use the -p or -y options). As it
782	starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS''
783	to which you should answer yes.
784
78520170728:
786	As of r321665, an NFSv4 server configuration that services
787	Kerberos mounts or clients that do not support the uid/gid in
788	owner/owner_group string capability, must explicitly enable
789	the nfsuserd daemon by adding nfsuserd_enable="YES" to the
790	machine's /etc/rc.conf file.
791
79220170722:
793	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0.
794	Please see the 20141231 entry below for information about prerequisites
795	and upgrading, if you are not already using clang 3.5.0 or higher.
796
79720170701:
798	WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the
799	r-commands (rlogin, rsh, etc.) to be built with the base system.
800
80120170625:
802	The FreeBSD/powerpc platform now uses a 64-bit type for time_t.  This is
803	a very major ABI incompatible change, so users of FreeBSD/powerpc must
804	be careful when performing source upgrades.  It is best to run
805	'make installworld' from an alternate root system, either a live
806	CD/memory stick, or a temporary root partition.  Additionally, all ports
807	must be recompiled.  powerpc64 is largely unaffected, except in the case
808	of 32-bit compatibility.  All 32-bit binaries will be affected.
809
81020170623:
811	Forward compatibility for the "ino64" project have been committed. This
812	will allow most new binaries to run on older kernels in a limited
813	fashion.  This prevents many of the common foot-shooting actions in the
814	upgrade as well as the limited ability to roll back the kernel across
815	the ino64 upgrade. Complicated use cases may not work properly, though
816	enough simpler ones work to allow recovery in most situations.
817
81820170620:
819	Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC
820	if you require the GPL compiler.
821
82220170618:
823	The internal ABI used for communication between the NFS kernel modules
824	was changed by r320085, so __FreeBSD_version was bumped to
825	ensure all the NFS related modules are updated together.
826
82720170617:
828	The ABI of struct event was changed by extending the data
829	member to 64bit and adding ext fields.  For upgrade, same
830	precautions as for the entry 20170523 "ino64" must be
831	followed.
832
83320170531:
834	The GNU roff toolchain has been removed from base. To render manpages
835	which are not supported by mandoc(1), man(1) can fallback on GNU roff
836	from ports (and recommends to install it).
837	To render roff(7) documents, consider using GNU roff from ports or the
838	heirloom doctools roff toolchain from ports via pkg install groff or
839	via pkg install heirloom-doctools.
840
84120170524:
842	The ath(4) and ath_hal(4) modules now build piecemeal to allow for
843	smaller runtime footprint builds.  This is useful for embedded systems
844	which only require one chipset support.
845
846	If you load it as a module, make sure this is in /boot/loader.conf:
847
848	if_ath_load="YES"
849
850	This will load the HAL, all chip/RF backends and if_ath_pci.
851	If you have if_ath_pci in /boot/loader.conf, ensure it is after
852	if_ath or it will not load any HAL chipset support.
853
854	If you want to selectively load things (eg on ye cheape ARM/MIPS
855	platforms where RAM is at a premium) you should:
856
857	* load ath_hal
858	* load the chip modules in question
859	* load ath_rate, ath_dfs
860	* load ath_main
861	* load if_ath_pci and/or if_ath_ahb depending upon your particular
862	  bus bind type - this is where probe/attach is done.
863
864	For further comments/feedback, poke adrian@ .
865
86620170523:
867	The "ino64" 64-bit inode project has been committed, which extends
868	a number of types to 64 bits.  Upgrading in place requires care and
869	adherence to the documented upgrade procedure.
870
871	If using a custom kernel configuration ensure that the
872	COMPAT_FREEBSD11 option is included (as during the upgrade the
873	system will be running the ino64 kernel with the existing world).
874
875	For the safest in-place upgrade begin by removing previous build
876	artifacts via "rm -rf /usr/obj/*".   Then, carefully follow the
877	full procedure documented below under the heading "To rebuild
878	everything and install it on the current system."  Specifically,
879	a reboot is required after installing the new kernel before
880	installing world.
881
88220170424:
883	The NATM framework including the en(4), fatm(4), hatm(4), and
884	patm(4) devices has been removed.  Consumers should plan a
885	migration before the end-of-life date for FreeBSD 11.
886
88720170420:
888	GNU diff has been replaced by a BSD licensed diff. Some features of GNU
889	diff has not been implemented, if those are needed a newer version of
890	GNU diff is available via the diffutils package under the gdiff name.
891
89220170413:
893	As of r316810 for ipfilter, keep frags is no longer assumed when
894	keep state is specified in a rule. r316810 aligns ipfilter with
895	documentation in man pages separating keep frags from keep state.
896	This allows keep state to be specified without forcing keep frags
897	and allows keep frags to be specified independently of keep state.
898	To maintain previous behaviour, also specify keep frags with
899	keep state (as documented in ipf.conf.5).
900
90120170407:
902	arm64 builds now use the base system LLD 4.0.0 linker by default,
903	instead of requiring that the aarch64-binutils port or package be
904	installed. To continue using aarch64-binutils, set
905	CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin .
906
90720170405:
908	The UDP optimization in entry 20160818 that added the sysctl
909	net.inet.udp.require_l2_bcast has been reverted.  L2 broadcast
910	packets will no longer be treated as L3 broadcast packets.
911
91220170331:
913	Binds and sends to the loopback addresses, IPv6 and IPv4, will now
914	use any explicitly assigned loopback address available in the jail
915	instead of using the first assigned address of the jail.
916
91720170329:
918	The ctl.ko module no longer implements the iSCSI target frontend:
919	cfiscsi.ko does instead.
920
921	If building cfiscsi.ko as a kernel module, the module can be loaded
922	via one of the following methods:
923	- `cfiscsi_load="YES"` in loader.conf(5).
924	- Add `cfiscsi` to `$kld_list` in rc.conf(5).
925	- ctladm(8)/ctld(8), when compiled with iSCSI support
926	  (`WITH_ISCSI=yes` in src.conf(5))
927
928	Please see cfiscsi(4) for more details.
929
93020170316:
931	The mmcsd.ko module now additionally depends on geom_flashmap.ko.
932	Also, mmc.ko and mmcsd.ko need to be a matching pair built from the
933	same source (previously, the dependency of mmcsd.ko on mmc.ko was
934	missing, but mmcsd.ko now will refuse to load if it is incompatible
935	with mmc.ko).
936
93720170315:
938	The syntax of ipfw(8) named states was changed to avoid ambiguity.
939	If you have used named states in the firewall rules, you need to modify
940	them after installworld and before rebooting. Now named states must
941	be prefixed with colon.
942
94320170311:
944	The old drm (sys/dev/drm/) drivers for i915 and radeon have been
945	removed as the userland we provide cannot use them. The KMS version
946	(sys/dev/drm2) supports the same hardware.
947
94820170302:
949	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0.
950	Please see the 20141231 entry below for information about prerequisites
951	and upgrading, if you are not already using clang 3.5.0 or higher.
952
95320170221:
954	The code that provides support for ZFS .zfs/ directory functionality
955	has been reimplemented.  It's not possible now to create a snapshot
956	by mkdir under .zfs/snapshot/.  That should be the only user visible
957	change.
958
95920170216:
960	EISA bus support has been removed. The WITH_EISA option is no longer
961	valid.
962
96320170215:
964	MCA bus support has been removed.
965
96620170127:
967	The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed
968	WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC.
969
97020170112:
971	The EM_MULTIQUEUE kernel configuration option is deprecated now that
972	the em(4) driver conforms to iflib specifications.
973
97420170109:
975	The igb(4), em(4) and lem(4) ethernet drivers are now implemented via
976	IFLIB.  If you have a custom kernel configuration that excludes em(4)
977	but you use igb(4), you need to re-add em(4) to your custom configuration.
978
97920161217:
980	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1.
981	Please see the 20141231 entry below for information about prerequisites
982	and upgrading, if you are not already using clang 3.5.0 or higher.
983
98420161124:
985	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0.
986	Please see the 20141231 entry below for information about prerequisites
987	and upgrading, if you are not already using clang 3.5.0 or higher.
988
98920161119:
990	The layout of the pmap structure has changed for powerpc to put the pmap
991	statistics at the front for all CPU variations.  libkvm(3) and all tools
992	that link against it need to be recompiled.
993
99420161030:
995	isl(4) and cyapa(4) drivers now require a new driver,
996	chromebook_platform(4), to work properly on Chromebook-class hardware.
997	On other types of hardware the drivers may need to be configured using
998	device hints.  Please see the corresponding manual pages for details.
999
100020161017:
1001	The urtwn(4) driver was merged into rtwn(4) and now consists of
1002	rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific
1003	parts.
1004	Also, firmware for RTL8188CE was renamed due to possible name
1005	conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B))
1006
100720161015:
1008	GNU rcs has been removed from base.  It is available as packages:
1009	- rcs: Latest GPLv3 GNU rcs version.
1010	- rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was
1011	removed from base.
1012
101320161008:
1014	Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control
1015	modules now requires that the kernel configuration contain the
1016	TCP_HHOOK option. (This option is included in the GENERIC kernel.)
1017
101820161003:
1019	The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired.
1020	ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy.
1021
102220160924:
1023	Relocatable object files with the extension of .So have been renamed
1024	to use an extension of .pico instead.  The purpose of this change is
1025	to avoid a name clash with shared libraries on case-insensitive file
1026	systems.  On those file systems, foo.So is the same file as foo.so.
1027
102820160918:
1029	GNU rcs has been turned off by default.  It can (temporarily) be built
1030	again by adding WITH_RCS knob in src.conf.
1031	Otherwise, GNU rcs is available from packages:
1032	- rcs: Latest GPLv3 GNU rcs version.
1033	- rcs57: Copy of the latest version of GNU rcs (GPLv2) from base.
1034
103520160918:
1036	The backup_uses_rcs functionality has been removed from rc.subr.
1037
103820160908:
1039	The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into
1040	two separate components, QUEUE_MACRO_DEBUG_TRACE and
1041	QUEUE_MACRO_DEBUG_TRASH.  Define both for the original
1042	QUEUE_MACRO_DEBUG behavior.
1043
104420160824:
1045	r304787 changed some ioctl interfaces between the iSCSI userspace
1046	programs and the kernel.  ctladm, ctld, iscsictl, and iscsid must be
1047	rebuilt to work with new kernels.  __FreeBSD_version has been bumped
1048	to 1200005.
1049
105020160818:
1051	The UDP receive code has been updated to only treat incoming UDP
1052	packets that were addressed to an L2 broadcast address as L3
1053	broadcast packets.  It is not expected that this will affect any
1054	standards-conforming UDP application.  The new behaviour can be
1055	disabled by setting the sysctl net.inet.udp.require_l2_bcast to
1056	0.
1057
105820160818:
1059	Remove the openbsd_poll system call.
1060	__FreeBSD_version has been bumped because of this.
1061
106220160708:
1063	The stable/11 branch has been created from head@r302406.
1064
106520160622:
1066	The libc stub for the pipe(2) system call has been replaced with
1067	a wrapper that calls the pipe2(2) system call and the pipe(2)
1068	system call is now only implemented by the kernels that include
1069	"options COMPAT_FREEBSD10" in their config file (this is the
1070	default).  Users should ensure that this option is enabled in
1071	their kernel or upgrade userspace to r302092 before upgrading their
1072	kernel.
1073
107420160527:
1075	CAM will now strip leading spaces from SCSI disks' serial numbers.
1076	This will affect users who create UFS filesystems on SCSI disks using
1077	those disk's diskid device nodes.  For example, if /etc/fstab
1078	previously contained a line like
1079	"/dev/diskid/DISK-%20%20%20%20%20%20%20ABCDEFG0123456", you should
1080	change it to "/dev/diskid/DISK-ABCDEFG0123456".  Users of geom
1081	transforms like gmirror may also be affected.  ZFS users should
1082	generally be fine.
1083
108420160523:
1085	The bitstring(3) API has been updated with new functionality and
1086	improved performance.  But it is binary-incompatible with the old API.
1087	Objects built with the new headers may not be linked against objects
1088	built with the old headers.
1089
109020160520:
1091	The brk and sbrk functions have been removed from libc on arm64.
1092	Binutils from ports has been updated to not link to these
1093	functions and should be updated to the latest version before
1094	installing a new libc.
1095
109620160517:
1097	The armv6 port now defaults to hard float ABI. Limited support
1098	for running both hardfloat and soft float on the same system
1099	is available using the libraries installed with -DWITH_LIBSOFT.
1100	This has only been tested as an upgrade path for installworld
1101	and packages may fail or need manual intervention to run. New
1102	packages will be needed.
1103
1104	To update an existing self-hosted armv6hf system, you must add
1105	TARGET_ARCH=armv6 on the make command line for both the build
1106	and the install steps.
1107
110820160510:
1109	Kernel modules compiled outside of a kernel build now default to
1110	installing to /boot/modules instead of /boot/kernel.  Many kernel
1111	modules built this way (such as those in ports) already overrode
1112	KMODDIR explicitly to install into /boot/modules.  However,
1113	manually building and installing a module from /sys/modules will
1114	now install to /boot/modules instead of /boot/kernel.
1115
111620160414:
1117	The CAM I/O scheduler has been committed to the kernel. There should be
1118	no user visible impact. This does enable NCQ Trim on ada SSDs. While the
1119	list of known rogues that claim support for this but actually corrupt
1120	data is believed to be complete, be on the lookout for data
1121	corruption. The known rogue list is believed to be complete:
1122
1123		o Crucial MX100, M550 drives with MU01 firmware.
1124		o Micron M510 and M550 drives with MU01 firmware.
1125		o Micron M500 prior to MU07 firmware
1126		o Samsung 830, 840, and 850 all firmwares
1127		o FCCT M500 all firmwares
1128
1129	Crucial has firmware http://www.crucial.com/usa/en/support-ssd-firmware
1130	with working NCQ TRIM. For Micron branded drives, see your sales rep for
1131	updated firmware. Black listed drives will work correctly because these
1132	drives work correctly so long as no NCQ TRIMs are sent to them. Given
1133	this list is the same as found in Linux, it's believed there are no
1134	other rogues in the market place. All other models from the above
1135	vendors work.
1136
1137	To be safe, if you are at all concerned, you can quirk each of your
1138	drives to prevent NCQ from being sent by setting:
1139		kern.cam.ada.X.quirks="0x2"
1140	in loader.conf. If the drive requires the 4k sector quirk, set the
1141	quirks entry to 0x3.
1142
114320160330:
1144	The FAST_DEPEND build option has been removed and its functionality is
1145	now the one true way.  The old mkdep(1) style of 'make depend' has
1146	been removed.  See 20160311 for further details.
1147
114820160317:
1149	Resource range types have grown from unsigned long to uintmax_t.  All
1150	drivers, and anything using libdevinfo, need to be recompiled.
1151
115220160311:
1153	WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree
1154	builds.  It no longer runs mkdep(1) during 'make depend', and the
1155	'make depend' stage can safely be skipped now as it is auto ran
1156	when building 'make all' and will generate all SRCS and DPSRCS before
1157	building anything else.  Dependencies are gathered at compile time with
1158	-MF flags kept in separate .depend files per object file.  Users should
1159	run 'make cleandepend' once if using -DNO_CLEAN to clean out older
1160	stale .depend files.
1161
116220160306:
1163	On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into
1164	kernel modules.  Therefore, if you load any kernel modules at boot time,
1165	please install the boot loaders after you install the kernel, but before
1166	rebooting, e.g.:
1167
1168	make buildworld
1169	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1170	make installkernel KERNCONF=YOUR_KERNEL_HERE
1171	make -C sys/boot install
1172	<reboot in single user>
1173
1174	Then follow the usual steps, described in the General Notes section,
1175	below.
1176
117720160305:
1178	Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0.  Please
1179	see the 20141231 entry below for information about prerequisites and
1180	upgrading, if you are not already using clang 3.5.0 or higher.
1181
118220160301:
1183	The AIO subsystem is now a standard part of the kernel.  The
1184	VFS_AIO kernel option and aio.ko kernel module have been removed.
1185	Due to stability concerns, asynchronous I/O requests are only
1186	permitted on sockets and raw disks by default.  To enable
1187	asynchronous I/O requests on all file types, set the
1188	vfs.aio.enable_unsafe sysctl to a non-zero value.
1189
119020160226:
1191	The ELF object manipulation tool objcopy is now provided by the
1192	ELF Tool Chain project rather than by GNU binutils. It should be a
1193	drop-in replacement, with the addition of arm64 support. The
1194	(temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set
1195	to obtain the GNU version if necessary.
1196
119720160129:
1198	Building ZFS pools on top of zvols is prohibited by default.  That
1199	feature has never worked safely; it's always been prone to deadlocks.
1200	Using a zvol as the backing store for a VM guest's virtual disk will
1201	still work, even if the guest is using ZFS.  Legacy behavior can be
1202	restored by setting vfs.zfs.vol.recursive=1.
1203
120420160119:
1205	The NONE and HPN patches has been removed from OpenSSH.  They are
1206	still available in the security/openssh-portable port.
1207
120820160113:
1209	With the addition of ypldap(8), a new _ypldap user is now required
1210	during installworld. "mergemaster -p" can be used to add the user
1211	prior to installworld, as documented in the handbook.
1212
121320151216:
1214	The tftp loader (pxeboot) now uses the option root-path directive. As a
1215	consequence it no longer looks for a pxeboot.4th file on the tftp
1216	server. Instead it uses the regular /boot infrastructure as with the
1217	other loaders.
1218
121920151211:
1220	The code to start recording plug and play data into the modules has
1221	been committed. While the old tools will properly build a new kernel,
1222	a number of warnings about "unknown metadata record 4" will be produced
1223	for an older kldxref. To avoid such warnings, make sure to rebuild
1224	the kernel toolchain (or world). Make sure that you have r292078 or
1225	later when trying to build 292077 or later before rebuilding.
1226
122720151207:
1228	Debug data files are now built by default with 'make buildworld' and
1229	installed with 'make installworld'. This facilitates debugging but
1230	requires more disk space both during the build and for the installed
1231	world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes
1232	in src.conf(5).
1233
123420151130:
1235	r291527 changed the internal interface between the nfsd.ko and
1236	nfscommon.ko modules. As such, they must both be upgraded to-gether.
1237	__FreeBSD_version has been bumped because of this.
1238
123920151108:
1240	Add support for unicode collation strings leads to a change of
1241	order of files listed by ls(1) for example. To get back to the old
1242	behaviour, set LC_COLLATE environment variable to "C".
1243
1244	Databases administrators will need to reindex their databases given
1245	collation results will be different.
1246
1247	Due to a bug in install(1) it is recommended to remove the ancient
1248	locales before running make installworld.
1249
1250	rm -rf /usr/share/locale/*
1251
125220151030:
1253	The OpenSSL has been upgraded to 1.0.2d.  Any binaries requiring
1254	libcrypto.so.7 or libssl.so.7 must be recompiled.
1255
125620151020:
1257	Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0.
1258	Kernel modules isp_2400_multi and isp_2500_multi were removed and
1259	should be replaced with isp_2400 and isp_2500 modules respectively.
1260
126120151017:
1262	The build previously allowed using 'make -n' to not recurse into
1263	sub-directories while showing what commands would be executed, and
1264	'make -n -n' to recursively show commands.  Now 'make -n' will recurse
1265	and 'make -N' will not.
1266
126720151012:
1268	If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster
1269	and etcupdate will now use this file. A custom sendmail.cf is now
1270	updated via this mechanism rather than via installworld.  If you had
1271	excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may
1272	want to remove the exclusion or change it to "always install".
1273	/etc/mail/sendmail.cf is now managed the same way regardless of
1274	whether SENDMAIL_MC/SENDMAIL_CF is used.  If you are not using
1275	SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior.
1276
127720151011:
1278	Compatibility shims for legacy ATA device names have been removed.
1279	It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases
1280	and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.*
1281	environment variables, /dev/ad* and /dev/ar* symbolic links.
1282
128320151006:
1284	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0.
1285	Please see the 20141231 entry below for information about prerequisites
1286	and upgrading, if you are not already using clang 3.5.0 or higher.
1287
128820150924:
1289	Kernel debug files have been moved to /usr/lib/debug/boot/kernel/,
1290	and renamed from .symbols to .debug. This reduces the size requirements
1291	on the boot partition or file system and provides consistency with
1292	userland debug files.
1293
1294	When using the supported kernel installation method the
1295	/usr/lib/debug/boot/kernel directory will be renamed (to kernel.old)
1296	as is done with /boot/kernel.
1297
1298	Developers wishing to maintain the historical behavior of installing
1299	debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5).
1300
130120150827:
1302	The wireless drivers had undergone changes that remove the 'parent
1303	interface' from the ifconfig -l output. The rc.d network scripts
1304	used to check presence of a parent interface in the list, so old
1305	scripts would fail to start wireless networking. Thus, etcupdate(3)
1306	or mergemaster(8) run is required after kernel update, to update your
1307	rc.d scripts in /etc.
1308
130920150827:
1310	pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl'
1311	These configurations are now automatically interpreted as
1312	'scrub fragment reassemble'.
1313
131420150817:
1315	Kernel-loadable modules for the random(4) device are back. To use
1316	them, the kernel must have
1317
1318	device	random
1319	options	RANDOM_LOADABLE
1320
1321	kldload(8) can then be used to load random_fortuna.ko
1322	or random_yarrow.ko. Please note that due to the indirect
1323	function calls that the loadable modules need to provide,
1324	the build-in variants will be slightly more efficient.
1325
1326	The random(4) kernel option RANDOM_DUMMY has been retired due to
1327	unpopularity. It was not all that useful anyway.
1328
132920150813:
1330	The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired.
1331	Control over building the ELF Tool Chain tools is now provided by
1332	the WITHOUT_TOOLCHAIN knob.
1333
133420150810:
1335	The polarity of Pulse Per Second (PPS) capture events with the
1336	uart(4) driver has been corrected.  Prior to this change the PPS
1337	"assert" event corresponded to the trailing edge of a positive PPS
1338	pulse and the "clear" event was the leading edge of the next pulse.
1339
1340	As the width of a PPS pulse in a typical GPS receiver is on the
1341	order of 1 millisecond, most users will not notice any significant
1342	difference with this change.
1343
1344	Anyone who has compensated for the historical polarity reversal by
1345	configuring a negative offset equal to the pulse width will need to
1346	remove that workaround.
1347
134820150809:
1349	The default group assigned to /dev/dri entries has been changed
1350	from 'wheel' to 'video' with the id of '44'. If you want to have
1351	access to the dri devices please add yourself to the video group
1352	with:
1353
1354	# pw groupmod video -m $USER
1355
135620150806:
1357	The menu.rc and loader.rc files will now be replaced during
1358	upgrades. Please migrate local changes to menu.rc.local and
1359	loader.rc.local instead.
1360
136120150805:
1362	GNU Binutils versions of addr2line, c++filt, nm, readelf, size,
1363	strings and strip have been removed. The src.conf(5) knob
1364	WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools.
1365
136620150728:
1367	As ZFS requires more kernel stack pages than is the default on some
1368	architectures e.g. i386, it now warns if KSTACK_PAGES is less than
1369	ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing).
1370
1371	Please consider using 'options KSTACK_PAGES=X' where X is greater
1372	than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations.
1373
137420150706:
1375	sendmail has been updated to 8.15.2.  Starting with FreeBSD 11.0
1376	and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by
1377	default, i.e., they will not contain "::".  For example, instead
1378	of ::1, it will be 0:0:0:0:0:0:0:1.  This permits a zero subnet
1379	to have a more specific match, such as different map entries for
1380	IPv6:0:0 vs IPv6:0.  This change requires that configuration
1381	data (including maps, files, classes, custom ruleset, etc.) must
1382	use the same format, so make certain such configuration data is
1383	upgrading.  As a very simple check search for patterns like
1384	'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'.  To return to the old
1385	behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or
1386	the cf option UseCompressedIPv6Addresses.
1387
138820150630:
1389	The default kernel entropy-processing algorithm is now
1390	Fortuna, replacing Yarrow.
1391
1392	Assuming you have 'device random' in your kernel config
1393	file, the configurations allow a kernel option to override
1394	this default. You may choose *ONE* of:
1395
1396	options	RANDOM_YARROW	# Legacy /dev/random algorithm.
1397	options	RANDOM_DUMMY	# Blocking-only driver.
1398
1399	If you have neither, you get Fortuna.  For most people,
1400	read no further, Fortuna will give a /dev/random that works
1401	like it always used to, and the difference will be irrelevant.
1402
1403	If you remove 'device random', you get *NO* kernel-processed
1404	entropy at all. This may be acceptable to folks building
1405	embedded systems, but has complications. Carry on reading,
1406	and it is assumed you know what you need.
1407
1408	*PLEASE* read random(4) and random(9) if you are in the
1409	habit of tweaking kernel configs, and/or if you are a member
1410	of the embedded community, wanting specific and not-usual
1411	behaviour from your security subsystems.
1412
1413	NOTE!! If you use RANDOM_DUMMY and/or have no 'device
1414	random', you will NOT have a functioning /dev/random, and
1415	many cryptographic features will not work, including SSH.
1416	You may also find strange behaviour from the random(3) set
1417	of library functions, in particular sranddev(3), srandomdev(3)
1418	and arc4random(3). The reason for this is that the KERN_ARND
1419	sysctl only returns entropy if it thinks it has some to
1420	share, and with RANDOM_DUMMY or no 'device random' this
1421	will never happen.
1422
142320150623:
1424	An additional fix for the issue described in the 20150614 sendmail
1425	entry below has been committed in revision 284717.
1426
142720150616:
1428	FreeBSD's old make (fmake) has been removed from the system. It is
1429	available as the devel/fmake port or via pkg install fmake.
1430
143120150615:
1432	The fix for the issue described in the 20150614 sendmail entry
1433	below has been committed in revision 284436.  The work
1434	around described in that entry is no longer needed unless the
1435	default setting is overridden by a confDH_PARAMETERS configuration
1436	setting of '5' or pointing to a 512 bit DH parameter file.
1437
143820150614:
1439	ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from
1440	atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf
1441	and devel/kyua to version 0.20+ and adjust any calling code to work
1442	with Kyuafile and kyua.
1443
144420150614:
1445	The import of openssl to address the FreeBSD-SA-15:10.openssl
1446	security advisory includes a change which rejects handshakes
1447	with DH parameters below 768 bits.  sendmail releases prior
1448	to 8.15.2 (not yet released), defaulted to a 512 bit
1449	DH parameter setting for client connections.  To work around
1450	this interoperability, sendmail can be configured to use a
1451	2048 bit DH parameter by:
1452
1453	1. Edit /etc/mail/`hostname`.mc
1454	2. If a setting for confDH_PARAMETERS does not exist or
1455	   exists and is set to a string beginning with '5',
1456	   replace it with '2'.
1457	3. If a setting for confDH_PARAMETERS exists and is set to
1458	   a file path, create a new file with:
1459		openssl dhparam -out /path/to/file 2048
1460	4. Rebuild the .cf file:
1461		cd /etc/mail/; make; make install
1462	5. Restart sendmail:
1463		cd /etc/mail/; make restart
1464
1465	A sendmail patch is coming, at which time this file will be
1466	updated.
1467
146820150604:
1469	Generation of legacy formatted entries have been disabled by default
1470	in pwd_mkdb(8), as all base system consumers of the legacy formatted
1471	entries were converted to use the new format by default when the new,
1472	machine independent format have been added and supported since FreeBSD
1473	5.x.
1474
1475	Please see the pwd_mkdb(8) manual page for further details.
1476
147720150525:
1478	Clang and llvm have been upgraded to 3.6.1 release.  Please see the
1479	20141231 entry below for information about prerequisites and upgrading,
1480	if you are not already using 3.5.0 or higher.
1481
148220150521:
1483	TI platform code switched to using vendor DTS files and this update
1484	may break existing systems running on Beaglebone, Beaglebone Black,
1485	and Pandaboard:
1486
1487	- dtb files should be regenerated/reinstalled. Filenames are the
1488	  same but content is different now
1489	- GPIO addressing was changed, now each GPIO bank (32 pins per bank)
1490	  has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old
1491	  addressing scheme is now pin 25 on /dev/gpioc3.
1492	- Pandaboard: /etc/ttys should be updated, serial console device is
1493	  now /dev/ttyu2, not /dev/ttyu0
1494
149520150501:
1496	soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim.
1497	If you need the GNU extension from groff soelim(1), install groff
1498	from package: pkg install groff, or via ports: textproc/groff.
1499
150020150423:
1501	chmod, chflags, chown and chgrp now affect symlinks in -R mode as
1502	defined in symlink(7); previously symlinks were silently ignored.
1503
150420150415:
1505	The const qualifier has been removed from iconv(3) to comply with
1506	POSIX.  The ports tree is aware of this from r384038 onwards.
1507
150820150416:
1509	Libraries specified by LIBADD in Makefiles must have a corresponding
1510	DPADD_<lib> variable to ensure correct dependencies.  This is now
1511	enforced in src.libnames.mk.
1512
151320150324:
1514	From legacy ata(4) driver was removed support for SATA controllers
1515	supported by more functional drivers ahci(4), siis(4) and mvs(4).
1516	Kernel modules ataahci and ataadaptec were removed completely,
1517	replaced by ahci and mvs modules respectively.
1518
151920150315:
1520	Clang, llvm and lldb have been upgraded to 3.6.0 release.  Please see
1521	the 20141231 entry below for information about prerequisites and
1522	upgrading, if you are not already using 3.5.0 or higher.
1523
152420150307:
1525	The 32-bit PowerPC kernel has been changed to a position-independent
1526	executable. This can only be booted with a version of loader(8)
1527	newer than January 31, 2015, so make sure to update both world and
1528	kernel before rebooting.
1529
153020150217:
1531	If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014),
1532	but before r278950, the RNG was not seeded properly.  Immediately
1533	upgrade the kernel to r278950 or later and regenerate any keys (e.g.
1534	ssh keys or openssl keys) that were generated w/ a kernel from that
1535	range.  This does not affect programs that directly used /dev/random
1536	or /dev/urandom.  All userland uses of arc4random(3) are affected.
1537
153820150210:
1539	The autofs(4) ABI was changed in order to restore binary compatibility
1540	with 10.1-RELEASE.  The automountd(8) daemon needs to be rebuilt to work
1541	with the new kernel.
1542
154320150131:
1544	The powerpc64 kernel has been changed to a position-independent
1545	executable. This can only be booted with a new version of loader(8),
1546	so make sure to update both world and kernel before rebooting.
1547
154820150118:
1549	Clang and llvm have been upgraded to 3.5.1 release.  This is a bugfix
1550	only release, no new features have been added.  Please see the 20141231
1551	entry below for information about prerequisites and upgrading, if you
1552	are not already using 3.5.0.
1553
155420150107:
1555	ELF tools addr2line, elfcopy (strip), nm, size, and strings are now
1556	taken from the ELF Tool Chain project rather than GNU binutils. They
1557	should be drop-in replacements, with the addition of arm64 support.
1558	The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the
1559	binutils tools, if necessary. See 20150805 for updated information.
1560
156120150105:
1562	The default Unbound configuration now enables remote control
1563	using a local socket.  Users who have already enabled the
1564	local_unbound service should regenerate their configuration
1565	by running "service local_unbound setup" as root.
1566
156720150102:
1568	The GNU texinfo and GNU info pages have been removed.
1569	To be able to view GNU info pages please install texinfo from ports.
1570
157120141231:
1572	Clang, llvm and lldb have been upgraded to 3.5.0 release.
1573
1574	As of this release, a prerequisite for building clang, llvm and lldb is
1575	a C++11 capable compiler and C++11 standard library.  This means that to
1576	be able to successfully build the cross-tools stage of buildworld, with
1577	clang as the bootstrap compiler, your system compiler or cross compiler
1578	should either be clang 3.3 or later, or gcc 4.8 or later, and your
1579	system C++ library should be libc++, or libdstdc++ from gcc 4.8 or
1580	later.
1581
1582	On any standard FreeBSD 10.x or 11.x installation, where clang and
1583	libc++ are on by default (that is, on x86 or arm), this should work out
1584	of the box.
1585
1586	On 9.x installations where clang is enabled by default, e.g. on x86 and
1587	powerpc, libc++ will not be enabled by default, so libc++ should be
1588	built (with clang) and installed first.  If both clang and libc++ are
1589	missing, build clang first, then use it to build libc++.
1590
1591	On 8.x and earlier installations, upgrade to 9.x first, and then follow
1592	the instructions for 9.x above.
1593
1594	Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by
1595	default, and do not build clang.
1596
1597	Many embedded systems are resource constrained, and will not be able to
1598	build clang in a reasonable time, or in some cases at all.  In those
1599	cases, cross building bootable systems on amd64 is a workaround.
1600
1601	This new version of clang introduces a number of new warnings, of which
1602	the following are most likely to appear:
1603
1604	-Wabsolute-value
1605
1606	This warns in two cases, for both C and C++:
1607	* When the code is trying to take the absolute value of an unsigned
1608	  quantity, which is effectively a no-op, and almost never what was
1609	  intended.  The code should be fixed, if at all possible.  If you are
1610	  sure that the unsigned quantity can be safely cast to signed, without
1611	  loss of information or undefined behavior, you can add an explicit
1612	  cast, or disable the warning.
1613
1614	* When the code is trying to take an absolute value, but the called
1615	  abs() variant is for the wrong type, which can lead to truncation.
1616	  If you want to disable the warning instead of fixing the code, please
1617	  make sure that truncation will not occur, or it might lead to unwanted
1618	  side-effects.
1619
1620	-Wtautological-undefined-compare and
1621	-Wundefined-bool-conversion
1622
1623	These warn when C++ code is trying to compare 'this' against NULL, while
1624	'this' should never be NULL in well-defined C++ code.  However, there is
1625	some legacy (pre C++11) code out there, which actively abuses this
1626	feature, which was less strictly defined in previous C++ versions.
1627
1628	Squid and openjdk do this, for example.  The warning can be turned off
1629	for C++98 and earlier, but compiling the code in C++11 mode might result
1630	in unexpected behavior; for example, the parts of the program that are
1631	unreachable could be optimized away.
1632
163320141222:
1634	The old NFS client and server (kernel options NFSCLIENT, NFSSERVER)
1635	kernel sources have been removed. The .h files remain, since some
1636	utilities include them. This will need to be fixed later.
1637	If "mount -t oldnfs ..." is attempted, it will fail.
1638	If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used,
1639	the utilities will report errors.
1640
164120141121:
1642	The handling of LOCAL_LIB_DIRS has been altered to skip addition of
1643	directories to top level SUBDIR variable when their parent
1644	directory is included in LOCAL_DIRS.  Users with build systems with
1645	such hierarchies and without SUBDIR entries in the parent
1646	directory Makefiles should add them or add the directories to
1647	LOCAL_DIRS.
1648
164920141109:
1650	faith(4) and faithd(8) have been removed from the base system. Faith
1651	has been obsolete for a very long time.
1652
165320141104:
1654	vt(4), the new console driver, is enabled by default. It brings
1655	support for Unicode and double-width characters, as well as
1656	support for UEFI and integration with the KMS kernel video
1657	drivers.
1658
1659	You may need to update your console settings in /etc/rc.conf,
1660	most probably the keymap. During boot, /etc/rc.d/syscons will
1661	indicate what you need to do.
1662
1663	vt(4) still has issues and lacks some features compared to
1664	syscons(4). See the wiki for up-to-date information:
1665	  https://wiki.freebsd.org/Newcons
1666
1667	If you want to keep using syscons(4), you can do so by adding
1668	the following line to /boot/loader.conf:
1669	  kern.vty=sc
1670
167120141102:
1672	pjdfstest has been integrated into kyua as an opt-in test suite.
1673	Please see share/doc/pjdfstest/README for more details on how to
1674	execute it.
1675
167620141009:
1677	gperf has been removed from the base system for architectures
1678	that use clang. Ports that require gperf will obtain it from the
1679	devel/gperf port.
1680
168120140923:
1682	pjdfstest has been moved from tools/regression/pjdfstest to
1683	contrib/pjdfstest .
1684
168520140922:
1686	At svn r271982, The default linux compat kernel ABI has been adjusted
1687	to 2.6.18 in support of the linux-c6 compat ports infrastructure
1688	update.  If you wish to continue using the linux-f10 compat ports,
1689	add compat.linux.osrelease=2.6.16 to your local sysctl.conf.  Users are
1690	encouraged to update their linux-compat packages to linux-c6 during
1691	their next update cycle.
1692
169320140729:
1694	The ofwfb driver, used to provide a graphics console on PowerPC when
1695	using vt(4), no longer allows mmap() of all physical memory. This
1696	will prevent Xorg on PowerPC with some ATI graphics cards from
1697	initializing properly unless x11-servers/xorg-server is updated to
1698	1.12.4_8 or newer.
1699
170020140723:
1701	The xdev targets have been converted to using TARGET and
1702	TARGET_ARCH instead of XDEV and XDEV_ARCH.
1703
170420140719:
1705	The default unbound configuration has been modified to address
1706	issues with reverse lookups on networks that use private
1707	address ranges.  If you use the local_unbound service, run
1708	"service local_unbound setup" as root to regenerate your
1709	configuration, then "service local_unbound reload" to load the
1710	new configuration.
1711
171220140709:
1713	The GNU texinfo and GNU info pages are not built and installed
1714	anymore, WITH_INFO knob has been added to allow to built and install
1715	them again.
1716	UPDATE: see 20150102 entry on texinfo's removal
1717
171820140708:
1719	The GNU readline library is now an INTERNALLIB - that is, it is
1720	statically linked into consumers (GDB and variants) in the base
1721	system, and the shared library is no longer installed.  The
1722	devel/readline port is available for third party software that
1723	requires readline.
1724
172520140702:
1726	The Itanium architecture (ia64) has been removed from the list of
1727	known architectures. This is the first step in the removal of the
1728	architecture.
1729
173020140701:
1731	Commit r268115 has added NFSv4.1 server support, merged from
1732	projects/nfsv4.1-server.  Since this includes changes to the
1733	internal interfaces between the NFS related modules, a full
1734	build of the kernel and modules will be necessary.
1735	__FreeBSD_version has been bumped.
1736
173720140629:
1738	The WITHOUT_VT_SUPPORT kernel config knob has been renamed
1739	WITHOUT_VT.  (The other _SUPPORT knobs have a consistent meaning
1740	which differs from the behaviour controlled by this knob.)
1741
174220140619:
1743	Maximal length of the serial number in CTL was increased from 16 to
1744	64 chars, that breaks ABI.  All CTL-related tools, such as ctladm
1745	and ctld, need to be rebuilt to work with a new kernel.
1746
174720140606:
1748	The libatf-c and libatf-c++ major versions were downgraded to 0 and
1749	1 respectively to match the upstream numbers.  They were out of
1750	sync because, when they were originally added to FreeBSD, the
1751	upstream versions were not respected.  These libraries are private
1752	and not yet built by default, so renumbering them should be a
1753	non-issue.  However, unclean source trees will yield broken test
1754	programs once the operator executes "make delete-old-libs" after a
1755	"make installworld".
1756
1757	Additionally, the atf-sh binary was made private by moving it into
1758	/usr/libexec/.  Already-built shell test programs will keep the
1759	path to the old binary so they will break after "make delete-old"
1760	is run.
1761
1762	If you are using WITH_TESTS=yes (not the default), wipe the object
1763	tree and rebuild from scratch to prevent spurious test failures.
1764	This is only needed once: the misnumbered libraries and misplaced
1765	binaries have been added to OptionalObsoleteFiles.inc so they will
1766	be removed during a clean upgrade.
1767
176820140512:
1769	Clang and llvm have been upgraded to 3.4.1 release.
1770
177120140508:
1772	We bogusly installed src.opts.mk in /usr/share/mk. This file should
1773	be removed to avoid issues in the future (and has been added to
1774	ObsoleteFiles.inc).
1775
177620140505:
1777	/etc/src.conf now affects only builds of the FreeBSD src tree. In the
1778	past, it affected all builds that used the bsd.*.mk files. The old
1779	behavior was a bug, but people may have relied upon it. To get this
1780	behavior back, you can .include /etc/src.conf from /etc/make.conf
1781	(which is still global and isn't changed). This also changes the
1782	behavior of incremental builds inside the tree of individual
1783	directories. Set MAKESYSPATH to ".../share/mk" to do that.
1784	Although this has survived make universe and some upgrade scenarios,
1785	other upgrade scenarios may have broken. At least one form of
1786	temporary breakage was fixed with MAKESYSPATH settings for buildworld
1787	as well... In cases where MAKESYSPATH isn't working with this
1788	setting, you'll need to set it to the full path to your tree.
1789
1790	One side effect of all this cleaning up is that bsd.compiler.mk
1791	is no longer implicitly included by bsd.own.mk. If you wish to
1792	use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk
1793	as well.
1794
179520140430:
1796	The lindev device has been removed since /dev/full has been made a
1797	standard device.  __FreeBSD_version has been bumped.
1798
179920140424:
1800	The knob WITHOUT_VI was added to the base system, which controls
1801	building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1)
1802	in order to reorder files share/termcap and didn't build ex(1) as a
1803	build tool, so building/installing with WITH_VI is highly advised for
1804	build hosts for older releases.
1805
1806	This issue has been fixed in stable/9 and stable/10 in r277022 and
1807	r276991, respectively.
1808
180920140418:
1810	The YES_HESIOD knob has been removed. It has been obsolete for
1811	a decade. Please move to using WITH_HESIOD instead or your builds
1812	will silently lack HESIOD.
1813
181420140405:
1815	The uart(4) driver has been changed with respect to its handling
1816	of the low-level console. Previously the uart(4) driver prevented
1817	any process from changing the baudrate or the CLOCAL and HUPCL
1818	control flags. By removing the restrictions, operators can make
1819	changes to the serial console port without having to reboot.
1820	However, when getty(8) is started on the serial device that is
1821	associated with the low-level console, a misconfigured terminal
1822	line in /etc/ttys will now have a real impact.
1823	Before upgrading the kernel, make sure that /etc/ttys has the
1824	serial console device configured as 3wire without baudrate to
1825	preserve the previous behaviour. E.g:
1826	    ttyu0  "/usr/libexec/getty 3wire"  vt100  on  secure
1827
182820140306:
1829	Support for libwrap (TCP wrappers) in rpcbind was disabled by default
1830	to improve performance.  To re-enable it, if needed, run rpcbind
1831	with command line option -W.
1832
183320140226:
1834	Switched back to the GPL dtc compiler due to updates in the upstream
1835	dts files not being supported by the BSDL dtc compiler. You will need
1836	to rebuild your kernel toolchain to pick up the new compiler. Core dumps
1837	may result while building dtb files during a kernel build if you fail
1838	to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler.
1839
184020140216:
1841	Clang and llvm have been upgraded to 3.4 release.
1842
184320140216:
1844	The nve(4) driver has been removed.  Please use the nfe(4) driver
1845	for NVIDIA nForce MCP Ethernet adapters instead.
1846
184720140212:
1848	An ABI incompatibility crept into the libc++ 3.4 import in r261283.
1849	This could cause certain C++ applications using shared libraries built
1850	against the previous version of libc++ to crash.  The incompatibility
1851	has now been fixed, but any C++ applications or shared libraries built
1852	between r261283 and r261801 should be recompiled.
1853
185420140204:
1855	OpenSSH will now ignore errors caused by kernel lacking of Capsicum
1856	capability mode support.  Please note that enabling the feature in
1857	kernel is still highly recommended.
1858
185920140131:
1860	OpenSSH is now built with sandbox support, and will use sandbox as
1861	the default privilege separation method.  This requires Capsicum
1862	capability mode support in kernel.
1863
186420140128:
1865	The libelf and libdwarf libraries have been updated to newer
1866	versions from upstream. Shared library version numbers for
1867	these two libraries were bumped. Any ports or binaries
1868	requiring these two libraries should be recompiled.
1869	__FreeBSD_version is bumped to 1100006.
1870
187120140110:
1872	If a Makefile in a tests/ directory was auto-generating a Kyuafile
1873	instead of providing an explicit one, this would prevent such
1874	Makefile from providing its own Kyuafile in the future during
1875	NO_CLEAN builds.  This has been fixed in the Makefiles but manual
1876	intervention is needed to clean an objdir if you use NO_CLEAN:
1877	  # find /usr/obj -name Kyuafile | xargs rm -f
1878
187920131213:
1880	The behavior of gss_pseudo_random() for the krb5 mechanism
1881	has changed, for applications requesting a longer random string
1882	than produced by the underlying enctype's pseudo-random() function.
1883	In particular, the random string produced from a session key of
1884	enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will
1885	be different at the 17th octet and later, after this change.
1886	The counter used in the PRF+ construction is now encoded as a
1887	big-endian integer in accordance with RFC 4402.
1888	__FreeBSD_version is bumped to 1100004.
1889
189020131108:
1891	The WITHOUT_ATF build knob has been removed and its functionality
1892	has been subsumed into the more generic WITHOUT_TESTS.  If you were
1893	using the former to disable the build of the ATF libraries, you
1894	should change your settings to use the latter.
1895
189620131025:
1897	The default version of mtree is nmtree which is obtained from
1898	NetBSD.  The output is generally the same, but may vary
1899	slightly.  If you found you need identical output adding
1900	"-F freebsd9" to the command line should do the trick.  For the
1901	time being, the old mtree is available as fmtree.
1902
190320131014:
1904	libbsdyml has been renamed to libyaml and moved to /usr/lib/private.
1905	This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg
1906	1.1.4_8 and verify bsdyml not linked in, before running "make
1907	delete-old-libs":
1908	  # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean
1909	  or
1910	  # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml
1911
191220131010:
1913	The stable/10 branch has been created in subversion from head
1914	revision r256279.
1915
1916COMMON ITEMS:
1917
1918	General Notes
1919	-------------
1920	Avoid using make -j when upgrading.  While generally safe, there are
1921	sometimes problems using -j to upgrade.  If your upgrade fails with
1922	-j, please try again without -j.  From time to time in the past there
1923	have been problems using -j with buildworld and/or installworld.  This
1924	is especially true when upgrading between "distant" versions (eg one
1925	that cross a major release boundary or several minor releases, or when
1926	several months have passed on the -current branch).
1927
1928	Sometimes, obscure build problems are the result of environment
1929	poisoning.  This can happen because the make utility reads its
1930	environment when searching for values for global variables.  To run
1931	your build attempts in an "environmental clean room", prefix all make
1932	commands with 'env -i '.  See the env(1) manual page for more details.
1933
1934	When upgrading from one major version to another it is generally best to
1935	upgrade to the latest code in the currently installed branch first, then
1936	do an upgrade to the new branch. This is the best-tested upgrade path,
1937	and has the highest probability of being successful.  Please try this
1938	approach if you encounter problems with a major version upgrade.  Since
1939	the stable 4.x branch point, one has generally been able to upgrade from
1940	anywhere in the most recent stable branch to head / current (or even the
1941	last couple of stable branches). See the top of this file when there's
1942	an exception.
1943
1944	When upgrading a live system, having a root shell around before
1945	installing anything can help undo problems. Not having a root shell
1946	around can lead to problems if pam has changed too much from your
1947	starting point to allow continued authentication after the upgrade.
1948
1949	This file should be read as a log of events. When a later event changes
1950	information of a prior event, the prior event should not be deleted.
1951	Instead, a pointer to the entry with the new information should be
1952	placed in the old entry. Readers of this file should also sanity check
1953	older entries before relying on them blindly. Authors of new entries
1954	should write them with this in mind.
1955
1956	ZFS notes
1957	---------
1958	When upgrading the boot ZFS pool to a new version, always follow
1959	these two steps:
1960
1961	1.) recompile and reinstall the ZFS boot loader and boot block
1962	(this is part of "make buildworld" and "make installworld")
1963
1964	2.) update the ZFS boot block on your boot drive
1965
1966	The following example updates the ZFS boot block on the first
1967	partition (freebsd-boot) of a GPT partitioned drive ada0:
1968	"gpart bootcode -p /boot/gptzfsboot -i 1 ada0"
1969
1970	Non-boot pools do not need these updates.
1971
1972	To build a kernel
1973	-----------------
1974	If you are updating from a prior version of FreeBSD (even one just
1975	a few days old), you should follow this procedure.  It is the most
1976	failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1977
1978	make kernel-toolchain
1979	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1980	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1981
1982	To test a kernel once
1983	---------------------
1984	If you just want to boot a kernel once (because you are not sure
1985	if it works, or if you want to boot a known bad kernel to provide
1986	debugging information) run
1987	make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1988	nextboot -k testkernel
1989
1990	To rebuild everything and install it on the current system.
1991	-----------------------------------------------------------
1992	# Note: sometimes if you are running current you gotta do more than
1993	# is listed here if you are upgrading from a really old current.
1994
1995	<make sure you have good level 0 dumps>
1996	make buildworld
1997	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1998	make installkernel KERNCONF=YOUR_KERNEL_HERE
1999							[1]
2000	<reboot in single user>				[3]
2001	mergemaster -Fp					[5]
2002	make installworld
2003	mergemaster -Fi					[4]
2004	make delete-old					[6]
2005	<reboot>
2006
2007	To cross-install current onto a separate partition
2008	--------------------------------------------------
2009	# In this approach we use a separate partition to hold
2010	# current's root, 'usr', and 'var' directories.   A partition
2011	# holding "/", "/usr" and "/var" should be about 2GB in
2012	# size.
2013
2014	<make sure you have good level 0 dumps>
2015	<boot into -stable>
2016	make buildworld
2017	make buildkernel KERNCONF=YOUR_KERNEL_HERE
2018	<maybe newfs current's root partition>
2019	<mount current's root partition on directory ${CURRENT_ROOT}>
2020	make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC
2021	make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
2022	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
2023	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
2024	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
2025	<reboot into current>
2026	<do a "native" rebuild/install as described in the previous section>
2027	<maybe install compatibility libraries from ports/misc/compat*>
2028	<reboot>
2029
2030
2031	To upgrade in-place from stable to current
2032	----------------------------------------------
2033	<make sure you have good level 0 dumps>
2034	make buildworld					[9]
2035	make buildkernel KERNCONF=YOUR_KERNEL_HERE	[8]
2036	make installkernel KERNCONF=YOUR_KERNEL_HERE
2037							[1]
2038	<reboot in single user>				[3]
2039	mergemaster -Fp					[5]
2040	make installworld
2041	mergemaster -Fi					[4]
2042	make delete-old					[6]
2043	<reboot>
2044
2045	Make sure that you've read the UPDATING file to understand the
2046	tweaks to various things you need.  At this point in the life
2047	cycle of current, things change often and you are on your own
2048	to cope.  The defaults can also change, so please read ALL of
2049	the UPDATING entries.
2050
2051	Also, if you are tracking -current, you must be subscribed to
2052	[email protected].  Make sure that before you update
2053	your sources that you have read and understood all the recent
2054	messages there.  If in doubt, please track -stable which has
2055	much fewer pitfalls.
2056
2057	[1] If you have third party modules, such as vmware, you
2058	should disable them at this point so they don't crash your
2059	system on reboot.
2060
2061	[3] From the bootblocks, boot -s, and then do
2062		fsck -p
2063		mount -u /
2064		mount -a
2065		cd src
2066		adjkerntz -i		# if CMOS is wall time
2067	Also, when doing a major release upgrade, it is required that
2068	you boot into single user mode to do the installworld.
2069
2070	[4] Note: This step is non-optional.  Failure to do this step
2071	can result in a significant reduction in the functionality of the
2072	system.  Attempting to do it by hand is not recommended and those
2073	that pursue this avenue should read this file carefully, as well
2074	as the archives of freebsd-current and freebsd-hackers mailing lists
2075	for potential gotchas.  The -U option is also useful to consider.
2076	See mergemaster(8) for more information.
2077
2078	[5] Usually this step is a no-op.  However, from time to time
2079	you may need to do this if you get unknown user in the following
2080	step.  It never hurts to do it all the time.  You may need to
2081	install a new mergemaster (cd src/usr.sbin/mergemaster && make
2082	install) after the buildworld before this step if you last updated
2083	from current before 20130425 or from -stable before 20130430.
2084
2085	[6] This only deletes old files and directories. Old libraries
2086	can be deleted by "make delete-old-libs", but you have to make
2087	sure that no program is using those libraries anymore.
2088
2089	[8] The new kernel must be able to run existing binaries used by
2090	an installworld.  When upgrading across major versions, the new
2091	kernel's configuration must include the correct COMPAT_FREEBSD<n>
2092	option for existing binaries (e.g. COMPAT_FREEBSD11 to run 11.x
2093	binaries).  Failure to do so may leave you with a system that is
2094	hard to boot to recover.  A GENERIC kernel will include suitable
2095	compatibility options to run binaries from older branches.
2096
2097	Make sure that you merge any new devices from GENERIC since the
2098	last time you updated your kernel config file.
2099
2100	[9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the
2101	"?=" instead of the "=" assignment operator, so that buildworld can
2102	override the CPUTYPE if it needs to.
2103
2104	MAKEOBJDIRPREFIX must be defined in an environment variable, and
2105	not on the command line, or in /etc/make.conf.  buildworld will
2106	warn if it is improperly defined.
2107FORMAT:
2108
2109This file contains a list, in reverse chronological order, of major
2110breakages in tracking -current.  It is not guaranteed to be a complete
2111list of such breakages, and only contains entries since September 23, 2011.
2112If you need to see UPDATING entries from before that date, you will need
2113to fetch an UPDATING file from an older FreeBSD release.
2114
2115Copyright information:
2116
2117Copyright 1998-2009 M. Warner Losh.  All Rights Reserved.
2118
2119Redistribution, publication, translation and use, with or without
2120modification, in full or in part, in any form or format of this
2121document are permitted without further permission from the author.
2122
2123THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
2124IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
2125WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
2126DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
2127INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
2128(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
2129SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2130HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
2131STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
2132IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2133POSSIBILITY OF SUCH DAMAGE.
2134
2135Contact Warner Losh if you have any questions about your use of
2136this document.
2137
2138$FreeBSD$
2139