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