xref: /freebsd/UPDATING (revision 16f37d97b9500a4fe2d0719161025515d477a5cd)
1Updating Information for users of FreeBSD-CURRENT.
2
3This file is maintained and copyrighted by M. Warner Losh <imp@freebsd.org>.
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://docs.freebsd.org/en/books/handbook/cutting-edge/#makeworld
10
11Items affecting the ports and packages system can be found in
12/usr/ports/UPDATING.  Please read that file before updating system packages
13and/or ports.
14
15NOTE TO PEOPLE WHO THINK THAT FreeBSD 16.x IS SLOW:
16	FreeBSD 16.x has many debugging features turned on, in both the kernel
17	and userland.  These features attempt to detect incorrect use of
18	system primitives, and encourage loud failure through extra sanity
19	checking and fail stop semantics.  They also substantially impact
20	system performance.  If you want to do performance measurement,
21	benchmarking, and optimization, you'll want to turn them off.  This
22	includes various WITNESS- related kernel options, INVARIANTS, malloc
23	debugging flags in userland, and various verbose features in the
24	kernel.  Many developers choose to disable these features on build
25	machines to maximize performance.  (To completely disable malloc
26	debugging, define WITH_MALLOC_PRODUCTION in /etc/src.conf and rebuild
27	world, or to merely disable the most expensive debugging functionality
28	at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
29
3020251102:
31	Commit e5aa60d06958 changed the internal KAPI between
32	the NFS modules.  As such, they all need to be rebuilt
33	from sources.  __FreeBSD_version was bumped to 1600004 for this.
34
3520251025:
36	flua(1) has moved to the new FreeBSD-flua package.  If you use flua,
37	you may want to install this package if it's not otherwise installed
38	as a dependency of something else.  This change only affects pkgbase
39	users.
40
4120251021:
42	Bump __FreeBSD_version to 1600002 for LinuxKPI.  An embedded struct
43	has changed size and might possibly be an issue otherwise.
44
4520251016:
46	With the migration to OpenZFS in FreeBSD 13.x a number of ZFS sysctls
47	moved to new locations, but backwards compatibility aliases were
48	provided.  These aliases will be removed in the near future.  Please
49	update /etc/sysctl.conf to reference the new OIDs.  For example,
50
51	        vfs.zfs.min_auto_ashift=12
52
53	needs to be changed to
54
55	        vfs.zfs.vdev.min_auto_ashift=12
56
5720251015:
58	The "FreeBSD-unbound" package is renamed to "FreeBSD-local-unbound".
59	If you have set-optional or set-base installed, the new package will
60	be installed automatically, otherwise you should manually install the
61	new package and remove the old one.
62
63	This change only affects pkgbase users.
64
6520251012:
66	Blacklist has been renamed upstream to Blocklist.  If you have it
67	configured, rename all configuration files, firewall anchors or
68	sentinel files to reflect the new nomenclature.  Old setups will
69	continue to work emitting a warning.
70
7120251002:
72	Audio-related utilities including mixer(8) and virtual_oss(8) have
73	moved to the new FreeBSD-sound package.  If you have set-optional or
74	set-base installed this package will be installed automatically,
75	otherwise you should install it manually if you need these utilities.
76
7720250929:
78	Both drm-kmod and nividia-drm ports had to be updated to either no
79	longer conflict on LinuxKPI vs. native PCI changes and/or to keep
80	working after some LinuxKPI PCI adjustments which were previously
81	hidden behind native PCI.
82	Bump __FreeBSD_version 1600001 so users will pick up updated packages.
83
8420250929:
85	The deprecated ftpd(8) has been removed.  Users who still need ftpd
86	can install the ftp/freebsd-ftpd port.  pkgbase users should remove
87	the orphaned FreeBSD-ftpd package.
88
8920250923:
90	Several changes which affect pkgbase users (only):
91
92	powerd has been moved to a new FreeBSD-powerd package.  If you have
93	FreeBSD-set-minimal installed, the new package will be installed
94	automatically, otherwise you may want to install it by hand.
95
96	libpmc and related utilities (/usr/sbin/pmc*) have moved to the new
97	FreeBSD-pmc package.  If you use these, you may want to install the
98	package.
99
100	The libbz2 package has been renamed to bzip2, and /usr/bin/bzip2 has
101	been moved to the new package.  If you have set-minimal installed,
102	the new package will be added automatically, otherwise you may want
103	to manually install it.
104
105	This only affects pkgbase users.
106
10720250918:
108	mandoc (including /usr/bin/man) has been moved to a new package,
109	FreeBSD-mandoc.  If you have the minimal set installed, this package
110	will be installed automatically, otherwise you may want to install it.
111
112	Kyua has been moved to the FreeBSD-kyua package, and ATF has been moved
113	to the FreeBSD-atf* packages.  If you have FreeBSD-tests installed,
114	these packages will be installed automatically, otherwise you should
115	manually install them if you need these tools.
116
117	This only affects pkgbase users.
118
11920250912:
120	If SRCCONF is unset and a file named src.conf is present at
121	the top of the source tree, it will now be used instead of
122	/etc/src.conf.
123
12420250907:
125	The MANSPLITPKG knob has been turned off by default, so pkgbase builds
126	will no longer generate "-man" subpackages; instead the manpages will
127	be shipped in the packages they belong to.  If you want to continue
128	building split man packages, set WITH_MANSPLITPKG=1.
129
13020250905:
131	FreeBSD 16.0-CURRENT.
132
13320250903:
134	The BLOAT_KERNEL_WITH_EXTERR kernel config option has been renamed to
135	EXTERR_STRINGS.
136
13720250827:
138	The names of pkg repositories defined in /etc/pkg/FreeBSD.conf have
139	changed: "FreeBSD" is now "FreeBSD-ports", and "FreeBSD-kmods" is now
140	"FreeBSD-ports-kmods".  Users with /usr/local/etc/pkg/repos files
141	which override these will need to adjust their configuration to match
142	the new names.
143
14420250823:
145	The set of pkgbase packages for Kerberos and OpenSSL has changed.
146	After updating past 250e77d4f0a5, you should check 'pkg orphans'
147	and remove any orphaned packages, then examine the output of
148	'pkg install -r base -g FreeBSD-openssl\* FreeBSD-kerberos\*'
149	and install any new packages you need.
150
15120250823:
152	To restore bridge(4)'s ABI compatibility with ifconfig from 14.x or
153	earlier, the size of struct ifbreq has changed, so you must update
154	the kernel and /sbin/ifconfig at the same time or you will not be
155	able to add interfaces to bridge.  This is particularly important
156	if you require bridge for network access during boot, in which case
157	you should install the new kernel and the new /sbin/ifconfig prior
158	to rebooting.
159
16020250820:
161	The WITHOUT_GSSAPI src.conf knob has been removed.  This was already
162	a no-op for MIT Kerberos, so this only affects builds which set
163	WITHOUT_MITKRB5=1, in which case you now always get libgssapi.
164
165	Also, Heimdal's compile_et and libcom_err are now controlled by
166	WITHOUT_KERBEROS, not WITHOUT_KERBEROS_SUPPORT.  This matches
167	the behaviour of the MIT Kerberos versions.
168
16920250820:
170	Commits 08c7dd2fbe4f and a4197ea47777 have changed the ABI between
171	libvmmapi and the vmm device. If using a custom kernel configuration,
172	please ensure that the COMPAT_FREEBSD14 option is included so older
173	versions of libvmmapi continue working as expected.
174
17520250819:
176	The CLEAN option has been switched back from default-on to default-off.
177	This reverts the 20250808 change below, which had reverted the 20240729
178	change before it.  Note that some src.conf(5) options are known to break
179	ABI or compatibility in ways that may require a clean build initially
180	when switched.
181
18220250816:
183	Sendmail's libmilter has been moved to its own package.  If you want
184	to compile applications that use libmilter, you should install the
185	FreeBSD-libmilter* packages.
186
187	If you only have FreeBSD-sendmail installed for applications that
188	require libmilter, you can now remove it.
189
19020250815:
191	The [gs]etgroups(2)syscalls have changed. To maintain backwards
192	compatibility with existing programs, you need COMPAT_FREEBSD14 in
193	your kernel config until all applications which use this are
194	rebuild/reinstalled.
195
19620250815:
197	jemalloc 5.3.0 has been committed to the tree.
198
19920250815:
200	The removal of Secure RPC DES authentication noted in 20250810
201	has been reverted.  (However, it is still non-functional.)
202
20320250813:
204	Commit cce64f2e6851 changed the internal KAPI between the NFS
205	modules.  As such, all of them need to be rebuilt from sources.
206	__FreeBSD_version has been bumped to 1500060 already today,
207	 so I will not bump it again for this.
208
20920250813:
210	The gpiobus_attach_bus() function has been removed. Drivers should now
211	use the gpiobus_add_bus() function instead. The difference being that
212	gpiobus_add_bus() doesn't call bus_attach_children(), calling it will
213	be the responsibility of the caller now.
214
21520250810:
216	Support for Secure RPC DES authentication has been removed.
217	The keyserv(8) daemon was already removed, but support for it in libc
218	has also been removed, so if you somehow still had keyserv installed,
219	it will now stop working.  There is no workaround for this.  Removing
220	DES is considered a feature.
221
22220250808:
223	The CLEAN option has been switched back from default-off to
224	default-on.  This reverts the 20240729 change below.
225
22620250807:
227	routed(8) and route6d(8) have moved to the FreeBSD-rip package.
228	If you use either of these, you should install the new package.
229
23020250806:
231	if_epair(4) now uses ether_gen_addr(9) to generate a stable MAC
232	address.
233	To keep using the random address, set the loader tunable
234	net.link.epair.ether_gen_addr=0.
235
23620250804:
237	bsdconfig (including sysrc(8)) has moved to the new bsdconfig
238	package.  If you use pkgbase and wish to use bsdconfig, you should
239	install FreeBSD-bsdconfig.
240
24120250730:
242	The usbhid(4) USB HID driver is now enabled by default, and will be
243	used in preference to other USB HID drivers like ukbd(4), ums(4), and
244	uhid(4).  Work on a FIDO/U2F driver and moused(8) is in progress.
245	The default is being switched now so that we can find and fix any
246	additional issues prior to FreeBSD 15.0.
247
248	To revert to the previous USB HID driver behavior, set the loader
249	tunable hw.usb.usbhid.enable=0.
250
25120250727:
252	bmake (i.e., /usr/bin/make and /usr/share/mk) has moved to a new
253	package, FreeBSD-bmake.  If you use pkgbase and you need make, you
254	should install this package.
255
25620250726:
257	amd64 kernel configurations must contain "options SMP".
258
25920250725:
260	gssd(8) has been moved to a new package, FreeBSD-gssd.  If you use
261	pkgbase and you need gssd, you should install this package.
262
26320250724:
264	The Kerberos packages which are built when WITH_MITKRB5 is enabled
265	have been renamed from FreeBSD-krb5* to FreeBSD-kerberos*.  This
266	affects pkgbase users who manually enabled WITH_MITKRB5, *or* use
267	the default value of WITH_MITKRB5 and updated past c7da9fb90b0b
268	(20250721) which made WITH_MITKRB5 the default.
269
270	In either case, if you have FreeBSD-krb5* packages installed, you
271	should remove them and (re)install the equivalent FreeBSD-kerberos*
272	packages instead.
273
27420250721:
275	WITH_MITKRB5 is now enabled by default. MIT KRB5 has replaced
276	Heimdal in base. Ports that use USES=gssapi must be rebuilt.
277	A clean buildworld is required.
278
27920250719:
280	Commits 392a82b225 and c00baac0ab both changed the
281	internal API between the NFS modules.  As such, all
282	these modules need to be rebuilt from sources.
283	__FreeBSD_version was bumped to 1500053 for this.
284
28520250710:
286	The shar(1) utility has been removed from base.  The
287	sysutils/freebsd-shar port was created to maintain this version of
288	shar(1) past its removal from base.
289
29020250704:
291	LinuxKPI device.h and acpi changes effecting drivers and drm-kmod.
292	Bump __FreeBSD_version 1500050 to be able to detect these changes.
293
29420250630:
295	Commits 171f66b0c2ca and 8e2a90ac8089 changed the internal
296	api between nfscommon.ko and the other nfs modules.
297	Bump __FreeBSD_version to 1500049 for this.
298	All NFS related modules must be rebuilt from up-to-date
299	sources.
300
30120250625:
302	"make delete-old" will now remove the Forth bootloader entirely
303	if the system is built with WITHOUT_FORTH.
304
30520250614:
306	MIT KRB5 (MIT Kerberos5) has been imported into 15-CURRENT. To
307	and install MIT KRB5, add WITH_MITKRB5=yes to /etc/src.conf. This
308	will build and install MIT KRB5 1.21.3. And it will remove Heimdal
309	1.5.2 when delete-old and delete-old-libs are run. To revert back
310	simply buildworld/installworld again with delete-old-libs and
311	delete-old.
312
313	At the moment we only know of a couple of ports that might be
314	affected. Adjusting libmap.conf does not circumvent runtime issues.
315	The few affected ports must be rebuilt. A successful exp-run will be
316	run before MIT KRB5 becomes default.
317
318	Those using the KDC in FreeBSD base may wish to wait. The Heimdal
319	HDB is incompatible with the MIT KRB5 KDC. The migration procedure
320	is a little involved.
321
32220250603:
323	LinuxKPI dma-mapping.h were pulled into the tree from drm-kmod.
324	Bump _FreeBSD_version to 1500045 to be able to detect this change.
325
32620250527:
327	pf changed extension header handling. It now treats AH headers on IPv4 just
328	like AH headers on IPv6 and skips over them, allowing filtering on the inner
329	protocol.
330
33120250527:
332	pf now blocks IPv6 packets with a hop-by-hop or destination options header by
333	default. Such packets can be passed by adding "allow-opts" to the rule. IPv6
334	options are now handled just like their IPv4 counterparts.
335
33620250527:
337	The CAM target layer userland, i.e. ctld(8), ctladm(8) and ctlstat(8),
338	has moved to the new FreeBSD-ctl package.  If you use pkgbase and you
339	need the CAM Target Layer, you should install the new package.
340
341	Development-related tools (e.g. ar and nm) have moved to the new
342	"FreeBSD-toolchain" package, which subsumes and obsoletes the
343	existing "FreeBSD-elftoolchain" package.  If you use pkgbase and
344	need to compile software, you should install the new package and
345	ensure the old FreeBSD-elftoolchain* packages are completely removed.
346
34720250521:
348	Commit e64fe5ad3a23 removed in6_maxmtu and its setter in6_setmaxmtu().
349	in6_maxmtu is used to store the max IPv6 MTU of all interfaces,
350	however it does not have any in-tree consumers since the introduction
351	from the KAME project. The removal should have little impact, and the
352	max IPv6 MTU can be easily retrieved by iterating over all the attached
353	interface if 3rd party modules need it.
354
35520250515:
356	Commit 772258c89f28 changed the internal API between the nfscommon
357	and nfscl modules.  Both need to be built from updated sources.
358
35920250513:
360	The bridge(4) sysctl net.link.bridge.member_ifaddrs now defaults to 0,
361	meaning that interfaces added to a bridge may not have IP addresses
362	assigned.  Refer to bridge(4) for more information.
363
36420250507:
365	UMASS quirks and auto-quirk probing has been overhauled. CAM now won't
366	send SYNCHRONIZE CACHE unless MODE PAGE 8 is present and valid. This
367	should allow more devices to work (since the auto quirk code was updated
368	in 14 and broke several e-readers and the like). Please send imp@freebsd.org
369	any regression reports.
370
37120250504:
372	Commit 9419e086e1a3 changed the internal API between the nfscommon
373	and nfscl modules.  Both need to be built from updated sources.
374
37520250412:
376	LinuxKPI alloc routines were changed to return physically contiguous
377	memory where expected. These changes may require out-of-tree drivers
378	to be recompiled.
379	Bump __FreeBSD_version to 1500037 to be able to detect this change.
380
38120250409:
382	Intel iwlwifi firmware has been removed from the src repository.
383	Before updating their system, users of iwlwifi(4) or iwx(4) must
384	install the appropriate firmware for their chipset using fwget(8) or
385	building it from ports.
386
38720250314:
388	We now use LLVM's binary utilities (nm, objcopy, etc.) by default.
389	The WITHOUT_LLVM_BINUTILS src.conf(5) knob can be used to revert to
390	ELF Tool Chain tools if desired.
391
39220250303:
393	Commit 4a77657cbc01 changed the ABI between ipfw(8) and ipfw(4).
394	Please note that the old ipfw(8) binary will not work with the new
395	ipfw(4) module. Therefore, it is recommended to disable ipfw during
396	the upgrade, otherwise the host system may become inaccessible because
397	ipfw rules cannot be installed with the old binary.
398
39920250214:
400	Commit 4517fbfd4251 modified the internal API between the
401	nfscommon and nfscl modules.  As such, both of these modules
402	need to be rebuilt from sources.
403
40420250201:
405	The NFS related daemons, that provide RPC services to the kernel:
406	gssd(8), rpcbind(8), rpc.tlsservd(8) and rpc.tlsclntd(8), now use a
407	different transport - netlink(4) socket instead of unix(4).  Users of
408	NFS need to upgrade both kernel and world (binaries and libc) at once.
409	Also, any revision between 88cd1e17a7d8 and 99e5a70046da should be
410	avoided.
411
41220250129:
413	Defer the January 19, 2038 date limit in UFS1 filesystems to
414	February 7, 2106. This affects only UFS1 format filesystems.
415	See commit message 1111a44301da for details.
416
41720250127:
418	The Allwinner a10_timer driver has been renamed to aw_driver. If you
419	have a custom kernel configuration including the line 'device
420	a10_timer', it must be adjusted to 'device aw_timer'. The same applies
421	for device exclusions with 'nodevice'.
422
42320250106:
424	A new SOC_ROCKCHIP options appeared, so if you have a custom kernel configuration
425	targeting Rockchip SoC you need to add it so shared and mandatory drivers for
426	this SoC family will be selected.
427	Also a new rk8xx device was added, this select the base driver for Rockchip PMIC.
428
42920241223:
430	The layout of NFS file handles for the tarfs, tmpfs, cd9660, and ext2fs
431	file systems has changed.  An NFS server that exports any of these file
432	systems will need its clients to unmount and remount the exports.
433
43420241216:
435	The iwm(4) firmwares are no longer compiled as kernel modules but instead
436	shipped as raw files. For pkgbase users if you use iwm(4) you will need
437	to install the FreeBSD-firmware-iwm package.
438
43920241124:
440	The OpenBSD derived bc and dc implementations and the WITHOUT_GH_BC
441	option that allowed building them instead of the advanced version
442	imported more than 4 years ago have been removed.
443
44420241107:
445	The ng_ubt(4) driver now requires firmwares to be loaded on Realtek
446	adaptors with rtlbtfw(8) utility. It no longer attaches to devices
447	standing in bootloader mode. Firmware files are available in the
448	comms/rtlbt-firmware port.
449
45020241025:
451	The support for the rc_fast_and_loose variable has been removed from
452	rc.subr(8). Users setting rc_fast_and_loose on their systems are
453	advised to make sure their customizations to rc service scripts
454	do not depend on having a single shell environment shared across
455	all the rc service scripts during booting and shutdown.
456
45720241013:
458	The ciss driver was updated to cope better with hotplug events that
459	caused it to panic before, and to support more than 48 drives attached
460	to the card. These changes were made w/o benefit of hardware for testing
461	and ciss(4) users should be on the lookout for regressions.
462
46320240729:
464	The build now defaults to WITHOUT_CLEAN - i.e., no automatic clean
465	is performed at the beginning of buildworld or buildkernel.  The
466	WITH_CLEAN src.conf(5) knob can be used to restore the previous
467	behaviour.
468
469	If you encounter incremental build issues, please report them to the
470	freebsd-current mailing list so that a special-case dependency can be
471	added, if necessary.
472
47320240715:
474	We now lean more heavily on ACPI enumeration for some traditional
475	devices. uart has moved from isa to acpi so the hints act as wiring
476	instead of device enumeration. Hints for parallel port, floppy, etc
477	have been removed.  Before upgrading, grep your dmesg for lines like:
478		uart1: non-PNP ISA device will be removed from GENERIC in FreeBSD 15.
479	to see if you need to start including hints for the device on isa
480	in your loader.conf or device.hints file. APU1 (but not APU2) boards
481	are known to be affected, but there may be others.
482
48320240712:
484	Support for armv6 has been disconnected and is being removed.
485
48620240617:
487	ifconfig now treats IPv4 addresses without a width or mask as an error.
488	Specify the desired mask or width along with the IP address on the
489	ifconfig command line and in rc.conf.
490
49120240428:
492	OpenBSM auditing runtime (auditd, etc.) has been moved into the new
493	package FreeBSD-audit.  If you use OpenBSM auditing and pkgbase, you
494	should install FreeBSD-audit.
495
49620240424:
497	cron, lpr, and ntpd have been moved from FreeBSD-utilities into their
498	own packages.  If you use pkgbase, you should install the relevant
499	packages: FreeBSD-cron, FreeBSD-lp, or FreeBSD-ntp.
500
50120240406:
502	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
503	been upgraded to 18.1.6. It is important that you run `make delete-old`
504	as described in the COMMON ITEMS section, otherwise several libc++
505	headers that are obsolete and need to be removed can cause compilation
506	errors in C++ programs.
507
50820240205:
509	For dynamically linked programs, system calls are now made from
510	libsys rather than libc.  No change in linkage is required as
511	libsys is an auxiliary filter for libc.  People building custom
512	images must ensure that libsys.so.7 is included.
513
51420240202:
515	Loader now also read configuration files listed in local_loader_conf_files.
516	Files listed here are the last ones read. And /boot/loader.conf.local was
517	moved from loader_conf_files to local_loader_conf_files leaving only
518	loader.conf and device.hints in loader_conf_files by default.
519
520	The following sequencing is applied:
521
522	1. Bootstrap:
523	    /boot/defaults/loader.conf
524
525	2. Read loader_conf_files files:
526	    /boot/device.hints
527	    /boot/loader.conf
528
529	3. Read loader_conf_dirs files:
530	    /boot/loader.conf.d/*.conf
531
532	4. And finally, rread local_loader_conf_files files:
533	    /boot/loader.conf.local
534
53520240201:
536	sendmail 8.18.1 has been imported and merged.  This version enforces
537	stricter RFC compliance by default, especially with respect to line
538	endings.  This may cause issues with receiving messages from
539	non-compliant MTAs; please see the first 8.18.1 release note in
540	contrib/sendmail/RELEASE_NOTES for mitigations.
541
54220240111:
543	Commit cc760de2183f changed the internal interface between
544	the nfscommon and nfscl modules.  As such, both need to be
545	rebuilt from sources.  Therefore, __FreeBSD_version was
546	bumped to 1500010.
547
54820231120:
549	If you have an arm64 system that uses ACPI, you will need to update your
550	loader.efi in the ESP when you update past this point.  Detection of ACPI
551	was moved earlier in the binary so the scripts could use it, but old
552	binaries don't have this, so we default to 'no ACPI' in this case. You can
553	undisable ACPI by doing
554		OK unset hint.acpi.0.disabled
555	This can also be used to recover any other system that was updated in the
556	small window where amd64 was also broken.
557
55820231113:
559	The WITHOUT_LLD_IS_LD option has been removed.  When LLD is enabled
560	it is always installed as /usr/bin/ld.
561
56220231027:
563	Forward compatibility (running the new code on old kernels) for the
564	"ino64" project have been removed. The need for it has passed long ago.
565
56620231018:
567	Commit 57ce37f9dcd0 changed the internal KAPI between the
568	nfscommon and nfscl modules.  Both must be rebuilt from sources.
569
57020231010:
571	dialog(1) has been replaced in base by bsddialog(1), while most of the
572	time replacing a dialog(1) call by a bsddialog(1) call works out of the
573	box, bsddialog(1) is not considered as a drop-in replacement for
574	dialog(1).
575
576	If you do depend on dialog(1) functionality, please install cdialog
577	from ports:
578
579	pkg install cdialog
580
58120230927:
582	The EARLY_AP_STARTUP kernel option is mandatory on x86.  The option
583	has been added to DEFAULTS, so it should automatically be included in
584	custom kernel configurations without any additional change.
585
58620230922:
587	A new loader tunable net.pf.default_to_drop allows pf(4)’s default
588	behaviour to be changed from pass to drop. Previously this required
589	recompiling the kernel with the option PF_DEFAULT_TO_DROP.
590
59120230914:
592	Enable splitting out pkgbase manpages into separate packages by
593	default. To disable this, set WITHOUT_MANSPLITPKG=yes in src.conf.
594
59520230911:
596	Move standard include files to the clibs-dev package and move clang
597	internal libraries and headers to clang and clang-dev. Upgrading systems
598	installed using pkgbase past this change involves extra steps to allow
599	for these file moves:
600
601		pkg upgrade -y FreeBSD-utilities
602		pkg upgrade -y FreeBSD-utilities-dev
603		pkg upgrade -y
604
60520230909:
606	Enable vnet sysctl variables to be loader tunable. SYSCTLs which
607	belongs to VNETs can be initialized during early boot or module
608	loading if they are marked with CTLFLAG_TUN and there are
609	corresponding kernel environment variables.
610
61120230901:
612	The WITH_INIT_ALL_PATTERN and WITH_INIT_ALL_ZERO build options have
613	been replaced by INIT_ALL=pattern and INIT_ALL=zero respectively.
614
61520230824:
616	FreeBSD 15.0-CURRENT.
617
61820230817:
619	Serial communication (in boot loaders, kernel, and userland) has
620	been changed to default to 115200 bps, in line with common industry
621	practice and typical firmware serial console redirection
622	configuration.
623
624	Note that the early x86 BIOS bootloader (i.e., boot0sio) does not
625	support rates above 9600 bps and is not changed. boot0sio users may
626	set BOOT_COMCONSOLE_SPEED=9600 to use 9600 for all of the boot
627	components, or use the standard boot0 and have the boot2 stage start
628	with the serial port at 115200.
629
63020230807:
631	Following the general removal of MIPS support, the ath(4) AHB bus-
632	frontend has been removed, too, and building of the PCI support is
633	integrated with the ath(4) main module again. As a result, there's
634	no longer a need for if_ath_pci_load="YES" in /boot/loader.conf or
635	"device ath_pci" in the kernel configuration.
636
63720230803:
638	MAXCPU has been increased to 1024 in the amd64 GENERIC kernel config.
639	Out-of-tree kernel modules will need to be rebuilt.
640
64120230724:
642	CAM has been mechanically updated s/u_int(64|32|16|8)_t/uint\1_t/g
643	to move to the standard uintXX_t types from the old, traditional
644	BSD u_intXX_t types. This should be a NOP, but may cause problems
645	for out of tree changes. The SIMs were not updated since most of
646	the old u_intXX_t uses weren't due to CAM interfaces.
647
64820230713:
649	stable/14 branch created.
650
65120230629:
652	The heuristic for detecting old chromebooks with an EC bug that requires
653	atkbdc driver workarounds has changed. There should be no functional
654	change, but if your old chromebook's keyboard stops working, please
655	file a PR and assign it to imp.
656
65720230623:
658	OpenSSL has been updated to version 3.0, including changes throughout
659	the base system.  It is important to rebuild third-party software
660	after upgrading.
661
66220230619:
663	To enable pf rdr rules for connections initiated from the host, pf
664	filter rules can be optionally enabled for packets delivered
665	locally. This can change the behavior of rules which match packets
666	delivered to lo0. To enable this feature:
667
668		sysctl net.pf.filter_local=1
669		service pf restart
670
671	When enabled, its best to ensure that packets delivered locally are not
672	filtered, e.g. by adding a 'skip on lo' rule.
673
67420230613:
675	Improvements to libtacplus(8) mean that tacplus.conf(5) now
676	follows POSIX shell syntax rules. This may cause TACACS+
677	authentication to fail if the shared secret contains a single
678	quote, double quote, or backslash character which isn't
679	already properly quoted or escaped.
680
68120230612:
682	Belatedly switch the default nvme block device on x86 from nvd to nda.
683	nda created nvd compatibility links by default, so this should be a
684	nop. If this causes problems for your application, set hw.nvme.use_nvd=1
685	in your loader.conf or add `options NVME_USE_NVD=1` to your kernel
686	config. To disable the nvd compatibility aliases, add
687	kern.cam.nda.nvd_compat=0 to loader.conf.  The default has been nda on
688	all non-x86 platforms for some time now. If you need to fall back,
689	please email imp@freebsd.org about why.
690
691	Encrypted swap partitions need to be changed from nvd to nda if you
692	migrate, or you need to use the above to switch back to nvd.
693
69420230422:
695	Remove portsnap(8).  Users are encouraged to obtain the ports tree
696	using git instead.
697
69820230420:
699	Add jobs.mk to save typing. Enables -j${JOB_MAX} and logging
700	eg.
701		make buildworld-jobs
702	runs
703		make -j${JOB_MAX} buildworld > ../buildworld.log 2>&1
704
705	where JOB_MAX is derived from ncpus in local.sys.mk if not set in env.
706
70720230316:
708	Video related devices for some arm devices have been renamed.
709	If you have a custom kernel config and want to use hdmi output on
710	IMX6 board you need to add "device dwc_hdmi" "device imx6_hdmi" and
711	"device imx6_ipu" to it.
712	If you have a custom kernel config and want to use hdmi output on
713	TI AM335X board you need to add "device tda19988" to it.
714	If you add "device hdmi" in it you need to remove it as it doesn't
715	exist anymore.
716
71720230221:
718	Introduce new kernel options KBD_DELAY1 and KBD_DELAY2. See atkbdc(4)
719	for details.
720
72120230206:
722	sshd now defaults to having X11Forwarding disabled, following upstream.
723	Administrators who wish to enable X11Forwarding should add
724	`X11Forwarding yes` to /etc/ssh/sshd_config.
725
72620230204:
727	Since commit 75d41cb6967 Huawei 3G/4G LTE Mobile Devices do not default
728	to ECM, but NCM mode and need u3g and ucom modules loaded. See cdce(4).
729
73020230130:
731	As of commit 7c40e2d5f685, the dependency on netlink(4) has been added
732	to the linux_common(4) module. Users relying on linux_common may need
733	to compile netlink(4) module if it is not present in their kernel.
734
73520230126:
736	The WITHOUT_CXX option has been removed. C++ components in the base
737	system are now built unconditionally.
738
73920230113:
740	LinuxKPI pci.h changes may require out-of-tree drivers to be recompiled.
741	Bump _FreeBSD_version to 1400078 to be able to detect this change.
742
74320221212:
744	llvm-objdump is now always installed as objdump.  Previously there was
745	no /usr/bin/objdump unless the WITH_LLVM_BINUTILS knob was used.
746
747	Some LLVM objdump options have a different output format compared to
748	GNU objdump; readelf is available for inspecting ELF files, and GNU
749	objdump is available from the devel/binutils port or package.
750
75120221205:
752	dma(8) has replaced sendmail(8) as the default mta.  For people willing
753	to re-enable sendmail(8):
754
755	$ cp /usr/share/examples/sendmail/mailer.conf /etc/mail/mailer.conf
756
757	and add sendmail_enable="YES" to rc.conf.
758
75920221204:
760	hw.bus.disable_failed_devices has changed from 'false' to 'true' by
761	default. Now if newbus succeeds in probing a device, but fails to attach
762	the device, we'll disable the device. In the past, we'd keep retrying
763	the device on each new driver loaded. To get that behavior now, one
764	needs to use devctl to re-enable the device, and reprobe it (or set
765	the sysctl/tunable hw.bus.disable_failed_devices=false).
766
767	NOTE: This was reverted 20221205 due to unexpected compatibility issues
768
76920221122:
770	pf no longer accepts 'scrub fragment crop' or 'scrub fragment drop-ovl'.
771	These configurations are no longer automatically reinterpreted as
772	'scrub fragment reassemble'.
773
77420221121:
775	The WITHOUT_CLANG_IS_CC option has been removed.  When Clang is enabled
776	it is always installed as /usr/bin/cc (and c++, cpp).
777
77820221026:
779	Some programs have been moved into separate packages. It is recommended
780	for pkgbase users to do:
781
782	pkg install FreeBSD-dhclient FreeBSD-geom FreeBSD-resolvconf \
783	  FreeBSD-devd FreeBSD-devmatch
784
785	after upgrading to restore all the component that were previously
786	installed.
787
78820221002:
789	OPIE has been removed from the base system.  If needed, it can
790	be installed from ports (security/opie) or packages (opie).
791	Otherwise, make sure that your PAM policies do not reference
792	pam_opie or pam_opieaccess.
793
79420220610:
795	LinuxKPI pm.h changes require an update to the latest drm-kmod version
796	before re-compiling to avoid errors.
797
79820211230:
799	The macros provided for the manipulation of CPU sets (e.g. CPU_AND)
800	have been modified to take 2 source arguments instead of only 1.
801	Externally maintained sources that use these macros will have to
802	be adapted. The FreeBSD version has been bumped to 1400046 to
803	reflect this change.
804
80520211214:
806	A number of the kernel include files are able to be included by
807	themselves.  A test has been added to buildworld to enforce this.
808
80920211209:
810	Remove mips as a recognized target. This starts the decommissioning of
811	mips support in FreeBSD. mips related items will be removed wholesale in
812	the coming days and weeks.
813
814	This broke the NO_CLEAN build for some people. Either do a clean build
815	or touch
816		lib/clang/include/llvm/Config/Targets.def
817		lib/clang/include/llvm/Config/AsmParsers.def
818		lib/clang/include/llvm/Config/Disassemblers.def
819		lib/clang/include/llvm/Config/AsmPrinters.def
820	before the build to force everything to rebuild that needs to.
821
82220211202:
823	Unbound support for RFC8375: The special-use domain 'home.arpa' is
824	by default blocked. To unblock it use a local-zone nodefault
825	statement in unbound.conf:
826		local-zone: "home.arpa." nodefault
827
828	Or use another type of local-zone to override with your choice.
829
830	The reason for this is discussed in Section 6.1 of RFC8375:
831	Because 'home.arpa.' is not globally scoped and cannot be secured
832	using DNSSEC based on the root domain's trust anchor, there is no way
833	to tell, using a standard DNS query, in which homenet scope an answer
834	belongs.  Consequently, users may experience surprising results with
835	such names when roaming to different homenets.
836
83720211110:
838	Commit b8d60729deef changed the TCP congestion control framework so
839	that any of the included congestion control modules could be
840	the single module built into the kernel. Previously newreno
841	was automatically built in through direct reference. As of
842	this commit you are required to declare at least one congestion
843	control module (e.g. 'options CC_NEWRENO') and to also declare a
844	default using the CC_DEFAULT option (e.g. options CC_DEFAULT="newreno\").
845	The GENERIC configuration includes CC_NEWRENO and defines newreno
846	as the default. If no congestion control option is built into the
847	kernel and you are including networking, the kernel compile will
848	fail. Also if no default is declared the kernel compile will fail.
849
85020211118:
851	Mips has been removed from universe builds. It will be removed from the
852	tree shortly.
853
85420211106:
855	Commit f0c9847a6c47 changed the arguments for VOP_ALLOCATE.
856	The NFS modules must be rebuilt from sources and any out
857	of tree file systems that implement their own VOP_ALLOCATE
858	may need to be modified.
859
86020211022:
861	The synchronous PPP kernel driver sppp(4) has been removed.
862	The cp(4) and ce(4) drivers are now always compiled with netgraph(4)
863	support, formerly enabled by NETGRAPH_CRONYX option.
864
86520211020:
866	sh(1) is now the default shell for the root user.  To force root to use
867	the csh shell, please run the following command as root:
868
869	# chsh -s csh
870
87120211004:
872	Ncurses distribution has been split between libtinfow and libncurses
873	with libncurses.so becoming a linker (ld) script to seamlessly link
874	to libtinfow as needed. Bump _FreeBSD_version to 1400035 to reflect
875	this change.
876
87720210923:
878	As of commit 8160a0f62be6, the dummynet module no longer depends on the
879	ipfw module. Dummynet can now be used by pf as well as ipfw. As such
880	users who relied on this dependency may need to include ipfw in the
881	list of modules to load on their systems.
882
88320210922:
884	As of commit 903873ce1560, the mixer(8) utility has got a slightly
885	new syntax. Please refer to the mixer(8) manual page for more
886	information. The old mixer utility can be installed from ports:
887	audio/freebsd-13-mixer
888
88920210911:
890	As of commit 55089ef4f8bb, the global variable nfs_maxcopyrange has
891	been deleted from the nfscommon.ko.  As such, nfsd.ko must be built
892	from up to date sources to avoid an undefined reference when
893	being loaded.
894
89520210817:
896	As of commit 62ca9fc1ad56 OpenSSL no longer enables kernel TLS
897	by default.  Users can enable kernel TLS via the "KTLS" SSL
898	option.  This can be enabled globally by using a custom
899	OpenSSL config file via OPENSSL_CONF or via an
900	application-specific configuration option for applications
901	which permit setting SSL options via SSL_CONF_cmd(3).
902
90320210811:
904	Commit 3ad1e1c1ce20 changed the internal KAPI between the NFS
905	modules. Therefore, all need to be rebuilt from sources.
906
90720210730:
908	Commit b69019c14cd8 removes pf's DIOCGETSTATESNV ioctl.
909	As of be70c7a50d32 it is no longer used by userspace, but it does mean
910	users may not be able to enumerate pf states if they update the kernel
911	past b69019c14cd8 without first updating userspace past be70c7a50d32.
912
91320210729:
914	As of commit 01ad0c007964 if_bridge member interfaces can no longer
915	change their MTU. Changing the MTU of the bridge itself will change the
916	MTU on all member interfaces instead.
917
91820210716:
919	Commit ee29e6f31111 changed the internal KAPI between the nfscommon
920	and nfsd modules. Therefore, both need to be rebuilt from sources.
921	Bump __FreeBSD_version to 1400026 for this KAPI change.
922
92320210715:
924	The 20210707 awk update brought in a change in behavior. This has
925	been corrected as of d4d252c49976. Between these dates, if you
926	installed a new awk binary, you may not be able to build a new
927	kernel because the change in behavior affected the genoffset
928	script used to build the kernel. If you did update, the fix is
929	to update your sources past the above hash and do
930		% cd usr.bin/awk
931		% make clean all
932		% sudo -E make install
933	to enable building kernels again.
934
93520210708:
936	Commit 1e0a518d6548 changed the internal KAPI between the NFS
937	modules. They all need to be rebuilt from sources.  I did not
938	bump __FreeBSD_version, since it was bumped recently.
939
94020210707:
941	awk has been updated to the latest one-true-awk version 20210215.
942	This contains a number of minor bug fixes.
943
94420210624:
945	The NFSv4 client now uses the highest minor version of NFSv4
946	supported by the NFSv4 server by default instead of minor version 0,
947	for NFSv4 mounts.
948	The "minorversion" mount option may be used to override this default.
949
95020210618:
951	Bump __FreeBSD_version to 1400024 for LinuxKPI changes.
952	Most notably netdev.h can change now as the (last) dependencies
953	(mlx4/ofed) are now using struct ifnet directly, but also for PCI
954	additions and others.
955
95620210618:
957	The directory "blacklisted" under /usr/share/certs/ has been
958	renamed to "untrusted".
959
96020210611:
961	svnlite has been removed from base. Should you need svn for any reason
962	please install the svn package or port.
963
96420210611:
965	Commit e1a907a25cfa changed the internal KAPI between the krpc
966	and nfsserver.  As such, both modules must be rebuilt from
967	sources.  Bump __FreeBSD_version to 1400022.
968
96920210610:
970	The an(4) driver has been removed from FreeBSD.
971
97220210608:
973	The vendor/openzfs branch was renamed to vendor/openzfs/legacy to
974	start tracking OpenZFS upstream more closely. Please see
975https://lists.freebsd.org/archives/freebsd-current/2021-June/000153.html
976	for details on how to correct any errors that might result. The
977	short version is that you need to remove the old branch locally:
978	    git update-ref -d refs/remotes/freebsd/vendor/openzfs
979	(assuming your upstream origin is named 'freebsd').
980
98120210525:
982	Commits 17accc08ae15 and de102f870501 add new files to LinuxKPI
983	which break drm-kmod.  In addition various other additions where
984	committed. Bump __FreeBSD_version to 1400015 to be able to
985	detect this.
986
98720210513:
988	Commit ca179c4d74f2 changed the package in which the OpenSSL
989	libraries and utilities are packaged.
990	It is recommended for pkgbase user to do:
991	pkg install -f FreeBSD-openssl
992	before pkg upgrade otherwise some dependencies might not be met
993	and pkg will stop working as libssl will not be present anymore
994	on the system.
995
99620210426:
997	Commit 875977314881 changed the internal KAPI between
998	the nfsd and nfscommon modules.  As such these modules
999	need to be rebuilt from sources.
1000	Without this patch in your NFSv4.1/4.2 server, enabling
1001	delegations by setting vfs.nfsd.issue_delegations non-zero
1002	is not recommended.
1003
100420210411:
1005	Commit 7763814fc9c2 changed the internal KAPI between
1006	the krpc and NFS.  As such, the krpc, nfscommon and
1007	nfscl modules must all be rebuilt from sources.
1008	Without this patch, NFSv4.1/4.2 mounts should not
1009	be done with the nfscbd(8) daemon running, to avoid
1010	needing a working back channel for server->client RPCs.
1011
101220210330:
1013	Commit 01ae8969a9ee fixed the NFSv4.1/4.2 server so that it
1014	handles binding of the back channel as required by RFC5661.
1015	Until this patch is in your server, avoid use of the "nconnects"
1016	mount option for Linux NFSv4.1/4.2 mounts.
1017
101820210225:
1019	For 64-bit architectures the base system is now built with Position
1020	Independent Executable (PIE) support enabled by default.  It may be
1021	disabled using the WITHOUT_PIE knob.  A clean build is required.
1022
102320210128:
1024	Various LinuxKPI functionality was added which conflicts with DRM.
1025	Please update your drm-kmod port to after the __FreeBSD_version 1400003
1026	update.
1027
102820210121:
1029	stable/13 branch created.
1030
103120210108:
1032	PC Card attachments for all devices have been removed. In the case of
1033	wi and cmx, the entire drivers were removed because they were only
1034	PC Card devices. FreeBSD_version 1300134 should be used for this
1035	since it was bumped so recently.
1036
103720210107:
1038	Transport-independent parts of HID support have been split off the USB
1039	code in to separate subsystem.  Kernel configs which include one of
1040	ums, ukbd, uhid, atp, wsp, wmt, uaudio, ugold or ucycom drivers should
1041	be updated with adding of "device hid" line.
1042
104320210105:
1044	ncurses installation has been modified to only keep the widechar
1045	enabled version.  Incremental build is broken for that change, so it
1046	requires a clean build.
1047
104820201223:
1049	The FreeBSD project has migrated from Subversion to Git. Temporary
1050	instructions can be found at
1051	https://github.com/bsdimp/freebsd-git-docs/blob/main/src-cvt.md
1052	and other documents in that repo.
1053
105420201216:
1055	The services database has been updated to cover more of the basic
1056	services expected in a modern system. The database is big enough
1057	that it will cause issues in mergemaster in Releases previous to
1058	12.2 and 11.3, or in very old current systems from before r358154.
1059
106020201215:
1061	Obsolete in-tree GDB 6.1.1 has been removed.  GDB (including kgdb)
1062	may be installed from ports or packages.
1063
106420201124:
1065	ping6 has been merged into ping.  It can now be called as "ping -6".
1066	See ping(8) for details.
1067
106820201108:
1069	Default value of net.add_addr_allfibs has been changed to 0.
1070	If you have multi-fib configuration and rely on existence of all
1071	interface routes in every fib, you need to set the above sysctl to 1.
1072
107320201030:
1074	The internal pre-processor in the calendar(1) program has been
1075	extended to support more C pre-processor commands (e.g. #ifdef, #else,
1076	and #undef) and to detect unbalanced conditional statements.
1077	Error messages have been extended to include the filename and line
1078	number if processing stops to help fixing malformed data files.
1079
108020201026:
1081	All the data files for the calendar(1) program, except calendar.freebsd,
1082	have been moved to the deskutils/calendar-data port, much like the
1083	jewish calendar entries were moved to deskutils/hebcal years ago. After
1084	make delete-old-files, you need to install it to retain full
1085	functionality. calendar(1) will issue a reminder for files it can't
1086	find.
1087
108820200923:
1089	LINT files are no longer generated. We now include the relevant NOTES
1090	files. Note: This may cause conflicts with updating in some cases.
1091	        find sys -name LINT\* -delete
1092	is suggested across this commit	to remove the generated	LINT files.
1093
1094	If you have tried to update with generated files there, the svn
1095	command you want to un-auger the tree is
1096		cd sys/amd64/conf
1097		svn revert -R .
1098	and then do the above find from the top level. Substitute 'amd64'
1099	above with where the error message indicates a conflict.
1100
110120200824:
1102	OpenZFS support has been integrated. Do not upgrade root pools until
1103	the loader is updated to support zstd. Furthermore, we caution against
1104	'zpool upgrade' for the next few weeks. The change should be transparent
1105	unless you  want to use new features.
1106
1107	Not all "NO_CLEAN" build scenarios work across these changes. Many
1108	scenarios have been tested and fixed, but rebuilding kernels without
1109	rebuilding world may fail.
1110
1111	The ZFS cache file has moved from /boot to /etc to match the OpenZFS
1112	upstream default. A fallback to /boot has been added for mountroot.
1113
1114	Pool auto import behavior at boot has been moved from the kernel module
1115	to an explicit "zpool import -a" in one of the rc scripts enabled by
1116	zfs_enable=YES. This means your non-root zpools won't auto import until
1117	you upgrade your /etc/rc.d files.
1118
111920200824:
1120	The resume code now notifies devd with the 'kernel' system
1121	rather than the old 'kern' subsystem to be consistent with
1122	other use. The old notification will be created as well, but
1123	will be removed prior to FreeBSD 14.0.
1124
112520200821:
1126	r362275 changed the internal API between the kernel RPC and the
1127	NFS modules. As such, all the modules must be recompiled from
1128	sources.
1129
113020200817:
1131	r364330 modified the internal API used between the NFS modules.
1132	As such, all the NFS modules must be re-compiled from sources.
1133
113420200816:
1135	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
1136	been upgraded to 11.0.0.  Please see the 20141231 entry below for
1137	information about prerequisites and upgrading, if you are not already
1138	using clang 3.5.0 or higher.
1139
114020200810:
1141	r364092 modified the internal ABI used between the kernel NFS
1142	modules.  As such, all of these modules need to be rebuilt
1143	from sources, so a version bump was done.
1144
114520200807:
1146	Makefile.inc has been updated to work around the issue documented in
1147	20200729. It was a case where the optimization of using symbolic links
1148	to point to binaries created a situation where we'd run new binaries
1149	with old libraries starting midway through the installworld process.
1150
115120200729:
1152	r363679 has redefined some undefined behavior in regcomp(3); notably,
1153	extraneous escapes of most ordinary characters will no longer be
1154	accepted.  An exp-run has identified all of the problems with this in
1155	ports, but other non-ports software may need extra escapes removed to
1156	continue to function.
1157
1158	Because of this change, installworld may encounter the following error
1159	from rtld: Undefined symbol "regcomp@FBSD_1.6" -- It is imperative that
1160	you do not halt installworld. Instead, let it run to completion (whether
1161	successful or not) and run installworld once more.
1162
116320200627:
1164	A new implementation of bc and dc has been imported in r362681. This
1165	implementation corrects non-conformant behavior of the previous bc
1166	and adds GNU bc compatible options. It offers a number of extensions,
1167	is much faster on large values, and has support for message catalogs
1168	(a number of languages are already supported, contributions of further
1169	languages welcome). The option WITHOUT_GH_BC can be used to build the
1170	world with the previous versions of bc and dc.
1171
117220200625:
1173	r362639 changed the internal API used between the NFS kernel modules.
1174	As such, they all need to be rebuilt from sources.
1175
117620200613:
1177	r362158 changed the arguments for VFS_CHECKEXP().  As such, any
1178	out of tree file systems need to be modified and rebuilt.
1179	Also, any file systems that are modules must be rebuilt.
1180
118120200604:
1182	read(2) of a directory fd is now rejected by default.  root may
1183	re-enable it for system root only on non-ZFS filesystems with the
1184	security.bsd.allow_read_dir sysctl(8) MIB if
1185	security.bsd.suser_enabled=1.
1186
1187	It may be advised to setup aliases for grep to default to `-d skip` if
1188	commonly non-recursively grepping a list that includes directories and
1189	the potential for the resulting stderr output is not tolerable.  Example
1190	aliases are now installed, commented out, in /root/.cshrc and
1191	/root/.shrc.
1192
119320200523:
1194	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
1195	been upgraded to 10.0.1.  Please see the 20141231 entry below for
1196	information about prerequisites and upgrading, if you are not already
1197	using clang 3.5.0 or higher.
1198
119920200512:
1200	Support for obsolete compilers has been removed from the build system.
1201	Clang 6 and GCC 6.4 are the minimum supported versions.
1202
120320200424:
1204	closefrom(2) has been moved under COMPAT12, and replaced in libc with a
1205	stub that calls close_range(2).  If using a custom kernel configuration,
1206	you may want to ensure that the COMPAT_FREEBSD12 option is included, as
1207	a slightly older -CURRENT userland and older FreeBSD userlands may not
1208	be functional without closefrom(2).
1209
121020200414:
1211	Upstream DTS from Linux 5.6 was merged and they now have the SID
1212	and THS (Secure ID controller and THermal Sensor) node present.
1213	The DTB overlays have now been removed from the tree for the H3/H5 and
1214	A64 SoCs and the aw_sid and aw_thermal driver have been updated to
1215	deal with upstream DTS. If you are using those overlays you need to
1216	remove them from loader.conf and update the DTBs on the FAT partition.
1217
121820200310:
1219	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
1220	been upgraded to 10.0.0.  Please see the 20141231 entry below for
1221	information about prerequisites and upgrading, if you are not already
1222	using clang 3.5.0 or higher.
1223
122420200309:
1225	The amd(8) automount daemon has been removed from the source tree.
1226	As of FreeBSD 10.1 autofs(5) is the preferred tool for automounting.
1227	amd is still available in the sysutils/am-utils port.
1228
122920200301:
1230	Removed brooktree driver (bktr.4) from the tree.
1231
123220200229:
1233	The WITH_GPL_DTC option has been removed.  The BSD-licenced device tree
1234	compiler in usr.bin/dtc is used on all architectures which use dtc, and
1235	the GPL dtc is available (if needed) from the sysutils/dtc port.
1236
123720200229:
1238	The WITHOUT_LLVM_LIBUNWIND option has been removed.  LLVM's libunwind
1239	is used by all supported CPU architectures.
1240
124120200229:
1242	GCC 4.2.1 has been removed from the tree.  The WITH_GCC,
1243	WITH_GCC_BOOTSTRAP, and WITH_GNUCXX options are no longer available.
1244	Users who wish to build FreeBSD with GCC must use the external toolchain
1245	ports or packages.
1246
124720200220:
1248	ncurses has been updated to a newer version (6.2-20200215). Given the ABI
1249	has changed, users will have to rebuild all the ports that are linked to
1250	ncurses.
1251
125220200217:
1253	The size of struct vnet and the magic cookie have changed.
1254	Users need to recompile libkvm and all modules using VIMAGE
1255	together with their new kernel.
1256
125720200212:
1258	Defining the long deprecated NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB,
1259	NO_MAN, NO_PROFILE, and NO_WARNS variables is now an error.  Update
1260	your Makefiles and scripts to define MK_<var>=no instead as required.
1261
1262	One exception to this is that program or library Makefiles should
1263	define MAN to empty rather than setting MK_MAN=no.
1264
126520200108:
1266	Clang/LLVM is now the default compiler and LLD the default
1267	linker for riscv64.
1268
126920200107:
1270	make universe no longer uses GCC 4.2.1 on any architectures.
1271	Architectures not supported by in-tree Clang/LLVM require an
1272	external toolchain package.
1273
127420200104:
1275	GCC 4.2.1 is now not built by default, as part of the GCC 4.2.1
1276	retirement plan.  Specifically, the GCC, GCC_BOOTSTRAP, and GNUCXX
1277	options default to off for all supported CPU architectures.  As a
1278	short-term transition aid they may be enabled via WITH_* options.
1279	GCC 4.2.1 is expected to be removed from the tree on 2020-03-31.
1280
128120200102:
1282	Support for armv5 has been disconnected and is being removed. The
1283	machine combination MACHINE=arm MACHINE_ARCH=arm is no longer valid.
1284	You must now use a MACHINE_ARCH of armv6 or armv7. The default
1285	MACHINE_ARCH for MACHINE=arm is now armv7.
1286
128720191226:
1288	Clang/LLVM is now the default compiler for all powerpc architectures.
1289	LLD is now the default linker for powerpc64.  The change for powerpc64
1290	also includes a change to the ELFv2 ABI, incompatible with the existing
1291	ABI.
1292
129320191226:
1294	Kernel-loadable random(4) modules are no longer unloadable.
1295
129620191222:
1297	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
1298	been upgraded to 9.0.1.  Please see the 20141231 entry below for
1299	information about prerequisites and upgrading, if you are not already
1300	using clang 3.5.0 or higher.
1301
130220191212:
1303	r355677 has modified the internal interface used between the
1304	NFS modules in the kernel. As such, they must all be upgraded
1305	simultaneously. I will do a version bump for this.
1306
130720191205:
1308	The root certificates of the Mozilla CA Certificate Store have been
1309	imported into the base system and can be managed with the certctl(8)
1310	utility.  If you have installed the security/ca_root_nss port or package
1311	with the ETCSYMLINK option (the default), be advised that there may be
1312	differences between those included in the port and those included in
1313	base due to differences in nss branch used as well as general update
1314	frequency.  Note also that certctl(8) cannot manage certs in the
1315	format used by the security/ca_root_nss port.
1316
131720191120:
1318	The amd(8) automount daemon has been disabled by default, and will be
1319	removed in the future.  As of FreeBSD 10.1 the autofs(5) is available
1320	for automounting.
1321
132220191107:
1323	The nctgpio and wbwd drivers have been moved to the superio bus.
1324	If you have one of these drivers in a kernel configuration, then
1325	you should add device superio to it.  If you use one of these drivers
1326	as a module and you compile a custom set of modules, then you should
1327	add superio to the set.
1328
132920191021:
1330	KPIs for network drivers to access interface addresses have changed.
1331	Users need to recompile NIC driver modules together with kernel.
1332
133320191021:
1334	The net.link.tap.user_open sysctl no longer prevents user opening of
1335	already created /dev/tapNN devices.  Access is still controlled by
1336	node permissions, just like tun devices.  The net.link.tap.user_open
1337	sysctl is now used only to allow users to perform devfs cloning of
1338	tap devices, and the subsequent open may not succeed if the user is not
1339	in the appropriate group.  This sysctl may be deprecated/removed
1340	completely in the future.
1341
134220191009:
1343	mips, powerpc, and sparc64 are no longer built as part of
1344	universe / tinderbox unless MAKE_OBSOLETE_GCC is defined. If
1345	not defined, mips, powerpc, and sparc64 builds will look for
1346	the xtoolchain binaries and if installed use them for universe
1347	builds. As llvm 9.0 becomes vetted for these architectures, they
1348	will be removed from the list.
1349
135020191009:
1351	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
1352	been upgraded to 9.0.0.  Please see the 20141231 entry below for
1353	information about prerequisites and upgrading, if you are not already
1354	using clang 3.5.0 or higher.
1355
135620191003:
1357	The hpt27xx, hptmv, hptnr, and hptrr drivers have been removed from
1358	GENERIC.  They are available as modules and can be loaded by adding
1359	to /boot/loader.conf hpt27xx_load="YES", hptmv_load="YES",
1360	hptnr_load="YES", or hptrr_load="YES", respectively.
1361
136220190913:
1363	ntpd no longer by default locks its pages in memory, allowing them
1364	to be paged out by the kernel. Use rlimit memlock to restore
1365	historic BSD behaviour. For example, add "rlimit memlock 32"
1366	to ntp.conf to lock up to 32 MB of ntpd address space in memory.
1367
136820190823:
1369	Several of ping6's options have been renamed for better consistency
1370	with ping.  If you use any of -ARWXaghmrtwx, you must update your
1371	scripts.  See ping6(8) for details.
1372
137320190727:
1374	The vfs.fusefs.sync_unmount and vfs.fusefs.init_backgrounded sysctls
1375	and the "-o sync_unmount" and "-o init_backgrounded" mount options have
1376	been removed from mount_fusefs(8).  You can safely remove them from
1377	your scripts, because they had no effect.
1378
1379	The vfs.fusefs.fix_broken_io, vfs.fusefs.sync_resize,
1380	vfs.fusefs.refresh_size, vfs.fusefs.mmap_enable,
1381	vfs.fusefs.reclaim_revoked, and vfs.fusefs.data_cache_invalidate
1382	sysctls have been removed.  If you felt the need to set any of them to
1383	a non-default value, please tell asomers@FreeBSD.org why.
1384
138520190713:
1386	Default permissions on the /var/account/acct file (and copies of it
1387	rotated by periodic daily scripts) are changed from 0644 to 0640
1388	because the file contains sensitive information that should not be
1389	world-readable.  If the /var/account directory must be created by
1390	rc.d/accounting, the mode used is now 0750.  Admins who use the
1391	accounting feature are encouraged to change the mode of an existing
1392	/var/account directory to 0750 or 0700.
1393
139420190620:
1395	Entropy collection and the /dev/random device are no longer optional
1396	components.  The "device random" option has been removed.
1397	Implementations of distilling algorithms can still be made loadable
1398	with "options RANDOM_LOADABLE" (e.g., random_fortuna.ko).
1399
140020190612:
1401	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
1402	been upgraded to 8.0.1.  Please see the 20141231 entry below for
1403	information about prerequisites and upgrading, if you are not already
1404	using clang 3.5.0 or higher.
1405
140620190608:
1407	A fix was applied to i386 kernel modules to avoid panics with
1408	dpcpu or vnet.  Users need to recompile i386 kernel modules
1409	having pcpu or vnet sections or they will refuse to load.
1410
141120190513:
1412	User-wired pages now have their own counter,
1413	vm.stats.vm.v_user_wire_count.  The vm.max_wired sysctl was renamed
1414	to vm.max_user_wired and changed from an unsigned int to an unsigned
1415	long.  bhyve VMs wired with the -S are now subject to the user
1416	wiring limit; the vm.max_user_wired sysctl may need to be tuned to
1417	avoid running into the limit.
1418
141920190507:
1420	The IPSEC option has been removed from GENERIC.  Users requiring
1421	ipsec(4) must now load the ipsec(4) kernel module.
1422
142320190507:
1424	The tap(4) driver has been folded into tun(4), and the module has been
1425	renamed to tuntap.  You should update any kld_list="if_tap" or
1426	kld_list="if_tun" entries in /etc/rc.conf, if_tap_load="YES" or
1427	if_tun_load="YES" entries in /boot/loader.conf to load the if_tuntap
1428	module instead, and "device tap" or "device tun" entries in kernel
1429	config files to select the tuntap device instead.
1430
143120190418:
1432	The following knobs have been added related to tradeoffs between
1433	safe use of the random device and availability in the absence of
1434	entropy:
1435
1436	kern.random.initial_seeding.bypass_before_seeding: tunable; set
1437	non-zero to bypass the random device prior to seeding, or zero to
1438	block random requests until the random device is initially seeded.
1439	For now, set to 1 (unsafe) by default to restore pre-r346250 boot
1440	availability properties.
1441
1442	kern.random.initial_seeding.read_random_bypassed_before_seeding:
1443	read-only diagnostic sysctl that is set when bypass is enabled and
1444	read_random(9) is bypassed, to enable programmatic handling of this
1445	initial condition, if desired.
1446
1447	kern.random.initial_seeding.arc4random_bypassed_before_seeding:
1448	Similar to the above, but for arc4random(9) initial seeding.
1449
1450	kern.random.initial_seeding.disable_bypass_warnings: tunable; set
1451	non-zero to disable warnings in dmesg when the same conditions are
1452	met as for the diagnostic sysctls above.  Defaults to zero, i.e.,
1453	produce warnings in dmesg when the conditions are met.
1454
145520190416:
1456	The loadable random module KPI has changed; the random_infra_init()
1457	routine now requires a 3rd function pointer for a bool (*)(void)
1458	method that returns true if the random device is seeded (and
1459	therefore unblocked).
1460
146120190404:
1462	r345895 reverts r320698. This implies that an nfsuserd(8) daemon
1463	built from head sources between r320757 (July 6, 2017) and
1464	r338192 (Aug. 22, 2018) will not work unless the "-use-udpsock"
1465	is added to the command line.
1466	nfsuserd daemons built from head sources that are post-r338192 are
1467	not affected and should continue to work.
1468
146920190320:
1470	The fuse(4) module has been renamed to fusefs(4) for consistency with
1471	other filesystems.  You should update any kld_load="fuse" entries in
1472	/etc/rc.conf, fuse_load="YES" entries in /boot/loader.conf, and
1473	"options FUSE" entries in kernel config files.
1474
147520190304:
1476	Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
1477	8.0.0.  Please see the 20141231 entry below for information about
1478	prerequisites and upgrading, if you are not already using clang 3.5.0
1479	or higher.
1480
148120190226:
1482	geom_uzip(4) depends on the new module xz.  If geom_uzip is statically
1483	compiled into your custom kernel, add 'device xz' statement to the
1484	kernel config.
1485
148620190219:
1487	drm and drm2 have been removed from the tree. Please see
1488	https://wiki.freebsd.org/Graphics for the latest information on
1489	migrating to the drm ports.
1490
149120190131:
1492	Iflib is no longer unconditionally compiled into the kernel.  Drivers
1493	using iflib and statically compiled into the kernel, now require
1494	the 'device iflib' config option.  For the same drivers loaded as
1495	modules on kernels not having 'device iflib', the iflib.ko module
1496	is loaded automatically.
1497
149820190125:
1499	The IEEE80211_AMPDU_AGE and AH_SUPPORT_AR5416 kernel configuration
1500	options no longer exist since r343219 and r343427 respectively;
1501	nothing uses them, so they should be just removed from custom
1502	kernel config files.
1503
150420181230:
1505	r342635 changes the way efibootmgr(8) works by requiring users to add
1506	the -b (bootnum) parameter for commands where the bootnum was previously
1507	specified with each option. For example 'efibootmgr -B 0001' is now
1508	'efibootmgr -B -b 0001'.
1509
151020181220:
1511	r342286 modifies the NFSv4 server so that it obeys vfs.nfsd.nfs_privport
1512	in the same as it is applied to NFSv2 and 3.  This implies that NFSv4
1513	servers that have vfs.nfsd.nfs_privport set will only allow mounts
1514	from clients using a reserved port. Since both the FreeBSD and Linux
1515	NFSv4 clients use reserved ports by default, this should not affect
1516	most NFSv4 mounts.
1517
151820181219:
1519	The XLP config has been removed. We can't support 64-bit atomics in this
1520	kernel because it is running in 32-bit mode. XLP users must transition
1521	to running a 64-bit kernel (XLP64 or XLPN32).
1522
1523	The mips GXEMUL support has been removed from FreeBSD. MALTA* + qemu is
1524	the preferred emulator today and we don't need two different ones.
1525
1526	The old sibyte / swarm / Broadcom BCM1250 support has been
1527	removed from the mips port.
1528
152920181211:
1530	Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
1531	7.0.1.  Please see the 20141231 entry below for information about
1532	prerequisites and upgrading, if you are not already using clang 3.5.0
1533	or higher.
1534
153520181211:
1536	Remove the timed and netdate programs from the base tree.  Setting
1537	the time with these daemons has been obsolete for over a decade.
1538
153920181126:
1540	On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld
1541	linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as
1542	it produces broken binaries when ifuncs are in use.  Users needing
1543	GNU ld should install the binutils port or package.
1544
154520181123:
1546	The BSD crtbegin and crtend code has been enabled by default. It has
1547	had extensive testing on amd64, arm64, and i386. It can be disabled
1548	by building a world with -DWITHOUT_BSD_CRTBEGIN.
1549
155020181115:
1551	The set of CTM commands (ctm, ctm_smail, ctm_rmail, ctm_dequeue)
1552	has been converted to a port (misc/ctm) and will be removed from
1553	FreeBSD-13.  It is available as a package (ctm) for all supported
1554	FreeBSD versions.
1555
155620181110:
1557	The default newsyslog.conf(5) file has been changed to only include
1558	files in /etc/newsyslog.conf.d/ and /usr/local/etc/newsyslog.conf.d/ if
1559	the filenames end in '.conf' and do not begin with a '.'.
1560
1561	You should check the configuration files in these two directories match
1562	this naming convention. You can verify which configuration files are
1563	being included using the command:
1564		$ newsyslog -Nrv
1565
156620181019:
1567	Stable/12 was branched created.
1568
156920181015:
1570	Ports for the DRM modules have been simplified. Now, amd64 users should
1571	just install the drm-kmod port. All others should install
1572	drm-legacy-kmod.
1573
1574	Graphics hardware that's newer than about 2010 usually works with
1575	drm-kmod.  For hardware older than 2013, however, some users will need
1576	to use drm-legacy-kmod if drm-kmod doesn't work for them. Hardware older
1577	than 2008 usually only works in drm-legacy-kmod. The graphics team can
1578	only commit to hardware made since 2013 due to the complexity of the
1579	market and difficulty to test all the older cards effectively. If you
1580	have hardware supported by drm-kmod, you are strongly encouraged to use
1581	that as you will get better support.
1582
1583	Other than KPI chasing, drm-legacy-kmod will not be updated. As outlined
1584	elsewhere, the drm and drm2 modules will be eliminated from the src base
1585	soon (with a limited exception for arm). Please update to the package
1586	asap and report any issues to x11@freebsd.org.
1587
1588	Generally, anybody using the drm*-kmod packages should add
1589	WITHOUT_DRM_MODULE=t and WITHOUT_DRM2_MODULE=t to avoid nasty
1590	cross-threading surprises, especially with automatic driver
1591	loading from X11 startup. These will become the defaults in 13-current
1592	shortly.
1593
159420181012:
1595	The ixlv(4) driver has been renamed to iavf(4).  As a consequence,
1596	custom kernel and module loading configuration files must be updated
1597	accordingly.  Moreover, interfaces previous presented as ixlvN to the
1598	system are now exposed as iavfN and network configuration files must
1599	be adjusted as necessary.
1600
160120181009:
1602	OpenSSL has been updated to version 1.1.1.  This update included
1603	additional various API changes throughout the base system.  It is
1604	important to rebuild third-party software after upgrading.  The value
1605	of __FreeBSD_version has been bumped accordingly.
1606
160720181006:
1608	The legacy DRM modules and drivers have now been added to the loader's
1609	module blacklist, in favor of loading them with kld_list in rc.conf(5).
1610	The module blacklist may be overridden with the loader.conf(5)
1611	'module_blacklist' variable, but loading them via rc.conf(5) is strongly
1612	encouraged.
1613
161420181002:
1615	The cam(4) based nda(4) driver will be used over nvd(4) by default on
1616	powerpc64. You may set 'options NVME_USE_NVD=1' in your kernel conf or
1617	loader tunable 'hw.nvme.use_nvd=1' if you wish to use the existing
1618	driver.  Make sure to edit /boot/etc/kboot.conf and fstab to use the
1619	nda device name.
1620
162120180913:
1622	Reproducible build mode is now on by default, in preparation for
1623	FreeBSD 12.0.  This eliminates build metadata such as the user,
1624	host, and time from the kernel (and uname), unless the working tree
1625	corresponds to a modified checkout from a version control system.
1626	The previous behavior can be obtained by setting the /etc/src.conf
1627	knob WITHOUT_REPRODUCIBLE_BUILD.
1628
162920180826:
1630	The Yarrow CSPRNG has been removed from the kernel as it has not been
1631	supported by its designers since at least 2003. Fortuna has been the
1632	default since FreeBSD-11.
1633
163420180822:
1635	devctl freeze/thaw have gone into the tree, the rc scripts have been
1636	updated to use them and devmatch has been changed.  You should update
1637	kernel, userland and rc scripts all at the same time.
1638
163920180818:
1640	The default interpreter has been switched from 4th to Lua.
1641	LOADER_DEFAULT_INTERP, documented in build(7), will override the default
1642	interpreter.  If you have custom FORTH code you will need to set
1643	LOADER_DEFAULT_INTERP=4th (valid values are 4th, lua or simp) in
1644	src.conf for the build.  This will create default hard links between
1645	loader and loader_4th instead of loader and loader_lua, the new default.
1646	If you are using UEFI it will create the proper hard link to loader.efi.
1647
1648	bhyve uses userboot.so. It remains 4th-only until some issues are solved
1649	regarding coexisting with multiple versions of FreeBSD are resolved.
1650
165120180815:
1652	ls(1) now respects the COLORTERM environment variable used in other
1653	systems and software to indicate that a colored terminal is both
1654	supported and desired.  If ls(1) is suddenly emitting colors, they may
1655	be disabled again by either removing the unwanted COLORTERM from your
1656	environment, or using `ls --color=never`.  The ls(1) specific CLICOLOR
1657	may not be observed in a future release.
1658
165920180808:
1660	The default pager for most commands has been changed to "less".  To
1661	restore the old behavior, set PAGER="more" and MANPAGER="more -s" in
1662	your environment.
1663
166420180731:
1665	The jedec_ts(4) driver has been removed. A superset of its functionality
1666	is available in the jedec_dimm(4) driver, and the manpage for that
1667	driver includes migration instructions. If you have "device jedec_ts"
1668	in your kernel configuration file, it must be removed.
1669
167020180730:
1671	amd64/GENERIC now has EFI runtime services, EFIRT, enabled by default.
1672	This should have no effect if the kernel is booted via BIOS/legacy boot.
1673	EFIRT may be disabled via a loader tunable, efi.rt.disabled, if a system
1674	has a buggy firmware that prevents a successful boot due to use of
1675	runtime services.
1676
167720180727:
1678	Atmel AT91RM9200 and AT91SAM9, Cavium CNS 11xx and XScale
1679	support has been removed from the tree. These ports were
1680	obsolete and/or known to be broken for many years.
1681
168220180723:
1683	loader.efi has been augmented to participate more fully in the
1684	UEFI boot manager protocol. loader.efi will now look at the
1685	BootXXXX environment variable to determine if a specific kernel
1686	or root partition was specified. XXXX is derived from BootCurrent.
1687	efibootmgr(8) manages these standard UEFI variables.
1688
168920180720:
1690	zfsloader's functionality has now been folded into loader.
1691	zfsloader is no longer necessary once you've updated your
1692	boot blocks. For a transition period, we will install a
1693	hardlink for zfsloader to loader to allow a smooth transition
1694	until the boot blocks can be updated (hard link because old
1695	zfs boot blocks don't understand symlinks).
1696
169720180719:
1698	ARM64 now have efifb support, if you want to have serial console
1699	on your arm64 board when an screen is connected and the bootloader
1700	setup a frame buffer for us to use, just add :
1701	boot_serial=YES
1702	boot_multicons=YES
1703	in /boot/loader.conf
1704	For Raspberry Pi 3 (RPI) users, this is needed even if you don't have
1705	an screen connected as the firmware will setup a frame buffer are that
1706	u-boot will expose as an EFI frame buffer.
1707
170820180719:
1709	New uid:gid added, ntpd:ntpd (123:123).  Be sure to run mergemaster
1710	or take steps to update /etc/passwd before doing installworld on
1711	existing systems.  Do not skip the "mergemaster -Fp" step before
1712	installworld, as described in the update procedures near the bottom
1713	of this document.  Also, rc.d/ntpd now starts ntpd(8) as user ntpd
1714	if the new mac_ntpd(4) policy is available, unless ntpd_flags or
1715	the ntp config file contain options that change file/dir locations.
1716	When such options (e.g., "statsdir" or "crypto") are used, ntpd can
1717	still be run as non-root by setting ntpd_user=ntpd in rc.conf, after
1718	taking steps to ensure that all required files/dirs are accessible
1719	by the ntpd user.
1720
172120180717:
1722	Big endian arm support has been removed.
1723
172420180711:
1725	The static environment setup in kernel configs is no longer mutually
1726	exclusive with the loader(8) environment by default.  In order to
1727	restore the previous default behavior of disabling the loader(8)
1728	environment if a static environment is present, you must specify
1729	loader_env.disabled=1 in the static environment.
1730
173120180705:
1732	The ABI of syscalls used by management tools like sockstat and
1733	netstat has been broken to allow 32-bit binaries to work on
1734	64-bit kernels without modification.  These programs will need
1735	to match the kernel in order to function.  External programs may
1736	require minor modifications to accommodate a change of type in
1737	structures from pointers to 64-bit virtual addresses.
1738
173920180702:
1740	On i386 and amd64 atomics are now inlined. Out of tree modules using
1741	atomics will need to be rebuilt.
1742
174320180701:
1744	The '%I' format in the kern.corefile sysctl limits the number of
1745	core files that a process can generate to the number stored in the
1746	debug.ncores sysctl. The '%I' format is replaced by the single digit
1747	index. Previously, if all indexes were taken the kernel would overwrite
1748	only a core file with the highest index in a filename.
1749	Currently the system will create a new core file if there is a free
1750	index or if all slots are taken it will overwrite the oldest one.
1751
175220180630:
1753	Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
1754	6.0.1.  Please see the 20141231 entry below for information about
1755	prerequisites and upgrading, if you are not already using clang 3.5.0
1756	or higher.
1757
175820180628:
1759	r335753 introduced a new quoting method. However, etc/devd/devmatch.conf
1760	needed to be changed to work with it. This change was made with r335763
1761	and requires a mergemaster / etcupdate / etc to update the installed
1762	file.
1763
176420180612:
1765	r334930 changed the interface between the NFS modules, so they all
1766	need to be rebuilt.  r335018 did a __FreeBSD_version bump for this.
1767
176820180530:
1769	As of r334391 lld is the default amd64 system linker; it is installed
1770	as /usr/bin/ld.  Kernel build workarounds (see 20180510 entry) are no
1771	longer necessary.
1772
177320180530:
1774	The kernel / userland interface for devinfo changed, so you'll
1775	need a new kernel and userland as a pair for it to work (rebuilding
1776	lib/libdevinfo is all that's required). devinfo and devmatch will
1777	not work, but everything else will when there's a mismatch.
1778
177920180523:
1780	The on-disk format for hwpmc callchain records has changed to include
1781	threadid corresponding to a given record. This changes the field offsets
1782	and thus requires that libpmcstat be rebuilt before using a kernel
1783	later than r334108.
1784
178520180517:
1786	The vxge(4) driver has been removed.  This driver was introduced into
1787	HEAD one week before the Exar left the Ethernet market and is not
1788	known to be used.  If you have device vxge in your kernel config file
1789	it must be removed.
1790
179120180510:
1792	The amd64 kernel now requires a ld that supports ifunc to produce a
1793	working kernel, either lld or a newer binutils. lld is built by default
1794	on amd64, and the 'buildkernel' target uses it automatically. However,
1795	it is not the default linker, so building the kernel the traditional
1796	way requires LD=ld.lld on the command line (or LD=/usr/local/bin/ld for
1797	binutils port/package). lld will soon be default, and this requirement
1798	will go away.
1799
1800	NOTE: As of r334391 lld is the default system linker on amd64, and no
1801	workaround is necessary.
1802
180320180508:
1804	The nxge(4) driver has been removed.  This driver was for PCI-X 10g
1805	cards made by s2io/Neterion.  The company was acquired by Exar and
1806	no longer sells or supports Ethernet products.  If you have device
1807	nxge in your kernel config file it must be removed.
1808
180920180504:
1810	The tz database (tzdb) has been updated to 2018e.  This version more
1811	correctly models time stamps in time zones with negative DST such as
1812	Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and
1813	Africa/Windhoek (1994/2017).  This does not affect the UT offsets, only
1814	time zone abbreviations and the tm_isdst flag.
1815
181620180502:
1817	The ixgb(4) driver has been removed.  This driver was for an early and
1818	uncommon legacy PCI 10GbE for a single ASIC, Intel 82597EX. Intel
1819	quickly shifted to the long lived ixgbe family.  If you have device
1820	ixgb in your kernel config file it must be removed.
1821
182220180501:
1823	The lmc(4) driver has been removed.  This was a WAN interface
1824	card that was already reportedly rare in 2003, and had an ambiguous
1825	license.  If you have device lmc in your kernel config file it must
1826	be removed.
1827
182820180413:
1829	Support for Arcnet networks has been removed.  If you have device
1830	arcnet or device cm in your kernel config file they must be
1831	removed.
1832
183320180411:
1834	Support for FDDI networks has been removed.  If you have device
1835	fddi or device fpa in your kernel config file they must be
1836	removed.
1837
183820180406:
1839	In addition to supporting RFC 3164 formatted messages, the
1840	syslogd(8) service is now capable of parsing RFC 5424 formatted
1841	log messages. The main benefit of using RFC 5424 is that clients
1842	may now send log messages with timestamps containing year numbers,
1843	microseconds and time zone offsets.
1844
1845	Similarly, the syslog(3) C library function has been altered to
1846	send RFC 5424 formatted messages to the local system logging
1847	daemon. On systems using syslogd(8), this change should have no
1848	negative impact, as long as syslogd(8) and the C library are
1849	updated at the same time. On systems using a different system
1850	logging daemon, it may be necessary to make configuration
1851	adjustments, depending on the software used.
1852
1853	When using syslog-ng, add the 'syslog-protocol' flag to local
1854	input sources to enable parsing of RFC 5424 formatted messages:
1855
1856		source src {
1857			unix-dgram("/var/run/log" flags(syslog-protocol));
1858		}
1859
1860	When using rsyslog, disable the 'SysSock.UseSpecialParser' option
1861	of the 'imuxsock' module to let messages be processed by the
1862	regular RFC 3164/5424 parsing pipeline:
1863
1864		module(load="imuxsock" SysSock.UseSpecialParser="off")
1865
1866	Do note that these changes only affect communication between local
1867	applications and syslogd(8). The format that syslogd(8) uses to
1868	store messages on disk or forward messages to other systems
1869	remains unchanged. syslogd(8) still uses RFC 3164 for these
1870	purposes. Options to customize this behaviour will be added in the
1871	future. Utilities that process log files stored in /var/log are
1872	thus expected to continue to function as before.
1873
1874	__FreeBSD_version has been incremented to 1200061 to denote this
1875	change.
1876
187720180328:
1878	Support for token ring networks has been removed. If you
1879	have "device token" in your kernel config you should remove
1880	it. No device drivers supported token ring.
1881
188220180323:
1883	makefs was modified to be able to tag ISO9660 El Torito boot catalog
1884	entries as EFI instead of overloading the i386 tag as done previously.
1885	The amd64 mkisoimages.sh script used to build amd64 ISO images for
1886	release was updated to use this. This may mean that makefs must be
1887	updated before "make cdrom" can be run in the release directory. This
1888	should be as simple as:
1889
1890		$ cd $SRCDIR/usr.sbin/makefs
1891		$ make depend all install
1892
189320180212:
1894	FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for
1895	now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf.
1896	Co-existence for the transition period will come shortly. Booting is a
1897	complex environment and test coverage for Lua-enabled loaders has been
1898	thin, so it would be prudent to assume it might not work and make
1899	provisions for backup boot methods.
1900
190120180211:
1902	devmatch functionality has been turned on in devd. It will automatically
1903	load drivers for unattached devices. This may cause unexpected drivers
1904	to be loaded. Please report any problems to current@ and
1905	imp@freebsd.org.
1906
190720180114:
1908	Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
1909	6.0.0.  Please see the 20141231 entry below for information about
1910	prerequisites and upgrading, if you are not already using clang 3.5.0
1911	or higher.
1912
191320180110:
1914	LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker.
1915	This means it is used to link the kernel and userland libraries and
1916	executables, but is not yet installed as /usr/bin/ld by default.
1917
1918	To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set
1919	WITHOUT_LLD_BOOTSTRAP=yes
1920
192120180110:
1922	On i386, pmtimer has been removed. Its functionality has been folded
1923	into apm. It was a no-op on ACPI in current for a while now (but was
1924	still needed on i386 in FreeBSD 11 and earlier). Users may need to
1925	remove it from kernel config files.
1926
192720180104:
1928	The use of RSS hash from the network card aka flowid has been
1929	disabled by default for lagg(4) as it's currently incompatible with
1930	the lacp and loadbalance protocols.
1931
1932	This can be re-enabled by setting the following in loader.conf:
1933	net.link.lagg.default_use_flowid="1"
1934
193520180102:
1936	The SW_WATCHDOG option is no longer necessary to enable the
1937	hardclock-based software watchdog if no hardware watchdog is
1938	configured. As before, SW_WATCHDOG will cause the software
1939	watchdog to be enabled even if a hardware watchdog is configured.
1940
194120171215:
1942	r326887 fixes the issue described in the 20171214 UPDATING entry.
1943	r326888 flips the switch back to building GELI support always.
1944
194520171214:
1946	r362593 broke ZFS + GELI support for reasons unknown. However,
1947	it also broke ZFS support generally, so GELI has been turned off
1948	by default as the lesser evil in r326857. If you boot off ZFS and/or
1949	GELI, it might not be a good time to update.
1950
195120171125:
1952	PowerPC users must update loader(8) by rebuilding world before
1953	installing a new kernel, as the protocol connecting them has
1954	changed. Without the update, loader metadata will not be passed
1955	successfully to the kernel and users will have to enter their
1956	root partition at the kernel mountroot prompt to continue booting.
1957	Newer versions of loader can boot old kernels without issue.
1958
195920171110:
1960	The LOADER_FIREWIRE_SUPPORT build variable has been renamed to
1961	WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed
1962	to WITH/OUT_LOADER_GELI.
1963
196420171106:
1965	The naive and non-compliant support of posix_fallocate(2) in ZFS
1966	has been removed as of r325320.  The system call now returns EINVAL
1967	when used on a ZFS file.  Although the new behavior complies with the
1968	standard, some consumers are not prepared to cope with it.
1969	One known victim is lld prior to r325420.
1970
197120171102:
1972	Building in a FreeBSD src checkout will automatically create object
1973	directories now rather than store files in the current directory if
1974	'make obj' was not ran.  Calling 'make obj' is no longer necessary.
1975	This feature can be disabled by setting WITHOUT_AUTO_OBJ=yes in
1976	/etc/src-env.conf (not /etc/src.conf), or passing the option in the
1977	environment.
1978
197920171101:
1980	The default MAKEOBJDIR has changed from /usr/obj/<srcdir> for native
1981	builds, and /usr/obj/<arch>/<srcdir> for cross-builds, to a unified
1982	/usr/obj/<srcdir>/<arch>.  This behavior can be changed to the old
1983	format by setting WITHOUT_UNIFIED_OBJDIR=yes in /etc/src-env.conf,
1984	the environment, or with -DWITHOUT_UNIFIED_OBJDIR when building.
1985	The UNIFIED_OBJDIR option is a transitional feature that will be
1986	removed for 12.0 release; please migrate to the new format for any
1987	tools by looking up the OBJDIR used by 'make -V .OBJDIR' means rather
1988	than hardcoding paths.
1989
199020171028:
1991	The native-xtools target no longer installs the files by default to the
1992	OBJDIR.  Use the native-xtools-install target with a DESTDIR to install
1993	to ${DESTDIR}/${NXTP} where NXTP defaults to /nxb-bin.
1994
199520171021:
1996	As part of the boot loader infrastructure cleanup, LOADER_*_SUPPORT
1997	options are changing from controlling the build if defined / undefined
1998	to controlling the build with explicit 'yes' or 'no' values. They will
1999	shift to WITH/WITHOUT options to match other options in the system.
2000
200120171010:
2002	libstand has turned into a private library for sys/boot use only.
2003	It is no longer supported as a public interface outside of sys/boot.
2004
200520171005:
2006	The arm port has split armv6 into armv6 and armv7. armv7 is now
2007	a valid TARGET_ARCH/MACHINE_ARCH setting. If you have an armv7 system
2008	and are running a kernel from before r324363, you will need to add
2009	MACHINE_ARCH=armv7 to 'make buildworld' to do a native build.
2010
201120171003:
2012	When building multiple kernels using KERNCONF, non-existent KERNCONF
2013	files will produce an error and buildkernel will fail. Previously
2014	missing KERNCONF files silently failed giving no indication as to
2015	why, only to subsequently discover during installkernel that the
2016	desired kernel was never built in the first place.
2017
201820170912:
2019	The default serial number format for CTL LUNs has changed.  This will
2020	affect users who use /dev/diskid/* device nodes, or whose FibreChannel
2021	or iSCSI clients care about their LUNs' serial numbers.  Users who
2022	require serial number stability should hardcode serial numbers in
2023	/etc/ctl.conf .
2024
202520170912:
2026	For 32-bit arm compiled for hard-float support, soft-floating point
2027	binaries now always get their shared libraries from
2028	LD_SOFT_LIBRARY_PATH (in the past, this was only used if
2029	/usr/libsoft also existed). Only users with a hard-float ld.so, but
2030	soft-float everything else should be affected.
2031
203220170826:
2033	The geli password typed at boot is now hidden.  To restore the previous
2034	behavior, see geli(8) for configuration options.
2035
203620170825:
2037	Move PMTUD blackhole counters to TCPSTATS and remove them from bare
2038	sysctl values.  Minor nit, but requires a rebuild of both world/kernel
2039	to complete.
2040
204120170814:
2042	"make check" behavior (made in ^/head@r295380) has been changed to
2043	execute from a limited sandbox, as opposed to executing from
2044	${TESTSDIR}.
2045
2046	Behavioral changes:
2047	- The "beforecheck" and "aftercheck" targets are now specified.
2048	- ${CHECKDIR} (added in commit noted above) has been removed.
2049	- Legacy behavior can be enabled by setting
2050	  WITHOUT_MAKE_CHECK_USE_SANDBOX in src.conf(5) or the environment.
2051
2052	If the limited sandbox mode is enabled, "make check" will execute
2053	"make distribution", then install, execute the tests, and clean up the
2054	sandbox if successful.
2055
2056	The "make distribution" and "make install" targets are typically run as
2057	root to set appropriate permissions and ownership at installation time.
2058	The end-user should set "WITH_INSTALL_AS_USER" in src.conf(5) or the
2059	environment if executing "make check" with limited sandbox mode using
2060	an unprivileged user.
2061
206220170808:
2063	Since the switch to GPT disk labels, fsck for UFS/FFS has been
2064	unable to automatically find alternate superblocks. As of r322297,
2065	the information needed to find alternate superblocks has been
2066	moved to the end of the area reserved for the boot block.
2067	Filesystems created with a newfs of this vintage or later
2068	will create the recovery information. If you have a filesystem
2069	created prior to this change and wish to have a recovery block
2070	created for your filesystem, you can do so by running fsck in
2071	foreground mode (i.e., do not use the -p or -y options). As it
2072	starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS''
2073	to which you should answer yes.
2074
207520170728:
2076	As of r321665, an NFSv4 server configuration that services
2077	Kerberos mounts or clients that do not support the uid/gid in
2078	owner/owner_group string capability, must explicitly enable
2079	the nfsuserd daemon by adding nfsuserd_enable="YES" to the
2080	machine's /etc/rc.conf file.
2081
208220170722:
2083	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0.
2084	Please see the 20141231 entry below for information about prerequisites
2085	and upgrading, if you are not already using clang 3.5.0 or higher.
2086
208720170701:
2088	WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the
2089	r-commands (rlogin, rsh, etc.) to be built with the base system.
2090
209120170625:
2092	The FreeBSD/powerpc platform now uses a 64-bit type for time_t.  This is
2093	a very major ABI incompatible change, so users of FreeBSD/powerpc must
2094	be careful when performing source upgrades.  It is best to run
2095	'make installworld' from an alternate root system, either a live
2096	CD/memory stick, or a temporary root partition.  Additionally, all ports
2097	must be recompiled.  powerpc64 is largely unaffected, except in the case
2098	of 32-bit compatibility.  All 32-bit binaries will be affected.
2099
210020170623:
2101	Forward compatibility for the "ino64" project have been committed. This
2102	will allow most new binaries to run on older kernels in a limited
2103	fashion.  This prevents many of the common foot-shooting actions in the
2104	upgrade as well as the limited ability to roll back the kernel across
2105	the ino64 upgrade. Complicated use cases may not work properly, though
2106	enough simpler ones work to allow recovery in most situations.
2107
210820170620:
2109	Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC
2110	if you require the GPL compiler.
2111
211220170619:
2113	Forward compatibility for the "ino64" project have been committed. This
2114	will allow most new binaries to run on older kernels in a limited
2115	fashion.  This prevents many of the common foot-shooting actions in the
2116	upgrade as well as the limited ability to roll back the kernel across
2117	the ino64 upgrade. Complicated use cases may not work properly, though
2118	enough simpler ones work to allow recovery in most situations.
2119
212020170618:
2121	The internal ABI used for communication between the NFS kernel modules
2122	was changed by r320085, so __FreeBSD_version was bumped to
2123	ensure all the NFS related modules are updated together.
2124
212520170617:
2126	The ABI of struct event was changed by extending the data
2127	member to 64bit and adding ext fields.  For upgrade, same
2128	precautions as for the entry 20170523 "ino64" must be
2129	followed.
2130
213120170531:
2132	The GNU roff toolchain has been removed from base. To render manpages
2133	which are not supported by mandoc(1), man(1) can fallback on GNU roff
2134	from ports (and recommends to install it).
2135	To render roff(7) documents, consider using GNU roff from ports or the
2136	heirloom doctools roff toolchain from ports via pkg install groff or
2137	via pkg install heirloom-doctools.
2138
213920170524:
2140	The ath(4) and ath_hal(4) modules now build piecemeal to allow for
2141	smaller runtime footprint builds.  This is useful for embedded systems
2142	which only require one chipset support.
2143
2144	If you load it as a module, make sure this is in /boot/loader.conf:
2145
2146	if_ath_load="YES"
2147
2148	This will load the HAL, all chip/RF backends and if_ath_pci.
2149	If you have if_ath_pci in /boot/loader.conf, ensure it is after
2150	if_ath or it will not load any HAL chipset support.
2151
2152	If you want to selectively load things (eg on cheaper ARM/MIPS
2153	platforms where RAM is at a premium) you should:
2154
2155	* load ath_hal
2156	* load the chip modules in question
2157	* load ath_rate, ath_dfs
2158	* load ath_main
2159	* load if_ath_pci and/or if_ath_ahb depending upon your particular
2160	  bus bind type - this is where probe/attach is done.
2161
2162	For further comments/feedback, poke adrian@ .
2163
216420170523:
2165	The "ino64" 64-bit inode project has been committed, which extends
2166	a number of types to 64 bits.  Upgrading in place requires care and
2167	adherence to the documented upgrade procedure.
2168
2169	If using a custom kernel configuration ensure that the
2170	COMPAT_FREEBSD11 option is included (as during the upgrade the
2171	system will be running the ino64 kernel with the existing world).
2172
2173	For the safest in-place upgrade begin by removing previous build
2174	artifacts via "rm -rf /usr/obj/*".  Then, carefully follow the full
2175	procedure documented below under the heading "To rebuild everything and
2176	install it on the current system."  Specifically, a reboot is required
2177	after installing the new kernel before installing world. While an
2178	installworld normally works by accident from multiuser after rebooting
2179	the proper kernel, there are many cases where this will fail across this
2180	upgrade and installworld from single user is required.
2181
218220170424:
2183	The NATM framework including the en(4), fatm(4), hatm(4), and
2184	patm(4) devices has been removed.  Consumers should plan a
2185	migration before the end-of-life date for FreeBSD 11.
2186
218720170420:
2188	GNU diff has been replaced by a BSD licensed diff. Some features of GNU
2189	diff has not been implemented, if those are needed a newer version of
2190	GNU diff is available via the diffutils package under the gdiff name.
2191
219220170413:
2193	As of r316810 for ipfilter, keep frags is no longer assumed when
2194	keep state is specified in a rule. r316810 aligns ipfilter with
2195	documentation in man pages separating keep frags from keep state.
2196	This allows keep state to be specified without forcing keep frags
2197	and allows keep frags to be specified independently of keep state.
2198	To maintain previous behaviour, also specify keep frags with
2199	keep state (as documented in ipf.conf.5).
2200
220120170407:
2202	arm64 builds now use the base system LLD 4.0.0 linker by default,
2203	instead of requiring that the aarch64-binutils port or package be
2204	installed. To continue using aarch64-binutils, set
2205	CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin .
2206
220720170405:
2208	The UDP optimization in entry 20160818 that added the sysctl
2209	net.inet.udp.require_l2_bcast has been reverted.  L2 broadcast
2210	packets will no longer be treated as L3 broadcast packets.
2211
221220170331:
2213	Binds and sends to the loopback addresses, IPv6 and IPv4, will now
2214	use any explicitly assigned loopback address available in the jail
2215	instead of using the first assigned address of the jail.
2216
221720170329:
2218	The ctl.ko module no longer implements the iSCSI target frontend:
2219	cfiscsi.ko does instead.
2220
2221	If building cfiscsi.ko as a kernel module, the module can be loaded
2222	via one of the following methods:
2223	- `cfiscsi_load="YES"` in loader.conf(5).
2224	- Add `cfiscsi` to `$kld_list` in rc.conf(5).
2225	- ctladm(8)/ctld(8), when compiled with iSCSI support
2226	  (`WITH_ISCSI=yes` in src.conf(5))
2227
2228	Please see cfiscsi(4) for more details.
2229
223020170316:
2231	The mmcsd.ko module now additionally depends on geom_flashmap.ko.
2232	Also, mmc.ko and mmcsd.ko need to be a matching pair built from the
2233	same source (previously, the dependency of mmcsd.ko on mmc.ko was
2234	missing, but mmcsd.ko now will refuse to load if it is incompatible
2235	with mmc.ko).
2236
223720170315:
2238	The syntax of ipfw(8) named states was changed to avoid ambiguity.
2239	If you have used named states in the firewall rules, you need to modify
2240	them after installworld and before rebooting. Now named states must
2241	be prefixed with colon.
2242
224320170311:
2244	The old drm (sys/dev/drm/) drivers for i915 and radeon have been
2245	removed as the userland we provide cannot use them. The KMS version
2246	(sys/dev/drm2) supports the same hardware.
2247
224820170302:
2249	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0.
2250	Please see the 20141231 entry below for information about prerequisites
2251	and upgrading, if you are not already using clang 3.5.0 or higher.
2252
225320170221:
2254	The code that provides support for ZFS .zfs/ directory functionality
2255	has been reimplemented.  It's not possible now to create a snapshot
2256	by mkdir under .zfs/snapshot/.  That should be the only user visible
2257	change.
2258
225920170216:
2260	EISA bus support has been removed. The WITH_EISA option is no longer
2261	valid.
2262
226320170215:
2264	MCA bus support has been removed.
2265
226620170127:
2267	The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed
2268	WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC.
2269
227020170112:
2271	The EM_MULTIQUEUE kernel configuration option is deprecated now that
2272	the em(4) driver conforms to iflib specifications.
2273
227420170109:
2275	The igb(4), em(4) and lem(4) ethernet drivers are now implemented via
2276	IFLIB.  If you have a custom kernel configuration that excludes em(4)
2277	but you use igb(4), you need to re-add em(4) to your custom
2278	configuration.
2279
228020161217:
2281	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1.
2282	Please see the 20141231 entry below for information about prerequisites
2283	and upgrading, if you are not already using clang 3.5.0 or higher.
2284
228520161124:
2286	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0.
2287	Please see the 20141231 entry below for information about prerequisites
2288	and upgrading, if you are not already using clang 3.5.0 or higher.
2289
229020161119:
2291	The layout of the pmap structure has changed for powerpc to put the pmap
2292	statistics at the front for all CPU variations.  libkvm(3) and all tools
2293	that link against it need to be recompiled.
2294
229520161030:
2296	isl(4) and cyapa(4) drivers now require a new driver,
2297	chromebook_platform(4), to work properly on Chromebook-class hardware.
2298	On other types of hardware the drivers may need to be configured using
2299	device hints.  Please see the corresponding manual pages for details.
2300
230120161017:
2302	The urtwn(4) driver was merged into rtwn(4) and now consists of
2303	rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific
2304	parts.
2305	Also, firmware for RTL8188CE was renamed due to possible name
2306	conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B))
2307
230820161015:
2309	GNU rcs has been removed from base.  It is available as packages:
2310	- rcs: Latest GPLv3 GNU rcs version.
2311	- rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was
2312	removed from base.
2313
231420161008:
2315	Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control
2316	modules now requires that the kernel configuration contain the
2317	TCP_HHOOK option. (This option is included in the GENERIC kernel.)
2318
231920161003:
2320	The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired.
2321	ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy.
2322
232320160924:
2324	Relocatable object files with the extension of .So have been renamed
2325	to use an extension of .pico instead.  The purpose of this change is
2326	to avoid a name clash with shared libraries on case-insensitive file
2327	systems.  On those file systems, foo.So is the same file as foo.so.
2328
232920160918:
2330	GNU rcs has been turned off by default.  It can (temporarily) be built
2331	again by adding WITH_RCS knob in src.conf.
2332	Otherwise, GNU rcs is available from packages:
2333	- rcs: Latest GPLv3 GNU rcs version.
2334	- rcs57: Copy of the latest version of GNU rcs (GPLv2) from base.
2335
233620160918:
2337	The backup_uses_rcs functionality has been removed from rc.subr.
2338
233920160908:
2340	The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into
2341	two separate components, QUEUE_MACRO_DEBUG_TRACE and
2342	QUEUE_MACRO_DEBUG_TRASH.  Define both for the original
2343	QUEUE_MACRO_DEBUG behavior.
2344
234520160824:
2346	r304787 changed some ioctl interfaces between the iSCSI userspace
2347	programs and the kernel.  ctladm, ctld, iscsictl, and iscsid must be
2348	rebuilt to work with new kernels.  __FreeBSD_version has been bumped
2349	to 1200005.
2350
235120160818:
2352	The UDP receive code has been updated to only treat incoming UDP
2353	packets that were addressed to an L2 broadcast address as L3
2354	broadcast packets.  It is not expected that this will affect any
2355	standards-conforming UDP application.  The new behaviour can be
2356	disabled by setting the sysctl net.inet.udp.require_l2_bcast to
2357	0.
2358
235920160818:
2360	Remove the openbsd_poll system call.
2361	__FreeBSD_version has been bumped because of this.
2362
236320160708:
2364	The stable/11 branch has been created from head@r302406.
2365
2366After branch N is created, entries older than the N-2 branch point are removed
2367from this file. After stable/14 is branched and current becomes FreeBSD 15,
2368entries older than stable/12 branch point will be removed from current's
2369UPDATING file.
2370
2371COMMON ITEMS:
2372
2373	General Notes
2374	-------------
2375	Sometimes, obscure build problems are the result of environment
2376	poisoning.  This can happen because the make utility reads its
2377	environment when searching for values for global variables.  To run
2378	your build attempts in an "environmental clean room", prefix all make
2379	commands with 'env -i '.  See the env(1) manual page for more details.
2380	Occasionally a build failure will occur with "make -j" due to a race
2381	condition.  If this happens try building again without -j, and please
2382	report a bug if it happens consistently.
2383
2384	When upgrading from one major version to another it is generally best to
2385	upgrade to the latest code in the currently installed branch first, then
2386	do an upgrade to the new branch. This is the best-tested upgrade path,
2387	and has the highest probability of being successful.  Please try this
2388	approach if you encounter problems with a major version upgrade.  Since
2389	the stable 4.x branch point, one has generally been able to upgrade from
2390	anywhere in the most recent stable branch to head / current (or even the
2391	last couple of stable branches). See the top of this file when there's
2392	an exception.
2393
2394	The update process will emit an error on an attempt to perform a build
2395	or install from a FreeBSD version below the earliest supported version.
2396	When updating from an older version the update should be performed one
2397	major release at a time, including running `make delete-old` at each
2398	step.
2399
2400	When upgrading a live system, having a root shell around before
2401	installing anything can help undo problems. Not having a root shell
2402	around can lead to problems if pam has changed too much from your
2403	starting point to allow continued authentication after the upgrade.
2404
2405	This file should be read as a log of events. When a later event changes
2406	information of a prior event, the prior event should not be deleted.
2407	Instead, a pointer to the entry with the new information should be
2408	placed in the old entry. Readers of this file should also sanity check
2409	older entries before relying on them blindly. Authors of new entries
2410	should write them with this in mind.
2411
2412	ZFS notes
2413	---------
2414	When upgrading the boot ZFS pool to a new version (via zpool upgrade),
2415	always follow these three steps:
2416
2417	1) recompile and reinstall the ZFS boot loader and boot block
2418	(this is part of "make buildworld" and "make installworld")
2419
2420	2) update the ZFS boot block on your boot drive (only required when
2421	doing a zpool upgrade):
2422
2423	When booting on x86 via BIOS, use the following to update the ZFS boot
2424	block on the freebsd-boot partition of a GPT partitioned drive ada0:
2425		gpart bootcode -p /boot/gptzfsboot -i $N ada0
2426	The value $N will typically be 1.  For EFI booting, see EFI notes.
2427
2428	3) zpool upgrade the root pool. New bootblocks will work with old
2429	pools, but not vice versa, so they need to be updated before any
2430	zpool upgrade.
2431
2432	Non-boot pools do not need these updates.
2433
2434	EFI notes
2435	---------
2436
2437	There are two locations the boot loader can be installed into. The
2438	current location (and the default) is \efi\freebsd\loader.efi and using
2439	efibootmgr(8) to configure it. The old location, that must be used on
2440	deficient systems that don't honor efibootmgr(8) protocols, is the
2441	fallback location of \EFI\BOOT\BOOTxxx.EFI. Generally, you will copy
2442	/boot/loader.efi to this location, but on systems installed a long time
2443	ago the ESP may be too small and /boot/boot1.efi may be needed unless
2444	the ESP has been expanded in the meantime.
2445
2446	Recent systems will have the ESP mounted on /boot/efi, but older ones
2447	may not have it mounted at all, or mounted in a different
2448	location. Older arm SD images with MBR used /boot/msdos as the
2449	mountpoint. The ESP is a MSDOS filesystem.
2450
2451	The EFI boot loader rarely needs to be updated. For ZFS booting,
2452	however, you must update loader.efi before you do 'zpool upgrade' the
2453	root zpool, otherwise the old loader.efi may reject the upgraded zpool
2454	since it does not automatically understand some new features.
2455
2456	See loader.efi(8) and uefi(8) for more details.
2457
2458	To build a kernel
2459	-----------------
2460	If you are updating from a prior version of FreeBSD (even one just
2461	a few days old), you should follow this procedure.  It is the most
2462	failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
2463
2464	make kernel-toolchain
2465	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
2466	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
2467
2468	If you are running kernel modules from ports, see FOOTNOTE [1].
2469
2470	To test a kernel once
2471	---------------------
2472	If you just want to boot a kernel once (because you are not sure
2473	if it works, or if you want to boot a known bad kernel to provide
2474	debugging information) run
2475	make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
2476	nextboot -k testkernel
2477
2478	To rebuild everything and install it on the current system.
2479	-----------------------------------------------------------
2480	# Note: sometimes if you are running current you gotta do more than
2481	# is listed here if you are upgrading from a really old current.
2482
2483	<make sure you have good level 0 dumps>		[2]
2484	make buildworld
2485	<make sure any needed PORTS_MODULES are set>	[1]
2486	make buildkernel KERNCONF=YOUR_KERNEL_HERE
2487	make installkernel KERNCONF=YOUR_KERNEL_HERE
2488	<reboot in single user>				[3]
2489	etcupdate -p					[5]
2490	make installworld
2491	etcupdate -B					[4]
2492	make delete-old					[6]
2493	<reboot>
2494
2495	To cross-install current onto a separate partition
2496	--------------------------------------------------
2497	# In this approach we use a separate partition to hold
2498	# current's root, 'usr', and 'var' directories.   A partition
2499	# holding "/", "/usr" and "/var" should be about 2GB in
2500	# size.
2501
2502	<make sure you have good level 0 dumps>
2503	<boot into -stable>
2504	make buildworld
2505	make buildkernel KERNCONF=YOUR_KERNEL_HERE	[1]
2506	<maybe newfs current's root partition>
2507	<mount current's root partition on directory ${CURRENT_ROOT}>
2508	make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC
2509	make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
2510	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
2511	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
2512	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
2513	<reboot into current>
2514	<do a "native" rebuild/install as described in the previous section>
2515	<maybe install compatibility libraries from ports/misc/compat*>
2516	<reboot>
2517
2518
2519	To upgrade in-place from stable to current
2520	----------------------------------------------
2521	<make sure you have good level 0 dumps>		[2]
2522	make buildworld					[9]
2523	<make sure any needed PORTS_MODULES are set>	[1]
2524	make buildkernel KERNCONF=YOUR_KERNEL_HERE	[8]
2525	make installkernel KERNCONF=YOUR_KERNEL_HERE
2526	<reboot in single user>				[3]
2527	etcupdate -p					[5]
2528	make installworld
2529	etcupdate -B					[4]
2530	make delete-old					[6]
2531	<reboot>
2532
2533	Make sure that you've read the UPDATING file to understand the
2534	tweaks to various things you need.  At this point in the life
2535	cycle of current, things change often and you are on your own
2536	to cope.  The defaults can also change, so please read ALL of
2537	the UPDATING entries.
2538
2539	Also, if you are tracking -current, you must be subscribed to
2540	freebsd-current@freebsd.org.  Make sure that before you update
2541	your sources that you have read and understood all the recent
2542	messages there.  If in doubt, please track -stable which has
2543	much fewer pitfalls.
2544
2545FOOTNOTES:
2546
2547	[1] If you have third party modules, such as drm-kmod or vmware, you
2548	should disable them at this point so they don't crash your system on
2549	reboot. Alternatively, you should rebuild all the modules you have in
2550	your system and install them as well.  If you are running -current, you
2551	should seriously consider placing all sources to all the modules for
2552	your system (or symlinks to them) in /usr/local/sys/modules so this
2553	happens automatically. If all your modules come from ports, then adding
2554	the port origin directories to PORTS_MODULES instead is also automatic
2555	and effective, eg:
2556	     PORTS_MODULES+=graphics/drm-kmod graphics/nvidia-drm-kmod
2557
2558	[2] To make complete dumps on zfs(4), use bectl(8), which
2559	creates bootable snapshots of configurable depth that are
2560	selectable via the bootloader. For ufs(4), use dump(8) and
2561	restore(8).
2562
2563	[3] From the bootblocks, boot -s, and then do
2564		fsck -p
2565		mount -u /
2566		mount -a
2567		sh /etc/rc.d/zfs start	# mount zfs filesystem, if needed
2568		cd src			# full path to source
2569		adjkerntz -i		# if CMOS is wall time
2570	Also, when doing a major release upgrade, it is required that you boot
2571	into single user mode to do the installworld.
2572
2573	[4] Note: This step is non-optional.  Failure to do this step
2574	can result in a significant reduction in the functionality of the
2575	system.  Attempting to do it by hand is not recommended and those
2576	that pursue this avenue should read this file carefully, as well
2577	as the archives of freebsd-current and freebsd-hackers mailing lists
2578	for potential gotchas.  See etcupdate(8) for more information.
2579
2580	[5] Usually this step is a no-op.  However, from time to time
2581	you may need to do this if you get unknown user in the following
2582	step.
2583
2584	[6] This only deletes old files and directories. Old libraries
2585	can be deleted by "make delete-old-libs", but you have to make
2586	sure that no program is using those libraries anymore.
2587
2588	[8] The new kernel must be able to run existing binaries used by an
2589	installworld.  When upgrading across major versions, the new kernel's
2590	configuration must include the correct COMPAT_FREEBSD<n> option for
2591	existing binaries (e.g. COMPAT_FREEBSD11 to run 11.x binaries).  Failure
2592	to do so may leave you with a system that is hard to boot to recover. A
2593	GENERIC kernel will include suitable compatibility options to run
2594	binaries from older branches.  Note that the ability to run binaries
2595	from unsupported branches is not guaranteed.
2596
2597	Make sure that you merge any new devices from GENERIC since the
2598	last time you updated your kernel config file. Options also
2599	change over time, so you may need to adjust your custom kernels
2600	for these as well.
2601
2602	[9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the
2603	"?=" instead of the "=" assignment operator, so that buildworld can
2604	override the CPUTYPE if it needs to.
2605
2606	MAKEOBJDIRPREFIX must be defined in an environment variable, and
2607	not on the command line, or in /etc/make.conf.  buildworld will
2608	warn if it is improperly defined.
2609FORMAT:
2610
2611This file contains a list, in reverse chronological order, of major
2612breakages in tracking -current.  It is not guaranteed to be a complete
2613list of such breakages, and only contains entries since September 23, 2011.
2614If you need to see UPDATING entries from before that date, you will need
2615to fetch an UPDATING file from an older FreeBSD release.
2616
2617Copyright information:
2618
2619Copyright 1998-2009 M. Warner Losh <imp@FreeBSD.org>
2620
2621Redistribution, publication, translation and use, with or without
2622modification, in full or in part, in any form or format of this
2623document are permitted without further permission from the author.
2624
2625THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
2626IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
2627WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
2628DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
2629INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
2630(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
2631SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2632HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
2633STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
2634IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2635POSSIBILITY OF SUCH DAMAGE.
2636
2637Contact Warner Losh if you have any questions about your use of
2638this document.
2639