xref: /freebsd-13.1/UPDATING (revision d0bcdb3e)
1 Updating Information for FreeBSD stable/13 users.
2
3This file is maintained and copyrighted by M. Warner Losh <[email protected]>.
4See end of file for further details.  For commonly done items, please see the
5COMMON ITEMS: section later in the file.  These instructions assume that you
6basically know what you are doing.  If not, then please consult the FreeBSD
7handbook:
8
9    https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
10
11Items affecting the ports and packages system can be found in
12/usr/ports/UPDATING.  Please read that file before updating system packages
13and/or ports.
14
1520211124:
16	Commit 6e8e261f0d4e changed the internal KAPI between the NFS
17	modules.  As such, all the modules must be rebuilt from sources.
18	__FreeBSD_version has been bumped to 1300522.
19
2020211119:
21	Bump __FreeBSD_version to 1300521 after merging LinuxKPI and
22	net80211 changes in order to support building various wireless
23	drivers.  This is to help other external consumers of LinuxKPI
24	and net80211 to deal accordingly.
25
2620211003:
27	Commit a599f9f7620b deleted the variable called nfs_maxcopyrange
28	from nfscommon.ko, since it no longer needs to be global.  As such,
29	the other nfs modules must be rebuilt from up to date sources.
30	Bump __FreeBSD_version to 1300516 for this.
31
3220210823:
33	As of commit 622809b0868f OpenSSL no longer enables kernel TLS
34	by default.  Users can enable kernel TLS via the "KTLS" SSL
35	option.  This can be enabled globally by using a custom
36	OpenSSL config file via OPENSSL_CONF or via an
37	application-specific configuration option for applications
38	which permit setting SSL options via SSL_CONF_cmd(3).
39
4020210803:
41	Commits 9fb6e613373c and 9ec7dbf46b0a both changed the internal
42	KAPI between the NFS modules.  Bump __FreeBSD_version to 1300514.
43	All NFS modules must be rebuilt from sources.
44
4520210730:
46	Commit b69019c14cd8 removes pf's DIOCGETSTATESNV ioctl.
47	As of be70c7a50d32 it is no longer used by userspace, but it does mean
48	users may not be able to enumerate pf states if they update the kernel
49	past c021ff986e2b without first updating userspace past be70c7a50d32.
50
5120210718:
52	Bump __FreeBSD_version to 1300512 after merging LinuxKPI, OFED,
53	net80211, and driver changes in order to support building
54	Intel wireless iwlwifi drivers.  This is especially needed for
55	drm-kmod which needs updates after this.
56
5720210715:
58	The 20210707 awk update brought in a change in behavior. This has
59	been corrected as of d4d252c49976. Between these dates, if you
60	installed a new awk binary, you may not be able to build a new
61	kernel because the change in behavior affected the genoffset
62	script used to build the kernel. If you did update, the fix is
63	to update your sources past the above hash and do
64		% cd usr.bin/awk
65		% make clean all
66		% sudo -E make install
67	to enable building kernels again.
68
6920210711:
70	Commit 8a04edfdcbd2 changes the default minor version
71	used for NFSv4 mounts to the highest minor version supported
72	by the NFSv4 server.  This default can be overridden by using
73	the "minorversion" mount option.
74	The consensus of a discussion on freebsd-current@ indicated
75	that this would be acceptable to do and would not be considered
76	a POLA violation.
77
7820210710:
79	awk has been updated to the latest one-true-awk version 20210215.
80	This contains a number of minor bug fixes.
81
8220210630:
83        Commit ca179c4d74f2/632e3f2f3a66 changed the package in which
84	the OpenSSL libraries and utilities are packaged.
85        It is recommended for pkgbase user to do:
86        pkg install -f FreeBSD-openssl
87        before pkg upgrade otherwise some dependencies might not be met
88        and pkg will stop working as libssl will not be present anymore
89        on the system.
90
9120210626:
92	Commit 841006678745 changed the internal KAPI between the krpc
93	and nfsd modules.  As such, they must both be rebuilt from
94	sources.
95	__FreeBSD_version is bumped to 1300510.
96
9720210510:
98	Commit 272f39942254 changed the internal KAPI between the
99	nscl.ko and nfscommon.ko modules, so they both need to be
100	rebuilt from sources.
101
10220210429:
103	Commit 5a45802b3c8c changed the internal KAPI between
104	the krpc and NFS.  As such, the krpc, nfscommon and
105	nfscl modules must all be rebuilt from sources.
106	Without this patch, NFSv4.1/4.2 mounts should not
107	be done with the nfscbd(8) daemon running, to avoid
108	needing a working back channel for server->client RPCs.
109
11020210202:
111	Various LinuxKPI functionality was added which conflicts with DRM.
112	Please update your drm-kmod port to after the __FreeBSD_verison 1300139
113	update.
114
11520210122:
116	The stable/13 branch has been created from main.
117
11820210108:
119	PC Card attachments for all devices have been removed. In the case of
120	wi and cmx, the entire drivers were removed because they were only
121	PC Card devices. FreeBSD_version 1300134 should be used for this
122	since it was bumped so recently.
123
12420210107:
125	Transport-independent parts of HID support have been split off the USB
126	code in to separate subsystem.  Kernel configs which include one of
127	ums, ukbd, uhid, atp, wsp, wmt, uaudio, ugold or ucycom drivers should
128	be updated with adding of "device hid" line.
129
13020210105:
131	ncurses installation has been modified to only keep the widechar
132	enabled version.  Incremental build is broken for that change, so it
133	requires a clean build.
134
13520201223:
136	The FreeBSD project has migrated from Subversion to Git. Temporary
137	instructions can be found at
138	https://github.com/bsdimp/freebsd-git-docs/blob/main/src-cvt.md
139	and other documents in that repo.
140
14120201216:
142	The services database has been updated to cover more of the basic
143	services expected in a modern system. The database is big enough
144	that it will cause issues in mergemaster in Releases previous to
145	12.2 and 11.3, or in very old current systems from before r358154.
146
14720201215:
148	Obsolete in-tree GDB 6.1.1 has been removed.  GDB (including kgdb)
149	may be installed from ports or packages.
150
15120201124:
152	ping6 has been merged into ping.  It can now be called as "ping -6".
153	See ping(8) for details.
154
15520201108:
156	Default value of net.add_addr_allfibs has been changed to 0.
157	If you have multi-fib configuration and rely on existence of all
158	interface routes in every fib, you need to set the above sysctl to 1.
15920201030:
160	The internal pre-processor in the calendar(1) program has been
161	extended to support more C pre-processor commands (e.g. #ifdef, #else,
162	and #undef) and to detect unbalanced conditional statements.
163	Error messages have been extended to include the filename and line
164	number if processing stops to help fixing malformed data files.
165
16620201026:
167	All the data files for the calendar(1) program, except calendar.freebsd,
168	have been moved to the deskutils/calendar-data port, much like the
169	jewish calendar entries were moved to deskutils/hebcal years ago. After
170	make delete-old-files, you need to install it to retain full
171	functionality. calendar(1) will issue a reminder for files it can't
172	find.
173
17420200923:
175	LINT files are no longer generated. We now include the relevant NOTES
176	files. Note: This may cause conflicts with updating in some cases.
177	        find sys -name LINT\* -delete
178	is suggested across this commit	to remove the generated	LINT files.
179
180	If you have tried to update with generated files there, the svn
181	command you want to un-auger the tree is
182		cd sys/amd64/conf
183		svn revert -R .
184	and then do the above find from the top level. Substitute 'amd64'
185	above with where the error message indicates a conflict.
186
18720200824:
188	OpenZFS support has been integrated. Do not upgrade root pools until
189	the loader is updated to support zstd. Furthermore, we caution against
190	'zpool upgrade' for the next few weeks. The change should be transparent
191	unless you  want to use new features.
192
193	Not all "NO_CLEAN" build scenarios work across these changes. Many
194	scenarios have been tested and fixed, but rebuilding kernels without
195	rebuilding world may fail.
196
197	The ZFS cache file has moved from /boot to /etc to match the OpenZFS
198	upstream default. A fallback to /boot has been added for mountroot.
199
200	Pool auto import behavior at boot has been moved from the kernel module
201	to an explicit "zpool import -a" in one of the rc scripts enabled by
202	zfs_enable=YES. This means your non-root zpools won't auto import until
203	you upgrade your /etc/rc.d files.
204
20520200824:
206	The resume code now notifies devd with the 'kernel' system
207	rather than the old 'kern' subsystem to be consistent with
208	other use. The old notification will be created as well, but
209	will be removed prior to FreeBSD 14.0.
210
21120200821:
212	r362275 changed the internal API between the kernel RPC and the
213	NFS modules. As such, all the modules must be recompiled from
214	sources.
215
21620200817:
217	r364330 modified the internal API used between the NFS modules.
218	As such, all the NFS modules must be re-compiled from sources.
219
22020200816:
221	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
222	been upgraded to 11.0.0.  Please see the 20141231 entry below for
223	information about prerequisites and upgrading, if you are not already
224	using clang 3.5.0 or higher.
225
22620200810:
227	r364092 modified the internal ABI used between the kernel NFS
228	modules.  As such, all of these modules need to be rebuilt
229	from sources, so a version bump was done.
230
23120200807:
232	Makefile.inc has been updated to work around the issue documented in
233	20200729. It was a case where the optimization of using symbolic links
234	to point to binaries created a situation where we'd run new binaries
235	with old libraries starting midway through the installworld process.
236
23720200729:
238	r363679 has redefined some undefined behavior in regcomp(3); notably,
239	extraneous escapes of most ordinary characters will no longer be
240	accepted.  An exp-run has identified all of the problems with this in
241	ports, but other non-ports software may need extra escapes removed to
242	continue to function.
243
244	Because of this change, installworld may encounter the following error
245	from rtld: Undefined symbol "regcomp@FBSD_1.6" -- It is imperative that
246	you do not halt installworld. Instead, let it run to completion (whether
247	successful or not) and run installworld once more.
248
24920200627:
250	A new implementation of bc and dc has been imported in r362681. This
251	implementation corrects non-conformant behavior of the previous bc
252	and adds GNU bc compatible options. It offers a number of extensions,
253	is much faster on large values, and has support for message catalogs
254	(a number of languages are already supported, contributions of further
255	languages welcome). The option WITHOUT_GH_BC can be used to build the
256	world with the previous versions of bc and dc.
257
25820200625:
259	r362639 changed the internal API used between the NFS kernel modules.
260	As such, they all need to be rebuilt from sources.
261
26220200613:
263	r362158 changed the arguments for VFS_CHECKEXP().  As such, any
264	out of tree file systems need to be modified and rebuilt.
265	Also, any file systems that are modules must be rebuilt.
266
26720200604:
268	read(2) of a directory fd is now rejected by default.  root may
269	re-enable it for system root only on non-ZFS filesystems with the
270	security.bsd.allow_read_dir sysctl(8) MIB if
271	security.bsd.suser_enabled=1.
272
273	It may be advised to setup aliases for grep to default to `-d skip` if
274	commonly non-recursively grepping a list that includes directories and
275	the potential for the resulting stderr output is not tolerable.  Example
276	aliases are now installed, commented out, in /root/.cshrc and
277	/root/.shrc.
278
27920200523:
280	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
281	been upgraded to 10.0.1.  Please see the 20141231 entry below for
282	information about prerequisites and upgrading, if you are not already
283	using clang 3.5.0 or higher.
284
28520200512:
286	Support for obsolete compilers has been removed from the build system.
287	Clang 6 and GCC 6.4 are the minimum supported versions.
288
28920200424:
290	closefrom(2) has been moved under COMPAT12, and replaced in libc with a
291	stub that calls close_range(2).  If using a custom kernel configuration,
292	you may want to ensure that the COMPAT_FREEBSD12 option is included, as
293	a slightly older -CURRENT userland and older FreeBSD userlands may not
294	be functional without closefrom(2).
295
29620200414:
297	Upstream DTS from Linux 5.6 was merged and they now have the SID
298	and THS (Secure ID controller and THermal Sensor) node present.
299	The DTB overlays have now been removed from the tree for the H3/H5 and
300	A64 SoCs and the aw_sid and aw_thermal driver have been updated to
301	deal with upstream DTS. If you are using those overlays you need to
302	remove them from loader.conf and update the DTBs on the FAT partition.
303
30420200310:
305	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
306	been upgraded to 10.0.0.  Please see the 20141231 entry below for
307	information about prerequisites and upgrading, if you are not already
308	using clang 3.5.0 or higher.
309
31020200309:
311	The amd(8) automount daemon has been removed from the source tree.
312	As of FreeBSD 10.1 autofs(5) is the preferred tool for automounting.
313	amd is still available in the sysutils/am-utils port.
314
31520200301:
316	Removed brooktree driver (bktr.4) from the tree.
317
31820200229:
319	The WITH_GPL_DTC option has been removed.  The BSD-licenced device tree
320	compiler in usr.bin/dtc is used on all architectures which use dtc, and
321	the GPL dtc is available (if needed) from the sysutils/dtc port.
322
32320200229:
324	The WITHOUT_LLVM_LIBUNWIND option has been removed.  LLVM's libunwind
325	is used by all supported CPU architectures.
326
32720200229:
328	GCC 4.2.1 has been removed from the tree.  The WITH_GCC,
329	WITH_GCC_BOOTSTRAP, and WITH_GNUCXX options are no longer available.
330	Users who wish to build FreeBSD with GCC must use the external toolchain
331	ports or packages.
332
33320200220:
334	ncurses has been updated to a newer version (6.2-20200215). Given the ABI
335	has changed, users will have to rebuild all the ports that are linked to
336	ncurses.
337
33820200217:
339	The size of struct vnet and the magic cookie have changed.
340	Users need to recompile libkvm and all modules using VIMAGE
341	together with their new kernel.
342
34320200212:
344	Defining the long deprecated NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB,
345	NO_MAN, NO_PROFILE, and NO_WARNS variables is now an error.  Update
346	your Makefiles and scripts to define MK_<var>=no instead as required.
347
348	One exception to this is that program or library Makefiles should
349	define MAN to empty rather than setting MK_MAN=no.
350
35120200108:
352	Clang/LLVM is now the default compiler and LLD the default
353	linker for riscv64.
354
35520200107:
356	make universe no longer uses GCC 4.2.1 on any architectures.
357	Architectures not supported by in-tree Clang/LLVM require an
358	external toolchain package.
359
36020200104:
361	GCC 4.2.1 is now not built by default, as part of the GCC 4.2.1
362	retirement plan.  Specifically, the GCC, GCC_BOOTSTRAP, and GNUCXX
363	options default to off for all supported CPU architectures.  As a
364	short-term transition aid they may be enabled via WITH_* options.
365	GCC 4.2.1 is expected to be removed from the tree on 2020-03-31.
366
36720200102:
368	Support for armv5 has been disconnected and is being removed. The
369	machine combination MACHINE=arm MACHINE_ARCH=arm is no longer valid.
370	You must now use a MACHINE_ARCH of armv6 or armv7. The default
371	MACHINE_ARCH for MACHINE=arm is now armv7.
372
37320191226:
374	Clang/LLVM is now the default compiler for all powerpc architectures.
375	LLD is now the default linker for powerpc64.  The change for powerpc64
376	also includes a change to the ELFv2 ABI, incompatible with the existing
377	ABI.
378
37920191226:
380	Kernel-loadable random(4) modules are no longer unloadable.
381
38220191222:
383	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
384	been upgraded to 9.0.1.  Please see the 20141231 entry below for
385	information about prerequisites and upgrading, if you are not already
386	using clang 3.5.0 or higher.
387
38820191212:
389	r355677 has modified the internal interface used between the
390	NFS modules in the kernel. As such, they must all be upgraded
391	simultaneously. I will do a version bump for this.
392
39320191205:
394	The root certificates of the Mozilla CA Certificate Store have been
395	imported into the base system and can be managed with the certctl(8)
396	utility.  If you have installed the security/ca_root_nss port or package
397	with the ETCSYMLINK option (the default), be advised that there may be
398	differences between those included in the port and those included in
399	base due to differences in nss branch used as well as general update
400	frequency.  Note also that certctl(8) cannot manage certs in the
401	format used by the security/ca_root_nss port.
402
40320191120:
404	The amd(8) automount daemon has been disabled by default, and will be
405	removed in the future.  As of FreeBSD 10.1 the autofs(5) is available
406	for automounting.
407
40820191107:
409	The nctgpio and wbwd drivers have been moved to the superio bus.
410	If you have one of these drivers in a kernel configuration, then
411	you should add device superio to it.  If you use one of these drivers
412	as a module and you compile a custom set of modules, then you should
413	add superio to the set.
414
41520191021:
416	KPIs for network drivers to access interface addresses have changed.
417	Users need to recompile NIC driver modules together with kernel.
418
41920191021:
420	The net.link.tap.user_open sysctl no longer prevents user opening of
421	already created /dev/tapNN devices.  Access is still controlled by
422	node permissions, just like tun devices.  The net.link.tap.user_open
423	sysctl is now used only to allow users to perform devfs cloning of
424	tap devices, and the subsequent open may not succeed if the user is not
425	in the appropriate group.  This sysctl may be deprecated/removed
426	completely in the future.
427
42820191009:
429	mips, powerpc, and sparc64 are no longer built as part of
430	universe / tinderbox unless MAKE_OBSOLETE_GCC is defined. If
431	not defined, mips, powerpc, and sparc64 builds will look for
432	the xtoolchain binaries and if installed use them for universe
433	builds. As llvm 9.0 becomes vetted for these architectures, they
434	will be removed from the list.
435
43620191009:
437	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
438	been upgraded to 9.0.0.  Please see the 20141231 entry below for
439	information about prerequisites and upgrading, if you are not already
440	using clang 3.5.0 or higher.
441
44220191003:
443	The hpt27xx, hptmv, hptnr, and hptrr drivers have been removed from
444	GENERIC.  They are available as modules and can be loaded by adding
445	to /boot/loader.conf hpt27xx_load="YES", hptmv_load="YES",
446	hptnr_load="YES", or hptrr_load="YES", respectively.
447
44820190913:
449	ntpd no longer by default locks its pages in memory, allowing them
450	to be paged out by the kernel. Use rlimit memlock to restore
451	historic BSD behaviour. For example, add "rlimit memlock 32"
452	to ntp.conf to lock up to 32 MB of ntpd address space in memory.
453
45420190823:
455	Several of ping6's options have been renamed for better consistency
456	with ping.  If you use any of -ARWXaghmrtwx, you must update your
457	scripts.  See ping6(8) for details.
458
45920190727:
460	The vfs.fusefs.sync_unmount and vfs.fusefs.init_backgrounded sysctls
461	and the "-o sync_unmount" and "-o init_backgrounded" mount options have
462	been removed from mount_fusefs(8).  You can safely remove them from
463	your scripts, because they had no effect.
464
465	The vfs.fusefs.fix_broken_io, vfs.fusefs.sync_resize,
466	vfs.fusefs.refresh_size, vfs.fusefs.mmap_enable,
467	vfs.fusefs.reclaim_revoked, and vfs.fusefs.data_cache_invalidate
468	sysctls have been removed.  If you felt the need to set any of them to
469	a non-default value, please tell [email protected] why.
470
47120190713:
472	Default permissions on the /var/account/acct file (and copies of it
473	rotated by periodic daily scripts) are changed from 0644 to 0640
474	because the file contains sensitive information that should not be
475	world-readable.  If the /var/account directory must be created by
476	rc.d/accounting, the mode used is now 0750.  Admins who use the
477	accounting feature are encouraged to change the mode of an existing
478	/var/account directory to 0750 or 0700.
479
48020190620:
481	Entropy collection and the /dev/random device are no longer optional
482	components.  The "device random" option has been removed.
483	Implementations of distilling algorithms can still be made loadable
484	with "options RANDOM_LOADABLE" (e.g., random_fortuna.ko).
485
48620190612:
487	Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have
488	been upgraded to 8.0.1.  Please see the 20141231 entry below for
489	information about prerequisites and upgrading, if you are not already
490	using clang 3.5.0 or higher.
491
49220190608:
493	A fix was applied to i386 kernel modules to avoid panics with
494	dpcpu or vnet.  Users need to recompile i386 kernel modules
495	having pcpu or vnet sections or they will refuse to load.
496
49720190513:
498	User-wired pages now have their own counter,
499	vm.stats.vm.v_user_wire_count.  The vm.max_wired sysctl was renamed
500	to vm.max_user_wired and changed from an unsigned int to an unsigned
501	long.  bhyve VMs wired with the -S are now subject to the user
502	wiring limit; the vm.max_user_wired sysctl may need to be tuned to
503	avoid running into the limit.
504
50520190507:
506	The IPSEC option has been removed from GENERIC.  Users requiring
507	ipsec(4) must now load the ipsec(4) kernel module.
508
50920190507:
510	The tap(4) driver has been folded into tun(4), and the module has been
511	renamed to tuntap.  You should update any kld_list="if_tap" or
512	kld_list="if_tun" entries in /etc/rc.conf, if_tap_load="YES" or
513	if_tun_load="YES" entries in /boot/loader.conf to load the if_tuntap
514	module instead, and "device tap" or "device tun" entries in kernel
515	config files to select the tuntap device instead.
516
51720190418:
518	The following knobs have been added related to tradeoffs between
519	safe use of the random device and availability in the absence of
520	entropy:
521
522	kern.random.initial_seeding.bypass_before_seeding: tunable; set
523	non-zero to bypass the random device prior to seeding, or zero to
524	block random requests until the random device is initially seeded.
525	For now, set to 1 (unsafe) by default to restore pre-r346250 boot
526	availability properties.
527
528	kern.random.initial_seeding.read_random_bypassed_before_seeding:
529	read-only diagnostic sysctl that is set when bypass is enabled and
530	read_random(9) is bypassed, to enable programmatic handling of this
531	initial condition, if desired.
532
533	kern.random.initial_seeding.arc4random_bypassed_before_seeding:
534	Similar to the above, but for for arc4random(9) initial seeding.
535
536	kern.random.initial_seeding.disable_bypass_warnings: tunable; set
537	non-zero to disable warnings in dmesg when the same conditions are
538	met as for the diagnostic sysctls above.  Defaults to zero, i.e.,
539	produce warnings in dmesg when the conditions are met.
540
54120190416:
542	The loadable random module KPI has changed; the random_infra_init()
543	routine now requires a 3rd function pointer for a bool (*)(void)
544	method that returns true if the random device is seeded (and
545	therefore unblocked).
546
54720190404:
548	r345895 reverts r320698. This implies that an nfsuserd(8) daemon
549	built from head sources between r320757 (July 6, 2017) and
550	r338192 (Aug. 22, 2018) will not work unless the "-use-udpsock"
551	is added to the command line.
552	nfsuserd daemons built from head sources that are post-r338192 are
553	not affected and should continue to work.
554
55520190320:
556	The fuse(4) module has been renamed to fusefs(4) for consistency with
557	other filesystems.  You should update any kld_load="fuse" entries in
558	/etc/rc.conf, fuse_load="YES" entries in /boot/loader.conf, and
559	"options FUSE" entries in kernel config files.
560
56120190304:
562	Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
563	8.0.0.  Please see the 20141231 entry below for information about
564	prerequisites and upgrading, if you are not already using clang 3.5.0
565	or higher.
566
56720190226:
568	geom_uzip(4) depends on the new module xz.  If geom_uzip is statically
569	compiled into your custom kernel, add 'device xz' statement to the
570	kernel config.
571
57220190219:
573	drm and drm2 have been removed from the tree. Please see
574	https://wiki.freebsd.org/Graphics for the latest information on
575	migrating to the drm ports.
576
57720190131:
578	Iflib is no longer unconditionally compiled into the kernel.  Drivers
579	using iflib and statically compiled into the kernel, now require
580	the 'device iflib' config option.  For the same drivers loaded as
581	modules on kernels not having 'device iflib', the iflib.ko module
582	is loaded automatically.
583
58420190125:
585	The IEEE80211_AMPDU_AGE and AH_SUPPORT_AR5416 kernel configuration
586	options no longer exist since r343219 and r343427 respectively;
587	nothing uses them, so they should be just removed from custom
588	kernel config files.
589
59020181230:
591	r342635 changes the way efibootmgr(8) works by requiring users to add
592	the -b (bootnum) parameter for commands where the bootnum was previously
593	specified with each option. For example 'efibootmgr -B 0001' is now
594	'efibootmgr -B -b 0001'.
595
59620181220:
597	r342286 modifies the NFSv4 server so that it obeys vfs.nfsd.nfs_privport
598	in the same as it is applied to NFSv2 and 3.  This implies that NFSv4
599	servers that have vfs.nfsd.nfs_privport set will only allow mounts
600	from clients using a reserved port#. Since both the FreeBSD and Linux
601	NFSv4 clients use reserved port#s by default, this should not affect
602	most NFSv4 mounts.
603
60420181219:
605	The XLP config has been removed. We can't support 64-bit atomics in this
606	kernel because it is running in 32-bit mode. XLP users must transition
607	to running a 64-bit kernel (XLP64 or XLPN32).
608
609	The mips GXEMUL support has been removed from FreeBSD. MALTA* + qemu is
610	the preferred emulator today and we don't need two different ones.
611
612	The old sibyte / swarm / Broadcom BCM1250 support has been
613	removed from the mips port.
614
61520181211:
616	Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
617	7.0.1.  Please see the 20141231 entry below for information about
618	prerequisites and upgrading, if you are not already using clang 3.5.0
619	or higher.
620
62120181211:
622	Remove the timed and netdate programs from the base tree.  Setting
623	the time with these daemons has been obsolete for over a decade.
624
62520181126:
626	On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld
627	linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as
628	it produces broken binaries when ifuncs are in use.  Users needing
629	GNU ld should install the binutils port or package.
630
63120181123:
632	The BSD crtbegin and crtend code has been enabled by default. It has
633	had extensive testing on amd64, arm64, and i386. It can be disabled
634	by building a world with -DWITHOUT_BSD_CRTBEGIN.
635
63620181115:
637	The set of CTM commands (ctm, ctm_smail, ctm_rmail, ctm_dequeue)
638	has been converted to a port (misc/ctm) and will be removed from
639	FreeBSD-13.  It is available as a package (ctm) for all supported
640	FreeBSD versions.
641
64220181110:
643	The default newsyslog.conf(5) file has been changed to only include
644	files in /etc/newsyslog.conf.d/ and /usr/local/etc/newsyslog.conf.d/ if
645	the filenames end in '.conf' and do not begin with a '.'.
646
647	You should check the configuration files in these two directories match
648	this naming convention. You can verify which configuration files are
649	being included using the command:
650		$ newsyslog -Nrv
651
65220181015:
653	Ports for the DRM modules have been simplified. Now, amd64 users should
654	just install the drm-kmod port. All others should install
655	drm-legacy-kmod.
656
657	Graphics hardware that's newer than about 2010 usually works with
658	drm-kmod.  For hardware older than 2013, however, some users will need
659	to use drm-legacy-kmod if drm-kmod doesn't work for them. Hardware older
660	than 2008 usually only works in drm-legacy-kmod. The graphics team can
661	only commit to hardware made since 2013 due to the complexity of the
662	market and difficulty to test all the older cards effectively. If you
663	have hardware supported by drm-kmod, you are strongly encouraged to use
664	that as you will get better support.
665
666	Other than KPI chasing, drm-legacy-kmod will not be updated. As outlined
667	elsewhere, the drm and drm2 modules will be eliminated from the src base
668	soon (with a limited exception for arm). Please update to the package
669	asap and report any issues to [email protected].
670
671	Generally, anybody using the drm*-kmod packages should add
672	WITHOUT_DRM_MODULE=t and WITHOUT_DRM2_MODULE=t to avoid nasty
673	cross-threading surprises, especially with automatic driver
674	loading from X11 startup. These will become the defaults in 13-current
675	shortly.
676
67720181012:
678	The ixlv(4) driver has been renamed to iavf(4).  As a consequence,
679	custom kernel and module loading configuration files must be updated
680	accordingly.  Moreover, interfaces previous presented as ixlvN to the
681	system are now exposed as iavfN and network configuration files must
682	be adjusted as necessary.
683
68420181009:
685	OpenSSL has been updated to version 1.1.1.  This update included
686	additional various API changes throughout the base system.  It is
687	important to rebuild third-party software after upgrading.  The value
688	of __FreeBSD_version has been bumped accordingly.
689
69020181006:
691	The legacy DRM modules and drivers have now been added to the loader's
692	module blacklist, in favor of loading them with kld_list in rc.conf(5).
693	The module blacklist may be overridden with the loader.conf(5)
694	'module_blacklist' variable, but loading them via rc.conf(5) is strongly
695	encouraged.
696
69720181002:
698	The cam(4) based nda(4) driver will be used over nvd(4) by default on
699	powerpc64. You may set 'options NVME_USE_NVD=1' in your kernel conf or
700	loader tunable 'hw.nvme.use_nvd=1' if you wish to use the existing
701	driver.  Make sure to edit /boot/etc/kboot.conf and fstab to use the
702	nda device name.
703
70420180913:
705	Reproducible build mode is now on by default, in preparation for
706	FreeBSD 12.0.  This eliminates build metadata such as the user,
707	host, and time from the kernel (and uname), unless the working tree
708	corresponds to a modified checkout from a version control system.
709	The previous behavior can be obtained by setting the /etc/src.conf
710	knob WITHOUT_REPRODUCIBLE_BUILD.
711
71220180826:
713	The Yarrow CSPRNG has been removed from the kernel as it has not been
714	supported by its designers since at least 2003. Fortuna has been the
715	default since FreeBSD-11.
716
71720180822:
718	devctl freeze/thaw have gone into the tree, the rc scripts have been
719	updated to use them and devmatch has been changed.  You should update
720	kernel, userland and rc scripts all at the same time.
721
72220180818:
723	The default interpreter has been switched from 4th to Lua.
724	LOADER_DEFAULT_INTERP, documented in build(7), will override the default
725	interpreter.  If you have custom FORTH code you will need to set
726	LOADER_DEFAULT_INTERP=4th (valid values are 4th, lua or simp) in
727	src.conf for the build.  This will create default hard links between
728	loader and loader_4th instead of loader and loader_lua, the new default.
729	If you are using UEFI it will create the proper hard link to loader.efi.
730
731	bhyve uses userboot.so. It remains 4th-only until some issues are solved
732	regarding coexisting with multiple versions of FreeBSD are resolved.
733
73420180815:
735	ls(1) now respects the COLORTERM environment variable used in other
736	systems and software to indicate that a colored terminal is both
737	supported and desired.  If ls(1) is suddenly emitting colors, they may
738	be disabled again by either removing the unwanted COLORTERM from your
739	environment, or using `ls --color=never`.  The ls(1) specific CLICOLOR
740	may not be observed in a future release.
741
74220180808:
743	The default pager for most commands has been changed to "less".  To
744	restore the old behavior, set PAGER="more" and MANPAGER="more -s" in
745	your environment.
746
74720180731:
748	The jedec_ts(4) driver has been removed. A superset of its functionality
749	is available in the jedec_dimm(4) driver, and the manpage for that
750	driver includes migration instructions. If you have "device jedec_ts"
751	in your kernel configuration file, it must be removed.
752
75320180730:
754	amd64/GENERIC now has EFI runtime services, EFIRT, enabled by default.
755	This should have no effect if the kernel is booted via BIOS/legacy boot.
756	EFIRT may be disabled via a loader tunable, efi.rt.disabled, if a system
757	has a buggy firmware that prevents a successful boot due to use of
758	runtime services.
759
76020180727:
761	Atmel AT91RM9200 and AT91SAM9, Cavium CNS 11xx and XScale
762	support has been removed from the tree. These ports were
763	obsolete and/or known to be broken for many years.
764
76520180723:
766	loader.efi has been augmented to participate more fully in the
767	UEFI boot manager protocol. loader.efi will now look at the
768	BootXXXX environment variable to determine if a specific kernel
769	or root partition was specified. XXXX is derived from BootCurrent.
770	efibootmgr(8) manages these standard UEFI variables.
771
77220180720:
773	zfsloader's functionality has now been folded into loader.
774	zfsloader is no longer necessary once you've updated your
775	boot blocks. For a transition period, we will install a
776	hardlink for zfsloader to loader to allow a smooth transition
777	until the boot blocks can be updated (hard link because old
778	zfs boot blocks don't understand symlinks).
779
78020180719:
781	ARM64 now have efifb support, if you want to have serial console
782	on your arm64 board when an screen is connected and the bootloader
783	setup a frame buffer for us to use, just add :
784	boot_serial=YES
785	boot_multicons=YES
786	in /boot/loader.conf
787	For Raspberry Pi 3 (RPI) users, this is needed even if you don't have
788	an screen connected as the firmware will setup a frame buffer are that
789	u-boot will expose as an EFI frame buffer.
790
79120180719:
792	New uid:gid added, ntpd:ntpd (123:123).  Be sure to run mergemaster
793	or take steps to update /etc/passwd before doing installworld on
794	existing systems.  Do not skip the "mergemaster -Fp" step before
795	installworld, as described in the update procedures near the bottom
796	of this document.  Also, rc.d/ntpd now starts ntpd(8) as user ntpd
797	if the new mac_ntpd(4) policy is available, unless ntpd_flags or
798	the ntp config file contain options that change file/dir locations.
799	When such options (e.g., "statsdir" or "crypto") are used, ntpd can
800	still be run as non-root by setting ntpd_user=ntpd in rc.conf, after
801	taking steps to ensure that all required files/dirs are accessible
802	by the ntpd user.
803
80420180717:
805	Big endian arm support has been removed.
806
80720180711:
808	The static environment setup in kernel configs is no longer mutually
809	exclusive with the loader(8) environment by default.  In order to
810	restore the previous default behavior of disabling the loader(8)
811	environment if a static environment is present, you must specify
812	loader_env.disabled=1 in the static environment.
813
81420180705:
815	The ABI of syscalls used by management tools like sockstat and
816	netstat has been broken to allow 32-bit binaries to work on
817	64-bit kernels without modification.  These programs will need
818	to match the kernel in order to function.  External programs may
819	require minor modifications to accommodate a change of type in
820	structures from pointers to 64-bit virtual addresses.
821
82220180702:
823	On i386 and amd64 atomics are now inlined. Out of tree modules using
824	atomics will need to be rebuilt.
825
82620180701:
827	The '%I' format in the kern.corefile sysctl limits the number of
828	core files that a process can generate to the number stored in the
829	debug.ncores sysctl. The '%I' format is replaced by the single digit
830	index. Previously, if all indexes were taken the kernel would overwrite
831	only a core file with the highest index in a filename.
832	Currently the system will create a new core file if there is a free
833	index or if all slots are taken it will overwrite the oldest one.
834
83520180630:
836	Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
837	6.0.1.  Please see the 20141231 entry below for information about
838	prerequisites and upgrading, if you are not already using clang 3.5.0
839	or higher.
840
84120180628:
842	r335753 introduced a new quoting method. However, etc/devd/devmatch.conf
843	needed to be changed to work with it. This change was made with r335763
844	and requires a mergemaster / etcupdate / etc to update the installed
845	file.
846
84720180612:
848	r334930 changed the interface between the NFS modules, so they all
849	need to be rebuilt.  r335018 did a __FreeBSD_version bump for this.
850
85120180530:
852	As of r334391 lld is the default amd64 system linker; it is installed
853	as /usr/bin/ld.  Kernel build workarounds (see 20180510 entry) are no
854	longer necessary.
855
85620180530:
857	The kernel / userland interface for devinfo changed, so you'll
858	need a new kernel and userland as a pair for it to work (rebuilding
859	lib/libdevinfo is all that's required). devinfo and devmatch will
860	not work, but everything else will when there's a mismatch.
861
86220180523:
863	The on-disk format for hwpmc callchain records has changed to include
864	threadid corresponding to a given record. This changes the field offsets
865	and thus requires that libpmcstat be rebuilt before using a kernel
866	later than r334108.
867
86820180517:
869	The vxge(4) driver has been removed.  This driver was introduced into
870	HEAD one week before the Exar left the Ethernet market and is not
871	known to be used.  If you have device vxge in your kernel config file
872	it must be removed.
873
87420180510:
875	The amd64 kernel now requires a ld that supports ifunc to produce a
876	working kernel, either lld or a newer binutils. lld is built by default
877	on amd64, and the 'buildkernel' target uses it automatically. However,
878	it is not the default linker, so building the kernel the traditional
879	way requires LD=ld.lld on the command line (or LD=/usr/local/bin/ld for
880	binutils port/package). lld will soon be default, and this requirement
881	will go away.
882
883	NOTE: As of r334391 lld is the default system linker on amd64, and no
884	workaround is necessary.
885
88620180508:
887	The nxge(4) driver has been removed.  This driver was for PCI-X 10g
888	cards made by s2io/Neterion.  The company was acquired by Exar and
889	no longer sells or supports Ethernet products.  If you have device
890	nxge in your kernel config file it must be removed.
891
89220180504:
893	The tz database (tzdb) has been updated to 2018e.  This version more
894	correctly models time stamps in time zones with negative DST such as
895	Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and
896	Africa/Windhoek (1994/2017).  This does not affect the UT offsets, only
897	time zone abbreviations and the tm_isdst flag.
898
89920180502:
900	The ixgb(4) driver has been removed.  This driver was for an early and
901	uncommon legacy PCI 10GbE for a single ASIC, Intel 82597EX. Intel
902	quickly shifted to the long lived ixgbe family.  If you have device
903	ixgb in your kernel config file it must be removed.
904
90520180501:
906	The lmc(4) driver has been removed.  This was a WAN interface
907	card that was already reportedly rare in 2003, and had an ambiguous
908	license.  If you have device lmc in your kernel config file it must
909	be removed.
910
91120180413:
912	Support for Arcnet networks has been removed.  If you have device
913	arcnet or device cm in your kernel config file they must be
914	removed.
915
91620180411:
917	Support for FDDI networks has been removed.  If you have device
918	fddi or device fpa in your kernel config file they must be
919	removed.
920
92120180406:
922	In addition to supporting RFC 3164 formatted messages, the
923	syslogd(8) service is now capable of parsing RFC 5424 formatted
924	log messages. The main benefit of using RFC 5424 is that clients
925	may now send log messages with timestamps containing year numbers,
926	microseconds and time zone offsets.
927
928	Similarly, the syslog(3) C library function has been altered to
929	send RFC 5424 formatted messages to the local system logging
930	daemon. On systems using syslogd(8), this change should have no
931	negative impact, as long as syslogd(8) and the C library are
932	updated at the same time. On systems using a different system
933	logging daemon, it may be necessary to make configuration
934	adjustments, depending on the software used.
935
936	When using syslog-ng, add the 'syslog-protocol' flag to local
937	input sources to enable parsing of RFC 5424 formatted messages:
938
939		source src {
940			unix-dgram("/var/run/log" flags(syslog-protocol));
941		}
942
943	When using rsyslog, disable the 'SysSock.UseSpecialParser' option
944	of the 'imuxsock' module to let messages be processed by the
945	regular RFC 3164/5424 parsing pipeline:
946
947		module(load="imuxsock" SysSock.UseSpecialParser="off")
948
949	Do note that these changes only affect communication between local
950	applications and syslogd(8). The format that syslogd(8) uses to
951	store messages on disk or forward messages to other systems
952	remains unchanged. syslogd(8) still uses RFC 3164 for these
953	purposes. Options to customize this behaviour will be added in the
954	future. Utilities that process log files stored in /var/log are
955	thus expected to continue to function as before.
956
957	__FreeBSD_version has been incremented to 1200061 to denote this
958	change.
959
96020180328:
961	Support for token ring networks has been removed. If you
962	have "device token" in your kernel config you should remove
963	it. No device drivers supported token ring.
964
96520180323:
966	makefs was modified to be able to tag ISO9660 El Torito boot catalog
967	entries as EFI instead of overloading the i386 tag as done previously.
968	The amd64 mkisoimages.sh script used to build amd64 ISO images for
969	release was updated to use this. This may mean that makefs must be
970	updated before "make cdrom" can be run in the release directory. This
971	should be as simple as:
972
973		$ cd $SRCDIR/usr.sbin/makefs
974		$ make depend all install
975
97620180212:
977	FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for
978	now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf.
979	Co-existence for the transition period will come shortly. Booting is a
980	complex environment and test coverage for Lua-enabled loaders has been
981	thin, so it would be prudent to assume it might not work and make
982	provisions for backup boot methods.
983
98420180211:
985	devmatch functionality has been turned on in devd. It will automatically
986	load drivers for unattached devices. This may cause unexpected drivers
987	to be loaded. Please report any problems to current@ and
988	[email protected].
989
99020180114:
991	Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
992	6.0.0.  Please see the 20141231 entry below for information about
993	prerequisites and upgrading, if you are not already using clang 3.5.0
994	or higher.
995
99620180110:
997	LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker.
998	This means it is used to link the kernel and userland libraries and
999	executables, but is not yet installed as /usr/bin/ld by default.
1000
1001	To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set
1002	WITHOUT_LLD_BOOTSTRAP=yes
1003
100420180110:
1005	On i386, pmtimer has been removed. Its functionality has been folded
1006	into apm. It was a no-op on ACPI in current for a while now (but was
1007	still needed on i386 in FreeBSD 11 and earlier). Users may need to
1008	remove it from kernel config files.
1009
101020180104:
1011	The use of RSS hash from the network card aka flowid has been
1012	disabled by default for lagg(4) as it's currently incompatible with
1013	the lacp and loadbalance protocols.
1014
1015	This can be re-enabled by setting the following in loader.conf:
1016	net.link.lagg.default_use_flowid="1"
1017
101820180102:
1019	The SW_WATCHDOG option is no longer necessary to enable the
1020	hardclock-based software watchdog if no hardware watchdog is
1021	configured. As before, SW_WATCHDOG will cause the software
1022	watchdog to be enabled even if a hardware watchdog is configured.
1023
102420171215:
1025	r326887 fixes the issue described in the 20171214 UPDATING entry.
1026	r326888 flips the switch back to building GELI support always.
1027
102820171214:
1029	r362593 broke ZFS + GELI support for reasons unknown. However,
1030	it also broke ZFS support generally, so GELI has been turned off
1031	by default as the lesser evil in r326857. If you boot off ZFS and/or
1032	GELI, it might not be a good time to update.
1033
103420171125:
1035	PowerPC users must update loader(8) by rebuilding world before
1036	installing a new kernel, as the protocol connecting them has
1037	changed. Without the update, loader metadata will not be passed
1038	successfully to the kernel and users will have to enter their
1039	root partition at the kernel mountroot prompt to continue booting.
1040	Newer versions of loader can boot old kernels without issue.
1041
104220171110:
1043	The LOADER_FIREWIRE_SUPPORT build variable as been renamed to
1044	WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed
1045	to WITH/OUT_LOADER_GELI.
1046
104720171106:
1048	The naive and non-compliant support of posix_fallocate(2) in ZFS
1049	has been removed as of r325320.  The system call now returns EINVAL
1050	when used on a ZFS file.  Although the new behavior complies with the
1051	standard, some consumers are not prepared to cope with it.
1052	One known victim is lld prior to r325420.
1053
105420171102:
1055	Building in a FreeBSD src checkout will automatically create object
1056	directories now rather than store files in the current directory if
1057	'make obj' was not ran.  Calling 'make obj' is no longer necessary.
1058	This feature can be disabled by setting WITHOUT_AUTO_OBJ=yes in
1059	/etc/src-env.conf (not /etc/src.conf), or passing the option in the
1060	environment.
1061
106220171101:
1063	The default MAKEOBJDIR has changed from /usr/obj/<srcdir> for native
1064	builds, and /usr/obj/<arch>/<srcdir> for cross-builds, to a unified
1065	/usr/obj/<srcdir>/<arch>.  This behavior can be changed to the old
1066	format by setting WITHOUT_UNIFIED_OBJDIR=yes in /etc/src-env.conf,
1067	the environment, or with -DWITHOUT_UNIFIED_OBJDIR when building.
1068	The UNIFIED_OBJDIR option is a transitional feature that will be
1069	removed for 12.0 release; please migrate to the new format for any
1070	tools by looking up the OBJDIR used by 'make -V .OBJDIR' means rather
1071	than hardcoding paths.
1072
107320171028:
1074	The native-xtools target no longer installs the files by default to the
1075	OBJDIR.  Use the native-xtools-install target with a DESTDIR to install
1076	to ${DESTDIR}/${NXTP} where NXTP defaults to /nxb-bin.
1077
107820171021:
1079	As part of the boot loader infrastructure cleanup, LOADER_*_SUPPORT
1080	options are changing from controlling the build if defined / undefined
1081	to controlling the build with explicit 'yes' or 'no' values. They will
1082	shift to WITH/WITHOUT options to match other options in the system.
1083
108420171010:
1085	libstand has turned into a private library for sys/boot use only.
1086	It is no longer supported as a public interface outside of sys/boot.
1087
108820171005:
1089	The arm port has split armv6 into armv6 and armv7. armv7 is now
1090	a valid TARGET_ARCH/MACHINE_ARCH setting. If you have an armv7 system
1091	and are running a kernel from before r324363, you will need to add
1092	MACHINE_ARCH=armv7 to 'make buildworld' to do a native build.
1093
109420171003:
1095	When building multiple kernels using KERNCONF, non-existent KERNCONF
1096	files will produce an error and buildkernel will fail. Previously
1097	missing KERNCONF files silently failed giving no indication as to
1098	why, only to subsequently discover during installkernel that the
1099	desired kernel was never built in the first place.
1100
110120170912:
1102	The default serial number format for CTL LUNs has changed.  This will
1103	affect users who use /dev/diskid/* device nodes, or whose FibreChannel
1104	or iSCSI clients care about their LUNs' serial numbers.  Users who
1105	require serial number stability should hardcode serial numbers in
1106	/etc/ctl.conf .
1107
110820170912:
1109	For 32-bit arm compiled for hard-float support, soft-floating point
1110	binaries now always get their shared libraries from
1111	LD_SOFT_LIBRARY_PATH (in the past, this was only used if
1112	/usr/libsoft also existed). Only users with a hard-float ld.so, but
1113	soft-float everything else should be affected.
1114
111520170826:
1116	The geli password typed at boot is now hidden.  To restore the previous
1117	behavior, see geli(8) for configuration options.
1118
111920170825:
1120	Move PMTUD blackhole counters to TCPSTATS and remove them from bare
1121	sysctl values.  Minor nit, but requires a rebuild of both world/kernel
1122	to complete.
1123
112420170814:
1125	"make check" behavior (made in ^/head@r295380) has been changed to
1126	execute from a limited sandbox, as opposed to executing from
1127	${TESTSDIR}.
1128
1129	Behavioral changes:
1130	- The "beforecheck" and "aftercheck" targets are now specified.
1131	- ${CHECKDIR} (added in commit noted above) has been removed.
1132	- Legacy behavior can be enabled by setting
1133	  WITHOUT_MAKE_CHECK_USE_SANDBOX in src.conf(5) or the environment.
1134
1135	If the limited sandbox mode is enabled, "make check" will execute
1136	"make distribution", then install, execute the tests, and clean up the
1137	sandbox if successful.
1138
1139	The "make distribution" and "make install" targets are typically run as
1140	root to set appropriate permissions and ownership at installation time.
1141	The end-user should set "WITH_INSTALL_AS_USER" in src.conf(5) or the
1142	environment if executing "make check" with limited sandbox mode using
1143	an unprivileged user.
1144
114520170808:
1146	Since the switch to GPT disk labels, fsck for UFS/FFS has been
1147	unable to automatically find alternate superblocks. As of r322297,
1148	the information needed to find alternate superblocks has been
1149	moved to the end of the area reserved for the boot block.
1150	Filesystems created with a newfs of this vintage or later
1151	will create the recovery information. If you have a filesystem
1152	created prior to this change and wish to have a recovery block
1153	created for your filesystem, you can do so by running fsck in
1154	foreground mode (i.e., do not use the -p or -y options). As it
1155	starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS''
1156	to which you should answer yes.
1157
115820170728:
1159	As of r321665, an NFSv4 server configuration that services
1160	Kerberos mounts or clients that do not support the uid/gid in
1161	owner/owner_group string capability, must explicitly enable
1162	the nfsuserd daemon by adding nfsuserd_enable="YES" to the
1163	machine's /etc/rc.conf file.
1164
116520170722:
1166	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0.
1167	Please see the 20141231 entry below for information about prerequisites
1168	and upgrading, if you are not already using clang 3.5.0 or higher.
1169
117020170701:
1171	WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the
1172	r-commands (rlogin, rsh, etc.) to be built with the base system.
1173
117420170625:
1175	The FreeBSD/powerpc platform now uses a 64-bit type for time_t.  This is
1176	a very major ABI incompatible change, so users of FreeBSD/powerpc must
1177	be careful when performing source upgrades.  It is best to run
1178	'make installworld' from an alternate root system, either a live
1179	CD/memory stick, or a temporary root partition.  Additionally, all ports
1180	must be recompiled.  powerpc64 is largely unaffected, except in the case
1181	of 32-bit compatibility.  All 32-bit binaries will be affected.
1182
118320170623:
1184	Forward compatibility for the "ino64" project have been committed. This
1185	will allow most new binaries to run on older kernels in a limited
1186	fashion.  This prevents many of the common foot-shooting actions in the
1187	upgrade as well as the limited ability to roll back the kernel across
1188	the ino64 upgrade. Complicated use cases may not work properly, though
1189	enough simpler ones work to allow recovery in most situations.
1190
119120170620:
1192	Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC
1193	if you require the GPL compiler.
1194
119520170618:
1196	The internal ABI used for communication between the NFS kernel modules
1197	was changed by r320085, so __FreeBSD_version was bumped to
1198	ensure all the NFS related modules are updated together.
1199
120020170617:
1201	The ABI of struct event was changed by extending the data
1202	member to 64bit and adding ext fields.  For upgrade, same
1203	precautions as for the entry 20170523 "ino64" must be
1204	followed.
1205
120620170531:
1207	The GNU roff toolchain has been removed from base. To render manpages
1208	which are not supported by mandoc(1), man(1) can fallback on GNU roff
1209	from ports (and recommends to install it).
1210	To render roff(7) documents, consider using GNU roff from ports or the
1211	heirloom doctools roff toolchain from ports via pkg install groff or
1212	via pkg install heirloom-doctools.
1213
121420170524:
1215	The ath(4) and ath_hal(4) modules now build piecemeal to allow for
1216	smaller runtime footprint builds.  This is useful for embedded systems
1217	which only require one chipset support.
1218
1219	If you load it as a module, make sure this is in /boot/loader.conf:
1220
1221	if_ath_load="YES"
1222
1223	This will load the HAL, all chip/RF backends and if_ath_pci.
1224	If you have if_ath_pci in /boot/loader.conf, ensure it is after
1225	if_ath or it will not load any HAL chipset support.
1226
1227	If you want to selectively load things (eg on ye cheape ARM/MIPS
1228	platforms where RAM is at a premium) you should:
1229
1230	* load ath_hal
1231	* load the chip modules in question
1232	* load ath_rate, ath_dfs
1233	* load ath_main
1234	* load if_ath_pci and/or if_ath_ahb depending upon your particular
1235	  bus bind type - this is where probe/attach is done.
1236
1237	For further comments/feedback, poke adrian@ .
1238
123920170523:
1240	The "ino64" 64-bit inode project has been committed, which extends
1241	a number of types to 64 bits.  Upgrading in place requires care and
1242	adherence to the documented upgrade procedure.
1243
1244	If using a custom kernel configuration ensure that the
1245	COMPAT_FREEBSD11 option is included (as during the upgrade the
1246	system will be running the ino64 kernel with the existing world).
1247
1248	For the safest in-place upgrade begin by removing previous build
1249	artifacts via "rm -rf /usr/obj/*".  Then, carefully follow the full
1250	procedure documented below under the heading "To rebuild everything and
1251	install it on the current system."  Specifically, a reboot is required
1252	after installing the new kernel before installing world. While an
1253	installworld normally works by accident from multiuser after rebooting
1254	the proper kernel, there are many cases where this will fail across this
1255	upgrade and installworld from single user is required.
1256
125720170424:
1258	The NATM framework including the en(4), fatm(4), hatm(4), and
1259	patm(4) devices has been removed.  Consumers should plan a
1260	migration before the end-of-life date for FreeBSD 11.
1261
126220170420:
1263	GNU diff has been replaced by a BSD licensed diff. Some features of GNU
1264	diff has not been implemented, if those are needed a newer version of
1265	GNU diff is available via the diffutils package under the gdiff name.
1266
126720170413:
1268	As of r316810 for ipfilter, keep frags is no longer assumed when
1269	keep state is specified in a rule. r316810 aligns ipfilter with
1270	documentation in man pages separating keep frags from keep state.
1271	This allows keep state to be specified without forcing keep frags
1272	and allows keep frags to be specified independently of keep state.
1273	To maintain previous behaviour, also specify keep frags with
1274	keep state (as documented in ipf.conf.5).
1275
127620170407:
1277	arm64 builds now use the base system LLD 4.0.0 linker by default,
1278	instead of requiring that the aarch64-binutils port or package be
1279	installed. To continue using aarch64-binutils, set
1280	CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin .
1281
128220170405:
1283	The UDP optimization in entry 20160818 that added the sysctl
1284	net.inet.udp.require_l2_bcast has been reverted.  L2 broadcast
1285	packets will no longer be treated as L3 broadcast packets.
1286
128720170331:
1288	Binds and sends to the loopback addresses, IPv6 and IPv4, will now
1289	use any explicitly assigned loopback address available in the jail
1290	instead of using the first assigned address of the jail.
1291
129220170329:
1293	The ctl.ko module no longer implements the iSCSI target frontend:
1294	cfiscsi.ko does instead.
1295
1296	If building cfiscsi.ko as a kernel module, the module can be loaded
1297	via one of the following methods:
1298	- `cfiscsi_load="YES"` in loader.conf(5).
1299	- Add `cfiscsi` to `$kld_list` in rc.conf(5).
1300	- ctladm(8)/ctld(8), when compiled with iSCSI support
1301	  (`WITH_ISCSI=yes` in src.conf(5))
1302
1303	Please see cfiscsi(4) for more details.
1304
130520170316:
1306	The mmcsd.ko module now additionally depends on geom_flashmap.ko.
1307	Also, mmc.ko and mmcsd.ko need to be a matching pair built from the
1308	same source (previously, the dependency of mmcsd.ko on mmc.ko was
1309	missing, but mmcsd.ko now will refuse to load if it is incompatible
1310	with mmc.ko).
1311
131220170315:
1313	The syntax of ipfw(8) named states was changed to avoid ambiguity.
1314	If you have used named states in the firewall rules, you need to modify
1315	them after installworld and before rebooting. Now named states must
1316	be prefixed with colon.
1317
131820170311:
1319	The old drm (sys/dev/drm/) drivers for i915 and radeon have been
1320	removed as the userland we provide cannot use them. The KMS version
1321	(sys/dev/drm2) supports the same hardware.
1322
132320170302:
1324	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0.
1325	Please see the 20141231 entry below for information about prerequisites
1326	and upgrading, if you are not already using clang 3.5.0 or higher.
1327
132820170221:
1329	The code that provides support for ZFS .zfs/ directory functionality
1330	has been reimplemented.  It's not possible now to create a snapshot
1331	by mkdir under .zfs/snapshot/.  That should be the only user visible
1332	change.
1333
133420170216:
1335	EISA bus support has been removed. The WITH_EISA option is no longer
1336	valid.
1337
133820170215:
1339	MCA bus support has been removed.
1340
134120170127:
1342	The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed
1343	WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC.
1344
134520170112:
1346	The EM_MULTIQUEUE kernel configuration option is deprecated now that
1347	the em(4) driver conforms to iflib specifications.
1348
134920170109:
1350	The igb(4), em(4) and lem(4) ethernet drivers are now implemented via
1351	IFLIB.  If you have a custom kernel configuration that excludes em(4)
1352	but you use igb(4), you need to re-add em(4) to your custom
1353	configuration.
1354
135520161217:
1356	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1.
1357	Please see the 20141231 entry below for information about prerequisites
1358	and upgrading, if you are not already using clang 3.5.0 or higher.
1359
136020161124:
1361	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0.
1362	Please see the 20141231 entry below for information about prerequisites
1363	and upgrading, if you are not already using clang 3.5.0 or higher.
1364
136520161119:
1366	The layout of the pmap structure has changed for powerpc to put the pmap
1367	statistics at the front for all CPU variations.  libkvm(3) and all tools
1368	that link against it need to be recompiled.
1369
137020161030:
1371	isl(4) and cyapa(4) drivers now require a new driver,
1372	chromebook_platform(4), to work properly on Chromebook-class hardware.
1373	On other types of hardware the drivers may need to be configured using
1374	device hints.  Please see the corresponding manual pages for details.
1375
137620161017:
1377	The urtwn(4) driver was merged into rtwn(4) and now consists of
1378	rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific
1379	parts.
1380	Also, firmware for RTL8188CE was renamed due to possible name
1381	conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B))
1382
138320161015:
1384	GNU rcs has been removed from base.  It is available as packages:
1385	- rcs: Latest GPLv3 GNU rcs version.
1386	- rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was
1387	removed from base.
1388
138920161008:
1390	Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control
1391	modules now requires that the kernel configuration contain the
1392	TCP_HHOOK option. (This option is included in the GENERIC kernel.)
1393
139420161003:
1395	The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired.
1396	ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy.
1397
139820160924:
1399	Relocatable object files with the extension of .So have been renamed
1400	to use an extension of .pico instead.  The purpose of this change is
1401	to avoid a name clash with shared libraries on case-insensitive file
1402	systems.  On those file systems, foo.So is the same file as foo.so.
1403
140420160918:
1405	GNU rcs has been turned off by default.  It can (temporarily) be built
1406	again by adding WITH_RCS knob in src.conf.
1407	Otherwise, GNU rcs is available from packages:
1408	- rcs: Latest GPLv3 GNU rcs version.
1409	- rcs57: Copy of the latest version of GNU rcs (GPLv2) from base.
1410
141120160918:
1412	The backup_uses_rcs functionality has been removed from rc.subr.
1413
141420160908:
1415	The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into
1416	two separate components, QUEUE_MACRO_DEBUG_TRACE and
1417	QUEUE_MACRO_DEBUG_TRASH.  Define both for the original
1418	QUEUE_MACRO_DEBUG behavior.
1419
142020160824:
1421	r304787 changed some ioctl interfaces between the iSCSI userspace
1422	programs and the kernel.  ctladm, ctld, iscsictl, and iscsid must be
1423	rebuilt to work with new kernels.  __FreeBSD_version has been bumped
1424	to 1200005.
1425
142620160818:
1427	The UDP receive code has been updated to only treat incoming UDP
1428	packets that were addressed to an L2 broadcast address as L3
1429	broadcast packets.  It is not expected that this will affect any
1430	standards-conforming UDP application.  The new behaviour can be
1431	disabled by setting the sysctl net.inet.udp.require_l2_bcast to
1432	0.
1433
143420160818:
1435	Remove the openbsd_poll system call.
1436	__FreeBSD_version has been bumped because of this.
1437
143820160708:
1439	The stable/11 branch has been created from head@r302406.
1440
144120160622:
1442	The libc stub for the pipe(2) system call has been replaced with
1443	a wrapper that calls the pipe2(2) system call and the pipe(2)
1444	system call is now only implemented by the kernels that include
1445	"options COMPAT_FREEBSD10" in their config file (this is the
1446	default).  Users should ensure that this option is enabled in
1447	their kernel or upgrade userspace to r302092 before upgrading their
1448	kernel.
1449
145020160527:
1451	CAM will now strip leading spaces from SCSI disks' serial numbers.
1452	This will affect users who create UFS filesystems on SCSI disks using
1453	those disk's diskid device nodes.  For example, if /etc/fstab
1454	previously contained a line like
1455	"/dev/diskid/DISK-%20%20%20%20%20%20%20ABCDEFG0123456", you should
1456	change it to "/dev/diskid/DISK-ABCDEFG0123456".  Users of geom
1457	transforms like gmirror may also be affected.  ZFS users should
1458	generally be fine.
1459
146020160523:
1461	The bitstring(3) API has been updated with new functionality and
1462	improved performance.  But it is binary-incompatible with the old API.
1463	Objects built with the new headers may not be linked against objects
1464	built with the old headers.
1465
146620160520:
1467	The brk and sbrk functions have been removed from libc on arm64.
1468	Binutils from ports has been updated to not link to these
1469	functions and should be updated to the latest version before
1470	installing a new libc.
1471
147220160517:
1473	The armv6 port now defaults to hard float ABI. Limited support
1474	for running both hardfloat and soft float on the same system
1475	is available using the libraries installed with -DWITH_LIBSOFT.
1476	This has only been tested as an upgrade path for installworld
1477	and packages may fail or need manual intervention to run. New
1478	packages will be needed.
1479
1480	To update an existing self-hosted armv6hf system, you must add
1481	TARGET_ARCH=armv6 on the make command line for both the build
1482	and the install steps.
1483
148420160510:
1485	Kernel modules compiled outside of a kernel build now default to
1486	installing to /boot/modules instead of /boot/kernel.  Many kernel
1487	modules built this way (such as those in ports) already overrode
1488	KMODDIR explicitly to install into /boot/modules.  However,
1489	manually building and installing a module from /sys/modules will
1490	now install to /boot/modules instead of /boot/kernel.
1491
149220160414:
1493	The CAM I/O scheduler has been committed to the kernel. There should be
1494	no user visible impact. This does enable NCQ Trim on ada SSDs. While the
1495	list of known rogues that claim support for this but actually corrupt
1496	data is believed to be complete, be on the lookout for data
1497	corruption. The known rogue list is believed to be complete:
1498
1499		o Crucial MX100, M550 drives with MU01 firmware.
1500		o Micron M510 and M550 drives with MU01 firmware.
1501		o Micron M500 prior to MU07 firmware
1502		o Samsung 830, 840, and 850 all firmwares
1503		o FCCT M500 all firmwares
1504
1505	Crucial has firmware http://www.crucial.com/usa/en/support-ssd-firmware
1506	with working NCQ TRIM. For Micron branded drives, see your sales rep for
1507	updated firmware. Black listed drives will work correctly because these
1508	drives work correctly so long as no NCQ TRIMs are sent to them. Given
1509	this list is the same as found in Linux, it's believed there are no
1510	other rogues in the market place. All other models from the above
1511	vendors work.
1512
1513	To be safe, if you are at all concerned, you can quirk each of your
1514	drives to prevent NCQ from being sent by setting:
1515		kern.cam.ada.X.quirks="0x2"
1516	in loader.conf. If the drive requires the 4k sector quirk, set the
1517	quirks entry to 0x3.
1518
151920160330:
1520	The FAST_DEPEND build option has been removed and its functionality is
1521	now the one true way.  The old mkdep(1) style of 'make depend' has
1522	been removed.  See 20160311 for further details.
1523
152420160317:
1525	Resource range types have grown from unsigned long to uintmax_t.  All
1526	drivers, and anything using libdevinfo, need to be recompiled.
1527
152820160311:
1529	WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree
1530	builds.  It no longer runs mkdep(1) during 'make depend', and the
1531	'make depend' stage can safely be skipped now as it is auto ran
1532	when building 'make all' and will generate all SRCS and DPSRCS before
1533	building anything else.  Dependencies are gathered at compile time with
1534	-MF flags kept in separate .depend files per object file.  Users should
1535	run 'make cleandepend' once if using -DNO_CLEAN to clean out older
1536	stale .depend files.
1537
153820160306:
1539	On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into
1540	kernel modules.  Therefore, if you load any kernel modules at boot time,
1541	please install the boot loaders after you install the kernel, but before
1542	rebooting, e.g.:
1543
1544	make buildworld
1545	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1546	make installkernel KERNCONF=YOUR_KERNEL_HERE
1547	make -C sys/boot install
1548	<reboot in single user>
1549
1550	Then follow the usual steps, described in the General Notes section,
1551	below.
1552
155320160305:
1554	Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0.  Please
1555	see the 20141231 entry below for information about prerequisites and
1556	upgrading, if you are not already using clang 3.5.0 or higher.
1557
155820160301:
1559	The AIO subsystem is now a standard part of the kernel.  The
1560	VFS_AIO kernel option and aio.ko kernel module have been removed.
1561	Due to stability concerns, asynchronous I/O requests are only
1562	permitted on sockets and raw disks by default.  To enable
1563	asynchronous I/O requests on all file types, set the
1564	vfs.aio.enable_unsafe sysctl to a non-zero value.
1565
156620160226:
1567	The ELF object manipulation tool objcopy is now provided by the
1568	ELF Tool Chain project rather than by GNU binutils. It should be a
1569	drop-in replacement, with the addition of arm64 support. The
1570	(temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set
1571	to obtain the GNU version if necessary.
1572
157320160129:
1574	Building ZFS pools on top of zvols is prohibited by default.  That
1575	feature has never worked safely; it's always been prone to deadlocks.
1576	Using a zvol as the backing store for a VM guest's virtual disk will
1577	still work, even if the guest is using ZFS.  Legacy behavior can be
1578	restored by setting vfs.zfs.vol.recursive=1.
1579
158020160119:
1581	The NONE and HPN patches has been removed from OpenSSH.  They are
1582	still available in the security/openssh-portable port.
1583
158420160113:
1585	With the addition of ypldap(8), a new _ypldap user is now required
1586	during installworld. "mergemaster -p" can be used to add the user
1587	prior to installworld, as documented in the handbook.
1588
158920151216:
1590	The tftp loader (pxeboot) now uses the option root-path directive. As a
1591	consequence it no longer looks for a pxeboot.4th file on the tftp
1592	server. Instead it uses the regular /boot infrastructure as with the
1593	other loaders.
1594
159520151211:
1596	The code to start recording plug and play data into the modules has
1597	been committed. While the old tools will properly build a new kernel,
1598	a number of warnings about "unknown metadata record 4" will be produced
1599	for an older kldxref. To avoid such warnings, make sure to rebuild
1600	the kernel toolchain (or world). Make sure that you have r292078 or
1601	later when trying to build 292077 or later before rebuilding.
1602
160320151207:
1604	Debug data files are now built by default with 'make buildworld' and
1605	installed with 'make installworld'. This facilitates debugging but
1606	requires more disk space both during the build and for the installed
1607	world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes
1608	in src.conf(5).
1609
161020151130:
1611	r291527 changed the internal interface between the nfsd.ko and
1612	nfscommon.ko modules. As such, they must both be upgraded to-gether.
1613	__FreeBSD_version has been bumped because of this.
1614
161520151108:
1616	Add support for unicode collation strings leads to a change of
1617	order of files listed by ls(1) for example. To get back to the old
1618	behaviour, set LC_COLLATE environment variable to "C".
1619
1620	Databases administrators will need to reindex their databases given
1621	collation results will be different.
1622
1623	Due to a bug in install(1) it is recommended to remove the ancient
1624	locales before running make installworld.
1625
1626	rm -rf /usr/share/locale/*
1627
162820151030:
1629	The OpenSSL has been upgraded to 1.0.2d.  Any binaries requiring
1630	libcrypto.so.7 or libssl.so.7 must be recompiled.
1631
163220151020:
1633	Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0.
1634	Kernel modules isp_2400_multi and isp_2500_multi were removed and
1635	should be replaced with isp_2400 and isp_2500 modules respectively.
1636
163720151017:
1638	The build previously allowed using 'make -n' to not recurse into
1639	sub-directories while showing what commands would be executed, and
1640	'make -n -n' to recursively show commands.  Now 'make -n' will recurse
1641	and 'make -N' will not.
1642
164320151012:
1644	If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster
1645	and etcupdate will now use this file. A custom sendmail.cf is now
1646	updated via this mechanism rather than via installworld.  If you had
1647	excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may
1648	want to remove the exclusion or change it to "always install".
1649	/etc/mail/sendmail.cf is now managed the same way regardless of
1650	whether SENDMAIL_MC/SENDMAIL_CF is used.  If you are not using
1651	SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior.
1652
165320151011:
1654	Compatibility shims for legacy ATA device names have been removed.
1655	It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases
1656	and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.*
1657	environment variables, /dev/ad* and /dev/ar* symbolic links.
1658
165920151006:
1660	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0.
1661	Please see the 20141231 entry below for information about prerequisites
1662	and upgrading, if you are not already using clang 3.5.0 or higher.
1663
166420150924:
1665	Kernel debug files have been moved to /usr/lib/debug/boot/kernel/,
1666	and renamed from .symbols to .debug. This reduces the size requirements
1667	on the boot partition or file system and provides consistency with
1668	userland debug files.
1669
1670	When using the supported kernel installation method the
1671	/usr/lib/debug/boot/kernel directory will be renamed (to kernel.old)
1672	as is done with /boot/kernel.
1673
1674	Developers wishing to maintain the historical behavior of installing
1675	debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5).
1676
167720150827:
1678	The wireless drivers had undergone changes that remove the 'parent
1679	interface' from the ifconfig -l output. The rc.d network scripts
1680	used to check presence of a parent interface in the list, so old
1681	scripts would fail to start wireless networking. Thus, etcupdate(3)
1682	or mergemaster(8) run is required after kernel update, to update your
1683	rc.d scripts in /etc.
1684
168520150827:
1686	pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl'
1687	These configurations are now automatically interpreted as
1688	'scrub fragment reassemble'.
1689
169020150817:
1691	Kernel-loadable modules for the random(4) device are back. To use
1692	them, the kernel must have
1693
1694	device	random
1695	options	RANDOM_LOADABLE
1696
1697	kldload(8) can then be used to load random_fortuna.ko
1698	or random_yarrow.ko. Please note that due to the indirect
1699	function calls that the loadable modules need to provide,
1700	the build-in variants will be slightly more efficient.
1701
1702	The random(4) kernel option RANDOM_DUMMY has been retired due to
1703	unpopularity. It was not all that useful anyway.
1704
170520150813:
1706	The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired.
1707	Control over building the ELF Tool Chain tools is now provided by
1708	the WITHOUT_TOOLCHAIN knob.
1709
171020150810:
1711	The polarity of Pulse Per Second (PPS) capture events with the
1712	uart(4) driver has been corrected.  Prior to this change the PPS
1713	"assert" event corresponded to the trailing edge of a positive PPS
1714	pulse and the "clear" event was the leading edge of the next pulse.
1715
1716	As the width of a PPS pulse in a typical GPS receiver is on the
1717	order of 1 millisecond, most users will not notice any significant
1718	difference with this change.
1719
1720	Anyone who has compensated for the historical polarity reversal by
1721	configuring a negative offset equal to the pulse width will need to
1722	remove that workaround.
1723
172420150809:
1725	The default group assigned to /dev/dri entries has been changed
1726	from 'wheel' to 'video' with the id of '44'. If you want to have
1727	access to the dri devices please add yourself to the video group
1728	with:
1729
1730	# pw groupmod video -m $USER
1731
173220150806:
1733	The menu.rc and loader.rc files will now be replaced during
1734	upgrades. Please migrate local changes to menu.rc.local and
1735	loader.rc.local instead.
1736
173720150805:
1738	GNU Binutils versions of addr2line, c++filt, nm, readelf, size,
1739	strings and strip have been removed. The src.conf(5) knob
1740	WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools.
1741
174220150728:
1743	As ZFS requires more kernel stack pages than is the default on some
1744	architectures e.g. i386, it now warns if KSTACK_PAGES is less than
1745	ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing).
1746
1747	Please consider using 'options KSTACK_PAGES=X' where X is greater
1748	than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations.
1749
175020150706:
1751	sendmail has been updated to 8.15.2.  Starting with FreeBSD 11.0
1752	and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by
1753	default, i.e., they will not contain "::".  For example, instead
1754	of ::1, it will be 0:0:0:0:0:0:0:1.  This permits a zero subnet
1755	to have a more specific match, such as different map entries for
1756	IPv6:0:0 vs IPv6:0.  This change requires that configuration
1757	data (including maps, files, classes, custom ruleset, etc.) must
1758	use the same format, so make certain such configuration data is
1759	upgrading.  As a very simple check search for patterns like
1760	'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'.  To return to the old
1761	behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or
1762	the cf option UseCompressedIPv6Addresses.
1763
176420150630:
1765	The default kernel entropy-processing algorithm is now
1766	Fortuna, replacing Yarrow.
1767
1768	Assuming you have 'device random' in your kernel config
1769	file, the configurations allow a kernel option to override
1770	this default. You may choose *ONE* of:
1771
1772	options	RANDOM_YARROW	# Legacy /dev/random algorithm.
1773	options	RANDOM_DUMMY	# Blocking-only driver.
1774
1775	If you have neither, you get Fortuna.  For most people,
1776	read no further, Fortuna will give a /dev/random that works
1777	like it always used to, and the difference will be irrelevant.
1778
1779	If you remove 'device random', you get *NO* kernel-processed
1780	entropy at all. This may be acceptable to folks building
1781	embedded systems, but has complications. Carry on reading,
1782	and it is assumed you know what you need.
1783
1784	*PLEASE* read random(4) and random(9) if you are in the
1785	habit of tweaking kernel configs, and/or if you are a member
1786	of the embedded community, wanting specific and not-usual
1787	behaviour from your security subsystems.
1788
1789	NOTE!! If you use RANDOM_DUMMY and/or have no 'device
1790	random', you will NOT have a functioning /dev/random, and
1791	many cryptographic features will not work, including SSH.
1792	You may also find strange behaviour from the random(3) set
1793	of library functions, in particular sranddev(3), srandomdev(3)
1794	and arc4random(3). The reason for this is that the KERN_ARND
1795	sysctl only returns entropy if it thinks it has some to
1796	share, and with RANDOM_DUMMY or no 'device random' this
1797	will never happen.
1798
179920150623:
1800	An additional fix for the issue described in the 20150614 sendmail
1801	entry below has been committed in revision 284717.
1802
180320150616:
1804	FreeBSD's old make (fmake) has been removed from the system. It is
1805	available as the devel/fmake port or via pkg install fmake.
1806
180720150615:
1808	The fix for the issue described in the 20150614 sendmail entry
1809	below has been committed in revision 284436.  The work
1810	around described in that entry is no longer needed unless the
1811	default setting is overridden by a confDH_PARAMETERS configuration
1812	setting of '5' or pointing to a 512 bit DH parameter file.
1813
181420150614:
1815	ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from
1816	atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf
1817	and devel/kyua to version 0.20+ and adjust any calling code to work
1818	with Kyuafile and kyua.
1819
182020150614:
1821	The import of openssl to address the FreeBSD-SA-15:10.openssl
1822	security advisory includes a change which rejects handshakes
1823	with DH parameters below 768 bits.  sendmail releases prior
1824	to 8.15.2 (not yet released), defaulted to a 512 bit
1825	DH parameter setting for client connections.  To work around
1826	this interoperability, sendmail can be configured to use a
1827	2048 bit DH parameter by:
1828
1829	1. Edit /etc/mail/`hostname`.mc
1830	2. If a setting for confDH_PARAMETERS does not exist or
1831	   exists and is set to a string beginning with '5',
1832	   replace it with '2'.
1833	3. If a setting for confDH_PARAMETERS exists and is set to
1834	   a file path, create a new file with:
1835		openssl dhparam -out /path/to/file 2048
1836	4. Rebuild the .cf file:
1837		cd /etc/mail/; make; make install
1838	5. Restart sendmail:
1839		cd /etc/mail/; make restart
1840
1841	A sendmail patch is coming, at which time this file will be
1842	updated.
1843
184420150604:
1845	Generation of legacy formatted entries have been disabled by default
1846	in pwd_mkdb(8), as all base system consumers of the legacy formatted
1847	entries were converted to use the new format by default when the new,
1848	machine independent format have been added and supported since FreeBSD
1849	5.x.
1850
1851	Please see the pwd_mkdb(8) manual page for further details.
1852
185320150525:
1854	Clang and llvm have been upgraded to 3.6.1 release.  Please see the
1855	20141231 entry below for information about prerequisites and upgrading,
1856	if you are not already using 3.5.0 or higher.
1857
185820150521:
1859	TI platform code switched to using vendor DTS files and this update
1860	may break existing systems running on Beaglebone, Beaglebone Black,
1861	and Pandaboard:
1862
1863	- dtb files should be regenerated/reinstalled. Filenames are the
1864	  same but content is different now
1865	- GPIO addressing was changed, now each GPIO bank (32 pins per bank)
1866	  has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old
1867	  addressing scheme is now pin 25 on /dev/gpioc3.
1868	- Pandaboard: /etc/ttys should be updated, serial console device is
1869	  now /dev/ttyu2, not /dev/ttyu0
1870
187120150501:
1872	soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim.
1873	If you need the GNU extension from groff soelim(1), install groff
1874	from package: pkg install groff, or via ports: textproc/groff.
1875
187620150423:
1877	chmod, chflags, chown and chgrp now affect symlinks in -R mode as
1878	defined in symlink(7); previously symlinks were silently ignored.
1879
188020150415:
1881	The const qualifier has been removed from iconv(3) to comply with
1882	POSIX.  The ports tree is aware of this from r384038 onwards.
1883
188420150416:
1885	Libraries specified by LIBADD in Makefiles must have a corresponding
1886	DPADD_<lib> variable to ensure correct dependencies.  This is now
1887	enforced in src.libnames.mk.
1888
188920150324:
1890	From legacy ata(4) driver was removed support for SATA controllers
1891	supported by more functional drivers ahci(4), siis(4) and mvs(4).
1892	Kernel modules ataahci and ataadaptec were removed completely,
1893	replaced by ahci and mvs modules respectively.
1894
189520150315:
1896	Clang, llvm and lldb have been upgraded to 3.6.0 release.  Please see
1897	the 20141231 entry below for information about prerequisites and
1898	upgrading, if you are not already using 3.5.0 or higher.
1899
190020150307:
1901	The 32-bit PowerPC kernel has been changed to a position-independent
1902	executable. This can only be booted with a version of loader(8)
1903	newer than January 31, 2015, so make sure to update both world and
1904	kernel before rebooting.
1905
190620150217:
1907	If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014),
1908	but before r278950, the RNG was not seeded properly.  Immediately
1909	upgrade the kernel to r278950 or later and regenerate any keys (e.g.
1910	ssh keys or openssl keys) that were generated w/ a kernel from that
1911	range.  This does not affect programs that directly used /dev/random
1912	or /dev/urandom.  All userland uses of arc4random(3) are affected.
1913
191420150210:
1915	The autofs(4) ABI was changed in order to restore binary compatibility
1916	with 10.1-RELEASE.  The automountd(8) daemon needs to be rebuilt to work
1917	with the new kernel.
1918
191920150131:
1920	The powerpc64 kernel has been changed to a position-independent
1921	executable. This can only be booted with a new version of loader(8),
1922	so make sure to update both world and kernel before rebooting.
1923
192420150118:
1925	Clang and llvm have been upgraded to 3.5.1 release.  This is a bugfix
1926	only release, no new features have been added.  Please see the 20141231
1927	entry below for information about prerequisites and upgrading, if you
1928	are not already using 3.5.0.
1929
193020150107:
1931	ELF tools addr2line, elfcopy (strip), nm, size, and strings are now
1932	taken from the ELF Tool Chain project rather than GNU binutils. They
1933	should be drop-in replacements, with the addition of arm64 support.
1934	The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the
1935	binutils tools, if necessary. See 20150805 for updated information.
1936
193720150105:
1938	The default Unbound configuration now enables remote control
1939	using a local socket.  Users who have already enabled the
1940	local_unbound service should regenerate their configuration
1941	by running "service local_unbound setup" as root.
1942
194320150102:
1944	The GNU texinfo and GNU info pages have been removed.
1945	To be able to view GNU info pages please install texinfo from ports.
1946
194720141231:
1948	Clang, llvm and lldb have been upgraded to 3.5.0 release.
1949
1950	As of this release, a prerequisite for building clang, llvm and lldb is
1951	a C++11 capable compiler and C++11 standard library.  This means that to
1952	be able to successfully build the cross-tools stage of buildworld, with
1953	clang as the bootstrap compiler, your system compiler or cross compiler
1954	should either be clang 3.3 or later, or gcc 4.8 or later, and your
1955	system C++ library should be libc++, or libdstdc++ from gcc 4.8 or
1956	later.
1957
1958	On any standard FreeBSD 10.x or 11.x installation, where clang and
1959	libc++ are on by default (that is, on x86 or arm), this should work out
1960	of the box.
1961
1962	On 9.x installations where clang is enabled by default, e.g. on x86 and
1963	powerpc, libc++ will not be enabled by default, so libc++ should be
1964	built (with clang) and installed first.  If both clang and libc++ are
1965	missing, build clang first, then use it to build libc++.
1966
1967	On 8.x and earlier installations, upgrade to 9.x first, and then follow
1968	the instructions for 9.x above.
1969
1970	Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by
1971	default, and do not build clang.
1972
1973	Many embedded systems are resource constrained, and will not be able to
1974	build clang in a reasonable time, or in some cases at all.  In those
1975	cases, cross building bootable systems on amd64 is a workaround.
1976
1977	This new version of clang introduces a number of new warnings, of which
1978	the following are most likely to appear:
1979
1980	-Wabsolute-value
1981
1982	This warns in two cases, for both C and C++:
1983	* When the code is trying to take the absolute value of an unsigned
1984	  quantity, which is effectively a no-op, and almost never what was
1985	  intended.  The code should be fixed, if at all possible.  If you are
1986	  sure that the unsigned quantity can be safely cast to signed, without
1987	  loss of information or undefined behavior, you can add an explicit
1988	  cast, or disable the warning.
1989
1990	* When the code is trying to take an absolute value, but the called
1991	  abs() variant is for the wrong type, which can lead to truncation.
1992	  If you want to disable the warning instead of fixing the code, please
1993	  make sure that truncation will not occur, or it might lead to unwanted
1994	  side-effects.
1995
1996	-Wtautological-undefined-compare and
1997	-Wundefined-bool-conversion
1998
1999	These warn when C++ code is trying to compare 'this' against NULL, while
2000	'this' should never be NULL in well-defined C++ code.  However, there is
2001	some legacy (pre C++11) code out there, which actively abuses this
2002	feature, which was less strictly defined in previous C++ versions.
2003
2004	Squid and openjdk do this, for example.  The warning can be turned off
2005	for C++98 and earlier, but compiling the code in C++11 mode might result
2006	in unexpected behavior; for example, the parts of the program that are
2007	unreachable could be optimized away.
2008
200920141222:
2010	The old NFS client and server (kernel options NFSCLIENT, NFSSERVER)
2011	kernel sources have been removed. The .h files remain, since some
2012	utilities include them. This will need to be fixed later.
2013	If "mount -t oldnfs ..." is attempted, it will fail.
2014	If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used,
2015	the utilities will report errors.
2016
201720141121:
2018	The handling of LOCAL_LIB_DIRS has been altered to skip addition of
2019	directories to top level SUBDIR variable when their parent
2020	directory is included in LOCAL_DIRS.  Users with build systems with
2021	such hierarchies and without SUBDIR entries in the parent
2022	directory Makefiles should add them or add the directories to
2023	LOCAL_DIRS.
2024
202520141109:
2026	faith(4) and faithd(8) have been removed from the base system. Faith
2027	has been obsolete for a very long time.
2028
202920141104:
2030	vt(4), the new console driver, is enabled by default. It brings
2031	support for Unicode and double-width characters, as well as
2032	support for UEFI and integration with the KMS kernel video
2033	drivers.
2034
2035	You may need to update your console settings in /etc/rc.conf,
2036	most probably the keymap. During boot, /etc/rc.d/syscons will
2037	indicate what you need to do.
2038
2039	vt(4) still has issues and lacks some features compared to
2040	syscons(4). See the wiki for up-to-date information:
2041	  https://wiki.freebsd.org/Newcons
2042
2043	If you want to keep using syscons(4), you can do so by adding
2044	the following line to /boot/loader.conf:
2045	  kern.vty=sc
2046
204720141102:
2048	pjdfstest has been integrated into kyua as an opt-in test suite.
2049	Please see share/doc/pjdfstest/README for more details on how to
2050	execute it.
2051
205220141009:
2053	gperf has been removed from the base system for architectures
2054	that use clang. Ports that require gperf will obtain it from the
2055	devel/gperf port.
2056
205720140923:
2058	pjdfstest has been moved from tools/regression/pjdfstest to
2059	contrib/pjdfstest .
2060
206120140922:
2062	At svn r271982, The default linux compat kernel ABI has been adjusted
2063	to 2.6.18 in support of the linux-c6 compat ports infrastructure
2064	update.  If you wish to continue using the linux-f10 compat ports,
2065	add compat.linux.osrelease=2.6.16 to your local sysctl.conf.  Users are
2066	encouraged to update their linux-compat packages to linux-c6 during
2067	their next update cycle.
2068
206920140729:
2070	The ofwfb driver, used to provide a graphics console on PowerPC when
2071	using vt(4), no longer allows mmap() of all physical memory. This
2072	will prevent Xorg on PowerPC with some ATI graphics cards from
2073	initializing properly unless x11-servers/xorg-server is updated to
2074	1.12.4_8 or newer.
2075
207620140723:
2077	The xdev targets have been converted to using TARGET and
2078	TARGET_ARCH instead of XDEV and XDEV_ARCH.
2079
208020140719:
2081	The default unbound configuration has been modified to address
2082	issues with reverse lookups on networks that use private
2083	address ranges.  If you use the local_unbound service, run
2084	"service local_unbound setup" as root to regenerate your
2085	configuration, then "service local_unbound reload" to load the
2086	new configuration.
2087
208820140709:
2089	The GNU texinfo and GNU info pages are not built and installed
2090	anymore, WITH_INFO knob has been added to allow to built and install
2091	them again.
2092	UPDATE: see 20150102 entry on texinfo's removal
2093
209420140708:
2095	The GNU readline library is now an INTERNALLIB - that is, it is
2096	statically linked into consumers (GDB and variants) in the base
2097	system, and the shared library is no longer installed.  The
2098	devel/readline port is available for third party software that
2099	requires readline.
2100
210120140702:
2102	The Itanium architecture (ia64) has been removed from the list of
2103	known architectures. This is the first step in the removal of the
2104	architecture.
2105
210620140701:
2107	Commit r268115 has added NFSv4.1 server support, merged from
2108	projects/nfsv4.1-server.  Since this includes changes to the
2109	internal interfaces between the NFS related modules, a full
2110	build of the kernel and modules will be necessary.
2111	__FreeBSD_version has been bumped.
2112
211320140629:
2114	The WITHOUT_VT_SUPPORT kernel config knob has been renamed
2115	WITHOUT_VT.  (The other _SUPPORT knobs have a consistent meaning
2116	which differs from the behaviour controlled by this knob.)
2117
211820140619:
2119	Maximal length of the serial number in CTL was increased from 16 to
2120	64 chars, that breaks ABI.  All CTL-related tools, such as ctladm
2121	and ctld, need to be rebuilt to work with a new kernel.
2122
212320140606:
2124	The libatf-c and libatf-c++ major versions were downgraded to 0 and
2125	1 respectively to match the upstream numbers.  They were out of
2126	sync because, when they were originally added to FreeBSD, the
2127	upstream versions were not respected.  These libraries are private
2128	and not yet built by default, so renumbering them should be a
2129	non-issue.  However, unclean source trees will yield broken test
2130	programs once the operator executes "make delete-old-libs" after a
2131	"make installworld".
2132
2133	Additionally, the atf-sh binary was made private by moving it into
2134	/usr/libexec/.  Already-built shell test programs will keep the
2135	path to the old binary so they will break after "make delete-old"
2136	is run.
2137
2138	If you are using WITH_TESTS=yes (not the default), wipe the object
2139	tree and rebuild from scratch to prevent spurious test failures.
2140	This is only needed once: the misnumbered libraries and misplaced
2141	binaries have been added to OptionalObsoleteFiles.inc so they will
2142	be removed during a clean upgrade.
2143
214420140512:
2145	Clang and llvm have been upgraded to 3.4.1 release.
2146
214720140508:
2148	We bogusly installed src.opts.mk in /usr/share/mk. This file should
2149	be removed to avoid issues in the future (and has been added to
2150	ObsoleteFiles.inc).
2151
215220140505:
2153	/etc/src.conf now affects only builds of the FreeBSD src tree. In the
2154	past, it affected all builds that used the bsd.*.mk files. The old
2155	behavior was a bug, but people may have relied upon it. To get this
2156	behavior back, you can .include /etc/src.conf from /etc/make.conf
2157	(which is still global and isn't changed). This also changes the
2158	behavior of incremental builds inside the tree of individual
2159	directories. Set MAKESYSPATH to ".../share/mk" to do that.
2160	Although this has survived make universe and some upgrade scenarios,
2161	other upgrade scenarios may have broken. At least one form of
2162	temporary breakage was fixed with MAKESYSPATH settings for buildworld
2163	as well... In cases where MAKESYSPATH isn't working with this
2164	setting, you'll need to set it to the full path to your tree.
2165
2166	One side effect of all this cleaning up is that bsd.compiler.mk
2167	is no longer implicitly included by bsd.own.mk. If you wish to
2168	use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk
2169	as well.
2170
217120140430:
2172	The lindev device has been removed since /dev/full has been made a
2173	standard device.  __FreeBSD_version has been bumped.
2174
217520140424:
2176	The knob WITHOUT_VI was added to the base system, which controls
2177	building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1)
2178	in order to reorder files share/termcap and didn't build ex(1) as a
2179	build tool, so building/installing with WITH_VI is highly advised for
2180	build hosts for older releases.
2181
2182	This issue has been fixed in stable/9 and stable/10 in r277022 and
2183	r276991, respectively.
2184
218520140418:
2186	The YES_HESIOD knob has been removed. It has been obsolete for
2187	a decade. Please move to using WITH_HESIOD instead or your builds
2188	will silently lack HESIOD.
2189
219020140405:
2191	The uart(4) driver has been changed with respect to its handling
2192	of the low-level console. Previously the uart(4) driver prevented
2193	any process from changing the baudrate or the CLOCAL and HUPCL
2194	control flags. By removing the restrictions, operators can make
2195	changes to the serial console port without having to reboot.
2196	However, when getty(8) is started on the serial device that is
2197	associated with the low-level console, a misconfigured terminal
2198	line in /etc/ttys will now have a real impact.
2199	Before upgrading the kernel, make sure that /etc/ttys has the
2200	serial console device configured as 3wire without baudrate to
2201	preserve the previous behaviour. E.g:
2202	    ttyu0  "/usr/libexec/getty 3wire"  vt100  on  secure
2203
220420140306:
2205	Support for libwrap (TCP wrappers) in rpcbind was disabled by default
2206	to improve performance.  To re-enable it, if needed, run rpcbind
2207	with command line option -W.
2208
220920140226:
2210	Switched back to the GPL dtc compiler due to updates in the upstream
2211	dts files not being supported by the BSDL dtc compiler. You will need
2212	to rebuild your kernel toolchain to pick up the new compiler. Core dumps
2213	may result while building dtb files during a kernel build if you fail
2214	to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler.
2215
221620140216:
2217	Clang and llvm have been upgraded to 3.4 release.
2218
221920140216:
2220	The nve(4) driver has been removed.  Please use the nfe(4) driver
2221	for NVIDIA nForce MCP Ethernet adapters instead.
2222
222320140212:
2224	An ABI incompatibility crept into the libc++ 3.4 import in r261283.
2225	This could cause certain C++ applications using shared libraries built
2226	against the previous version of libc++ to crash.  The incompatibility
2227	has now been fixed, but any C++ applications or shared libraries built
2228	between r261283 and r261801 should be recompiled.
2229
223020140204:
2231	OpenSSH will now ignore errors caused by kernel lacking of Capsicum
2232	capability mode support.  Please note that enabling the feature in
2233	kernel is still highly recommended.
2234
223520140131:
2236	OpenSSH is now built with sandbox support, and will use sandbox as
2237	the default privilege separation method.  This requires Capsicum
2238	capability mode support in kernel.
2239
224020140128:
2241	The libelf and libdwarf libraries have been updated to newer
2242	versions from upstream. Shared library version numbers for
2243	these two libraries were bumped. Any ports or binaries
2244	requiring these two libraries should be recompiled.
2245	__FreeBSD_version is bumped to 1100006.
2246
224720140110:
2248	If a Makefile in a tests/ directory was auto-generating a Kyuafile
2249	instead of providing an explicit one, this would prevent such
2250	Makefile from providing its own Kyuafile in the future during
2251	NO_CLEAN builds.  This has been fixed in the Makefiles but manual
2252	intervention is needed to clean an objdir if you use NO_CLEAN:
2253	  # find /usr/obj -name Kyuafile | xargs rm -f
2254
225520131213:
2256	The behavior of gss_pseudo_random() for the krb5 mechanism
2257	has changed, for applications requesting a longer random string
2258	than produced by the underlying enctype's pseudo-random() function.
2259	In particular, the random string produced from a session key of
2260	enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will
2261	be different at the 17th octet and later, after this change.
2262	The counter used in the PRF+ construction is now encoded as a
2263	big-endian integer in accordance with RFC 4402.
2264	__FreeBSD_version is bumped to 1100004.
2265
226620131108:
2267	The WITHOUT_ATF build knob has been removed and its functionality
2268	has been subsumed into the more generic WITHOUT_TESTS.  If you were
2269	using the former to disable the build of the ATF libraries, you
2270	should change your settings to use the latter.
2271
227220131025:
2273	The default version of mtree is nmtree which is obtained from
2274	NetBSD.  The output is generally the same, but may vary
2275	slightly.  If you found you need identical output adding
2276	"-F freebsd9" to the command line should do the trick.  For the
2277	time being, the old mtree is available as fmtree.
2278
227920131014:
2280	libbsdyml has been renamed to libyaml and moved to /usr/lib/private.
2281	This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg
2282	1.1.4_8 and verify bsdyml not linked in, before running "make
2283	delete-old-libs":
2284	  # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean
2285	  or
2286	  # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml
2287
228820131010:
2289	The stable/10 branch has been created in subversion from head
2290	revision r256279.
2291
2292COMMON ITEMS:
2293
2294	General Notes
2295	-------------
2296	Sometimes, obscure build problems are the result of environment
2297	poisoning.  This can happen because the make utility reads its
2298	environment when searching for values for global variables.  To run
2299	your build attempts in an "environmental clean room", prefix all make
2300	commands with 'env -i '.  See the env(1) manual page for more details.
2301	Occasionally a build failure will occur with "make -j" due to a race
2302	condition.  If this happens try building again without -j, and please
2303	report a bug if it happens consistently.
2304
2305	When upgrading from one major version to another it is generally best to
2306	upgrade to the latest code in the currently installed branch first, then
2307	do an upgrade to the new branch. This is the best-tested upgrade path,
2308	and has the highest probability of being successful.  Please try this
2309	approach if you encounter problems with a major version upgrade.  Since
2310	the stable 4.x branch point, one has generally been able to upgrade from
2311	anywhere in the most recent stable branch to head / current (or even the
2312	last couple of stable branches). See the top of this file when there's
2313	an exception.
2314
2315	The update process will emit an error on an attempt to perform a build
2316	or install from a FreeBSD version below the earliest supported version.
2317	When updating from an older version the update should be performed one
2318	major release at a time, including running `make delete-old` at each
2319	step.
2320
2321	When upgrading a live system, having a root shell around before
2322	installing anything can help undo problems. Not having a root shell
2323	around can lead to problems if pam has changed too much from your
2324	starting point to allow continued authentication after the upgrade.
2325
2326	This file should be read as a log of events. When a later event changes
2327	information of a prior event, the prior event should not be deleted.
2328	Instead, a pointer to the entry with the new information should be
2329	placed in the old entry. Readers of this file should also sanity check
2330	older entries before relying on them blindly. Authors of new entries
2331	should write them with this in mind.
2332
2333	ZFS notes
2334	---------
2335	When upgrading the boot ZFS pool to a new version, always follow
2336	these two steps:
2337
2338	1.) recompile and reinstall the ZFS boot loader and boot block
2339	(this is part of "make buildworld" and "make installworld")
2340
2341	2.) update the ZFS boot block on your boot drive
2342
2343	The following example updates the ZFS boot block on the
2344	freebsd-boot partition of a GPT partitioned drive ada0:
2345	"gpart bootcode -p /boot/gptzfsboot -i $N ada0"
2346	The value $N will typically be 1 (if booting from BIOS) or 2 (if
2347	booting from EFI).
2348
2349	Non-boot pools do not need these updates.
2350
2351	To build a kernel
2352	-----------------
2353	If you are updating from a prior version of FreeBSD (even one just
2354	a few days old), you should follow this procedure.  It is the most
2355	failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
2356
2357	make kernel-toolchain
2358	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
2359	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
2360
2361	To test a kernel once
2362	---------------------
2363	If you just want to boot a kernel once (because you are not sure
2364	if it works, or if you want to boot a known bad kernel to provide
2365	debugging information) run
2366	make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
2367	nextboot -k testkernel
2368
2369	To rebuild everything and install it on the current system.
2370	-----------------------------------------------------------
2371	# Note: sometimes if you are running current you gotta do more than
2372	# is listed here if you are upgrading from a really old current.
2373
2374	<make sure you have good level 0 dumps>
2375	make buildworld
2376	make buildkernel KERNCONF=YOUR_KERNEL_HERE
2377	make installkernel KERNCONF=YOUR_KERNEL_HERE
2378							[1]
2379	<reboot in single user>				[3]
2380	mergemaster -Fp					[5]
2381	make installworld
2382	mergemaster -Fi					[4]
2383	make delete-old					[6]
2384	<reboot>
2385
2386	To cross-install current onto a separate partition
2387	--------------------------------------------------
2388	# In this approach we use a separate partition to hold
2389	# current's root, 'usr', and 'var' directories.   A partition
2390	# holding "/", "/usr" and "/var" should be about 2GB in
2391	# size.
2392
2393	<make sure you have good level 0 dumps>
2394	<boot into -stable>
2395	make buildworld
2396	make buildkernel KERNCONF=YOUR_KERNEL_HERE
2397	<maybe newfs current's root partition>
2398	<mount current's root partition on directory ${CURRENT_ROOT}>
2399	make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC
2400	make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
2401	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
2402	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
2403	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
2404	<reboot into current>
2405	<do a "native" rebuild/install as described in the previous section>
2406	<maybe install compatibility libraries from ports/misc/compat*>
2407	<reboot>
2408
2409
2410	To upgrade in-place from stable to current
2411	----------------------------------------------
2412	<make sure you have good level 0 dumps>
2413	make buildworld					[9]
2414	make buildkernel KERNCONF=YOUR_KERNEL_HERE	[8]
2415	make installkernel KERNCONF=YOUR_KERNEL_HERE
2416							[1]
2417	<reboot in single user>				[3]
2418	mergemaster -Fp					[5]
2419	make installworld
2420	mergemaster -Fi					[4]
2421	make delete-old					[6]
2422	<reboot>
2423
2424	Make sure that you've read the UPDATING file to understand the
2425	tweaks to various things you need.  At this point in the life
2426	cycle of current, things change often and you are on your own
2427	to cope.  The defaults can also change, so please read ALL of
2428	the UPDATING entries.
2429
2430	Also, if you are tracking -current, you must be subscribed to
2431	[email protected].  Make sure that before you update
2432	your sources that you have read and understood all the recent
2433	messages there.  If in doubt, please track -stable which has
2434	much fewer pitfalls.
2435
2436	[1] If you have third party modules, such as vmware, you should disable
2437	them at this point so they don't crash your system on
2438	reboot. Alternatively, you should rebuild all the modules you have in
2439	your system and install them as well.  If you are running -current, you
2440	should seriously consider placing all sources to all the modules for
2441	your system (or symlinks to them) in /usr/local/sys/modules so this
2442	happens automatically. If all your modules come from ports, then adding
2443	the port origin directories to PORTS_MODULES instead is also automatic
2444	and effective, eg:
2445	     PORTS_MODULES+=x11/nvidia-driver
2446
2447	[3] From the bootblocks, boot -s, and then do
2448		fsck -p
2449		mount -u /
2450		mount -a
2451		sh /etc/rc.d/zfs start	# mount zfs filesystem, if needed
2452		cd src			# full path to source
2453		adjkerntz -i		# if CMOS is wall time
2454	Also, when doing a major release upgrade, it is required that you boot
2455	into single user mode to do the installworld.
2456
2457	[4] Note: This step is non-optional.  Failure to do this step
2458	can result in a significant reduction in the functionality of the
2459	system.  Attempting to do it by hand is not recommended and those
2460	that pursue this avenue should read this file carefully, as well
2461	as the archives of freebsd-current and freebsd-hackers mailing lists
2462	for potential gotchas.  The -U option is also useful to consider.
2463	See mergemaster(8) for more information.
2464
2465	[5] Usually this step is a no-op.  However, from time to time
2466	you may need to do this if you get unknown user in the following
2467	step.  It never hurts to do it all the time.  You may need to
2468	install a new mergemaster (cd src/usr.sbin/mergemaster && make
2469	install) after the buildworld before this step if you last updated
2470	from current before 20130425 or from -stable before 20130430.
2471
2472	[6] This only deletes old files and directories. Old libraries
2473	can be deleted by "make delete-old-libs", but you have to make
2474	sure that no program is using those libraries anymore.
2475
2476	[8] The new kernel must be able to run existing binaries used by an
2477	installworld.  When upgrading across major versions, the new kernel's
2478	configuration must include the correct COMPAT_FREEBSD<n> option for
2479	existing binaries (e.g. COMPAT_FREEBSD11 to run 11.x binaries).  Failure
2480	to do so may leave you with a system that is hard to boot to recover. A
2481	GENERIC kernel will include suitable compatibility options to run
2482	binaries from older branches.  Note that the ability to run binaries
2483	from unsupported branches is not guaranteed.
2484
2485	Make sure that you merge any new devices from GENERIC since the
2486	last time you updated your kernel config file. Options also
2487	change over time, so you may need to adjust your custom kernels
2488	for these as well.
2489
2490	[9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the
2491	"?=" instead of the "=" assignment operator, so that buildworld can
2492	override the CPUTYPE if it needs to.
2493
2494	MAKEOBJDIRPREFIX must be defined in an environment variable, and
2495	not on the command line, or in /etc/make.conf.  buildworld will
2496	warn if it is improperly defined.
2497FORMAT:
2498
2499This file contains a list, in reverse chronological order, of major
2500breakages in tracking -current.  It is not guaranteed to be a complete
2501list of such breakages, and only contains entries since September 23, 2011.
2502If you need to see UPDATING entries from before that date, you will need
2503to fetch an UPDATING file from an older FreeBSD release.
2504
2505Copyright information:
2506
2507Copyright 1998-2009 M. Warner Losh <[email protected]>
2508
2509Redistribution, publication, translation and use, with or without
2510modification, in full or in part, in any form or format of this
2511document are permitted without further permission from the author.
2512
2513THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
2514IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
2515WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
2516DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
2517INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
2518(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
2519SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2520HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
2521STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
2522IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2523POSSIBILITY OF SUCH DAMAGE.
2524
2525Contact Warner Losh if you have any questions about your use of
2526this document.
2527
2528$FreeBSD$
2529