xref: /freebsd/UPDATING (revision f37852c17391fdf0e8309bcf684384dd0d854e43)
1Updating Information for FreeBSD current users.
2
3This file is maintained and copyrighted by M. Warner Losh <imp@freebsd.org>.
4See end of file for further details.  For commonly done items, please see the
5COMMON ITEMS: section later in the file.  These instructions assume that you
6basically know what you are doing.  If not, then please consult the FreeBSD
7handbook:
8
9    https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/updating-src.html
10
11Items affecting the ports and packages system can be found in
12/usr/ports/UPDATING.  Please read that file before running portupgrade.
13
14NOTE: FreeBSD has switched from gcc to clang. If you have trouble bootstrapping
15from older versions of FreeBSD, try WITHOUT_CLANG and WITH_GCC to bootstrap to
16the tip of head, and then rebuild without this option. The bootstrap process
17from older version of current across the gcc/clang cutover is a bit fragile.
18
19NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW:
20	FreeBSD 12.x has many debugging features turned on, in both the kernel
21	and userland.  These features attempt to detect incorrect use of
22	system primitives, and encourage loud failure through extra sanity
23	checking and fail stop semantics.  They also substantially impact
24	system performance.  If you want to do performance measurement,
25	benchmarking, and optimization, you'll want to turn them off.  This
26	includes various WITNESS- related kernel options, INVARIANTS, malloc
27	debugging flags in userland, and various verbose features in the
28	kernel.  Many developers choose to disable these features on build
29	machines to maximize performance.  (To completely disable malloc
30	debugging, define MALLOC_PRODUCTION in /etc/make.conf, or to merely
31	disable the most expensive debugging functionality run
32	"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
33
34
35****************************** SPECIAL WARNING: ******************************
36
37	Due to a bug in some versions of clang that's very hard to workaround in
38	the upgrade process, to upgrade to -current you must first upgrade
39	either stable/9 after r286035 or stable/10 after r286033 (including
40	10.3-RELEASE) or current after r286007 (including stable/11 and
41	11.0-RELEASE). These revisions post-date the 10.2 and 9.3 releases, so
42	you'll need to take the unusual step of upgrading to the tip of the
43	stable branch before moving to 11 or -current via a source upgrade.
44	stable/11 and 11.0-RELEASE have working newer compiler. This differs
45	from the historical situation where one could upgrade from anywhere on
46	the last couple of stable branches, so be careful.
47
48	If you're running a hybrid system on 9.x or 10.x with an updated clang
49	compiler or are using an supported external toolchain, the build system
50	will allow the upgrade. Otherwise it will print a reminder.
51
52****************************** SPECIAL WARNING: ******************************
53
5420170701:
55	WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need them to be
56	built with the base system.
57
5820170625:
59	The FreeBSD/powerpc platform now uses a 64-bit type for time_t.  This is
60	a very major ABI incompatible change, so users of FreeBSD/powerpc must
61	be careful when performing source upgrades.  It is best to run
62	'make installworld' from an alternate root system, either a live
63	CD/memory stick, or a temporary root partition.  Additionally, all ports
64	must be recompiled.  powerpc64 is largely unaffected, except in the case
65	of 32-bit compatibility.  All 32-bit binaries will be affected.
66
6720170623:
68	Forward compatibility for the "ino64" project have been committed. This
69	will allow most new binaries to run on older kernels in a limited
70	fashion.  This prevents many of the common foot-shooting actions in the
71	upgrade as well as the limited ability to roll back the kernel across
72	the ino64 upgrade. Complicated use cases may not work properly, though
73	enough simpler ones work to allow recovery in most situations.
74
7520170620:
76	Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC
77	if you require the GPL compiler.
78
7920170618:
80	The internal ABI used for communication between the NFS kernel modules
81	was changed by r320085, so __FreeBSD_version was bumped to
82	ensure all the NFS related modules are updated together.
83
8420170617:
85	The ABI of struct event was changed by extending the data
86	member to 64bit and adding ext fields.  For upgrade, same
87	precautions as for the entry 20170523 "ino64" must be
88	followed.
89
9020170531:
91	The GNU roff toolchain has been removed from base. To render manpages
92	which are not supported by mandoc(1), man(1) can fallback on GNU roff
93	from ports (and recommends to install it).
94	To render roff(7) documents, consider using GNU roff from ports or the
95	heirloom doctools roff toolchain from ports via pkg install groff or
96	via pkg install heirloom-doctools.
97
9820170524:
99	The ath(4) and ath_hal(4) modules now build piecemeal to allow for
100	smaller runtime footprint builds.  This is useful for embedded systems
101	which only require one chipset support.
102
103	If you load it as a module, make sure this is in /boot/loader.conf:
104
105	if_ath_load="YES"
106
107	This will load the HAL, all chip/RF backends and if_ath_pci.
108	If you have if_ath_pci in /boot/loader.conf, ensure it is after
109	if_ath or it will not load any HAL chipset support.
110
111	If you want to selectively load things (eg on ye cheape ARM/MIPS
112	platforms where RAM is at a premium) you should:
113
114	* load ath_hal
115	* load the chip modules in question
116	* load ath_rate, ath_dfs
117	* load ath_main
118	* load if_ath_pci and/or if_ath_ahb depending upon your particular
119	  bus bind type - this is where probe/attach is done.
120
121	For further comments/feedback, poke adrian@ .
122
12320170523:
124	The "ino64" 64-bit inode project has been committed, which extends
125	a number of types to 64 bits.  Upgrading in place requires care and
126	adherence to the documented upgrade procedure.
127
128	If using a custom kernel configuration ensure that the
129	COMPAT_FREEBSD11 option is included (as during the upgrade the
130	system will be running the ino64 kernel with the existing world).
131
132	For the safest in-place upgrade begin by removing previous build
133	artifacts via "rm -rf /usr/obj/*".   Then, carefully follow the
134	full procedure documented below under the heading "To rebuild
135	everything and install it on the current system."  Specifically,
136	a reboot is required after installing the new kernel before
137	installing world.
138
13920170424:
140	The NATM framework including the en(4), fatm(4), hatm(4), and
141	patm(4) devices has been removed.  Consumers should plan a
142	migration before the end-of-life date for FreeBSD 11.
143
14420170420:
145	GNU diff has been replaced by a BSD licensed diff. Some features of GNU
146	diff has not been implemented, if those are needed a newer version of
147	GNU diff is available via the diffutils package under the gdiff name.
148
14920170413:
150	As of r316810 for ipfilter, keep frags is no longer assumed when
151	keep state is specified in a rule. r316810 aligns ipfilter with
152	documentation in man pages separating keep frags from keep state.
153	This allows keep state to be specified without forcing keep frags
154	and allows keep frags to be specified independently of keep state.
155	To maintain previous behaviour, also specify keep frags with
156	keep state (as documented in ipf.conf.5).
157
15820170407:
159	arm64 builds now use the base system LLD 4.0.0 linker by default,
160	instead of requiring that the aarch64-binutils port or package be
161	installed. To continue using aarch64-binutils, set
162	CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin .
163
16420170405:
165	The UDP optimization in entry 20160818 that added the sysctl
166	net.inet.udp.require_l2_bcast has been reverted.  L2 broadcast
167	packets will no longer be treated as L3 broadcast packets.
168
16920170331:
170	Binds and sends to the loopback addresses, IPv6 and IPv4, will now
171	use any explicitly assigned loopback address available in the jail
172	instead of using the first assigned address of the jail.
173
17420170329:
175	The ctl.ko module no longer implements the iSCSI target frontend:
176	cfiscsi.ko does instead.
177
178	If building cfiscsi.ko as a kernel module, the module can be loaded
179	via one of the following methods:
180	- `cfiscsi_load="YES"` in loader.conf(5).
181	- Add `cfiscsi` to `$kld_list` in rc.conf(5).
182	- ctladm(8)/ctld(8), when compiled with iSCSI support
183	  (`WITH_ISCSI=yes` in src.conf(5))
184
185	Please see cfiscsi(4) for more details.
186
18720170316:
188	The mmcsd.ko module now additionally depends on geom_flashmap.ko.
189	Also, mmc.ko and mmcsd.ko need to be a matching pair built from the
190	same source (previously, the dependency of mmcsd.ko on mmc.ko was
191	missing, but mmcsd.ko now will refuse to load if it is incompatible
192	with mmc.ko).
193
19420170315:
195	The syntax of ipfw(8) named states was changed to avoid ambiguity.
196	If you have used named states in the firewall rules, you need to modify
197	them after installworld and before rebooting. Now named states must
198	be prefixed with colon.
199
20020170311:
201	The old drm (sys/dev/drm/) drivers for i915 and radeon have been
202	removed as the userland we provide cannot use them. The KMS version
203	(sys/dev/drm2) supports the same hardware.
204
20520170302:
206	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0.
207	Please see the 20141231 entry below for information about prerequisites
208	and upgrading, if you are not already using clang 3.5.0 or higher.
209
21020170221:
211	The code that provides support for ZFS .zfs/ directory functionality
212	has been reimplemented.  It's not possible now to create a snapshot
213	by mkdir under .zfs/snapshot/.  That should be the only user visible
214	change.
215
21620170216:
217	EISA bus support has been removed. The WITH_EISA option is no longer
218	valid.
219
22020170215:
221	MCA bus support has been removed.
222
22320170127:
224	The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed
225	WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC.
226
22720170112:
228	The EM_MULTIQUEUE kernel configuration option is deprecated now that
229	the em(4) driver conforms to iflib specifications.
230
23120170109:
232	The igb(4), em(4) and lem(4) ethernet drivers are now implemented via
233	IFLIB.  If you have a custom kernel configuration that excludes em(4)
234	but you use igb(4), you need to re-add em(4) to your custom configuration.
235
23620161217:
237	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1.
238	Please see the 20141231 entry below for information about prerequisites
239	and upgrading, if you are not already using clang 3.5.0 or higher.
240
24120161124:
242	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0.
243	Please see the 20141231 entry below for information about prerequisites
244	and upgrading, if you are not already using clang 3.5.0 or higher.
245
24620161119:
247	The layout of the pmap structure has changed for powerpc to put the pmap
248	statistics at the front for all CPU variations.  libkvm(3) and all tools
249	that link against it need to be recompiled.
250
25120161030:
252	isl(4) and cyapa(4) drivers now require a new driver,
253	chromebook_platform(4), to work properly on Chromebook-class hardware.
254	On other types of hardware the drivers may need to be configured using
255	device hints.  Please see the corresponding manual pages for details.
256
25720161017:
258	The urtwn(4) driver was merged into rtwn(4) and now consists of
259	rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific
260	parts.
261	Also, firmware for RTL8188CE was renamed due to possible name
262	conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B))
263
26420161015:
265	GNU rcs has been removed from base.  It is available as packages:
266	- rcs: Latest GPLv3 GNU rcs version.
267	- rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was
268	removed from base.
269
27020161008:
271	Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control
272	modules now requires that the kernel configuration contain the
273	TCP_HHOOK option. (This option is included in the GENERIC kernel.)
274
27520161003:
276	The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired.
277	ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy.
278
27920160924:
280	Relocatable object files with the extension of .So have been renamed
281	to use an extension of .pico instead.  The purpose of this change is
282	to avoid a name clash with shared libraries on case-insensitive file
283	systems.  On those file systems, foo.So is the same file as foo.so.
284
28520160918:
286	GNU rcs has been turned off by default.  It can (temporarily) be built
287	again by adding WITH_RCS knob in src.conf.
288	Otherwise, GNU rcs is available from packages:
289	- rcs: Latest GPLv3 GNU rcs version.
290	- rcs57: Copy of the latest version of GNU rcs (GPLv2) from base.
291
29220160918:
293	The backup_uses_rcs functionality has been removed from rc.subr.
294
29520160908:
296	The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into
297	two separate components, QUEUE_MACRO_DEBUG_TRACE and
298	QUEUE_MACRO_DEBUG_TRASH.  Define both for the original
299	QUEUE_MACRO_DEBUG behavior.
300
30120160824:
302	r304787 changed some ioctl interfaces between the iSCSI userspace
303	programs and the kernel.  ctladm, ctld, iscsictl, and iscsid must be
304	rebuilt to work with new kernels.  __FreeBSD_version has been bumped
305	to 1200005.
306
30720160818:
308	The UDP receive code has been updated to only treat incoming UDP
309	packets that were addressed to an L2 broadcast address as L3
310	broadcast packets.  It is not expected that this will affect any
311	standards-conforming UDP application.  The new behaviour can be
312	disabled by setting the sysctl net.inet.udp.require_l2_bcast to
313	0.
314
31520160818:
316	Remove the openbsd_poll system call.
317	__FreeBSD_version has been bumped because of this.
318
31920160622:
320	The libc stub for the pipe(2) system call has been replaced with
321	a wrapper that calls the pipe2(2) system call and the pipe(2)
322	system call is now only implemented by the kernels that include
323	"options COMPAT_FREEBSD10" in their config file (this is the
324	default).  Users should ensure that this option is enabled in
325	their kernel or upgrade userspace to r302092 before upgrading their
326	kernel.
327
32820160527:
329	CAM will now strip leading spaces from SCSI disks' serial numbers.
330	This will affect users who create UFS filesystems on SCSI disks using
331	those disk's diskid device nodes.  For example, if /etc/fstab
332	previously contained a line like
333	"/dev/diskid/DISK-%20%20%20%20%20%20%20ABCDEFG0123456", you should
334	change it to "/dev/diskid/DISK-ABCDEFG0123456".  Users of geom
335	transforms like gmirror may also be affected.  ZFS users should
336	generally be fine.
337
33820160523:
339	The bitstring(3) API has been updated with new functionality and
340	improved performance.  But it is binary-incompatible with the old API.
341	Objects built with the new headers may not be linked against objects
342	built with the old headers.
343
34420160520:
345	The brk and sbrk functions have been removed from libc on arm64.
346	Binutils from ports has been updated to not link to these
347	functions and should be updated to the latest version before
348	installing a new libc.
349
35020160517:
351	The armv6 port now defaults to hard float ABI. Limited support
352	for running both hardfloat and soft float on the same system
353	is available using the libraries installed with -DWITH_LIBSOFT.
354	This has only been tested as an upgrade path for installworld
355	and packages may fail or need manual intervention to run. New
356	packages will be needed.
357
358	To update an existing self-hosted armv6hf system, you must add
359	TARGET_ARCH=armv6 on the make command line for both the build
360	and the install steps.
361
36220160510:
363	Kernel modules compiled outside of a kernel build now default to
364	installing to /boot/modules instead of /boot/kernel.  Many kernel
365	modules built this way (such as those in ports) already overrode
366	KMODDIR explicitly to install into /boot/modules.  However,
367	manually building and installing a module from /sys/modules will
368	now install to /boot/modules instead of /boot/kernel.
369
37020160414:
371	The CAM I/O scheduler has been committed to the kernel. There should be
372	no user visible impact. This does enable NCQ Trim on ada SSDs. While the
373	list of known rogues that claim support for this but actually corrupt
374	data is believed to be complete, be on the lookout for data
375	corruption. The known rogue list is believed to be complete:
376
377		o Crucial MX100, M550 drives with MU01 firmware.
378		o Micron M510 and M550 drives with MU01 firmware.
379		o Micron M500 prior to MU07 firmware
380		o Samsung 830, 840, and 850 all firmwares
381		o FCCT M500 all firmwares
382
383	Crucial has firmware http://www.crucial.com/usa/en/support-ssd-firmware
384	with working NCQ TRIM. For Micron branded drives, see your sales rep for
385	updated firmware. Black listed drives will work correctly because these
386	drives work correctly so long as no NCQ TRIMs are sent to them. Given
387	this list is the same as found in Linux, it's believed there are no
388	other rogues in the market place. All other models from the above
389	vendors work.
390
391	To be safe, if you are at all concerned, you can quirk each of your
392	drives to prevent NCQ from being sent by setting:
393		kern.cam.ada.X.quirks="0x2"
394	in loader.conf. If the drive requires the 4k sector quirk, set the
395	quirks entry to 0x3.
396
39720160330:
398	The FAST_DEPEND build option has been removed and its functionality is
399	now the one true way.  The old mkdep(1) style of 'make depend' has
400	been removed.  See 20160311 for further details.
401
40220160317:
403	Resource range types have grown from unsigned long to uintmax_t.  All
404	drivers, and anything using libdevinfo, need to be recompiled.
405
40620160311:
407	WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree
408	builds.  It no longer runs mkdep(1) during 'make depend', and the
409	'make depend' stage can safely be skipped now as it is auto ran
410	when building 'make all' and will generate all SRCS and DPSRCS before
411	building anything else.  Dependencies are gathered at compile time with
412	-MF flags kept in separate .depend files per object file.  Users should
413	run 'make cleandepend' once if using -DNO_CLEAN to clean out older
414	stale .depend files.
415
41620160306:
417	On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into
418	kernel modules.  Therefore, if you load any kernel modules at boot time,
419	please install the boot loaders after you install the kernel, but before
420	rebooting, e.g.:
421
422	make buildworld
423	make kernel KERNCONF=YOUR_KERNEL_HERE
424	make -C sys/boot install
425	<reboot in single user>
426
427	Then follow the usual steps, described in the General Notes section,
428	below.
429
43020160305:
431	Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0.  Please
432	see the 20141231 entry below for information about prerequisites and
433	upgrading, if you are not already using clang 3.5.0 or higher.
434
43520160301:
436	The AIO subsystem is now a standard part of the kernel.  The
437	VFS_AIO kernel option and aio.ko kernel module have been removed.
438	Due to stability concerns, asynchronous I/O requests are only
439	permitted on sockets and raw disks by default.  To enable
440	asynchronous I/O requests on all file types, set the
441	vfs.aio.enable_unsafe sysctl to a non-zero value.
442
44320160226:
444	The ELF object manipulation tool objcopy is now provided by the
445	ELF Tool Chain project rather than by GNU binutils. It should be a
446	drop-in replacement, with the addition of arm64 support. The
447	(temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set
448	to obtain the GNU version if necessary.
449
45020160129:
451	Building ZFS pools on top of zvols is prohibited by default.  That
452	feature has never worked safely; it's always been prone to deadlocks.
453	Using a zvol as the backing store for a VM guest's virtual disk will
454	still work, even if the guest is using ZFS.  Legacy behavior can be
455	restored by setting vfs.zfs.vol.recursive=1.
456
45720160119:
458	The NONE and HPN patches has been removed from OpenSSH.  They are
459	still available in the security/openssh-portable port.
460
46120160113:
462	With the addition of ypldap(8), a new _ypldap user is now required
463	during installworld. "mergemaster -p" can be used to add the user
464	prior to installworld, as documented in the handbook.
465
46620151216:
467	The tftp loader (pxeboot) now uses the option root-path directive. As a
468	consequence it no longer looks for a pxeboot.4th file on the tftp
469	server. Instead it uses the regular /boot infrastructure as with the
470	other loaders.
471
47220151211:
473	The code to start recording plug and play data into the modules has
474	been committed. While the old tools will properly build a new kernel,
475	a number of warnings about "unknown metadata record 4" will be produced
476	for an older kldxref. To avoid such warnings, make sure to rebuild
477	the kernel toolchain (or world). Make sure that you have r292078 or
478	later when trying to build 292077 or later before rebuilding.
479
48020151207:
481	Debug data files are now built by default with 'make buildworld' and
482	installed with 'make installworld'. This facilitates debugging but
483	requires more disk space both during the build and for the installed
484	world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes
485	in src.conf(5).
486
48720151130:
488	r291527 changed the internal interface between the nfsd.ko and
489	nfscommon.ko modules. As such, they must both be upgraded to-gether.
490	__FreeBSD_version has been bumped because of this.
491
49220151108:
493	Add support for unicode collation strings leads to a change of
494	order of files listed by ls(1) for example. To get back to the old
495	behaviour, set LC_COLLATE environment variable to "C".
496
497	Databases administrators will need to reindex their databases given
498	collation results will be different.
499
500	Due to a bug in install(1) it is recommended to remove the ancient
501	locales before running make installworld.
502
503	rm -rf /usr/share/locale/*
504
50520151030:
506	The OpenSSL has been upgraded to 1.0.2d.  Any binaries requiring
507	libcrypto.so.7 or libssl.so.7 must be recompiled.
508
50920151020:
510	Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0.
511	Kernel modules isp_2400_multi and isp_2500_multi were removed and
512	should be replaced with isp_2400 and isp_2500 modules respectively.
513
51420151017:
515	The build previously allowed using 'make -n' to not recurse into
516	sub-directories while showing what commands would be executed, and
517	'make -n -n' to recursively show commands.  Now 'make -n' will recurse
518	and 'make -N' will not.
519
52020151012:
521	If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster
522	and etcupdate will now use this file. A custom sendmail.cf is now
523	updated via this mechanism rather than via installworld.  If you had
524	excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may
525	want to remove the exclusion or change it to "always install".
526	/etc/mail/sendmail.cf is now managed the same way regardless of
527	whether SENDMAIL_MC/SENDMAIL_CF is used.  If you are not using
528	SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior.
529
53020151011:
531	Compatibility shims for legacy ATA device names have been removed.
532	It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases
533	and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.*
534	environment variables, /dev/ad* and /dev/ar* symbolic links.
535
53620151006:
537	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0.
538	Please see the 20141231 entry below for information about prerequisites
539	and upgrading, if you are not already using clang 3.5.0 or higher.
540
54120150924:
542	Kernel debug files have been moved to /usr/lib/debug/boot/kernel/,
543	and renamed from .symbols to .debug. This reduces the size requirements
544	on the boot partition or file system and provides consistency with
545	userland debug files.
546
547	When using the supported kernel installation method the
548	/usr/lib/debug/boot/kernel directory will be renamed (to kernel.old)
549	as is done with /boot/kernel.
550
551	Developers wishing to maintain the historical behavior of installing
552	debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5).
553
55420150827:
555	The wireless drivers had undergone changes that remove the 'parent
556	interface' from the ifconfig -l output. The rc.d network scripts
557	used to check presence of a parent interface in the list, so old
558	scripts would fail to start wireless networking. Thus, etcupdate(3)
559	or mergemaster(8) run is required after kernel update, to update your
560	rc.d scripts in /etc.
561
56220150827:
563	pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl'
564	These configurations are now automatically interpreted as
565	'scrub fragment reassemble'.
566
56720150817:
568	Kernel-loadable modules for the random(4) device are back. To use
569	them, the kernel must have
570
571	device	random
572	options	RANDOM_LOADABLE
573
574	kldload(8) can then be used to load random_fortuna.ko
575	or random_yarrow.ko. Please note that due to the indirect
576	function calls that the loadable modules need to provide,
577	the build-in variants will be slightly more efficient.
578
579	The random(4) kernel option RANDOM_DUMMY has been retired due to
580	unpopularity. It was not all that useful anyway.
581
58220150813:
583	The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired.
584	Control over building the ELF Tool Chain tools is now provided by
585	the WITHOUT_TOOLCHAIN knob.
586
58720150810:
588	The polarity of Pulse Per Second (PPS) capture events with the
589	uart(4) driver has been corrected.  Prior to this change the PPS
590	"assert" event corresponded to the trailing edge of a positive PPS
591	pulse and the "clear" event was the leading edge of the next pulse.
592
593	As the width of a PPS pulse in a typical GPS receiver is on the
594	order of 1 millisecond, most users will not notice any significant
595	difference with this change.
596
597	Anyone who has compensated for the historical polarity reversal by
598	configuring a negative offset equal to the pulse width will need to
599	remove that workaround.
600
60120150809:
602	The default group assigned to /dev/dri entries has been changed
603	from 'wheel' to 'video' with the id of '44'. If you want to have
604	access to the dri devices please add yourself to the video group
605	with:
606
607	# pw groupmod video -m $USER
608
60920150806:
610	The menu.rc and loader.rc files will now be replaced during
611	upgrades. Please migrate local changes to menu.rc.local and
612	loader.rc.local instead.
613
61420150805:
615	GNU Binutils versions of addr2line, c++filt, nm, readelf, size,
616	strings and strip have been removed. The src.conf(5) knob
617	WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools.
618
61920150728:
620	As ZFS requires more kernel stack pages than is the default on some
621	architectures e.g. i386, it now warns if KSTACK_PAGES is less than
622	ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing).
623
624	Please consider using 'options KSTACK_PAGES=X' where X is greater
625	than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations.
626
62720150706:
628	sendmail has been updated to 8.15.2.  Starting with FreeBSD 11.0
629	and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by
630	default, i.e., they will not contain "::".  For example, instead
631	of ::1, it will be 0:0:0:0:0:0:0:1.  This permits a zero subnet
632	to have a more specific match, such as different map entries for
633	IPv6:0:0 vs IPv6:0.  This change requires that configuration
634	data (including maps, files, classes, custom ruleset, etc.) must
635	use the same format, so make certain such configuration data is
636	upgrading.  As a very simple check search for patterns like
637	'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'.  To return to the old
638	behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or
639	the cf option UseCompressedIPv6Addresses.
640
64120150630:
642	The default kernel entropy-processing algorithm is now
643	Fortuna, replacing Yarrow.
644
645	Assuming you have 'device random' in your kernel config
646	file, the configurations allow a kernel option to override
647	this default. You may choose *ONE* of:
648
649	options	RANDOM_YARROW	# Legacy /dev/random algorithm.
650	options	RANDOM_DUMMY	# Blocking-only driver.
651
652	If you have neither, you get Fortuna.  For most people,
653	read no further, Fortuna will give a /dev/random that works
654	like it always used to, and the difference will be irrelevant.
655
656	If you remove 'device random', you get *NO* kernel-processed
657	entropy at all. This may be acceptable to folks building
658	embedded systems, but has complications. Carry on reading,
659	and it is assumed you know what you need.
660
661	*PLEASE* read random(4) and random(9) if you are in the
662	habit of tweaking kernel configs, and/or if you are a member
663	of the embedded community, wanting specific and not-usual
664	behaviour from your security subsystems.
665
666	NOTE!! If you use RANDOM_DUMMY and/or have no 'device
667	random', you will NOT have a functioning /dev/random, and
668	many cryptographic features will not work, including SSH.
669	You may also find strange behaviour from the random(3) set
670	of library functions, in particular sranddev(3), srandomdev(3)
671	and arc4random(3). The reason for this is that the KERN_ARND
672	sysctl only returns entropy if it thinks it has some to
673	share, and with RANDOM_DUMMY or no 'device random' this
674	will never happen.
675
67620150623:
677	An additional fix for the issue described in the 20150614 sendmail
678	entry below has been been committed in revision 284717.
679
68020150616:
681	FreeBSD's old make (fmake) has been removed from the system. It is
682	available as the devel/fmake port or via pkg install fmake.
683
68420150615:
685	The fix for the issue described in the 20150614 sendmail entry
686	below has been been committed in revision 284436.  The work
687	around described in that entry is no longer needed unless the
688	default setting is overridden by a confDH_PARAMETERS configuration
689	setting of '5' or pointing to a 512 bit DH parameter file.
690
69120150614:
692	ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from
693	atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf
694	and devel/kyua to version 0.20+ and adjust any calling code to work
695	with Kyuafile and kyua.
696
69720150614:
698	The import of openssl to address the FreeBSD-SA-15:10.openssl
699	security advisory includes a change which rejects handshakes
700	with DH parameters below 768 bits.  sendmail releases prior
701	to 8.15.2 (not yet released), defaulted to a 512 bit
702	DH parameter setting for client connections.  To work around
703	this interoperability, sendmail can be configured to use a
704	2048 bit DH parameter by:
705
706	1. Edit /etc/mail/`hostname`.mc
707	2. If a setting for confDH_PARAMETERS does not exist or
708	   exists and is set to a string beginning with '5',
709	   replace it with '2'.
710	3. If a setting for confDH_PARAMETERS exists and is set to
711	   a file path, create a new file with:
712		openssl dhparam -out /path/to/file 2048
713	4. Rebuild the .cf file:
714		cd /etc/mail/; make; make install
715	5. Restart sendmail:
716		cd /etc/mail/; make restart
717
718	A sendmail patch is coming, at which time this file will be
719	updated.
720
72120150604:
722	Generation of legacy formatted entries have been disabled by default
723	in pwd_mkdb(8), as all base system consumers of the legacy formatted
724	entries were converted to use the new format by default when the new,
725	machine independent format have been added and supported since FreeBSD
726	5.x.
727
728	Please see the pwd_mkdb(8) manual page for further details.
729
73020150525:
731	Clang and llvm have been upgraded to 3.6.1 release.  Please see the
732	20141231 entry below for information about prerequisites and upgrading,
733	if you are not already using 3.5.0 or higher.
734
73520150521:
736	TI platform code switched to using vendor DTS files and this update
737	may break existing systems running on Beaglebone, Beaglebone Black,
738	and Pandaboard:
739
740	- dtb files should be regenerated/reinstalled. Filenames are the
741	  same but content is different now
742	- GPIO addressing was changed, now each GPIO bank (32 pins per bank)
743	  has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old
744	  addressing scheme is now pin 25 on /dev/gpioc3.
745	- Pandaboard: /etc/ttys should be updated, serial console device is
746	  now /dev/ttyu2, not /dev/ttyu0
747
74820150501:
749	soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim.
750	If you need the GNU extension from groff soelim(1), install groff
751	from package: pkg install groff, or via ports: textproc/groff.
752
75320150423:
754	chmod, chflags, chown and chgrp now affect symlinks in -R mode as
755	defined in symlink(7); previously symlinks were silently ignored.
756
75720150415:
758	The const qualifier has been removed from iconv(3) to comply with
759	POSIX.  The ports tree is aware of this from r384038 onwards.
760
76120150416:
762	Libraries specified by LIBADD in Makefiles must have a corresponding
763	DPADD_<lib> variable to ensure correct dependencies.  This is now
764	enforced in src.libnames.mk.
765
76620150324:
767	From legacy ata(4) driver was removed support for SATA controllers
768	supported by more functional drivers ahci(4), siis(4) and mvs(4).
769	Kernel modules ataahci and ataadaptec were removed completely,
770	replaced by ahci and mvs modules respectively.
771
77220150315:
773	Clang, llvm and lldb have been upgraded to 3.6.0 release.  Please see
774	the 20141231 entry below for information about prerequisites and
775	upgrading, if you are not already using 3.5.0 or higher.
776
77720150307:
778	The 32-bit PowerPC kernel has been changed to a position-independent
779	executable. This can only be booted with a version of loader(8)
780	newer than January 31, 2015, so make sure to update both world and
781	kernel before rebooting.
782
78320150217:
784	If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014),
785	but before r278950, the RNG was not seeded properly.  Immediately
786	upgrade the kernel to r278950 or later and regenerate any keys (e.g.
787	ssh keys or openssl keys) that were generated w/ a kernel from that
788	range.  This does not affect programs that directly used /dev/random
789	or /dev/urandom.  All userland uses of arc4random(3) are affected.
790
79120150210:
792	The autofs(4) ABI was changed in order to restore binary compatibility
793	with 10.1-RELEASE.  The automountd(8) daemon needs to be rebuilt to work
794	with the new kernel.
795
79620150131:
797	The powerpc64 kernel has been changed to a position-independent
798	executable. This can only be booted with a new version of loader(8),
799	so make sure to update both world and kernel before rebooting.
800
80120150118:
802	Clang and llvm have been upgraded to 3.5.1 release.  This is a bugfix
803	only release, no new features have been added.  Please see the 20141231
804	entry below for information about prerequisites and upgrading, if you
805	are not already using 3.5.0.
806
80720150107:
808	ELF tools addr2line, elfcopy (strip), nm, size, and strings are now
809	taken from the ELF Tool Chain project rather than GNU binutils. They
810	should be drop-in replacements, with the addition of arm64 support.
811	The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the
812	binutils tools, if necessary. See 20150805 for updated information.
813
81420150105:
815	The default Unbound configuration now enables remote control
816	using a local socket.  Users who have already enabled the
817	local_unbound service should regenerate their configuration
818	by running "service local_unbound setup" as root.
819
82020150102:
821	The GNU texinfo and GNU info pages have been removed.
822	To be able to view GNU info pages please install texinfo from ports.
823
82420141231:
825	Clang, llvm and lldb have been upgraded to 3.5.0 release.
826
827	As of this release, a prerequisite for building clang, llvm and lldb is
828	a C++11 capable compiler and C++11 standard library.  This means that to
829	be able to successfully build the cross-tools stage of buildworld, with
830	clang as the bootstrap compiler, your system compiler or cross compiler
831	should either be clang 3.3 or later, or gcc 4.8 or later, and your
832	system C++ library should be libc++, or libdstdc++ from gcc 4.8 or
833	later.
834
835	On any standard FreeBSD 10.x or 11.x installation, where clang and
836	libc++ are on by default (that is, on x86 or arm), this should work out
837	of the box.
838
839	On 9.x installations where clang is enabled by default, e.g. on x86 and
840	powerpc, libc++ will not be enabled by default, so libc++ should be
841	built (with clang) and installed first.  If both clang and libc++ are
842	missing, build clang first, then use it to build libc++.
843
844	On 8.x and earlier installations, upgrade to 9.x first, and then follow
845	the instructions for 9.x above.
846
847	Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by
848	default, and do not build clang.
849
850	Many embedded systems are resource constrained, and will not be able to
851	build clang in a reasonable time, or in some cases at all.  In those
852	cases, cross building bootable systems on amd64 is a workaround.
853
854	This new version of clang introduces a number of new warnings, of which
855	the following are most likely to appear:
856
857	-Wabsolute-value
858
859	This warns in two cases, for both C and C++:
860	* When the code is trying to take the absolute value of an unsigned
861	  quantity, which is effectively a no-op, and almost never what was
862	  intended.  The code should be fixed, if at all possible.  If you are
863	  sure that the unsigned quantity can be safely cast to signed, without
864	  loss of information or undefined behavior, you can add an explicit
865	  cast, or disable the warning.
866
867	* When the code is trying to take an absolute value, but the called
868	  abs() variant is for the wrong type, which can lead to truncation.
869	  If you want to disable the warning instead of fixing the code, please
870	  make sure that truncation will not occur, or it might lead to unwanted
871	  side-effects.
872
873	-Wtautological-undefined-compare and
874	-Wundefined-bool-conversion
875
876	These warn when C++ code is trying to compare 'this' against NULL, while
877	'this' should never be NULL in well-defined C++ code.  However, there is
878	some legacy (pre C++11) code out there, which actively abuses this
879	feature, which was less strictly defined in previous C++ versions.
880
881	Squid and openjdk do this, for example.  The warning can be turned off
882	for C++98 and earlier, but compiling the code in C++11 mode might result
883	in unexpected behavior; for example, the parts of the program that are
884	unreachable could be optimized away.
885
88620141222:
887	The old NFS client and server (kernel options NFSCLIENT, NFSSERVER)
888	kernel sources have been removed. The .h files remain, since some
889	utilities include them. This will need to be fixed later.
890	If "mount -t oldnfs ..." is attempted, it will fail.
891	If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used,
892	the utilities will report errors.
893
89420141121:
895	The handling of LOCAL_LIB_DIRS has been altered to skip addition of
896	directories to top level SUBDIR variable when their parent
897	directory is included in LOCAL_DIRS.  Users with build systems with
898	such hierarchies and without SUBDIR entries in the parent
899	directory Makefiles should add them or add the directories to
900	LOCAL_DIRS.
901
90220141109:
903	faith(4) and faithd(8) have been removed from the base system. Faith
904	has been obsolete for a very long time.
905
90620141104:
907	vt(4), the new console driver, is enabled by default. It brings
908	support for Unicode and double-width characters, as well as
909	support for UEFI and integration with the KMS kernel video
910	drivers.
911
912	You may need to update your console settings in /etc/rc.conf,
913	most probably the keymap. During boot, /etc/rc.d/syscons will
914	indicate what you need to do.
915
916	vt(4) still has issues and lacks some features compared to
917	syscons(4). See the wiki for up-to-date information:
918	  https://wiki.freebsd.org/Newcons
919
920	If you want to keep using syscons(4), you can do so by adding
921	the following line to /boot/loader.conf:
922	  kern.vty=sc
923
92420141102:
925	pjdfstest has been integrated into kyua as an opt-in test suite.
926	Please see share/doc/pjdfstest/README for more details on how to
927	execute it.
928
92920141009:
930	gperf has been removed from the base system for architectures
931	that use clang. Ports that require gperf will obtain it from the
932	devel/gperf port.
933
93420140923:
935	pjdfstest has been moved from tools/regression/pjdfstest to
936	contrib/pjdfstest .
937
93820140922:
939	At svn r271982, The default linux compat kernel ABI has been adjusted
940	to 2.6.18 in support of the linux-c6 compat ports infrastructure
941	update.  If you wish to continue using the linux-f10 compat ports,
942	add compat.linux.osrelease=2.6.16 to your local sysctl.conf.  Users are
943	encouraged to update their linux-compat packages to linux-c6 during
944	their next update cycle.
945
94620140729:
947	The ofwfb driver, used to provide a graphics console on PowerPC when
948	using vt(4), no longer allows mmap() of all physical memory. This
949	will prevent Xorg on PowerPC with some ATI graphics cards from
950	initializing properly unless x11-servers/xorg-server is updated to
951	1.12.4_8 or newer.
952
95320140723:
954	The xdev targets have been converted to using TARGET and
955	TARGET_ARCH instead of XDEV and XDEV_ARCH.
956
95720140719:
958	The default unbound configuration has been modified to address
959	issues with reverse lookups on networks that use private
960	address ranges.  If you use the local_unbound service, run
961	"service local_unbound setup" as root to regenerate your
962	configuration, then "service local_unbound reload" to load the
963	new configuration.
964
96520140709:
966	The GNU texinfo and GNU info pages are not built and installed
967	anymore, WITH_INFO knob has been added to allow to built and install
968	them again.
969	UPDATE: see 20150102 entry on texinfo's removal
970
97120140708:
972	The GNU readline library is now an INTERNALLIB - that is, it is
973	statically linked into consumers (GDB and variants) in the base
974	system, and the shared library is no longer installed.  The
975	devel/readline port is available for third party software that
976	requires readline.
977
97820140702:
979	The Itanium architecture (ia64) has been removed from the list of
980	known architectures. This is the first step in the removal of the
981	architecture.
982
98320140701:
984	Commit r268115 has added NFSv4.1 server support, merged from
985	projects/nfsv4.1-server.  Since this includes changes to the
986	internal interfaces between the NFS related modules, a full
987	build of the kernel and modules will be necessary.
988	__FreeBSD_version has been bumped.
989
99020140629:
991	The WITHOUT_VT_SUPPORT kernel config knob has been renamed
992	WITHOUT_VT.  (The other _SUPPORT knobs have a consistent meaning
993	which differs from the behaviour controlled by this knob.)
994
99520140619:
996	Maximal length of the serial number in CTL was increased from 16 to
997	64 chars, that breaks ABI.  All CTL-related tools, such as ctladm
998	and ctld, need to be rebuilt to work with a new kernel.
999
100020140606:
1001	The libatf-c and libatf-c++ major versions were downgraded to 0 and
1002	1 respectively to match the upstream numbers.  They were out of
1003	sync because, when they were originally added to FreeBSD, the
1004	upstream versions were not respected.  These libraries are private
1005	and not yet built by default, so renumbering them should be a
1006	non-issue.  However, unclean source trees will yield broken test
1007	programs once the operator executes "make delete-old-libs" after a
1008	"make installworld".
1009
1010	Additionally, the atf-sh binary was made private by moving it into
1011	/usr/libexec/.  Already-built shell test programs will keep the
1012	path to the old binary so they will break after "make delete-old"
1013	is run.
1014
1015	If you are using WITH_TESTS=yes (not the default), wipe the object
1016	tree and rebuild from scratch to prevent spurious test failures.
1017	This is only needed once: the misnumbered libraries and misplaced
1018	binaries have been added to OptionalObsoleteFiles.inc so they will
1019	be removed during a clean upgrade.
1020
102120140512:
1022	Clang and llvm have been upgraded to 3.4.1 release.
1023
102420140508:
1025	We bogusly installed src.opts.mk in /usr/share/mk. This file should
1026	be removed to avoid issues in the future (and has been added to
1027	ObsoleteFiles.inc).
1028
102920140505:
1030	/etc/src.conf now affects only builds of the FreeBSD src tree. In the
1031	past, it affected all builds that used the bsd.*.mk files. The old
1032	behavior was a bug, but people may have relied upon it. To get this
1033	behavior back, you can .include /etc/src.conf from /etc/make.conf
1034	(which is still global and isn't changed). This also changes the
1035	behavior of incremental builds inside the tree of individual
1036	directories. Set MAKESYSPATH to ".../share/mk" to do that.
1037	Although this has survived make universe and some upgrade scenarios,
1038	other upgrade scenarios may have broken. At least one form of
1039	temporary breakage was fixed with MAKESYSPATH settings for buildworld
1040	as well... In cases where MAKESYSPATH isn't working with this
1041	setting, you'll need to set it to the full path to your tree.
1042
1043	One side effect of all this cleaning up is that bsd.compiler.mk
1044	is no longer implicitly included by bsd.own.mk. If you wish to
1045	use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk
1046	as well.
1047
104820140430:
1049	The lindev device has been removed since /dev/full has been made a
1050	standard device.  __FreeBSD_version has been bumped.
1051
105220140424:
1053	The knob WITHOUT_VI was added to the base system, which controls
1054	building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1)
1055	in order to reorder files share/termcap and didn't build ex(1) as a
1056	build tool, so building/installing with WITH_VI is highly advised for
1057	build hosts for older releases.
1058
1059	This issue has been fixed in stable/9 and stable/10 in r277022 and
1060	r276991, respectively.
1061
106220140418:
1063	The YES_HESIOD knob has been removed. It has been obsolete for
1064	a decade. Please move to using WITH_HESIOD instead or your builds
1065	will silently lack HESIOD.
1066
106720140405:
1068	The uart(4) driver has been changed with respect to its handling
1069	of the low-level console. Previously the uart(4) driver prevented
1070	any process from changing the baudrate or the CLOCAL and HUPCL
1071	control flags. By removing the restrictions, operators can make
1072	changes to the serial console port without having to reboot.
1073	However, when getty(8) is started on the serial device that is
1074	associated with the low-level console, a misconfigured terminal
1075	line in /etc/ttys will now have a real impact.
1076	Before upgrading the kernel, make sure that /etc/ttys has the
1077	serial console device configured as 3wire without baudrate to
1078	preserve the previous behaviour. E.g:
1079	    ttyu0  "/usr/libexec/getty 3wire"  vt100  on  secure
1080
108120140306:
1082	Support for libwrap (TCP wrappers) in rpcbind was disabled by default
1083	to improve performance.  To re-enable it, if needed, run rpcbind
1084	with command line option -W.
1085
108620140226:
1087	Switched back to the GPL dtc compiler due to updates in the upstream
1088	dts files not being supported by the BSDL dtc compiler. You will need
1089	to rebuild your kernel toolchain to pick up the new compiler. Core dumps
1090	may result while building dtb files during a kernel build if you fail
1091	to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler.
1092
109320140216:
1094	Clang and llvm have been upgraded to 3.4 release.
1095
109620140216:
1097	The nve(4) driver has been removed.  Please use the nfe(4) driver
1098	for NVIDIA nForce MCP Ethernet adapters instead.
1099
110020140212:
1101	An ABI incompatibility crept into the libc++ 3.4 import in r261283.
1102	This could cause certain C++ applications using shared libraries built
1103	against the previous version of libc++ to crash.  The incompatibility
1104	has now been fixed, but any C++ applications or shared libraries built
1105	between r261283 and r261801 should be recompiled.
1106
110720140204:
1108	OpenSSH will now ignore errors caused by kernel lacking of Capsicum
1109	capability mode support.  Please note that enabling the feature in
1110	kernel is still highly recommended.
1111
111220140131:
1113	OpenSSH is now built with sandbox support, and will use sandbox as
1114	the default privilege separation method.  This requires Capsicum
1115	capability mode support in kernel.
1116
111720140128:
1118	The libelf and libdwarf libraries have been updated to newer
1119	versions from upstream. Shared library version numbers for
1120	these two libraries were bumped. Any ports or binaries
1121	requiring these two libraries should be recompiled.
1122	__FreeBSD_version is bumped to 1100006.
1123
112420140110:
1125	If a Makefile in a tests/ directory was auto-generating a Kyuafile
1126	instead of providing an explicit one, this would prevent such
1127	Makefile from providing its own Kyuafile in the future during
1128	NO_CLEAN builds.  This has been fixed in the Makefiles but manual
1129	intervention is needed to clean an objdir if you use NO_CLEAN:
1130	  # find /usr/obj -name Kyuafile | xargs rm -f
1131
113220131213:
1133	The behavior of gss_pseudo_random() for the krb5 mechanism
1134	has changed, for applications requesting a longer random string
1135	than produced by the underlying enctype's pseudo-random() function.
1136	In particular, the random string produced from a session key of
1137	enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will
1138	be different at the 17th octet and later, after this change.
1139	The counter used in the PRF+ construction is now encoded as a
1140	big-endian integer in accordance with RFC 4402.
1141	__FreeBSD_version is bumped to 1100004.
1142
114320131108:
1144	The WITHOUT_ATF build knob has been removed and its functionality
1145	has been subsumed into the more generic WITHOUT_TESTS.  If you were
1146	using the former to disable the build of the ATF libraries, you
1147	should change your settings to use the latter.
1148
114920131025:
1150	The default version of mtree is nmtree which is obtained from
1151	NetBSD.  The output is generally the same, but may vary
1152	slightly.  If you found you need identical output adding
1153	"-F freebsd9" to the command line should do the trick.  For the
1154	time being, the old mtree is available as fmtree.
1155
115620131014:
1157	libbsdyml has been renamed to libyaml and moved to /usr/lib/private.
1158	This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg
1159	1.1.4_8 and verify bsdyml not linked in, before running "make
1160	delete-old-libs":
1161	  # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean
1162	  or
1163	  # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml
1164
116520131010:
1166	The stable/10 branch has been created in subversion from head
1167	revision r256279.
1168
116920131010:
1170	The rc.d/jail script has been updated to support jail(8)
1171	configuration file.  The "jail_<jname>_*" rc.conf(5) variables
1172	for per-jail configuration are automatically converted to
1173	/var/run/jail.<jname>.conf before the jail(8) utility is invoked.
1174	This is transparently backward compatible.  See below about some
1175	incompatibilities and rc.conf(5) manual page for more details.
1176
1177	These variables are now deprecated in favor of jail(8) configuration
1178	file.  One can use "rc.d/jail config <jname>" command to generate
1179	a jail(8) configuration file in /var/run/jail.<jname>.conf without
1180	running the jail(8) utility.   The default pathname of the
1181	configuration file is /etc/jail.conf and can be specified by
1182	using $jail_conf or $jail_<jname>_conf variables.
1183
1184	Please note that jail_devfs_ruleset accepts an integer at
1185	this moment.  Please consider to rewrite the ruleset name
1186	with an integer.
1187
118820130930:
1189	BIND has been removed from the base system.  If all you need
1190	is a local resolver, simply enable and start the local_unbound
1191	service instead.  Otherwise, several versions of BIND are
1192	available in the ports tree.   The dns/bind99 port is one example.
1193
1194	With this change, nslookup(1) and dig(1) are no longer in the base
1195	system.  Users should instead use host(1) and drill(1) which are
1196	in the base system.  Alternatively, nslookup and dig can
1197	be obtained by installing the dns/bind-tools port.
1198
119920130916:
1200	With the addition of unbound(8), a new unbound user is now
1201	required during installworld.  "mergemaster -p" can be used to
1202	add the user prior to installworld, as documented in the handbook.
1203
120420130911:
1205	OpenSSH is now built with DNSSEC support, and will by default
1206	silently trust signed SSHFP records.  This can be controlled with
1207	the VerifyHostKeyDNS client configuration setting.  DNSSEC support
1208	can be disabled entirely with the WITHOUT_LDNS option in src.conf.
1209
121020130906:
1211	The GNU Compiler Collection and C++ standard library (libstdc++)
1212	are no longer built by default on platforms where clang is the system
1213	compiler.  You can enable them with the WITH_GCC and WITH_GNUCXX
1214	options in src.conf.
1215
121620130905:
1217	The PROCDESC kernel option is now part of the GENERIC kernel
1218	configuration and is required for the rwhod(8) to work.
1219	If you are using custom kernel configuration, you should include
1220	'options PROCDESC'.
1221
122220130905:
1223	The API and ABI related to the Capsicum framework was modified
1224	in backward incompatible way. The userland libraries and programs
1225	have to be recompiled to work with the new kernel. This includes the
1226	following libraries and programs, but the whole buildworld is
1227	advised: libc, libprocstat, dhclient, tcpdump, hastd, hastctl,
1228	kdump, procstat, rwho, rwhod, uniq.
1229
123020130903:
1231	AES-NI intrinsic support has been added to gcc.  The AES-NI module
1232	has been updated to use this support.  A new gcc is required to build
1233	the aesni module on both i386 and amd64.
1234
123520130821:
1236	The PADLOCK_RNG and RDRAND_RNG kernel options are now devices.
1237	Thus "device padlock_rng" and "device rdrand_rng" should be
1238	used instead of "options PADLOCK_RNG" & "options RDRAND_RNG".
1239
124020130813:
1241	WITH_ICONV has been split into two feature sets.  WITH_ICONV now
1242	enables just the iconv* functionality and is now on by default.
1243	WITH_LIBICONV_COMPAT enables the libiconv api and link time
1244	compatibility.  Set WITHOUT_ICONV to build the old way.
1245	If you have been using WITH_ICONV before, you will very likely
1246	need to turn on WITH_LIBICONV_COMPAT.
1247
124820130806:
1249	INVARIANTS option now enables DEBUG for code with OpenSolaris and
1250	Illumos origin, including ZFS.  If you have INVARIANTS in your
1251	kernel configuration, then there is no need to set DEBUG or ZFS_DEBUG
1252	explicitly.
1253	DEBUG used to enable witness(9) tracking of OpenSolaris (mostly ZFS)
1254	locks if WITNESS option was set.  Because that generated a lot of
1255	witness(9) reports and all of them were believed to be false
1256	positives, this is no longer done.  New option OPENSOLARIS_WITNESS
1257	can be used to achieve the previous behavior.
1258
125920130806:
1260	Timer values in IPv6 data structures now use time_uptime instead
1261	of time_second.  Although this is not a user-visible functional
1262	change, userland utilities which directly use them---ndp(8),
1263	rtadvd(8), and rtsold(8) in the base system---need to be updated
1264	to r253970 or later.
1265
126620130802:
1267	find -delete can now delete the pathnames given as arguments,
1268	instead of only files found below them or if the pathname did
1269	not contain any slashes. Formerly, the following error message
1270	would result:
1271
1272	find: -delete: <path>: relative path potentially not safe
1273
1274	Deleting the pathnames given as arguments can be prevented
1275	without error messages using -mindepth 1 or by changing
1276	directory and passing "." as argument to find. This works in the
1277	old as well as the new version of find.
1278
127920130726:
1280	Behavior of devfs rules path matching has been changed.
1281	Pattern is now always matched against fully qualified devfs
1282	path and slash characters must be explicitly matched by
1283	slashes in pattern (FNM_PATHNAME). Rulesets involving devfs
1284	subdirectories must be reviewed.
1285
128620130716:
1287	The default ARM ABI has changed to the ARM EABI. The old ABI is
1288	incompatible with the ARM EABI and all programs and modules will
1289	need to be rebuilt to work with a new kernel.
1290
1291	To keep using the old ABI ensure the WITHOUT_ARM_EABI knob is set.
1292
1293	NOTE: Support for the old ABI will be removed in the future and
1294	users are advised to upgrade.
1295
129620130709:
1297	pkg_install has been disconnected from the build if you really need it
1298	you should add WITH_PKGTOOLS in your src.conf(5).
1299
130020130709:
1301	Most of network statistics structures were changed to be able
1302	keep 64-bits counters. Thus all tools, that work with networking
1303	statistics, must be rebuilt (netstat(1), bsnmpd(1), etc.)
1304
130520130618:
1306	Fix a bug that allowed a tracing process (e.g. gdb) to write
1307	to a memory-mapped file in the traced process's address space
1308	even if neither the traced process nor the tracing process had
1309	write access to that file.
1310
131120130615:
1312	CVS has been removed from the base system.  An exact copy
1313	of the code is available from the devel/cvs port.
1314
131520130613:
1316	Some people report the following error after the switch to bmake:
1317
1318		make: illegal option -- J
1319		usage: make [-BPSXeiknpqrstv] [-C directory] [-D variable]
1320			...
1321		*** [buildworld] Error code 2
1322
1323	this likely due to an old instance of make in
1324	${MAKEPATH} (${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE})
1325	which src/Makefile will use that blindly, if it exists, so if
1326	you see the above error:
1327
1328		rm -rf `make -V MAKEPATH`
1329
1330	should resolve it.
1331
133220130516:
1333	Use bmake by default.
1334	Whereas before one could choose to build with bmake via
1335	-DWITH_BMAKE one must now use -DWITHOUT_BMAKE to use the old
1336	make. The goal is to remove these knobs for 10-RELEASE.
1337
1338	It is worth noting that bmake (like gmake) treats the command
1339	line as the unit of failure, rather than statements within the
1340	command line.  Thus '(cd some/where && dosomething)' is safer
1341	than 'cd some/where; dosomething'. The '()' allows consistent
1342	behavior in parallel build.
1343
134420130429:
1345	Fix a bug that allows NFS clients to issue READDIR on files.
1346
134720130426:
1348	The WITHOUT_IDEA option has been removed because
1349	the IDEA patent expired.
1350
135120130426:
1352	The sysctl which controls TRIM support under ZFS has been renamed
1353	from vfs.zfs.trim_disable -> vfs.zfs.trim.enabled and has been
1354	enabled by default.
1355
135620130425:
1357	The mergemaster command now uses the default MAKEOBJDIRPREFIX
1358	rather than creating it's own in the temporary directory in
1359	order allow access to bootstrapped versions of tools such as
1360	install and mtree.  When upgrading from version of FreeBSD where
1361	the install command does not support -l, you will need to
1362	install a new mergemaster command if mergemaster -p is required.
1363	This can be accomplished with the command (cd src/usr.sbin/mergemaster
1364	&& make install).
1365
136620130404:
1367	Legacy ATA stack, disabled and replaced by new CAM-based one since
1368	FreeBSD 9.0, completely removed from the sources.  Kernel modules
1369	atadisk and atapi*, user-level tools atacontrol and burncd are
1370	removed.  Kernel option `options ATA_CAM` is now permanently enabled
1371	and removed.
1372
137320130319:
1374	SOCK_CLOEXEC and SOCK_NONBLOCK flags have been added to socket(2)
1375	and socketpair(2). Software, in particular Kerberos, may
1376	automatically detect and use these during building. The resulting
1377	binaries will not work on older kernels.
1378
137920130308:
1380	CTL_DISABLE has also been added to the sparc64 GENERIC (for further
1381	information, see the respective 20130304 entry).
1382
138320130304:
1384	Recent commits to callout(9) changed the size of struct callout,
1385	so the KBI is probably heavily disturbed. Also, some functions
1386	in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced
1387	by macros. Every kernel module using it won't load, so rebuild
1388	is requested.
1389
1390	The ctl device has been re-enabled in GENERIC for i386 and amd64,
1391	but does not initialize by default (because of the new CTL_DISABLE
1392	option) to save memory.  To re-enable it, remove the CTL_DISABLE
1393	option from the kernel config file or set kern.cam.ctl.disable=0
1394	in /boot/loader.conf.
1395
139620130301:
1397	The ctl device has been disabled in GENERIC for i386 and amd64.
1398	This was done due to the extra memory being allocated at system
1399	initialisation time by the ctl driver which was only used if
1400	a CAM target device was created.  This makes a FreeBSD system
1401	unusable on 128MB or less of RAM.
1402
140320130208:
1404	A new compression method (lz4) has been merged to -HEAD.  Please
1405	refer to zpool-features(7) for more information.
1406
1407	Please refer to the "ZFS notes" section of this file for information
1408	on upgrading boot ZFS pools.
1409
141020130129:
1411	A BSD-licensed patch(1) variant has been added and is installed
1412	as bsdpatch, being the GNU version the default patch.
1413	To inverse the logic and use the BSD-licensed one as default,
1414	while having the GNU version installed as gnupatch, rebuild
1415	and install world with the WITH_BSD_PATCH knob set.
1416
141720130121:
1418	Due to the use of the new -l option to install(1) during build
1419	and install, you must take care not to directly set the INSTALL
1420	make variable in your /etc/make.conf, /etc/src.conf, or on the
1421	command line.  If you wish to use the -C flag for all installs
1422	you may be able to add INSTALL+=-C to /etc/make.conf or
1423	/etc/src.conf.
1424
142520130118:
1426	The install(1) option -M has changed meaning and now takes an
1427	argument that is a file or path to append logs to.  In the
1428	unlikely event that -M was the last option on the command line
1429	and the command line contained at least two files and a target
1430	directory the first file will have logs appended to it.  The -M
1431	option served little practical purpose in the last decade so its
1432	use is expected to be extremely rare.
1433
143420121223:
1435	After switching to Clang as the default compiler some users of ZFS
1436	on i386 systems started to experience stack overflow kernel panics.
1437	Please consider using 'options KSTACK_PAGES=4' in such configurations.
1438
143920121222:
1440	GEOM_LABEL now mangles label names read from file system metadata.
1441	Mangling affect labels containing spaces, non-printable characters,
1442	'%' or '"'. Device names in /etc/fstab and other places may need to
1443	be updated.
1444
144520121217:
1446	By default, only the 10 most recent kernel dumps will be saved.  To
1447	restore the previous behaviour (no limit on the number of kernel dumps
1448	stored in the dump directory) add the following line to /etc/rc.conf:
1449
1450		savecore_flags=""
1451
145220121201:
1453	With the addition of auditdistd(8), a new auditdistd user is now
1454	required during installworld.  "mergemaster -p" can be used to
1455	add the user prior to installworld, as documented in the handbook.
1456
145720121117:
1458	The sin6_scope_id member variable in struct sockaddr_in6 is now
1459	filled by the kernel before passing the structure to the userland via
1460	sysctl or routing socket.  This means the KAME-specific embedded scope
1461	id in sin6_addr.s6_addr[2] is always cleared in userland application.
1462	This behavior can be controlled by net.inet6.ip6.deembed_scopeid.
1463	__FreeBSD_version is bumped to 1000025.
1464
146520121105:
1466	On i386 and amd64 systems WITH_CLANG_IS_CC is now the default.
1467	This means that the world and kernel will be compiled with clang
1468	and that clang will be installed as /usr/bin/cc, /usr/bin/c++,
1469	and /usr/bin/cpp.  To disable this behavior and revert to building
1470	with gcc, compile with WITHOUT_CLANG_IS_CC. Really old versions
1471	of current may need to bootstrap WITHOUT_CLANG first if the clang
1472	build fails (its compatibility window doesn't extend to the 9 stable
1473	branch point).
1474
147520121102:
1476	The IPFIREWALL_FORWARD kernel option has been removed. Its
1477	functionality now turned on by default.
1478
147920121023:
1480	The ZERO_COPY_SOCKET kernel option has been removed and
1481	split into SOCKET_SEND_COW and SOCKET_RECV_PFLIP.
1482	NB: SOCKET_SEND_COW uses the VM page based copy-on-write
1483	mechanism which is not safe and may result in kernel crashes.
1484	NB: The SOCKET_RECV_PFLIP mechanism is useless as no current
1485	driver supports disposeable external page sized mbuf storage.
1486	Proper replacements for both zero-copy mechanisms are under
1487	consideration and will eventually lead to complete removal
1488	of the two kernel options.
1489
149020121023:
1491	The IPv4 network stack has been converted to network byte
1492	order. The following modules need to be recompiled together
1493	with kernel: carp(4), divert(4), gif(4), siftr(4), gre(4),
1494	pf(4), ipfw(4), ng_ipfw(4), stf(4).
1495
149620121022:
1497	Support for non-MPSAFE filesystems was removed from VFS. The
1498	VFS_VERSION was bumped, all filesystem modules shall be
1499	recompiled.
1500
150120121018:
1502	All the non-MPSAFE filesystems have been disconnected from
1503	the build. The full list includes: codafs, hpfs, ntfs, nwfs,
1504	portalfs, smbfs, xfs.
1505
150620121016:
1507	The interface cloning API and ABI has changed. The following
1508	modules need to be recompiled together with kernel:
1509	ipfw(4), pfsync(4), pflog(4), usb(4), wlan(4), stf(4),
1510	vlan(4), disc(4), edsc(4), if_bridge(4), gif(4), tap(4),
1511	faith(4), epair(4), enc(4), tun(4), if_lagg(4), gre(4).
1512
151320121015:
1514	The sdhci driver was split in two parts: sdhci (generic SD Host
1515	Controller logic) and sdhci_pci (actual hardware driver).
1516	No kernel config modifications are required, but if you
1517	load sdhc as a module you must switch to sdhci_pci instead.
1518
151920121014:
1520	Import the FUSE kernel and userland support into base system.
1521
152220121013:
1523	The GNU sort(1) program has been removed since the BSD-licensed
1524	sort(1) has been the default for quite some time and no serious
1525	problems have been reported.  The corresponding WITH_GNU_SORT
1526	knob has also gone.
1527
152820121006:
1529	The pfil(9) API/ABI for AF_INET family has been changed. Packet
1530	filtering modules: pf(4), ipfw(4), ipfilter(4) need to be recompiled
1531	with new kernel.
1532
153320121001:
1534	The net80211(4) ABI has been changed to allow for improved driver
1535	PS-POLL and power-save support.  All wireless drivers need to be
1536	recompiled to work with the new kernel.
1537
153820120913:
1539	The random(4) support for the VIA hardware random number
1540	generator (`PADLOCK') is no longer enabled unconditionally.
1541	Add the padlock_rng device in the custom kernel config if
1542	needed.  The GENERIC kernels on i386 and amd64 do include the
1543	device, so the change only affects the custom kernel
1544	configurations.
1545
154620120908:
1547	The pf(4) packet filter ABI has been changed. pfctl(8) and
1548	snmp_pf module need to be recompiled to work with new kernel.
1549
155020120828:
1551	A new ZFS feature flag "com.delphix:empty_bpobj" has been merged
1552	to -HEAD. Pools that have empty_bpobj in active state can not be
1553	imported read-write with ZFS implementations that do not support
1554	this feature. For more information read the zpool-features(5)
1555	manual page.
1556
155720120727:
1558	The sparc64 ZFS loader has been changed to no longer try to auto-
1559	detect ZFS providers based on diskN aliases but now requires these
1560	to be explicitly listed in the OFW boot-device environment variable.
1561
156220120712:
1563	The OpenSSL has been upgraded to 1.0.1c.  Any binaries requiring
1564	libcrypto.so.6 or libssl.so.6 must be recompiled.  Also, there are
1565	configuration changes.  Make sure to merge /etc/ssl/openssl.cnf.
1566
156720120712:
1568	The following sysctls and tunables have been renamed for consistency
1569	with other variables:
1570	  kern.cam.da.da_send_ordered   -> kern.cam.da.send_ordered
1571	  kern.cam.ada.ada_send_ordered -> kern.cam.ada.send_ordered
1572
157320120628:
1574	The sort utility has been replaced with BSD sort.  For now, GNU sort
1575	is also available as "gnusort" or the default can be set back to
1576	GNU sort by setting WITH_GNU_SORT.  In this case, BSD sort will be
1577	installed as "bsdsort".
1578
157920120611:
1580	A new version of ZFS (pool version 5000) has been merged to -HEAD.
1581	Starting with this version the old system of ZFS pool versioning
1582	is superseded by "feature flags". This concept enables forward
1583	compatibility against certain future changes in functionality of ZFS
1584	pools. The first read-only compatible "feature flag" for ZFS pools
1585	is named "com.delphix:async_destroy". For more information
1586	read the new zpool-features(5) manual page.
1587	Please refer to the "ZFS notes" section of this file for information
1588	on upgrading boot ZFS pools.
1589
159020120417:
1591	The malloc(3) implementation embedded in libc now uses sources imported
1592	as contrib/jemalloc.  The most disruptive API change is to
1593	/etc/malloc.conf.  If your system has an old-style /etc/malloc.conf,
1594	delete it prior to installworld, and optionally re-create it using the
1595	new format after rebooting.  See malloc.conf(5) for details
1596	(specifically the TUNING section and the "opt.*" entries in the MALLCTL
1597	NAMESPACE section).
1598
159920120328:
1600	Big-endian MIPS TARGET_ARCH values no longer end in "eb".  mips64eb
1601	is now spelled mips64.  mipsn32eb is now spelled mipsn32.  mipseb is
1602	now spelled mips.  This is to aid compatibility with third-party
1603	software that expects this naming scheme in uname(3).  Little-endian
1604	settings are unchanged. If you are updating a big-endian mips64 machine
1605	from before this change, you may need to set MACHINE_ARCH=mips64 in
1606	your environment before the new build system will recognize your machine.
1607
160820120306:
1609	Disable by default the option VFS_ALLOW_NONMPSAFE for all supported
1610	platforms.
1611
161220120229:
1613	Now unix domain sockets behave "as expected" on	nullfs(5). Previously
1614	nullfs(5) did not pass through all behaviours to the underlying layer,
1615	as a result if we bound to a socket on the lower layer we could connect
1616	only to the lower path; if we bound to the upper layer we could connect
1617	only to	the upper path. The new behavior is one can connect to both the
1618	lower and the upper paths regardless what layer path one binds to.
1619
162020120211:
1621	The getifaddrs upgrade path broken with 20111215 has been restored.
1622	If you have upgraded in between 20111215 and 20120209 you need to
1623	recompile libc again with your kernel.  You still need to recompile
1624	world to be able to configure CARP but this restriction already
1625	comes from 20111215.
1626
162720120114:
1628	The set_rcvar() function has been removed from /etc/rc.subr.  All
1629	base and ports rc.d scripts have been updated, so if you have a
1630	port installed with a script in /usr/local/etc/rc.d you can either
1631	hand-edit the rcvar= line, or reinstall the port.
1632
1633	An easy way to handle the mass-update of /etc/rc.d:
1634	rm /etc/rc.d/* && mergemaster -i
1635
163620120109:
1637	panic(9) now stops other CPUs in the SMP systems, disables interrupts
1638	on the current CPU and prevents other threads from running.
1639	This behavior can be reverted using the kern.stop_scheduler_on_panic
1640	tunable/sysctl.
1641	The new behavior can be incompatible with kern.sync_on_panic.
1642
164320111215:
1644	The carp(4) facility has been changed significantly. Configuration
1645	of the CARP protocol via ifconfig(8) has changed, as well as format
1646	of CARP events submitted to devd(8) has changed. See manual pages
1647	for more information. The arpbalance feature of carp(4) is currently
1648	not supported anymore.
1649
1650	Size of struct in_aliasreq, struct in6_aliasreq has changed. User
1651	utilities using SIOCAIFADDR, SIOCAIFADDR_IN6, e.g. ifconfig(8),
1652	need to be recompiled.
1653
165420111122:
1655	The acpi_wmi(4) status device /dev/wmistat has been renamed to
1656	/dev/wmistat0.
1657
165820111108:
1659	The option VFS_ALLOW_NONMPSAFE option has been added in order to
1660	explicitely support non-MPSAFE filesystems.
1661	It is on by default for all supported platform at this present
1662	time.
1663
166420111101:
1665	The broken amd(4) driver has been replaced with esp(4) in the amd64,
1666	i386 and pc98 GENERIC kernel configuration files.
1667
166820110930:
1669	sysinstall has been removed
1670
167120110923:
1672	The stable/9 branch created in subversion.  This corresponds to the
1673	RELENG_9 branch in CVS.
1674
1675COMMON ITEMS:
1676
1677	General Notes
1678	-------------
1679	Avoid using make -j when upgrading.  While generally safe, there are
1680	sometimes problems using -j to upgrade.  If your upgrade fails with
1681	-j, please try again without -j.  From time to time in the past there
1682	have been problems using -j with buildworld and/or installworld.  This
1683	is especially true when upgrading between "distant" versions (eg one
1684	that cross a major release boundary or several minor releases, or when
1685	several months have passed on the -current branch).
1686
1687	Sometimes, obscure build problems are the result of environment
1688	poisoning.  This can happen because the make utility reads its
1689	environment when searching for values for global variables.  To run
1690	your build attempts in an "environmental clean room", prefix all make
1691	commands with 'env -i '.  See the env(1) manual page for more details.
1692
1693	When upgrading from one major version to another it is generally best to
1694	upgrade to the latest code in the currently installed branch first, then
1695	do an upgrade to the new branch. This is the best-tested upgrade path,
1696	and has the highest probability of being successful.  Please try this
1697	approach if you encounter problems with a major version upgrade.  Since
1698	the stable 4.x branch point, one has generally been able to upgade from
1699	anywhere in the most recent stable branch to head / current (or even the
1700	last couple of stable branches). See the top of this file when there's
1701	an exception.
1702
1703	When upgrading a live system, having a root shell around before
1704	installing anything can help undo problems. Not having a root shell
1705	around can lead to problems if pam has changed too much from your
1706	starting point to allow continued authentication after the upgrade.
1707
1708	This file should be read as a log of events. When a later event changes
1709	information of a prior event, the prior event should not be deleted.
1710	Instead, a pointer to the entry with the new information should be
1711	placed in the old entry. Readers of this file should also sanity check
1712	older entries before relying on them blindly. Authors of new entries
1713	should write them with this in mind.
1714
1715	ZFS notes
1716	---------
1717	When upgrading the boot ZFS pool to a new version, always follow
1718	these two steps:
1719
1720	1.) recompile and reinstall the ZFS boot loader and boot block
1721	(this is part of "make buildworld" and "make installworld")
1722
1723	2.) update the ZFS boot block on your boot drive
1724
1725	The following example updates the ZFS boot block on the first
1726	partition (freebsd-boot) of a GPT partitioned drive ada0:
1727	"gpart bootcode -p /boot/gptzfsboot -i 1 ada0"
1728
1729	Non-boot pools do not need these updates.
1730
1731	To build a kernel
1732	-----------------
1733	If you are updating from a prior version of FreeBSD (even one just
1734	a few days old), you should follow this procedure.  It is the most
1735	failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1736
1737	make kernel-toolchain
1738	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1739	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1740
1741	To test a kernel once
1742	---------------------
1743	If you just want to boot a kernel once (because you are not sure
1744	if it works, or if you want to boot a known bad kernel to provide
1745	debugging information) run
1746	make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1747	nextboot -k testkernel
1748
1749	To just build a kernel when you know that it won't mess you up
1750	--------------------------------------------------------------
1751	This assumes you are already running a CURRENT system.  Replace
1752	${arch} with the architecture of your machine (e.g. "i386",
1753	"arm", "amd64", "ia64", "pc98", "sparc64", "powerpc", "mips", etc).
1754
1755	cd src/sys/${arch}/conf
1756	config KERNEL_NAME_HERE
1757	cd ../compile/KERNEL_NAME_HERE
1758	make depend
1759	make
1760	make install
1761
1762	If this fails, go to the "To build a kernel" section.
1763
1764	To rebuild everything and install it on the current system.
1765	-----------------------------------------------------------
1766	# Note: sometimes if you are running current you gotta do more than
1767	# is listed here if you are upgrading from a really old current.
1768
1769	<make sure you have good level 0 dumps>
1770	make buildworld
1771	make kernel KERNCONF=YOUR_KERNEL_HERE
1772							[1]
1773	<reboot in single user>				[3]
1774	mergemaster -Fp					[5]
1775	make installworld
1776	mergemaster -Fi					[4]
1777	make delete-old					[6]
1778	<reboot>
1779
1780	To cross-install current onto a separate partition
1781	--------------------------------------------------
1782	# In this approach we use a separate partition to hold
1783	# current's root, 'usr', and 'var' directories.   A partition
1784	# holding "/", "/usr" and "/var" should be about 2GB in
1785	# size.
1786
1787	<make sure you have good level 0 dumps>
1788	<boot into -stable>
1789	make buildworld
1790	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1791	<maybe newfs current's root partition>
1792	<mount current's root partition on directory ${CURRENT_ROOT}>
1793	make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC
1794	make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1795	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1796	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
1797	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1798	<reboot into current>
1799	<do a "native" rebuild/install as described in the previous section>
1800	<maybe install compatibility libraries from ports/misc/compat*>
1801	<reboot>
1802
1803
1804	To upgrade in-place from stable to current
1805	----------------------------------------------
1806	<make sure you have good level 0 dumps>
1807	make buildworld					[9]
1808	make kernel KERNCONF=YOUR_KERNEL_HERE		[8]
1809							[1]
1810	<reboot in single user>				[3]
1811	mergemaster -Fp					[5]
1812	make installworld
1813	mergemaster -Fi					[4]
1814	make delete-old					[6]
1815	<reboot>
1816
1817	Make sure that you've read the UPDATING file to understand the
1818	tweaks to various things you need.  At this point in the life
1819	cycle of current, things change often and you are on your own
1820	to cope.  The defaults can also change, so please read ALL of
1821	the UPDATING entries.
1822
1823	Also, if you are tracking -current, you must be subscribed to
1824	freebsd-current@freebsd.org.  Make sure that before you update
1825	your sources that you have read and understood all the recent
1826	messages there.  If in doubt, please track -stable which has
1827	much fewer pitfalls.
1828
1829	[1] If you have third party modules, such as vmware, you
1830	should disable them at this point so they don't crash your
1831	system on reboot.
1832
1833	[3] From the bootblocks, boot -s, and then do
1834		fsck -p
1835		mount -u /
1836		mount -a
1837		cd src
1838		adjkerntz -i		# if CMOS is wall time
1839	Also, when doing a major release upgrade, it is required that
1840	you boot into single user mode to do the installworld.
1841
1842	[4] Note: This step is non-optional.  Failure to do this step
1843	can result in a significant reduction in the functionality of the
1844	system.  Attempting to do it by hand is not recommended and those
1845	that pursue this avenue should read this file carefully, as well
1846	as the archives of freebsd-current and freebsd-hackers mailing lists
1847	for potential gotchas.  The -U option is also useful to consider.
1848	See mergemaster(8) for more information.
1849
1850	[5] Usually this step is a noop.  However, from time to time
1851	you may need to do this if you get unknown user in the following
1852	step.  It never hurts to do it all the time.  You may need to
1853	install a new mergemaster (cd src/usr.sbin/mergemaster && make
1854	install) after the buildworld before this step if you last updated
1855	from current before 20130425 or from -stable before 20130430.
1856
1857	[6] This only deletes old files and directories. Old libraries
1858	can be deleted by "make delete-old-libs", but you have to make
1859	sure that no program is using those libraries anymore.
1860
1861	[8] In order to have a kernel that can run the 4.x binaries needed to
1862	do an installworld, you must include the COMPAT_FREEBSD4 option in
1863	your kernel.  Failure to do so may leave you with a system that is
1864	hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is
1865	required to run the 5.x binaries on more recent kernels.  And so on
1866	for COMPAT_FREEBSD6 and COMPAT_FREEBSD7.
1867
1868	Make sure that you merge any new devices from GENERIC since the
1869	last time you updated your kernel config file.
1870
1871	[9] When checking out sources, you must include the -P flag to have
1872	cvs prune empty directories.
1873
1874	If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1875	"?=" instead of the "=" assignment operator, so that buildworld can
1876	override the CPUTYPE if it needs to.
1877
1878	MAKEOBJDIRPREFIX must be defined in an environment variable, and
1879	not on the command line, or in /etc/make.conf.  buildworld will
1880	warn if it is improperly defined.
1881FORMAT:
1882
1883This file contains a list, in reverse chronological order, of major
1884breakages in tracking -current.  It is not guaranteed to be a complete
1885list of such breakages, and only contains entries since September 23, 2011.
1886If you need to see UPDATING entries from before that date, you will need
1887to fetch an UPDATING file from an older FreeBSD release.
1888
1889Copyright information:
1890
1891Copyright 1998-2009 M. Warner Losh.  All Rights Reserved.
1892
1893Redistribution, publication, translation and use, with or without
1894modification, in full or in part, in any form or format of this
1895document are permitted without further permission from the author.
1896
1897THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1898IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1899WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1900DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1901INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1902(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1903SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1904HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1905STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1906IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1907POSSIBILITY OF SUCH DAMAGE.
1908
1909Contact Warner Losh if you have any questions about your use of
1910this document.
1911
1912$FreeBSD$
1913