xref: /freebsd/UPDATING (revision 90d30dd1a9dc7f1dc7ef75e86a85f732754dd9d7)
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    http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
10
11Items affecting the ports and packages system can be found in
12/usr/ports/UPDATING.  Please read that file before running portupgrade.
13
14NOTE: FreeBSD has switched from gcc to clang. If you have trouble bootstrapping
15from older versions of FreeBSD, try WITHOUT_CLANG and WITH_GCC to bootstrap to
16the tip of head, and then rebuild without this option. The bootstrap process
17from older version of current across the gcc/clang cutover is a bit fragile.
18
19NOTE TO PEOPLE WHO THINK THAT FreeBSD 11.x IS SLOW:
20	FreeBSD 11.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
3420160330:
35	The FAST_DEPEND build option has been removed and its functionality is
36	now the one true way.  The old mkdep(1) style of 'make depend' has
37	been removed.  See 20160311 for further details.
38
3920160317:
40	Resource range types have grown from unsigned long to uintmax_t.  All
41	drivers, and anything using libdevinfo, need to be recompiled.
42
4320160311:
44	WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree
45	builds.  It no longer runs mkdep(1) during 'make depend', and the
46	'make depend' stage can safely be skipped now as it is auto ran
47	when building 'make all' and will generate all SRCS and DPSRCS before
48	building anything else.  Dependencies are gathered at compile time with
49	-MF flags kept in separate .depend files per object file.  Users should
50	run 'make cleandepend' once if using -DNO_CLEAN to clean out older
51	stale .depend files.
52
5320160306:
54	On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into
55	kernel modules.  Therefore, if you load any kernel modules at boot time,
56	please install the boot loaders after you install the kernel, but before
57	rebooting, e.g.:
58
59	make buildworld
60	make kernel KERNCONF=YOUR_KERNEL_HERE
61	make -C sys/boot install
62	<reboot in single user>
63
64	Then follow the usual steps, described in the General Notes section,
65	below.
66
6720160305:
68	Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0.  Please
69	see the 20141231 entry below for information about prerequisites and
70	upgrading, if you are not already using clang 3.5.0 or higher.
71
7220160301:
73	The AIO subsystem is now a standard part of the kernel.  The
74	VFS_AIO kernel option and aio.ko kernel module have been removed.
75	Due to stability concerns, asynchronous I/O requests are only
76	permitted on sockets and raw disks by default.  To enable
77	asynchronous I/O requests on all file types, set the
78	vfs.aio.enable_unsafe sysctl to a non-zero value.
79
8020160226:
81	The ELF object manipulation tool objcopy is now provided by the
82	ELF Tool Chain project rather than by GNU binutils. It should be a
83	drop-in replacement, with the addition of arm64 support. The
84	(temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set
85	to obtain the GNU version if necessary.
86
8720160129:
88	Building ZFS pools on top of zvols is prohibited by default.  That
89	feature has never worked safely; it's always been prone to deadlocks.
90	Using a zvol as the backing store for a VM guest's virtual disk will
91	still work, even if the guest is using ZFS.  Legacy behavior can be
92	restored by setting vfs.zfs.vol.recursive=1.
93
9420160119:
95	The NONE and HPN patches has been removed from OpenSSH.  They are
96	still available in the security/openssh-portable port.
97
9820160113:
99	With the addition of ypldap(8), a new _ypldap user is now required
100	during installworld. "mergemaster -p" can be used to add the user
101	prior to installworld, as documented in the handbook.
102
10320151216:
104	The tftp loader (pxeboot) now uses the option root-path directive. As a
105	consequence it no longer looks for a pxeboot.4th file on the tftp
106	server. Instead it uses the regular /boot infrastructure as with the
107	other loaders.
108
10920151211:
110	The code to start recording plug and play data into the modules has
111	been committed. While the old tools will properly build a new kernel,
112	a number of warnings about "unknown metadata record 4" will be produced
113	for an older kldxref. To avoid such warnings, make sure to rebuild
114	the kernel toolchain (or world). Make sure that you have r292078 or
115	later when trying to build 292077 or later before rebuilding.
116
11720151207:
118	Debug data files are now built by default with 'make buildworld' and
119	installed with 'make installworld'. This facilitates debugging but
120	requires more disk space both during the build and for the installed
121	world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes
122	in src.conf(5).
123
12420151130:
125	r291527 changed the internal interface between the nfsd.ko and
126	nfscommon.ko modules. As such, they must both be upgraded to-gether.
127	__FreeBSD_version has been bumped because of this.
128
12920151108:
130	Add support for unicode collation strings leads to a change of
131	order of files listed by ls(1) for example. To get back to the old
132	behaviour, set LC_COLLATE environment variable to "C".
133
134	Databases administrators will need to reindex their databases given
135	collation results will be different.
136
137	Due to a bug in install(1) it is recommended to remove the ancient
138	locales before running make installworld.
139
140	rm -rf /usr/share/locale/*
141
14220151030:
143	The OpenSSL has been upgraded to 1.0.2d.  Any binaries requiring
144	libcrypto.so.7 or libssl.so.7 must be recompiled.
145
14620151020:
147	Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0.
148	Kernel modules isp_2400_multi and isp_2500_multi were removed and
149	should be replaced with isp_2400 and isp_2500 modules respectively.
150
15120151017:
152	The build previously allowed using 'make -n' to not recurse into
153	sub-directories while showing what commands would be executed, and
154	'make -n -n' to recursively show commands.  Now 'make -n' will recurse
155	and 'make -N' will not.
156
15720151012:
158	If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster
159	and etcupdate will now use this file. A custom sendmail.cf is now
160	updated via this mechanism rather than via installworld.  If you had
161	excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may
162	want to remove the exclusion or change it to "always install".
163	/etc/mail/sendmail.cf is now managed the same way regardless of
164	whether SENDMAIL_MC/SENDMAIL_CF is used.  If you are not using
165	SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior.
166
16720151011:
168	Compatibility shims for legacy ATA device names have been removed.
169	It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases
170	and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.*
171	environment variables, /dev/ad* and /dev/ar* symbolic links.
172
17320151006:
174	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0.
175	Please see the 20141231 entry below for information about prerequisites
176	and upgrading, if you are not already using clang 3.5.0 or higher.
177
17820150924:
179	Kernel debug files have been moved to /usr/lib/debug/boot/kernel/,
180	and renamed from .symbols to .debug. This reduces the size requirements
181	on the boot partition or file system and provides consistency with
182	userland debug files.
183
184	When using the supported kernel installation method the
185	/usr/lib/debug/boot/kernel directory will be renamed (to kernel.old)
186	as is done with /boot/kernel.
187
188	Developers wishing to maintain the historical behavior of installing
189	debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5).
190
19120150827:
192	The wireless drivers had undergone changes that remove the 'parent
193	interface' from the ifconfig -l output. The rc.d network scripts
194	used to check presence of a parent interface in the list, so old
195	scripts would fail to start wireless networking. Thus, etcupdate(3)
196	or mergemaster(8) run is required after kernel update, to update your
197	rc.d scripts in /etc.
198
19920150827:
200	pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl'
201	These configurations are now automatically interpreted as
202	'scrub fragment reassemble'.
203
20420150817:
205	Kernel-loadable modules for the random(4) device are back. To use
206	them, the kernel must have
207
208	device	random
209	options	RANDOM_LOADABLE
210
211	kldload(8) can then be used to load random_fortuna.ko
212	or random_yarrow.ko. Please note that due to the indirect
213	function calls that the loadable modules need to provide,
214	the build-in variants will be slightly more efficient.
215
216	The random(4) kernel option RANDOM_DUMMY has been retired due to
217	unpopularity. It was not all that useful anyway.
218
21920150813:
220	The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired.
221	Control over building the ELF Tool Chain tools is now provided by
222	the WITHOUT_TOOLCHAIN knob.
223
22420150810:
225	The polarity of Pulse Per Second (PPS) capture events with the
226	uart(4) driver has been corrected.  Prior to this change the PPS
227	"assert" event corresponded to the trailing edge of a positive PPS
228	pulse and the "clear" event was the leading edge of the next pulse.
229
230	As the width of a PPS pulse in a typical GPS receiver is on the
231	order of 1 millisecond, most users will not notice any significant
232	difference with this change.
233
234	Anyone who has compensated for the historical polarity reversal by
235	configuring a negative offset equal to the pulse width will need to
236	remove that workaround.
237
23820150809:
239	The default group assigned to /dev/dri entries has been changed
240	from 'wheel' to 'video' with the id of '44'. If you want to have
241	access to the dri devices please add yourself to the video group
242	with:
243
244	# pw groupmod video -m $USER
245
24620150806:
247	The menu.rc and loader.rc files will now be replaced during
248	upgrades. Please migrate local changes to menu.rc.local and
249	loader.rc.local instead.
250
25120150805:
252	GNU Binutils versions of addr2line, c++filt, nm, readelf, size,
253	strings and strip have been removed. The src.conf(5) knob
254	WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools.
255
25620150728:
257	As ZFS requires more kernel stack pages than is the default on some
258	architectures e.g. i386, it now warns if KSTACK_PAGES is less than
259	ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing).
260
261	Please consider using 'options KSTACK_PAGES=X' where X is greater
262	than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations.
263
26420150706:
265	sendmail has been updated to 8.15.2.  Starting with FreeBSD 11.0
266	and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by
267	default, i.e., they will not contain "::".  For example, instead
268	of ::1, it will be 0:0:0:0:0:0:0:1.  This permits a zero subnet
269	to have a more specific match, such as different map entries for
270	IPv6:0:0 vs IPv6:0.  This change requires that configuration
271	data (including maps, files, classes, custom ruleset, etc.) must
272	use the same format, so make certain such configuration data is
273	upgrading.  As a very simple check search for patterns like
274	'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'.  To return to the old
275	behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or
276	the cf option UseCompressedIPv6Addresses.
277
27820150630:
279	The default kernel entropy-processing algorithm is now
280	Fortuna, replacing Yarrow.
281
282	Assuming you have 'device random' in your kernel config
283	file, the configurations allow a kernel option to override
284	this default. You may choose *ONE* of:
285
286	options	RANDOM_YARROW	# Legacy /dev/random algorithm.
287	options	RANDOM_DUMMY	# Blocking-only driver.
288
289	If you have neither, you get Fortuna.  For most people,
290	read no further, Fortuna will give a /dev/random that works
291	like it always used to, and the difference will be irrelevant.
292
293	If you remove 'device random', you get *NO* kernel-processed
294	entropy at all. This may be acceptable to folks building
295	embedded systems, but has complications. Carry on reading,
296	and it is assumed you know what you need.
297
298	*PLEASE* read random(4) and random(9) if you are in the
299	habit of tweaking kernel configs, and/or if you are a member
300	of the embedded community, wanting specific and not-usual
301	behaviour from your security subsystems.
302
303	NOTE!! If you use RANDOM_DUMMY and/or have no 'device
304	random', you will NOT have a functioning /dev/random, and
305	many cryptographic features will not work, including SSH.
306	You may also find strange behaviour from the random(3) set
307	of library functions, in particular sranddev(3), srandomdev(3)
308	and arc4random(3). The reason for this is that the KERN_ARND
309	sysctl only returns entropy if it thinks it has some to
310	share, and with RANDOM_DUMMY or no 'device random' this
311	will never happen.
312
31320150623:
314	An additional fix for the issue described in the 20150614 sendmail
315	entry below has been been committed in revision 284717.
316
31720150616:
318	FreeBSD's old make (fmake) has been removed from the system. It is
319	available as the devel/fmake port or via pkg install fmake.
320
32120150615:
322	The fix for the issue described in the 20150614 sendmail entry
323	below has been been committed in revision 284436.  The work
324	around described in that entry is no longer needed unless the
325	default setting is overridden by a confDH_PARAMETERS configuration
326	setting of '5' or pointing to a 512 bit DH parameter file.
327
32820150614:
329	ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from
330	atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf
331	and devel/kyua to version 0.20+ and adjust any calling code to work
332	with Kyuafile and kyua.
333
33420150614:
335	The import of openssl to address the FreeBSD-SA-15:10.openssl
336	security advisory includes a change which rejects handshakes
337	with DH parameters below 768 bits.  sendmail releases prior
338	to 8.15.2 (not yet released), defaulted to a 512 bit
339	DH parameter setting for client connections.  To work around
340	this interoperability, sendmail can be configured to use a
341	2048 bit DH parameter by:
342
343	1. Edit /etc/mail/`hostname`.mc
344	2. If a setting for confDH_PARAMETERS does not exist or
345	   exists and is set to a string beginning with '5',
346	   replace it with '2'.
347	3. If a setting for confDH_PARAMETERS exists and is set to
348	   a file path, create a new file with:
349		openssl dhparam -out /path/to/file 2048
350	4. Rebuild the .cf file:
351		cd /etc/mail/; make; make install
352	5. Restart sendmail:
353		cd /etc/mail/; make restart
354
355	A sendmail patch is coming, at which time this file will be
356	updated.
357
35820150604:
359	Generation of legacy formatted entries have been disabled by default
360	in pwd_mkdb(8), as all base system consumers of the legacy formatted
361	entries were converted to use the new format by default when the new,
362	machine independent format have been added and supported since FreeBSD
363	5.x.
364
365	Please see the pwd_mkdb(8) manual page for further details.
366
36720150525:
368	Clang and llvm have been upgraded to 3.6.1 release.  Please see the
369	20141231 entry below for information about prerequisites and upgrading,
370	if you are not already using 3.5.0 or higher.
371
37220150521:
373	TI platform code switched to using vendor DTS files and this update
374	may break existing systems running on Beaglebone, Beaglebone Black,
375	and Pandaboard:
376
377	- dtb files should be regenerated/reinstalled. Filenames are the
378	  same but content is different now
379	- GPIO addressing was changed, now each GPIO bank (32 pins per bank)
380	  has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old
381	  addressing scheme is now pin 25 on /dev/gpioc3.
382	- Pandaboard: /etc/ttys should be updated, serial console device is
383	  now /dev/ttyu2, not /dev/ttyu0
384
38520150501:
386	soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim.
387	If you need the GNU extension from groff soelim(1), install groff
388	from package: pkg install groff, or via ports: textproc/groff.
389
39020150423:
391	chmod, chflags, chown and chgrp now affect symlinks in -R mode as
392	defined in symlink(7); previously symlinks were silently ignored.
393
39420150415:
395	The const qualifier has been removed from iconv(3) to comply with
396	POSIX.  The ports tree is aware of this from r384038 onwards.
397
39820150416:
399	Libraries specified by LIBADD in Makefiles must have a corresponding
400	DPADD_<lib> variable to ensure correct dependencies.  This is now
401	enforced in src.libnames.mk.
402
40320150324:
404	From legacy ata(4) driver was removed support for SATA controllers
405	supported by more functional drivers ahci(4), siis(4) and mvs(4).
406	Kernel modules ataahci and ataadaptec were removed completely,
407	replaced by ahci and mvs modules respectively.
408
40920150315:
410	Clang, llvm and lldb have been upgraded to 3.6.0 release.  Please see
411	the 20141231 entry below for information about prerequisites and
412	upgrading, if you are not already using 3.5.0 or higher.
413
41420150307:
415	The 32-bit PowerPC kernel has been changed to a position-independent
416	executable. This can only be booted with a version of loader(8)
417	newer than January 31, 2015, so make sure to update both world and
418	kernel before rebooting.
419
42020150217:
421	If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014),
422	but before r278950, the RNG was not seeded properly.  Immediately
423	upgrade the kernel to r278950 or later and regenerate any keys (e.g.
424	ssh keys or openssl keys) that were generated w/ a kernel from that
425	range.  This does not affect programs that directly used /dev/random
426	or /dev/urandom.  All userland uses of arc4random(3) are affected.
427
42820150210:
429	The autofs(4) ABI was changed in order to restore binary compatibility
430	with 10.1-RELEASE.  The automountd(8) daemon needs to be rebuilt to work
431	with the new kernel.
432
43320150131:
434	The powerpc64 kernel has been changed to a position-independent
435	executable. This can only be booted with a new version of loader(8),
436	so make sure to update both world and kernel before rebooting.
437
43820150118:
439	Clang and llvm have been upgraded to 3.5.1 release.  This is a bugfix
440	only release, no new features have been added.  Please see the 20141231
441	entry below for information about prerequisites and upgrading, if you
442	are not already using 3.5.0.
443
44420150107:
445	ELF tools addr2line, elfcopy (strip), nm, size, and strings are now
446	taken from the ELF Tool Chain project rather than GNU binutils. They
447	should be drop-in replacements, with the addition of arm64 support.
448	The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the
449	binutils tools, if necessary. See 20150805 for updated information.
450
45120150105:
452	The default Unbound configuration now enables remote control
453	using a local socket.  Users who have already enabled the
454	local_unbound service should regenerate their configuration
455	by running "service local_unbound setup" as root.
456
45720150102:
458	The GNU texinfo and GNU info pages have been removed.
459	To be able to view GNU info pages please install texinfo from ports.
460
46120141231:
462	Clang, llvm and lldb have been upgraded to 3.5.0 release.
463
464	As of this release, a prerequisite for building clang, llvm and lldb is
465	a C++11 capable compiler and C++11 standard library.  This means that to
466	be able to successfully build the cross-tools stage of buildworld, with
467	clang as the bootstrap compiler, your system compiler or cross compiler
468	should either be clang 3.3 or later, or gcc 4.8 or later, and your
469	system C++ library should be libc++, or libdstdc++ from gcc 4.8 or
470	later.
471
472	On any standard FreeBSD 10.x or 11.x installation, where clang and
473	libc++ are on by default (that is, on x86 or arm), this should work out
474	of the box.
475
476	On 9.x installations where clang is enabled by default, e.g. on x86 and
477	powerpc, libc++ will not be enabled by default, so libc++ should be
478	built (with clang) and installed first.  If both clang and libc++ are
479	missing, build clang first, then use it to build libc++.
480
481	On 8.x and earlier installations, upgrade to 9.x first, and then follow
482	the instructions for 9.x above.
483
484	Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by
485	default, and do not build clang.
486
487	Many embedded systems are resource constrained, and will not be able to
488	build clang in a reasonable time, or in some cases at all.  In those
489	cases, cross building bootable systems on amd64 is a workaround.
490
491	This new version of clang introduces a number of new warnings, of which
492	the following are most likely to appear:
493
494	-Wabsolute-value
495
496	This warns in two cases, for both C and C++:
497	* When the code is trying to take the absolute value of an unsigned
498	  quantity, which is effectively a no-op, and almost never what was
499	  intended.  The code should be fixed, if at all possible.  If you are
500	  sure that the unsigned quantity can be safely cast to signed, without
501	  loss of information or undefined behavior, you can add an explicit
502	  cast, or disable the warning.
503
504	* When the code is trying to take an absolute value, but the called
505	  abs() variant is for the wrong type, which can lead to truncation.
506	  If you want to disable the warning instead of fixing the code, please
507	  make sure that truncation will not occur, or it might lead to unwanted
508	  side-effects.
509
510	-Wtautological-undefined-compare and
511	-Wundefined-bool-conversion
512
513	These warn when C++ code is trying to compare 'this' against NULL, while
514	'this' should never be NULL in well-defined C++ code.  However, there is
515	some legacy (pre C++11) code out there, which actively abuses this
516	feature, which was less strictly defined in previous C++ versions.
517
518	Squid and openjdk do this, for example.  The warning can be turned off
519	for C++98 and earlier, but compiling the code in C++11 mode might result
520	in unexpected behavior; for example, the parts of the program that are
521	unreachable could be optimized away.
522
52320141222:
524	The old NFS client and server (kernel options NFSCLIENT, NFSSERVER)
525	kernel sources have been removed. The .h files remain, since some
526	utilities include them. This will need to be fixed later.
527	If "mount -t oldnfs ..." is attempted, it will fail.
528	If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used,
529	the utilities will report errors.
530
53120141121:
532	The handling of LOCAL_LIB_DIRS has been altered to skip addition of
533	directories to top level SUBDIR variable when their parent
534	directory is included in LOCAL_DIRS.  Users with build systems with
535	such hierarchies and without SUBDIR entries in the parent
536	directory Makefiles should add them or add the directories to
537	LOCAL_DIRS.
538
53920141109:
540	faith(4) and faithd(8) have been removed from the base system. Faith
541	has been obsolete for a very long time.
542
54320141104:
544	vt(4), the new console driver, is enabled by default. It brings
545	support for Unicode and double-width characters, as well as
546	support for UEFI and integration with the KMS kernel video
547	drivers.
548
549	You may need to update your console settings in /etc/rc.conf,
550	most probably the keymap. During boot, /etc/rc.d/syscons will
551	indicate what you need to do.
552
553	vt(4) still has issues and lacks some features compared to
554	syscons(4). See the wiki for up-to-date information:
555	  https://wiki.freebsd.org/Newcons
556
557	If you want to keep using syscons(4), you can do so by adding
558	the following line to /boot/loader.conf:
559	  kern.vty=sc
560
56120141102:
562	pjdfstest has been integrated into kyua as an opt-in test suite.
563	Please see share/doc/pjdfstest/README for more details on how to
564	execute it.
565
56620141009:
567	gperf has been removed from the base system for architectures
568	that use clang. Ports that require gperf will obtain it from the
569	devel/gperf port.
570
57120140923:
572	pjdfstest has been moved from tools/regression/pjdfstest to
573	contrib/pjdfstest .
574
57520140922:
576	At svn r271982, The default linux compat kernel ABI has been adjusted
577	to 2.6.18 in support of the linux-c6 compat ports infrastructure
578	update.  If you wish to continue using the linux-f10 compat ports,
579	add compat.linux.osrelease=2.6.16 to your local sysctl.conf.  Users are
580	encouraged to update their linux-compat packages to linux-c6 during
581	their next update cycle.
582
58320140729:
584	The ofwfb driver, used to provide a graphics console on PowerPC when
585	using vt(4), no longer allows mmap() of all physical memory. This
586	will prevent Xorg on PowerPC with some ATI graphics cards from
587	initializing properly unless x11-servers/xorg-server is updated to
588	1.12.4_8 or newer.
589
59020140723:
591	The xdev targets have been converted to using TARGET and
592	TARGET_ARCH instead of XDEV and XDEV_ARCH.
593
59420140719:
595	The default unbound configuration has been modified to address
596	issues with reverse lookups on networks that use private
597	address ranges.  If you use the local_unbound service, run
598	"service local_unbound setup" as root to regenerate your
599	configuration, then "service local_unbound reload" to load the
600	new configuration.
601
60220140709:
603	The GNU texinfo and GNU info pages are not built and installed
604	anymore, WITH_INFO knob has been added to allow to built and install
605	them again.
606	UPDATE: see 20150102 entry on texinfo's removal
607
60820140708:
609	The GNU readline library is now an INTERNALLIB - that is, it is
610	statically linked into consumers (GDB and variants) in the base
611	system, and the shared library is no longer installed.  The
612	devel/readline port is available for third party software that
613	requires readline.
614
61520140702:
616	The Itanium architecture (ia64) has been removed from the list of
617	known architectures. This is the first step in the removal of the
618	architecture.
619
62020140701:
621	Commit r268115 has added NFSv4.1 server support, merged from
622	projects/nfsv4.1-server.  Since this includes changes to the
623	internal interfaces between the NFS related modules, a full
624	build of the kernel and modules will be necessary.
625	__FreeBSD_version has been bumped.
626
62720140629:
628	The WITHOUT_VT_SUPPORT kernel config knob has been renamed
629	WITHOUT_VT.  (The other _SUPPORT knobs have a consistent meaning
630	which differs from the behaviour controlled by this knob.)
631
63220140619:
633	Maximal length of the serial number in CTL was increased from 16 to
634	64 chars, that breaks ABI.  All CTL-related tools, such as ctladm
635	and ctld, need to be rebuilt to work with a new kernel.
636
63720140606:
638	The libatf-c and libatf-c++ major versions were downgraded to 0 and
639	1 respectively to match the upstream numbers.  They were out of
640	sync because, when they were originally added to FreeBSD, the
641	upstream versions were not respected.  These libraries are private
642	and not yet built by default, so renumbering them should be a
643	non-issue.  However, unclean source trees will yield broken test
644	programs once the operator executes "make delete-old-libs" after a
645	"make installworld".
646
647	Additionally, the atf-sh binary was made private by moving it into
648	/usr/libexec/.  Already-built shell test programs will keep the
649	path to the old binary so they will break after "make delete-old"
650	is run.
651
652	If you are using WITH_TESTS=yes (not the default), wipe the object
653	tree and rebuild from scratch to prevent spurious test failures.
654	This is only needed once: the misnumbered libraries and misplaced
655	binaries have been added to OptionalObsoleteFiles.inc so they will
656	be removed during a clean upgrade.
657
65820140512:
659	Clang and llvm have been upgraded to 3.4.1 release.
660
66120140508:
662	We bogusly installed src.opts.mk in /usr/share/mk. This file should
663	be removed to avoid issues in the future (and has been added to
664	ObsoleteFiles.inc).
665
66620140505:
667	/etc/src.conf now affects only builds of the FreeBSD src tree. In the
668	past, it affected all builds that used the bsd.*.mk files. The old
669	behavior was a bug, but people may have relied upon it. To get this
670	behavior back, you can .include /etc/src.conf from /etc/make.conf
671	(which is still global and isn't changed). This also changes the
672	behavior of incremental builds inside the tree of individual
673	directories. Set MAKESYSPATH to ".../share/mk" to do that.
674	Although this has survived make universe and some upgrade scenarios,
675	other upgrade scenarios may have broken. At least one form of
676	temporary breakage was fixed with MAKESYSPATH settings for buildworld
677	as well... In cases where MAKESYSPATH isn't working with this
678	setting, you'll need to set it to the full path to your tree.
679
680	One side effect of all this cleaning up is that bsd.compiler.mk
681	is no longer implicitly included by bsd.own.mk. If you wish to
682	use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk
683	as well.
684
68520140430:
686	The lindev device has been removed since /dev/full has been made a
687	standard device.  __FreeBSD_version has been bumped.
688
68920140424:
690	The knob WITHOUT_VI was added to the base system, which controls
691	building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1)
692	in order to reorder files share/termcap and didn't build ex(1) as a
693	build tool, so building/installing with WITH_VI is highly advised for
694	build hosts for older releases.
695
696	This issue has been fixed in stable/9 and stable/10 in r277022 and
697	r276991, respectively.
698
69920140418:
700	The YES_HESIOD knob has been removed. It has been obsolete for
701	a decade. Please move to using WITH_HESIOD instead or your builds
702	will silently lack HESIOD.
703
70420140405:
705	The uart(4) driver has been changed with respect to its handling
706	of the low-level console. Previously the uart(4) driver prevented
707	any process from changing the baudrate or the CLOCAL and HUPCL
708	control flags. By removing the restrictions, operators can make
709	changes to the serial console port without having to reboot.
710	However, when getty(8) is started on the serial device that is
711	associated with the low-level console, a misconfigured terminal
712	line in /etc/ttys will now have a real impact.
713	Before upgrading the kernel, make sure that /etc/ttys has the
714	serial console device configured as 3wire without baudrate to
715	preserve the previous behaviour. E.g:
716	    ttyu0  "/usr/libexec/getty 3wire"  vt100  on  secure
717
71820140306:
719	Support for libwrap (TCP wrappers) in rpcbind was disabled by default
720	to improve performance.  To re-enable it, if needed, run rpcbind
721	with command line option -W.
722
72320140226:
724	Switched back to the GPL dtc compiler due to updates in the upstream
725	dts files not being supported by the BSDL dtc compiler. You will need
726	to rebuild your kernel toolchain to pick up the new compiler. Core dumps
727	may result while building dtb files during a kernel build if you fail
728	to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler.
729
73020140216:
731	Clang and llvm have been upgraded to 3.4 release.
732
73320140216:
734	The nve(4) driver has been removed.  Please use the nfe(4) driver
735	for NVIDIA nForce MCP Ethernet adapters instead.
736
73720140212:
738	An ABI incompatibility crept into the libc++ 3.4 import in r261283.
739	This could cause certain C++ applications using shared libraries built
740	against the previous version of libc++ to crash.  The incompatibility
741	has now been fixed, but any C++ applications or shared libraries built
742	between r261283 and r261801 should be recompiled.
743
74420140204:
745	OpenSSH will now ignore errors caused by kernel lacking of Capsicum
746	capability mode support.  Please note that enabling the feature in
747	kernel is still highly recommended.
748
74920140131:
750	OpenSSH is now built with sandbox support, and will use sandbox as
751	the default privilege separation method.  This requires Capsicum
752	capability mode support in kernel.
753
75420140128:
755	The libelf and libdwarf libraries have been updated to newer
756	versions from upstream. Shared library version numbers for
757	these two libraries were bumped. Any ports or binaries
758	requiring these two libraries should be recompiled.
759	__FreeBSD_version is bumped to 1100006.
760
76120140110:
762	If a Makefile in a tests/ directory was auto-generating a Kyuafile
763	instead of providing an explicit one, this would prevent such
764	Makefile from providing its own Kyuafile in the future during
765	NO_CLEAN builds.  This has been fixed in the Makefiles but manual
766	intervention is needed to clean an objdir if you use NO_CLEAN:
767	  # find /usr/obj -name Kyuafile | xargs rm -f
768
76920131213:
770	The behavior of gss_pseudo_random() for the krb5 mechanism
771	has changed, for applications requesting a longer random string
772	than produced by the underlying enctype's pseudo-random() function.
773	In particular, the random string produced from a session key of
774	enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will
775	be different at the 17th octet and later, after this change.
776	The counter used in the PRF+ construction is now encoded as a
777	big-endian integer in accordance with RFC 4402.
778	__FreeBSD_version is bumped to 1100004.
779
78020131108:
781	The WITHOUT_ATF build knob has been removed and its functionality
782	has been subsumed into the more generic WITHOUT_TESTS.  If you were
783	using the former to disable the build of the ATF libraries, you
784	should change your settings to use the latter.
785
78620131025:
787	The default version of mtree is nmtree which is obtained from
788	NetBSD.  The output is generally the same, but may vary
789	slightly.  If you found you need identical output adding
790	"-F freebsd9" to the command line should do the trick.  For the
791	time being, the old mtree is available as fmtree.
792
79320131014:
794	libbsdyml has been renamed to libyaml and moved to /usr/lib/private.
795	This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg
796	1.1.4_8 and verify bsdyml not linked in, before running "make
797	delete-old-libs":
798	  # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean
799	  or
800	  # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml
801
80220131010:
803	The stable/10 branch has been created in subversion from head
804	revision r256279.
805
80620131010:
807	The rc.d/jail script has been updated to support jail(8)
808	configuration file.  The "jail_<jname>_*" rc.conf(5) variables
809	for per-jail configuration are automatically converted to
810	/var/run/jail.<jname>.conf before the jail(8) utility is invoked.
811	This is transparently backward compatible.  See below about some
812	incompatibilities and rc.conf(5) manual page for more details.
813
814	These variables are now deprecated in favor of jail(8) configuration
815	file.  One can use "rc.d/jail config <jname>" command to generate
816	a jail(8) configuration file in /var/run/jail.<jname>.conf without
817	running the jail(8) utility.   The default pathname of the
818	configuration file is /etc/jail.conf and can be specified by
819	using $jail_conf or $jail_<jname>_conf variables.
820
821	Please note that jail_devfs_ruleset accepts an integer at
822	this moment.  Please consider to rewrite the ruleset name
823	with an integer.
824
82520130930:
826	BIND has been removed from the base system.  If all you need
827	is a local resolver, simply enable and start the local_unbound
828	service instead.  Otherwise, several versions of BIND are
829	available in the ports tree.   The dns/bind99 port is one example.
830
831	With this change, nslookup(1) and dig(1) are no longer in the base
832	system.  Users should instead use host(1) and drill(1) which are
833	in the base system.  Alternatively, nslookup and dig can
834	be obtained by installing the dns/bind-tools port.
835
83620130916:
837	With the addition of unbound(8), a new unbound user is now
838	required during installworld.  "mergemaster -p" can be used to
839	add the user prior to installworld, as documented in the handbook.
840
84120130911:
842	OpenSSH is now built with DNSSEC support, and will by default
843	silently trust signed SSHFP records.  This can be controlled with
844	the VerifyHostKeyDNS client configuration setting.  DNSSEC support
845	can be disabled entirely with the WITHOUT_LDNS option in src.conf.
846
84720130906:
848	The GNU Compiler Collection and C++ standard library (libstdc++)
849	are no longer built by default on platforms where clang is the system
850	compiler.  You can enable them with the WITH_GCC and WITH_GNUCXX
851	options in src.conf.
852
85320130905:
854	The PROCDESC kernel option is now part of the GENERIC kernel
855	configuration and is required for the rwhod(8) to work.
856	If you are using custom kernel configuration, you should include
857	'options PROCDESC'.
858
85920130905:
860	The API and ABI related to the Capsicum framework was modified
861	in backward incompatible way. The userland libraries and programs
862	have to be recompiled to work with the new kernel. This includes the
863	following libraries and programs, but the whole buildworld is
864	advised: libc, libprocstat, dhclient, tcpdump, hastd, hastctl,
865	kdump, procstat, rwho, rwhod, uniq.
866
86720130903:
868	AES-NI intrinsic support has been added to gcc.  The AES-NI module
869	has been updated to use this support.  A new gcc is required to build
870	the aesni module on both i386 and amd64.
871
87220130821:
873	The PADLOCK_RNG and RDRAND_RNG kernel options are now devices.
874	Thus "device padlock_rng" and "device rdrand_rng" should be
875	used instead of "options PADLOCK_RNG" & "options RDRAND_RNG".
876
87720130813:
878	WITH_ICONV has been split into two feature sets.  WITH_ICONV now
879	enables just the iconv* functionality and is now on by default.
880	WITH_LIBICONV_COMPAT enables the libiconv api and link time
881	compatability.  Set WITHOUT_ICONV to build the old way.
882	If you have been using WITH_ICONV before, you will very likely
883	need to turn on WITH_LIBICONV_COMPAT.
884
88520130806:
886	INVARIANTS option now enables DEBUG for code with OpenSolaris and
887	Illumos origin, including ZFS.  If you have INVARIANTS in your
888	kernel configuration, then there is no need to set DEBUG or ZFS_DEBUG
889	explicitly.
890	DEBUG used to enable witness(9) tracking of OpenSolaris (mostly ZFS)
891	locks if WITNESS option was set.  Because that generated a lot of
892	witness(9) reports and all of them were believed to be false
893	positives, this is no longer done.  New option OPENSOLARIS_WITNESS
894	can be used to achieve the previous behavior.
895
89620130806:
897	Timer values in IPv6 data structures now use time_uptime instead
898	of time_second.  Although this is not a user-visible functional
899	change, userland utilities which directly use them---ndp(8),
900	rtadvd(8), and rtsold(8) in the base system---need to be updated
901	to r253970 or later.
902
90320130802:
904	find -delete can now delete the pathnames given as arguments,
905	instead of only files found below them or if the pathname did
906	not contain any slashes. Formerly, the following error message
907	would result:
908
909	find: -delete: <path>: relative path potentially not safe
910
911	Deleting the pathnames given as arguments can be prevented
912	without error messages using -mindepth 1 or by changing
913	directory and passing "." as argument to find. This works in the
914	old as well as the new version of find.
915
91620130726:
917	Behavior of devfs rules path matching has been changed.
918	Pattern is now always matched against fully qualified devfs
919	path and slash characters must be explicitly matched by
920	slashes in pattern (FNM_PATHNAME). Rulesets involving devfs
921	subdirectories must be reviewed.
922
92320130716:
924	The default ARM ABI has changed to the ARM EABI. The old ABI is
925	incompatible with the ARM EABI and all programs and modules will
926	need to be rebuilt to work with a new kernel.
927
928	To keep using the old ABI ensure the WITHOUT_ARM_EABI knob is set.
929
930	NOTE: Support for the old ABI will be removed in the future and
931	users are advised to upgrade.
932
93320130709:
934	pkg_install has been disconnected from the build if you really need it
935	you should add WITH_PKGTOOLS in your src.conf(5).
936
93720130709:
938	Most of network statistics structures were changed to be able
939	keep 64-bits counters. Thus all tools, that work with networking
940	statistics, must be rebuilt (netstat(1), bsnmpd(1), etc.)
941
94220130618:
943	Fix a bug that allowed a tracing process (e.g. gdb) to write
944	to a memory-mapped file in the traced process's address space
945	even if neither the traced process nor the tracing process had
946	write access to that file.
947
94820130615:
949	CVS has been removed from the base system.  An exact copy
950	of the code is available from the devel/cvs port.
951
95220130613:
953	Some people report the following error after the switch to bmake:
954
955		make: illegal option -- J
956		usage: make [-BPSXeiknpqrstv] [-C directory] [-D variable]
957			...
958		*** [buildworld] Error code 2
959
960	this likely due to an old instance of make in
961	${MAKEPATH} (${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE})
962	which src/Makefile will use that blindly, if it exists, so if
963	you see the above error:
964
965		rm -rf `make -V MAKEPATH`
966
967	should resolve it.
968
96920130516:
970	Use bmake by default.
971	Whereas before one could choose to build with bmake via
972	-DWITH_BMAKE one must now use -DWITHOUT_BMAKE to use the old
973	make. The goal is to remove these knobs for 10-RELEASE.
974
975	It is worth noting that bmake (like gmake) treats the command
976	line as the unit of failure, rather than statements within the
977	command line.  Thus '(cd some/where && dosomething)' is safer
978	than 'cd some/where; dosomething'. The '()' allows consistent
979	behavior in parallel build.
980
98120130429:
982        Fix a bug that allows NFS clients to issue READDIR on files.
983
98420130426:
985	The WITHOUT_IDEA option has been removed because
986	the IDEA patent expired.
987
98820130426:
989	The sysctl which controls TRIM support under ZFS has been renamed
990	from vfs.zfs.trim_disable -> vfs.zfs.trim.enabled and has been
991	enabled by default.
992
99320130425:
994	The mergemaster command now uses the default MAKEOBJDIRPREFIX
995	rather than creating it's own in the temporary directory in
996	order allow access to bootstrapped versions of tools such as
997	install and mtree.  When upgrading from version of FreeBSD where
998	the install command does not support -l, you will need to
999	install a new mergemaster command if mergemaster -p is required.
1000	This can be accomplished with the command (cd src/usr.sbin/mergemaster
1001	&& make install).
1002
100320130404:
1004	Legacy ATA stack, disabled and replaced by new CAM-based one since
1005	FreeBSD 9.0, completely removed from the sources.  Kernel modules
1006	atadisk and atapi*, user-level tools atacontrol and burncd are
1007	removed.  Kernel option `options ATA_CAM` is now permanently enabled
1008	and removed.
1009
101020130319:
1011	SOCK_CLOEXEC and SOCK_NONBLOCK flags have been added to socket(2)
1012	and socketpair(2). Software, in particular Kerberos, may
1013	automatically detect and use these during building. The resulting
1014	binaries will not work on older kernels.
1015
101620130308:
1017	CTL_DISABLE has also been added to the sparc64 GENERIC (for further
1018	information, see the respective 20130304 entry).
1019
102020130304:
1021	Recent commits to callout(9) changed the size of struct callout,
1022	so the KBI is probably heavily disturbed. Also, some functions
1023	in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced
1024	by macros. Every kernel module using it won't load, so rebuild
1025	is requested.
1026
1027	The ctl device has been re-enabled in GENERIC for i386 and amd64,
1028	but does not initialize by default (because of the new CTL_DISABLE
1029	option) to save memory.  To re-enable it, remove the CTL_DISABLE
1030	option from the kernel config file or set kern.cam.ctl.disable=0
1031	in /boot/loader.conf.
1032
103320130301:
1034	The ctl device has been disabled in GENERIC for i386 and amd64.
1035	This was done due to the extra memory being allocated at system
1036	initialisation time by the ctl driver which was only used if
1037	a CAM target device was created.  This makes a FreeBSD system
1038	unusable on 128MB or less of RAM.
1039
104020130208:
1041	A new compression method (lz4) has been merged to -HEAD.  Please
1042	refer to zpool-features(7) for more information.
1043
1044	Please refer to the "ZFS notes" section of this file for information
1045	on upgrading boot ZFS pools.
1046
104720130129:
1048	A BSD-licensed patch(1) variant has been added and is installed
1049	as bsdpatch, being the GNU version the default patch.
1050	To inverse the logic and use the BSD-licensed one as default,
1051	while having the GNU version installed as gnupatch, rebuild
1052	and install world with the WITH_BSD_PATCH knob set.
1053
105420130121:
1055	Due to the use of the new -l option to install(1) during build
1056	and install, you must take care not to directly set the INSTALL
1057	make variable in your /etc/make.conf, /etc/src.conf, or on the
1058	command line.  If you wish to use the -C flag for all installs
1059	you may be able to add INSTALL+=-C to /etc/make.conf or
1060	/etc/src.conf.
1061
106220130118:
1063	The install(1) option -M has changed meaning and now takes an
1064	argument that is a file or path to append logs to.  In the
1065	unlikely event that -M was the last option on the command line
1066	and the command line contained at least two files and a target
1067	directory the first file will have logs appended to it.  The -M
1068	option served little practical purpose in the last decade so its
1069	use is expected to be extremely rare.
1070
107120121223:
1072	After switching to Clang as the default compiler some users of ZFS
1073	on i386 systems started to experience stack overflow kernel panics.
1074	Please consider using 'options KSTACK_PAGES=4' in such configurations.
1075
107620121222:
1077	GEOM_LABEL now mangles label names read from file system metadata.
1078	Mangling affect labels containing spaces, non-printable characters,
1079	'%' or '"'. Device names in /etc/fstab and other places may need to
1080	be updated.
1081
108220121217:
1083	By default, only the 10 most recent kernel dumps will be saved.  To
1084	restore the previous behaviour (no limit on the number of kernel dumps
1085	stored in the dump directory) add the following line to /etc/rc.conf:
1086
1087		savecore_flags=""
1088
108920121201:
1090	With the addition of auditdistd(8), a new auditdistd user is now
1091	required during installworld.  "mergemaster -p" can be used to
1092	add the user prior to installworld, as documented in the handbook.
1093
109420121117:
1095	The sin6_scope_id member variable in struct sockaddr_in6 is now
1096	filled by the kernel before passing the structure to the userland via
1097	sysctl or routing socket.  This means the KAME-specific embedded scope
1098	id in sin6_addr.s6_addr[2] is always cleared in userland application.
1099	This behavior can be controlled by net.inet6.ip6.deembed_scopeid.
1100	__FreeBSD_version is bumped to 1000025.
1101
110220121105:
1103	On i386 and amd64 systems WITH_CLANG_IS_CC is now the default.
1104	This means that the world and kernel will be compiled with clang
1105	and that clang will be installed as /usr/bin/cc, /usr/bin/c++,
1106	and /usr/bin/cpp.  To disable this behavior and revert to building
1107	with gcc, compile with WITHOUT_CLANG_IS_CC. Really old versions
1108	of current may need to bootstrap WITHOUT_CLANG first if the clang
1109	build fails (its compatibility window doesn't extend to the 9 stable
1110	branch point).
1111
111220121102:
1113	The IPFIREWALL_FORWARD kernel option has been removed. Its
1114	functionality now turned on by default.
1115
111620121023:
1117	The ZERO_COPY_SOCKET kernel option has been removed and
1118	split into SOCKET_SEND_COW and SOCKET_RECV_PFLIP.
1119	NB: SOCKET_SEND_COW uses the VM page based copy-on-write
1120	mechanism which is not safe and may result in kernel crashes.
1121	NB: The SOCKET_RECV_PFLIP mechanism is useless as no current
1122	driver supports disposeable external page sized mbuf storage.
1123	Proper replacements for both zero-copy mechanisms are under
1124	consideration and will eventually lead to complete removal
1125	of the two kernel options.
1126
112720121023:
1128	The IPv4 network stack has been converted to network byte
1129	order. The following modules need to be recompiled together
1130	with kernel: carp(4), divert(4), gif(4), siftr(4), gre(4),
1131	pf(4), ipfw(4), ng_ipfw(4), stf(4).
1132
113320121022:
1134	Support for non-MPSAFE filesystems was removed from VFS. The
1135	VFS_VERSION was bumped, all filesystem modules shall be
1136	recompiled.
1137
113820121018:
1139	All the non-MPSAFE filesystems have been disconnected from
1140	the build. The full list includes: codafs, hpfs, ntfs, nwfs,
1141	portalfs, smbfs, xfs.
1142
114320121016:
1144	The interface cloning API and ABI has changed. The following
1145	modules need to be recompiled together with kernel:
1146	ipfw(4), pfsync(4), pflog(4), usb(4), wlan(4), stf(4),
1147	vlan(4), disc(4), edsc(4), if_bridge(4), gif(4), tap(4),
1148	faith(4), epair(4), enc(4), tun(4), if_lagg(4), gre(4).
1149
115020121015:
1151	The sdhci driver was split in two parts: sdhci (generic SD Host
1152	Controller logic) and sdhci_pci (actual hardware driver).
1153	No kernel config modifications are required, but if you
1154	load sdhc as a module you must switch to sdhci_pci instead.
1155
115620121014:
1157	Import the FUSE kernel and userland support into base system.
1158
115920121013:
1160	The GNU sort(1) program has been removed since the BSD-licensed
1161	sort(1) has been the default for quite some time and no serious
1162	problems have been reported.  The corresponding WITH_GNU_SORT
1163	knob has also gone.
1164
116520121006:
1166	The pfil(9) API/ABI for AF_INET family has been changed. Packet
1167	filtering modules: pf(4), ipfw(4), ipfilter(4) need to be recompiled
1168	with new kernel.
1169
117020121001:
1171	The net80211(4) ABI has been changed to allow for improved driver
1172	PS-POLL and power-save support.  All wireless drivers need to be
1173	recompiled to work with the new kernel.
1174
117520120913:
1176	The random(4) support for the VIA hardware random number
1177	generator (`PADLOCK') is no longer enabled unconditionally.
1178	Add the padlock_rng device in the custom kernel config if
1179	needed.  The GENERIC kernels on i386 and amd64 do include the
1180	device, so the change only affects the custom kernel
1181	configurations.
1182
118320120908:
1184	The pf(4) packet filter ABI has been changed. pfctl(8) and
1185	snmp_pf module need to be recompiled to work with new kernel.
1186
118720120828:
1188	A new ZFS feature flag "com.delphix:empty_bpobj" has been merged
1189	to -HEAD. Pools that have empty_bpobj in active state can not be
1190	imported read-write with ZFS implementations that do not support
1191	this feature. For more information read the zpool-features(5)
1192	manual page.
1193
119420120727:
1195	The sparc64 ZFS loader has been changed to no longer try to auto-
1196	detect ZFS providers based on diskN aliases but now requires these
1197	to be explicitly listed in the OFW boot-device environment variable.
1198
119920120712:
1200	The OpenSSL has been upgraded to 1.0.1c.  Any binaries requiring
1201	libcrypto.so.6 or libssl.so.6 must be recompiled.  Also, there are
1202	configuration changes.  Make sure to merge /etc/ssl/openssl.cnf.
1203
120420120712:
1205	The following sysctls and tunables have been renamed for consistency
1206	with other variables:
1207	  kern.cam.da.da_send_ordered   -> kern.cam.da.send_ordered
1208	  kern.cam.ada.ada_send_ordered -> kern.cam.ada.send_ordered
1209
121020120628:
1211	The sort utility has been replaced with BSD sort.  For now, GNU sort
1212	is also available as "gnusort" or the default can be set back to
1213	GNU sort by setting WITH_GNU_SORT.  In this case, BSD sort will be
1214	installed as "bsdsort".
1215
121620120611:
1217	A new version of ZFS (pool version 5000) has been merged to -HEAD.
1218	Starting with this version the old system of ZFS pool versioning
1219	is superseded by "feature flags". This concept enables forward
1220	compatibility against certain future changes in functionality of ZFS
1221	pools. The first read-only compatible "feature flag" for ZFS pools
1222	is named "com.delphix:async_destroy". For more information
1223	read the new zpool-features(5) manual page.
1224	Please refer to the "ZFS notes" section of this file for information
1225	on upgrading boot ZFS pools.
1226
122720120417:
1228	The malloc(3) implementation embedded in libc now uses sources imported
1229	as contrib/jemalloc.  The most disruptive API change is to
1230	/etc/malloc.conf.  If your system has an old-style /etc/malloc.conf,
1231	delete it prior to installworld, and optionally re-create it using the
1232	new format after rebooting.  See malloc.conf(5) for details
1233	(specifically the TUNING section and the "opt.*" entries in the MALLCTL
1234	NAMESPACE section).
1235
123620120328:
1237	Big-endian MIPS TARGET_ARCH values no longer end in "eb".  mips64eb
1238	is now spelled mips64.  mipsn32eb is now spelled mipsn32.  mipseb is
1239	now spelled mips.  This is to aid compatibility with third-party
1240	software that expects this naming scheme in uname(3).  Little-endian
1241	settings are unchanged. If you are updating a big-endian mips64 machine
1242	from before this change, you may need to set MACHINE_ARCH=mips64 in
1243	your environment before the new build system will recognize your machine.
1244
124520120306:
1246	Disable by default the option VFS_ALLOW_NONMPSAFE for all supported
1247	platforms.
1248
124920120229:
1250	Now unix domain sockets behave "as expected" on	nullfs(5). Previously
1251	nullfs(5) did not pass through all behaviours to the underlying layer,
1252	as a result if we bound to a socket on the lower layer we could connect
1253	only to the lower path; if we bound to the upper layer we could connect
1254	only to	the upper path. The new behavior is one can connect to both the
1255	lower and the upper paths regardless what layer path one binds to.
1256
125720120211:
1258	The getifaddrs upgrade path broken with 20111215 has been restored.
1259	If you have upgraded in between 20111215 and 20120209 you need to
1260	recompile libc again with your kernel.  You still need to recompile
1261	world to be able to configure CARP but this restriction already
1262	comes from 20111215.
1263
126420120114:
1265	The set_rcvar() function has been removed from /etc/rc.subr.  All
1266	base and ports rc.d scripts have been updated, so if you have a
1267	port installed with a script in /usr/local/etc/rc.d you can either
1268	hand-edit the rcvar= line, or reinstall the port.
1269
1270	An easy way to handle the mass-update of /etc/rc.d:
1271	rm /etc/rc.d/* && mergemaster -i
1272
127320120109:
1274	panic(9) now stops other CPUs in the SMP systems, disables interrupts
1275	on the current CPU and prevents other threads from running.
1276	This behavior can be reverted using the kern.stop_scheduler_on_panic
1277	tunable/sysctl.
1278	The new behavior can be incompatible with kern.sync_on_panic.
1279
128020111215:
1281	The carp(4) facility has been changed significantly. Configuration
1282	of the CARP protocol via ifconfig(8) has changed, as well as format
1283	of CARP events submitted to devd(8) has changed. See manual pages
1284	for more information. The arpbalance feature of carp(4) is currently
1285	not supported anymore.
1286
1287	Size of struct in_aliasreq, struct in6_aliasreq has changed. User
1288	utilities using SIOCAIFADDR, SIOCAIFADDR_IN6, e.g. ifconfig(8),
1289	need to be recompiled.
1290
129120111122:
1292	The acpi_wmi(4) status device /dev/wmistat has been renamed to
1293	/dev/wmistat0.
1294
129520111108:
1296	The option VFS_ALLOW_NONMPSAFE option has been added in order to
1297	explicitely support non-MPSAFE filesystems.
1298	It is on by default for all supported platform at this present
1299	time.
1300
130120111101:
1302	The broken amd(4) driver has been replaced with esp(4) in the amd64,
1303	i386 and pc98 GENERIC kernel configuration files.
1304
130520110930:
1306	sysinstall has been removed
1307
130820110923:
1309	The stable/9 branch created in subversion.  This corresponds to the
1310	RELENG_9 branch in CVS.
1311
1312COMMON ITEMS:
1313
1314	General Notes
1315	-------------
1316	Avoid using make -j when upgrading.  While generally safe, there are
1317	sometimes problems using -j to upgrade.  If your upgrade fails with
1318	-j, please try again without -j.  From time to time in the past there
1319	have been problems using -j with buildworld and/or installworld.  This
1320	is especially true when upgrading between "distant" versions (eg one
1321	that cross a major release boundary or several minor releases, or when
1322	several months have passed on the -current branch).
1323
1324	Sometimes, obscure build problems are the result of environment
1325	poisoning.  This can happen because the make utility reads its
1326	environment when searching for values for global variables.  To run
1327	your build attempts in an "environmental clean room", prefix all make
1328	commands with 'env -i '.  See the env(1) manual page for more details.
1329
1330	When upgrading from one major version to another it is generally best
1331	to upgrade to the latest code in the currently installed branch first,
1332	then do an upgrade to the new branch. This is the best-tested upgrade
1333	path, and has the highest probability of being successful.  Please try
1334	this approach before reporting problems with a major version upgrade.
1335
1336	When upgrading a live system, having a root shell around before
1337	installing anything can help undo problems. Not having a root shell
1338	around can lead to problems if pam has changed too much from your
1339	starting point to allow continued authentication after the upgrade.
1340
1341	This file should be read as a log of events. When a later event changes
1342	information of a prior event, the prior event should not be deleted.
1343	Instead, a pointer to the entry with the new information should be
1344	placed in the old entry. Readers of this file should also sanity check
1345	older entries before relying on them blindly. Authors of new entries
1346	should write them with this in mind.
1347
1348	ZFS notes
1349	---------
1350	When upgrading the boot ZFS pool to a new version, always follow
1351	these two steps:
1352
1353	1.) recompile and reinstall the ZFS boot loader and boot block
1354	(this is part of "make buildworld" and "make installworld")
1355
1356	2.) update the ZFS boot block on your boot drive
1357
1358	The following example updates the ZFS boot block on the first
1359	partition (freebsd-boot) of a GPT partitioned drive ada0:
1360	"gpart bootcode -p /boot/gptzfsboot -i 1 ada0"
1361
1362	Non-boot pools do not need these updates.
1363
1364	To build a kernel
1365	-----------------
1366	If you are updating from a prior version of FreeBSD (even one just
1367	a few days old), you should follow this procedure.  It is the most
1368	failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1369
1370	make kernel-toolchain
1371	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1372	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1373
1374	To test a kernel once
1375	---------------------
1376	If you just want to boot a kernel once (because you are not sure
1377	if it works, or if you want to boot a known bad kernel to provide
1378	debugging information) run
1379	make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1380	nextboot -k testkernel
1381
1382	To just build a kernel when you know that it won't mess you up
1383	--------------------------------------------------------------
1384	This assumes you are already running a CURRENT system.  Replace
1385	${arch} with the architecture of your machine (e.g. "i386",
1386	"arm", "amd64", "ia64", "pc98", "sparc64", "powerpc", "mips", etc).
1387
1388	cd src/sys/${arch}/conf
1389	config KERNEL_NAME_HERE
1390	cd ../compile/KERNEL_NAME_HERE
1391	make depend
1392	make
1393	make install
1394
1395	If this fails, go to the "To build a kernel" section.
1396
1397	To rebuild everything and install it on the current system.
1398	-----------------------------------------------------------
1399	# Note: sometimes if you are running current you gotta do more than
1400	# is listed here if you are upgrading from a really old current.
1401
1402	<make sure you have good level 0 dumps>
1403	make buildworld
1404	make kernel KERNCONF=YOUR_KERNEL_HERE
1405							[1]
1406	<reboot in single user>				[3]
1407	mergemaster -Fp					[5]
1408	make installworld
1409	mergemaster -Fi					[4]
1410	make delete-old					[6]
1411	<reboot>
1412
1413	To cross-install current onto a separate partition
1414	--------------------------------------------------
1415	# In this approach we use a separate partition to hold
1416	# current's root, 'usr', and 'var' directories.   A partition
1417	# holding "/", "/usr" and "/var" should be about 2GB in
1418	# size.
1419
1420	<make sure you have good level 0 dumps>
1421	<boot into -stable>
1422	make buildworld
1423	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1424	<maybe newfs current's root partition>
1425	<mount current's root partition on directory ${CURRENT_ROOT}>
1426	make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC
1427	make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1428	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1429	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
1430	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1431	<reboot into current>
1432	<do a "native" rebuild/install as described in the previous section>
1433	<maybe install compatibility libraries from ports/misc/compat*>
1434	<reboot>
1435
1436
1437	To upgrade in-place from stable to current
1438	----------------------------------------------
1439	<make sure you have good level 0 dumps>
1440	make buildworld					[9]
1441	make kernel KERNCONF=YOUR_KERNEL_HERE		[8]
1442							[1]
1443	<reboot in single user>				[3]
1444	mergemaster -Fp					[5]
1445	make installworld
1446	mergemaster -Fi					[4]
1447	make delete-old					[6]
1448	<reboot>
1449
1450	Make sure that you've read the UPDATING file to understand the
1451	tweaks to various things you need.  At this point in the life
1452	cycle of current, things change often and you are on your own
1453	to cope.  The defaults can also change, so please read ALL of
1454	the UPDATING entries.
1455
1456	Also, if you are tracking -current, you must be subscribed to
1457	freebsd-current@freebsd.org.  Make sure that before you update
1458	your sources that you have read and understood all the recent
1459	messages there.  If in doubt, please track -stable which has
1460	much fewer pitfalls.
1461
1462	[1] If you have third party modules, such as vmware, you
1463	should disable them at this point so they don't crash your
1464	system on reboot.
1465
1466	[3] From the bootblocks, boot -s, and then do
1467		fsck -p
1468		mount -u /
1469		mount -a
1470		cd src
1471		adjkerntz -i		# if CMOS is wall time
1472	Also, when doing a major release upgrade, it is required that
1473	you boot into single user mode to do the installworld.
1474
1475	[4] Note: This step is non-optional.  Failure to do this step
1476	can result in a significant reduction in the functionality of the
1477	system.  Attempting to do it by hand is not recommended and those
1478	that pursue this avenue should read this file carefully, as well
1479	as the archives of freebsd-current and freebsd-hackers mailing lists
1480	for potential gotchas.  The -U option is also useful to consider.
1481	See mergemaster(8) for more information.
1482
1483	[5] Usually this step is a noop.  However, from time to time
1484	you may need to do this if you get unknown user in the following
1485	step.  It never hurts to do it all the time.  You may need to
1486	install a new mergemaster (cd src/usr.sbin/mergemaster && make
1487	install) after the buildworld before this step if you last updated
1488	from current before 20130425 or from -stable before 20130430.
1489
1490	[6] This only deletes old files and directories. Old libraries
1491	can be deleted by "make delete-old-libs", but you have to make
1492	sure that no program is using those libraries anymore.
1493
1494	[8] In order to have a kernel that can run the 4.x binaries needed to
1495	do an installworld, you must include the COMPAT_FREEBSD4 option in
1496	your kernel.  Failure to do so may leave you with a system that is
1497	hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is
1498	required to run the 5.x binaries on more recent kernels.  And so on
1499	for COMPAT_FREEBSD6 and COMPAT_FREEBSD7.
1500
1501	Make sure that you merge any new devices from GENERIC since the
1502	last time you updated your kernel config file.
1503
1504	[9] When checking out sources, you must include the -P flag to have
1505	cvs prune empty directories.
1506
1507	If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1508	"?=" instead of the "=" assignment operator, so that buildworld can
1509	override the CPUTYPE if it needs to.
1510
1511	MAKEOBJDIRPREFIX must be defined in an environment variable, and
1512	not on the command line, or in /etc/make.conf.  buildworld will
1513	warn if it is improperly defined.
1514FORMAT:
1515
1516This file contains a list, in reverse chronological order, of major
1517breakages in tracking -current.  It is not guaranteed to be a complete
1518list of such breakages, and only contains entries since September 23, 2011.
1519If you need to see UPDATING entries from before that date, you will need
1520to fetch an UPDATING file from an older FreeBSD release.
1521
1522Copyright information:
1523
1524Copyright 1998-2009 M. Warner Losh.  All Rights Reserved.
1525
1526Redistribution, publication, translation and use, with or without
1527modification, in full or in part, in any form or format of this
1528document are permitted without further permission from the author.
1529
1530THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1531IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1532WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1533DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1534INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1535(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1536SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1537HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1538STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1539IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1540POSSIBILITY OF SUCH DAMAGE.
1541
1542Contact Warner Losh if you have any questions about your use of
1543this document.
1544
1545$FreeBSD$
1546