UPDATING revision 316722
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
1920170412	p9	FreeBSD-SA-17:03.ntp
20			FreeBSD-EN-17:05.xen
21
22	Fix multiple vulnerabilities of ntp. [SA-17:03]
23
24	Xen migration enhancements. [EN-17:05]
25
2620170223	p8	FreeBSD-SA-17:02.openssl
27			FreeBSD-EN-17:01.pcie
28			FreeBSD-EN-17:02.yp
29			FreeBSD-EN-17:03.hyperv
30			FreeBSD-EN-17:04.mandoc
31
32	Fix multiple vulnerabilities of OpenSSL. [SA-17:02]
33
34	Fix system hang when booting when PCI-express HotPlug is enabled.
35	[EN-17:01]
36
37	Fix NIS master updates are not pushed to NIS slave. [EN-17:02]
38
39	Fix compatibility with Hyper-V/storage after KB3172614 or
40	KB3179574. [EN-17:03]
41
42	Make makewhatis output reproducible. [EN-17:04]
43
4420170111	p7	FreeBSD-SA-17:01.openssh
45
46	Fix multiple vulnerabilities of OpenSSH.
47
4820161222	p6	FreeBSD-SA-16:39.ntp
49
50	Fix multiple vulnerabilities of ntp.
51
5220161208	p5	FreeBSD-SA-16:37.libc [revised]
53
54	Fix regressions introduced by SA-16:37.libc.
55
5620161206	p4	FreeBSD-SA-16:36.telnetd
57			FreeBSD-SA-16:37.libc
58			FreeBSD-SA-16:38.bhyve
59			FreeBSD-EN-16:19.tzcode
60			FreeBSD-EN-16:20.tzdata
61			FreeBSD-EN-16:21.localedef
62
63	Fix possible login(1) argument injection in telnetd(8). [SA-16:36]
64	Fix link_ntoa(3) buffer overflow in libc. [SA-16:37]
65	Fix possible escape from bhyve(8) virtual machine. [SA-16:38]
66	Fix warnings about valid time zone abbreviations. [EN-16:19]
67	Update timezone database information. [EN-16:20]
68	Fix incorrectly defined unicode character(s). [EN-16:21]
69
7020161102	p3	FreeBSD-SA-16:33.openssh
71
72	Fix Fix OpenSSH remote Denial of Service vulnerability.
73
7420161025	p2	FreeBSD-SA-16:15.sysarch [revised]
75			FreeBSD-SA-16:32.bhyve
76
77	Fix incorrect argument validation in sysarch(2). [SA-16:15]
78	Fix access to host memory from guest in bhyve(8). [SA-16:32]
79
8020160928:
81	11.0-RELEASE.
82
8320160622:
84	The libc stub for the pipe(2) system call has been replaced with
85	a wrapper that calls the pipe2(2) system call and the pipe(2)
86	system call is now only implemented by the kernels that include
87	"options COMPAT_FREEBSD10" in their config file (this is the
88	default).  Users should ensure that this option is enabled in
89	their kernel or upgrade userspace to r302092 before upgrading their
90	kernel.
91
9220160527:
93	CAM will now strip leading spaces from SCSI disks' serial numbers.
94	This will effect users who create UFS filesystems on SCSI disks using
95	those disk's diskid device nodes.  For example, if /etc/fstab
96	previously contained a line like
97	"/dev/diskid/DISK-%20%20%20%20%20%20%20ABCDEFG0123456", you should
98	change it to "/dev/diskid/DISK-ABCDEFG0123456".  Users of geom
99	transforms like gmirror may also be affected.  ZFS users should
100	generally be fine.
101
10220160523:
103	The bitstring(3) API has been updated with new functionality and
104	improved performance.  But it is binary-incompatible with the old API.
105	Objects built with the new headers may not be linked against objects
106	built with the old headers.
107
10820160520:
109	The brk and sbrk functions have been removed from libc on arm64.
110	Binutils from ports has been updated to not link to these
111	functions and should be updated to the latest version before
112	installing a new libc.
113
11420160517:
115	The armv6 port now defaults to hard float ABI. Limited support
116	for running both hardfloat and soft float on the same system
117	is available using the libraries installed with -DWITH_LIBSOFT.
118	This has only been tested as an upgrade path for installworld
119	and packages may fail or need manual intervention to run. New
120	packages will be needed.
121
122	To update an existing self-hosted armv6hf system, you must add
123	TARGET_ARCH=armv6 on the make command line for both the build 
124	and the install steps.
125
12620160510:
127	Kernel modules compiled outside of a kernel build now default to
128	installing to /boot/modules instead of /boot/kernel.  Many kernel
129	modules built this way (such as those in ports) already overrode
130	KMODDIR explicitly to install into /boot/modules.  However,
131	manually building and installing a module from /sys/modules will
132	now install to /boot/modules instead of /boot/kernel.
133
13420160414:
135	The CAM I/O scheduler has been committed to the kernel. There should be
136	no user visible impact. This does enable NCQ Trim on ada SSDs. While the
137	list of known rogues that claim support for this but actually corrupt
138	data is believed to be complete, be on the lookout for data
139	corruption. The known rogue list is believed to be complete:
140
141		o Crucial MX100, M550 drives with MU01 firmware.
142		o Micron M510 and M550 drives with MU01 firmware.
143		o Micron M500 prior to MU07 firmware
144		o Samsung 830, 840, and 850 all firmwares
145		o FCCT M500 all firmwares
146
147	Crucial has firmware http://www.crucial.com/usa/en/support-ssd-firmware
148	with working NCQ TRIM. For Micron branded drives, see your sales rep for
149	updated firmware. Black listed drives will work correctly because these
150	drives work correctly so long as no NCQ TRIMs are sent to them. Given
151	this list is the same as found in Linux, it's believed there are no
152	other rogues in the market place. All other models from the above
153	vendors work.
154
155	To be safe, if you are at all concerned, you can quirk each of your
156	drives to prevent NCQ from being sent by setting:
157		kern.cam.ada.X.quirks="0x2"
158	in loader.conf. If the drive requires the 4k sector quirk, set the
159	quirks entry to 0x3.
160
16120160330:
162	The FAST_DEPEND build option has been removed and its functionality is
163	now the one true way.  The old mkdep(1) style of 'make depend' has
164	been removed.  See 20160311 for further details.
165
16620160317:
167	Resource range types have grown from unsigned long to uintmax_t.  All
168	drivers, and anything using libdevinfo, need to be recompiled.
169
17020160311:
171	WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree
172	builds.  It no longer runs mkdep(1) during 'make depend', and the
173	'make depend' stage can safely be skipped now as it is auto ran
174	when building 'make all' and will generate all SRCS and DPSRCS before
175	building anything else.  Dependencies are gathered at compile time with
176	-MF flags kept in separate .depend files per object file.  Users should
177	run 'make cleandepend' once if using -DNO_CLEAN to clean out older
178	stale .depend files.
179
18020160306:
181	On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into
182	kernel modules.  Therefore, if you load any kernel modules at boot time,
183	please install the boot loaders after you install the kernel, but before
184	rebooting, e.g.:
185
186	make buildworld
187	make kernel KERNCONF=YOUR_KERNEL_HERE
188	make -C sys/boot install
189	<reboot in single user>
190
191	Then follow the usual steps, described in the General Notes section,
192	below.
193
19420160305:
195	Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0.  Please
196	see the 20141231 entry below for information about prerequisites and
197	upgrading, if you are not already using clang 3.5.0 or higher.
198
19920160301:
200	The AIO subsystem is now a standard part of the kernel.  The
201	VFS_AIO kernel option and aio.ko kernel module have been removed.
202	Due to stability concerns, asynchronous I/O requests are only
203	permitted on sockets and raw disks by default.  To enable
204	asynchronous I/O requests on all file types, set the
205	vfs.aio.enable_unsafe sysctl to a non-zero value.
206
20720160226:
208	The ELF object manipulation tool objcopy is now provided by the
209	ELF Tool Chain project rather than by GNU binutils. It should be a
210	drop-in replacement, with the addition of arm64 support. The
211	(temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set
212	to obtain the GNU version if necessary.
213
21420160129:
215	Building ZFS pools on top of zvols is prohibited by default.  That
216	feature has never worked safely; it's always been prone to deadlocks.
217	Using a zvol as the backing store for a VM guest's virtual disk will
218	still work, even if the guest is using ZFS.  Legacy behavior can be
219	restored by setting vfs.zfs.vol.recursive=1.
220
22120160119:
222	The NONE and HPN patches has been removed from OpenSSH.  They are
223	still available in the security/openssh-portable port.
224
22520160113:
226	With the addition of ypldap(8), a new _ypldap user is now required
227	during installworld. "mergemaster -p" can be used to add the user
228	prior to installworld, as documented in the handbook.
229
23020151216:
231	The tftp loader (pxeboot) now uses the option root-path directive. As a
232	consequence it no longer looks for a pxeboot.4th file on the tftp
233	server. Instead it uses the regular /boot infrastructure as with the
234	other loaders.
235
23620151211:
237	The code to start recording plug and play data into the modules has
238	been committed. While the old tools will properly build a new kernel,
239	a number of warnings about "unknown metadata record 4" will be produced
240	for an older kldxref. To avoid such warnings, make sure to rebuild
241	the kernel toolchain (or world). Make sure that you have r292078 or
242	later when trying to build 292077 or later before rebuilding.
243
24420151207:
245	Debug data files are now built by default with 'make buildworld' and
246	installed with 'make installworld'. This facilitates debugging but
247	requires more disk space both during the build and for the installed
248	world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes
249	in src.conf(5).
250
25120151130:
252	r291527 changed the internal interface between the nfsd.ko and
253	nfscommon.ko modules. As such, they must both be upgraded to-gether.
254	__FreeBSD_version has been bumped because of this.
255
25620151108:
257	Add support for unicode collation strings leads to a change of
258	order of files listed by ls(1) for example. To get back to the old
259	behaviour, set LC_COLLATE environment variable to "C".
260
261	Databases administrators will need to reindex their databases given
262	collation results will be different.
263
264	Due to a bug in install(1) it is recommended to remove the ancient
265	locales before running make installworld.
266
267	rm -rf /usr/share/locale/*
268
26920151030:
270	The OpenSSL has been upgraded to 1.0.2d.  Any binaries requiring
271	libcrypto.so.7 or libssl.so.7 must be recompiled.
272
27320151020:
274	Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0.
275	Kernel modules isp_2400_multi and isp_2500_multi were removed and
276	should be replaced with isp_2400 and isp_2500 modules respectively.
277
27820151017:
279	The build previously allowed using 'make -n' to not recurse into
280	sub-directories while showing what commands would be executed, and
281	'make -n -n' to recursively show commands.  Now 'make -n' will recurse
282	and 'make -N' will not.
283
28420151012:
285	If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster
286	and etcupdate will now use this file. A custom sendmail.cf is now
287	updated via this mechanism rather than via installworld.  If you had
288	excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may
289	want to remove the exclusion or change it to "always install".
290	/etc/mail/sendmail.cf is now managed the same way regardless of
291	whether SENDMAIL_MC/SENDMAIL_CF is used.  If you are not using
292	SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior.
293
29420151011:
295	Compatibility shims for legacy ATA device names have been removed.
296	It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases
297	and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.*
298	environment variables, /dev/ad* and /dev/ar* symbolic links.
299
30020151006:
301	Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0.
302	Please see the 20141231 entry below for information about prerequisites
303	and upgrading, if you are not already using clang 3.5.0 or higher.
304
30520150924:
306	Kernel debug files have been moved to /usr/lib/debug/boot/kernel/,
307	and renamed from .symbols to .debug. This reduces the size requirements
308	on the boot partition or file system and provides consistency with
309	userland debug files.
310
311	When using the supported kernel installation method the
312	/usr/lib/debug/boot/kernel directory will be renamed (to kernel.old)
313	as is done with /boot/kernel.
314
315	Developers wishing to maintain the historical behavior of installing
316	debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5).
317
31820150827:
319	The wireless drivers had undergone changes that remove the 'parent
320	interface' from the ifconfig -l output. The rc.d network scripts
321	used to check presence of a parent interface in the list, so old
322	scripts would fail to start wireless networking. Thus, etcupdate(3)
323	or mergemaster(8) run is required after kernel update, to update your
324	rc.d scripts in /etc.
325
32620150827:
327	pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl'
328	These configurations are now automatically interpreted as
329	'scrub fragment reassemble'.
330
33120150817:
332	Kernel-loadable modules for the random(4) device are back. To use
333	them, the kernel must have
334
335	device	random
336	options	RANDOM_LOADABLE
337
338	kldload(8) can then be used to load random_fortuna.ko
339	or random_yarrow.ko. Please note that due to the indirect
340	function calls that the loadable modules need to provide,
341	the build-in variants will be slightly more efficient.
342
343	The random(4) kernel option RANDOM_DUMMY has been retired due to
344	unpopularity. It was not all that useful anyway.
345
34620150813:
347	The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired.
348	Control over building the ELF Tool Chain tools is now provided by
349	the WITHOUT_TOOLCHAIN knob.
350
35120150810:
352	The polarity of Pulse Per Second (PPS) capture events with the
353	uart(4) driver has been corrected.  Prior to this change the PPS
354	"assert" event corresponded to the trailing edge of a positive PPS
355	pulse and the "clear" event was the leading edge of the next pulse.
356
357	As the width of a PPS pulse in a typical GPS receiver is on the
358	order of 1 millisecond, most users will not notice any significant
359	difference with this change.
360
361	Anyone who has compensated for the historical polarity reversal by
362	configuring a negative offset equal to the pulse width will need to
363	remove that workaround.
364
36520150809:
366	The default group assigned to /dev/dri entries has been changed
367	from 'wheel' to 'video' with the id of '44'. If you want to have
368	access to the dri devices please add yourself to the video group
369	with:
370
371	# pw groupmod video -m $USER
372
37320150806:
374	The menu.rc and loader.rc files will now be replaced during 
375	upgrades. Please migrate local changes to menu.rc.local and
376	loader.rc.local instead.
377
37820150805:
379	GNU Binutils versions of addr2line, c++filt, nm, readelf, size,
380	strings and strip have been removed. The src.conf(5) knob
381	WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools.
382
38320150728:
384	As ZFS requires more kernel stack pages than is the default on some
385	architectures e.g. i386, it now warns if KSTACK_PAGES is less than
386	ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing).
387
388	Please consider using 'options KSTACK_PAGES=X' where X is greater
389	than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations.
390
39120150706:
392	sendmail has been updated to 8.15.2.  Starting with FreeBSD 11.0
393	and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by
394	default, i.e., they will not contain "::".  For example, instead
395	of ::1, it will be 0:0:0:0:0:0:0:1.  This permits a zero subnet
396	to have a more specific match, such as different map entries for
397	IPv6:0:0 vs IPv6:0.  This change requires that configuration
398	data (including maps, files, classes, custom ruleset, etc.) must
399	use the same format, so make certain such configuration data is
400	upgrading.  As a very simple check search for patterns like
401	'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'.  To return to the old
402	behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or
403	the cf option UseCompressedIPv6Addresses.
404
40520150630:
406	The default kernel entropy-processing algorithm is now
407	Fortuna, replacing Yarrow.
408
409	Assuming you have 'device random' in your kernel config
410	file, the configurations allow a kernel option to override
411	this default. You may choose *ONE* of:
412
413	options	RANDOM_YARROW	# Legacy /dev/random algorithm.
414	options	RANDOM_DUMMY	# Blocking-only driver.
415
416	If you have neither, you get Fortuna.  For most people,
417	read no further, Fortuna will give a /dev/random that works
418	like it always used to, and the difference will be irrelevant.
419
420	If you remove 'device random', you get *NO* kernel-processed
421	entropy at all. This may be acceptable to folks building
422	embedded systems, but has complications. Carry on reading,
423	and it is assumed you know what you need.
424
425	*PLEASE* read random(4) and random(9) if you are in the
426	habit of tweaking kernel configs, and/or if you are a member
427	of the embedded community, wanting specific and not-usual
428	behaviour from your security subsystems.
429
430	NOTE!! If you use RANDOM_DUMMY and/or have no 'device
431	random', you will NOT have a functioning /dev/random, and
432	many cryptographic features will not work, including SSH.
433	You may also find strange behaviour from the random(3) set
434	of library functions, in particular sranddev(3), srandomdev(3)
435	and arc4random(3). The reason for this is that the KERN_ARND
436	sysctl only returns entropy if it thinks it has some to
437	share, and with RANDOM_DUMMY or no 'device random' this
438	will never happen.
439
44020150623:
441	An additional fix for the issue described in the 20150614 sendmail
442	entry below has been been committed in revision 284717.
443
44420150616:
445	FreeBSD's old make (fmake) has been removed from the system. It is
446	available as the devel/fmake port or via pkg install fmake.
447
44820150615:
449	The fix for the issue described in the 20150614 sendmail entry
450	below has been been committed in revision 284436.  The work
451	around described in that entry is no longer needed unless the
452	default setting is overridden by a confDH_PARAMETERS configuration
453	setting of '5' or pointing to a 512 bit DH parameter file.
454
45520150614:
456	ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from
457	atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf
458	and devel/kyua to version 0.20+ and adjust any calling code to work
459	with Kyuafile and kyua.
460
46120150614:
462	The import of openssl to address the FreeBSD-SA-15:10.openssl
463	security advisory includes a change which rejects handshakes
464	with DH parameters below 768 bits.  sendmail releases prior
465	to 8.15.2 (not yet released), defaulted to a 512 bit
466	DH parameter setting for client connections.  To work around
467	this interoperability, sendmail can be configured to use a
468	2048 bit DH parameter by:
469
470	1. Edit /etc/mail/`hostname`.mc
471	2. If a setting for confDH_PARAMETERS does not exist or
472	   exists and is set to a string beginning with '5',
473	   replace it with '2'.
474	3. If a setting for confDH_PARAMETERS exists and is set to
475	   a file path, create a new file with:
476		openssl dhparam -out /path/to/file 2048
477	4. Rebuild the .cf file:
478		cd /etc/mail/; make; make install
479	5. Restart sendmail:
480		cd /etc/mail/; make restart
481
482	A sendmail patch is coming, at which time this file will be
483	updated.
484
48520150604:
486	Generation of legacy formatted entries have been disabled by default
487	in pwd_mkdb(8), as all base system consumers of the legacy formatted
488	entries were converted to use the new format by default when the new,
489	machine independent format have been added and supported since FreeBSD
490	5.x.
491
492	Please see the pwd_mkdb(8) manual page for further details.
493
49420150525:
495	Clang and llvm have been upgraded to 3.6.1 release.  Please see the
496	20141231 entry below for information about prerequisites and upgrading,
497	if you are not already using 3.5.0 or higher.
498
49920150521:
500	TI platform code switched to using vendor DTS files and this update
501	may break existing systems running on Beaglebone, Beaglebone Black,
502	and Pandaboard:
503
504	- dtb files should be regenerated/reinstalled. Filenames are the
505	  same but content is different now
506	- GPIO addressing was changed, now each GPIO bank (32 pins per bank)
507	  has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old
508	  addressing scheme is now pin 25 on /dev/gpioc3.
509	- Pandaboard: /etc/ttys should be updated, serial console device is
510	  now /dev/ttyu2, not /dev/ttyu0
511
51220150501:
513	soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim.
514	If you need the GNU extension from groff soelim(1), install groff
515	from package: pkg install groff, or via ports: textproc/groff.
516
51720150423:
518	chmod, chflags, chown and chgrp now affect symlinks in -R mode as
519	defined in symlink(7); previously symlinks were silently ignored.
520
52120150415:
522	The const qualifier has been removed from iconv(3) to comply with
523	POSIX.  The ports tree is aware of this from r384038 onwards.
524
52520150416:
526	Libraries specified by LIBADD in Makefiles must have a corresponding
527	DPADD_<lib> variable to ensure correct dependencies.  This is now
528	enforced in src.libnames.mk.
529
53020150324:
531	From legacy ata(4) driver was removed support for SATA controllers
532	supported by more functional drivers ahci(4), siis(4) and mvs(4).
533	Kernel modules ataahci and ataadaptec were removed completely,
534	replaced by ahci and mvs modules respectively.
535
53620150315:
537	Clang, llvm and lldb have been upgraded to 3.6.0 release.  Please see
538	the 20141231 entry below for information about prerequisites and
539	upgrading, if you are not already using 3.5.0 or higher.
540
54120150307:
542	The 32-bit PowerPC kernel has been changed to a position-independent
543	executable. This can only be booted with a version of loader(8)
544	newer than January 31, 2015, so make sure to update both world and
545	kernel before rebooting.
546
54720150217:
548	If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014),
549	but before r278950, the RNG was not seeded properly.  Immediately
550	upgrade the kernel to r278950 or later and regenerate any keys (e.g.
551	ssh keys or openssl keys) that were generated w/ a kernel from that
552	range.  This does not affect programs that directly used /dev/random
553	or /dev/urandom.  All userland uses of arc4random(3) are affected.
554
55520150210:
556	The autofs(4) ABI was changed in order to restore binary compatibility
557	with 10.1-RELEASE.  The automountd(8) daemon needs to be rebuilt to work
558	with the new kernel.
559
56020150131:
561	The powerpc64 kernel has been changed to a position-independent
562	executable. This can only be booted with a new version of loader(8),
563	so make sure to update both world and kernel before rebooting.
564
56520150118:
566	Clang and llvm have been upgraded to 3.5.1 release.  This is a bugfix
567	only release, no new features have been added.  Please see the 20141231
568	entry below for information about prerequisites and upgrading, if you
569	are not already using 3.5.0.
570
57120150107:
572	ELF tools addr2line, elfcopy (strip), nm, size, and strings are now
573	taken from the ELF Tool Chain project rather than GNU binutils. They
574	should be drop-in replacements, with the addition of arm64 support.
575	The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the
576	binutils tools, if necessary. See 20150805 for updated information.
577
57820150105:
579	The default Unbound configuration now enables remote control
580	using a local socket.  Users who have already enabled the
581	local_unbound service should regenerate their configuration
582	by running "service local_unbound setup" as root.
583
58420150102:
585	The GNU texinfo and GNU info pages have been removed.
586	To be able to view GNU info pages please install texinfo from ports.
587
58820141231:
589	Clang, llvm and lldb have been upgraded to 3.5.0 release.
590
591	As of this release, a prerequisite for building clang, llvm and lldb is
592	a C++11 capable compiler and C++11 standard library.  This means that to
593	be able to successfully build the cross-tools stage of buildworld, with
594	clang as the bootstrap compiler, your system compiler or cross compiler
595	should either be clang 3.3 or later, or gcc 4.8 or later, and your
596	system C++ library should be libc++, or libdstdc++ from gcc 4.8 or
597	later.
598
599	On any standard FreeBSD 10.x or 11.x installation, where clang and
600	libc++ are on by default (that is, on x86 or arm), this should work out
601	of the box.
602
603	On 9.x installations where clang is enabled by default, e.g. on x86 and
604	powerpc, libc++ will not be enabled by default, so libc++ should be
605	built (with clang) and installed first.  If both clang and libc++ are
606	missing, build clang first, then use it to build libc++.
607
608	On 8.x and earlier installations, upgrade to 9.x first, and then follow
609	the instructions for 9.x above.
610
611	Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by
612	default, and do not build clang.
613
614	Many embedded systems are resource constrained, and will not be able to
615	build clang in a reasonable time, or in some cases at all.  In those
616	cases, cross building bootable systems on amd64 is a workaround.
617
618	This new version of clang introduces a number of new warnings, of which
619	the following are most likely to appear:
620
621	-Wabsolute-value
622
623	This warns in two cases, for both C and C++:
624	* When the code is trying to take the absolute value of an unsigned
625	  quantity, which is effectively a no-op, and almost never what was
626	  intended.  The code should be fixed, if at all possible.  If you are
627	  sure that the unsigned quantity can be safely cast to signed, without
628	  loss of information or undefined behavior, you can add an explicit
629	  cast, or disable the warning.
630
631	* When the code is trying to take an absolute value, but the called
632	  abs() variant is for the wrong type, which can lead to truncation.
633	  If you want to disable the warning instead of fixing the code, please
634	  make sure that truncation will not occur, or it might lead to unwanted
635	  side-effects.
636
637	-Wtautological-undefined-compare and
638	-Wundefined-bool-conversion
639
640	These warn when C++ code is trying to compare 'this' against NULL, while
641	'this' should never be NULL in well-defined C++ code.  However, there is
642	some legacy (pre C++11) code out there, which actively abuses this
643	feature, which was less strictly defined in previous C++ versions.
644
645	Squid and openjdk do this, for example.  The warning can be turned off
646	for C++98 and earlier, but compiling the code in C++11 mode might result
647	in unexpected behavior; for example, the parts of the program that are
648	unreachable could be optimized away.
649
65020141222:
651	The old NFS client and server (kernel options NFSCLIENT, NFSSERVER)
652	kernel sources have been removed. The .h files remain, since some
653	utilities include them. This will need to be fixed later.
654	If "mount -t oldnfs ..." is attempted, it will fail.
655	If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used,
656	the utilities will report errors.
657
65820141121:
659	The handling of LOCAL_LIB_DIRS has been altered to skip addition of
660	directories to top level SUBDIR variable when their parent
661	directory is included in LOCAL_DIRS.  Users with build systems with
662	such hierarchies and without SUBDIR entries in the parent
663	directory Makefiles should add them or add the directories to
664	LOCAL_DIRS.
665
66620141109:
667	faith(4) and faithd(8) have been removed from the base system. Faith
668	has been obsolete for a very long time.
669
67020141104:
671	vt(4), the new console driver, is enabled by default. It brings
672	support for Unicode and double-width characters, as well as
673	support for UEFI and integration with the KMS kernel video
674	drivers.
675
676	You may need to update your console settings in /etc/rc.conf,
677	most probably the keymap. During boot, /etc/rc.d/syscons will
678	indicate what you need to do.
679
680	vt(4) still has issues and lacks some features compared to
681	syscons(4). See the wiki for up-to-date information:
682	  https://wiki.freebsd.org/Newcons
683
684	If you want to keep using syscons(4), you can do so by adding
685	the following line to /boot/loader.conf:
686	  kern.vty=sc
687
68820141102:
689	pjdfstest has been integrated into kyua as an opt-in test suite.
690	Please see share/doc/pjdfstest/README for more details on how to
691	execute it.
692
69320141009:
694	gperf has been removed from the base system for architectures
695	that use clang. Ports that require gperf will obtain it from the
696	devel/gperf port.
697
69820140923:
699	pjdfstest has been moved from tools/regression/pjdfstest to
700	contrib/pjdfstest .
701
70220140922:
703	At svn r271982, The default linux compat kernel ABI has been adjusted
704	to 2.6.18 in support of the linux-c6 compat ports infrastructure
705	update.  If you wish to continue using the linux-f10 compat ports,
706	add compat.linux.osrelease=2.6.16 to your local sysctl.conf.  Users are
707	encouraged to update their linux-compat packages to linux-c6 during
708	their next update cycle.
709
71020140729:
711	The ofwfb driver, used to provide a graphics console on PowerPC when
712	using vt(4), no longer allows mmap() of all physical memory. This
713	will prevent Xorg on PowerPC with some ATI graphics cards from
714	initializing properly unless x11-servers/xorg-server is updated to
715	1.12.4_8 or newer.
716
71720140723:
718	The xdev targets have been converted to using TARGET and
719	TARGET_ARCH instead of XDEV and XDEV_ARCH.
720
72120140719:
722	The default unbound configuration has been modified to address
723	issues with reverse lookups on networks that use private
724	address ranges.  If you use the local_unbound service, run
725	"service local_unbound setup" as root to regenerate your
726	configuration, then "service local_unbound reload" to load the
727	new configuration.
728
72920140709:
730	The GNU texinfo and GNU info pages are not built and installed
731	anymore, WITH_INFO knob has been added to allow to built and install
732	them again.
733	UPDATE: see 20150102 entry on texinfo's removal
734
73520140708:
736	The GNU readline library is now an INTERNALLIB - that is, it is
737	statically linked into consumers (GDB and variants) in the base
738	system, and the shared library is no longer installed.  The
739	devel/readline port is available for third party software that
740	requires readline.
741
74220140702:
743	The Itanium architecture (ia64) has been removed from the list of
744	known architectures. This is the first step in the removal of the
745	architecture.
746
74720140701:
748	Commit r268115 has added NFSv4.1 server support, merged from
749	projects/nfsv4.1-server.  Since this includes changes to the
750	internal interfaces between the NFS related modules, a full
751	build of the kernel and modules will be necessary.
752	__FreeBSD_version has been bumped.
753
75420140629:
755	The WITHOUT_VT_SUPPORT kernel config knob has been renamed
756	WITHOUT_VT.  (The other _SUPPORT knobs have a consistent meaning
757	which differs from the behaviour controlled by this knob.)
758
75920140619:
760	Maximal length of the serial number in CTL was increased from 16 to
761	64 chars, that breaks ABI.  All CTL-related tools, such as ctladm
762	and ctld, need to be rebuilt to work with a new kernel.
763
76420140606:
765	The libatf-c and libatf-c++ major versions were downgraded to 0 and
766	1 respectively to match the upstream numbers.  They were out of
767	sync because, when they were originally added to FreeBSD, the
768	upstream versions were not respected.  These libraries are private
769	and not yet built by default, so renumbering them should be a
770	non-issue.  However, unclean source trees will yield broken test
771	programs once the operator executes "make delete-old-libs" after a
772	"make installworld".
773
774	Additionally, the atf-sh binary was made private by moving it into
775	/usr/libexec/.  Already-built shell test programs will keep the
776	path to the old binary so they will break after "make delete-old"
777	is run.
778
779	If you are using WITH_TESTS=yes (not the default), wipe the object
780	tree and rebuild from scratch to prevent spurious test failures.
781	This is only needed once: the misnumbered libraries and misplaced
782	binaries have been added to OptionalObsoleteFiles.inc so they will
783	be removed during a clean upgrade.
784
78520140512:
786	Clang and llvm have been upgraded to 3.4.1 release.
787
78820140508:
789	We bogusly installed src.opts.mk in /usr/share/mk. This file should
790	be removed to avoid issues in the future (and has been added to
791	ObsoleteFiles.inc).
792
79320140505:
794	/etc/src.conf now affects only builds of the FreeBSD src tree. In the
795	past, it affected all builds that used the bsd.*.mk files. The old
796	behavior was a bug, but people may have relied upon it. To get this
797	behavior back, you can .include /etc/src.conf from /etc/make.conf
798	(which is still global and isn't changed). This also changes the
799	behavior of incremental builds inside the tree of individual
800	directories. Set MAKESYSPATH to ".../share/mk" to do that.
801	Although this has survived make universe and some upgrade scenarios,
802	other upgrade scenarios may have broken. At least one form of
803	temporary breakage was fixed with MAKESYSPATH settings for buildworld
804	as well... In cases where MAKESYSPATH isn't working with this
805	setting, you'll need to set it to the full path to your tree.
806
807	One side effect of all this cleaning up is that bsd.compiler.mk
808	is no longer implicitly included by bsd.own.mk. If you wish to
809	use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk
810	as well.
811
81220140430:
813	The lindev device has been removed since /dev/full has been made a
814	standard device.  __FreeBSD_version has been bumped.
815
81620140424:
817	The knob WITHOUT_VI was added to the base system, which controls
818	building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1)
819	in order to reorder files share/termcap and didn't build ex(1) as a
820	build tool, so building/installing with WITH_VI is highly advised for
821	build hosts for older releases.
822
823	This issue has been fixed in stable/9 and stable/10 in r277022 and
824	r276991, respectively.
825
82620140418:
827	The YES_HESIOD knob has been removed. It has been obsolete for
828	a decade. Please move to using WITH_HESIOD instead or your builds
829	will silently lack HESIOD.
830
83120140405:
832	The uart(4) driver has been changed with respect to its handling
833	of the low-level console. Previously the uart(4) driver prevented
834	any process from changing the baudrate or the CLOCAL and HUPCL
835	control flags. By removing the restrictions, operators can make
836	changes to the serial console port without having to reboot.
837	However, when getty(8) is started on the serial device that is
838	associated with the low-level console, a misconfigured terminal
839	line in /etc/ttys will now have a real impact.
840	Before upgrading the kernel, make sure that /etc/ttys has the
841	serial console device configured as 3wire without baudrate to
842	preserve the previous behaviour. E.g:
843	    ttyu0  "/usr/libexec/getty 3wire"  vt100  on  secure
844
84520140306:
846	Support for libwrap (TCP wrappers) in rpcbind was disabled by default
847	to improve performance.  To re-enable it, if needed, run rpcbind
848	with command line option -W.
849
85020140226:
851	Switched back to the GPL dtc compiler due to updates in the upstream
852	dts files not being supported by the BSDL dtc compiler. You will need
853	to rebuild your kernel toolchain to pick up the new compiler. Core dumps
854	may result while building dtb files during a kernel build if you fail
855	to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler.
856
85720140216:
858	Clang and llvm have been upgraded to 3.4 release.
859
86020140216:
861	The nve(4) driver has been removed.  Please use the nfe(4) driver
862	for NVIDIA nForce MCP Ethernet adapters instead.
863
86420140212:
865	An ABI incompatibility crept into the libc++ 3.4 import in r261283.
866	This could cause certain C++ applications using shared libraries built
867	against the previous version of libc++ to crash.  The incompatibility
868	has now been fixed, but any C++ applications or shared libraries built
869	between r261283 and r261801 should be recompiled.
870
87120140204:
872	OpenSSH will now ignore errors caused by kernel lacking of Capsicum
873	capability mode support.  Please note that enabling the feature in
874	kernel is still highly recommended.
875
87620140131:
877	OpenSSH is now built with sandbox support, and will use sandbox as
878	the default privilege separation method.  This requires Capsicum
879	capability mode support in kernel.
880
88120140128:
882	The libelf and libdwarf libraries have been updated to newer
883	versions from upstream. Shared library version numbers for
884	these two libraries were bumped. Any ports or binaries
885	requiring these two libraries should be recompiled.
886	__FreeBSD_version is bumped to 1100006.
887
88820140110:
889	If a Makefile in a tests/ directory was auto-generating a Kyuafile
890	instead of providing an explicit one, this would prevent such
891	Makefile from providing its own Kyuafile in the future during
892	NO_CLEAN builds.  This has been fixed in the Makefiles but manual
893	intervention is needed to clean an objdir if you use NO_CLEAN:
894	  # find /usr/obj -name Kyuafile | xargs rm -f
895
89620131213:
897	The behavior of gss_pseudo_random() for the krb5 mechanism
898	has changed, for applications requesting a longer random string
899	than produced by the underlying enctype's pseudo-random() function.
900	In particular, the random string produced from a session key of
901	enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will
902	be different at the 17th octet and later, after this change.
903	The counter used in the PRF+ construction is now encoded as a
904	big-endian integer in accordance with RFC 4402.
905	__FreeBSD_version is bumped to 1100004.
906
90720131108:
908	The WITHOUT_ATF build knob has been removed and its functionality
909	has been subsumed into the more generic WITHOUT_TESTS.  If you were
910	using the former to disable the build of the ATF libraries, you
911	should change your settings to use the latter.
912
91320131025:
914	The default version of mtree is nmtree which is obtained from
915	NetBSD.  The output is generally the same, but may vary
916	slightly.  If you found you need identical output adding
917	"-F freebsd9" to the command line should do the trick.  For the
918	time being, the old mtree is available as fmtree.
919
92020131014:
921	libbsdyml has been renamed to libyaml and moved to /usr/lib/private.
922	This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg
923	1.1.4_8 and verify bsdyml not linked in, before running "make
924	delete-old-libs":
925	  # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean
926	  or
927	  # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml
928
92920131010:
930	The stable/10 branch has been created in subversion from head
931	revision r256279.
932
93320131010:
934	The rc.d/jail script has been updated to support jail(8)
935	configuration file.  The "jail_<jname>_*" rc.conf(5) variables
936	for per-jail configuration are automatically converted to
937	/var/run/jail.<jname>.conf before the jail(8) utility is invoked.
938	This is transparently backward compatible.  See below about some
939	incompatibilities and rc.conf(5) manual page for more details.
940
941	These variables are now deprecated in favor of jail(8) configuration
942	file.  One can use "rc.d/jail config <jname>" command to generate
943	a jail(8) configuration file in /var/run/jail.<jname>.conf without
944	running the jail(8) utility.   The default pathname of the
945	configuration file is /etc/jail.conf and can be specified by
946	using $jail_conf or $jail_<jname>_conf variables.
947
948	Please note that jail_devfs_ruleset accepts an integer at
949	this moment.  Please consider to rewrite the ruleset name
950	with an integer.
951
95220130930:
953	BIND has been removed from the base system.  If all you need
954	is a local resolver, simply enable and start the local_unbound
955	service instead.  Otherwise, several versions of BIND are
956	available in the ports tree.   The dns/bind99 port is one example.
957
958	With this change, nslookup(1) and dig(1) are no longer in the base
959	system.  Users should instead use host(1) and drill(1) which are
960	in the base system.  Alternatively, nslookup and dig can
961	be obtained by installing the dns/bind-tools port.
962
96320130916:
964	With the addition of unbound(8), a new unbound user is now
965	required during installworld.  "mergemaster -p" can be used to
966	add the user prior to installworld, as documented in the handbook.
967
96820130911:
969	OpenSSH is now built with DNSSEC support, and will by default
970	silently trust signed SSHFP records.  This can be controlled with
971	the VerifyHostKeyDNS client configuration setting.  DNSSEC support
972	can be disabled entirely with the WITHOUT_LDNS option in src.conf.
973
97420130906:
975	The GNU Compiler Collection and C++ standard library (libstdc++)
976	are no longer built by default on platforms where clang is the system
977	compiler.  You can enable them with the WITH_GCC and WITH_GNUCXX
978	options in src.conf.
979
98020130905:
981	The PROCDESC kernel option is now part of the GENERIC kernel
982	configuration and is required for the rwhod(8) to work.
983	If you are using custom kernel configuration, you should include
984	'options PROCDESC'.
985
98620130905:
987	The API and ABI related to the Capsicum framework was modified
988	in backward incompatible way. The userland libraries and programs
989	have to be recompiled to work with the new kernel. This includes the
990	following libraries and programs, but the whole buildworld is
991	advised: libc, libprocstat, dhclient, tcpdump, hastd, hastctl,
992	kdump, procstat, rwho, rwhod, uniq.
993
99420130903:
995	AES-NI intrinsic support has been added to gcc.  The AES-NI module
996	has been updated to use this support.  A new gcc is required to build
997	the aesni module on both i386 and amd64.
998
99920130821:
1000	The PADLOCK_RNG and RDRAND_RNG kernel options are now devices.
1001	Thus "device padlock_rng" and "device rdrand_rng" should be
1002	used instead of "options PADLOCK_RNG" & "options RDRAND_RNG".
1003
100420130813:
1005	WITH_ICONV has been split into two feature sets.  WITH_ICONV now
1006	enables just the iconv* functionality and is now on by default.
1007	WITH_LIBICONV_COMPAT enables the libiconv api and link time
1008	compatibility.  Set WITHOUT_ICONV to build the old way.
1009	If you have been using WITH_ICONV before, you will very likely
1010	need to turn on WITH_LIBICONV_COMPAT.
1011
101220130806:
1013	INVARIANTS option now enables DEBUG for code with OpenSolaris and
1014	Illumos origin, including ZFS.  If you have INVARIANTS in your
1015	kernel configuration, then there is no need to set DEBUG or ZFS_DEBUG
1016	explicitly.
1017	DEBUG used to enable witness(9) tracking of OpenSolaris (mostly ZFS)
1018	locks if WITNESS option was set.  Because that generated a lot of
1019	witness(9) reports and all of them were believed to be false
1020	positives, this is no longer done.  New option OPENSOLARIS_WITNESS
1021	can be used to achieve the previous behavior.
1022
102320130806:
1024	Timer values in IPv6 data structures now use time_uptime instead
1025	of time_second.  Although this is not a user-visible functional
1026	change, userland utilities which directly use them---ndp(8),
1027	rtadvd(8), and rtsold(8) in the base system---need to be updated
1028	to r253970 or later.
1029
103020130802:
1031	find -delete can now delete the pathnames given as arguments,
1032	instead of only files found below them or if the pathname did
1033	not contain any slashes. Formerly, the following error message
1034	would result:
1035
1036	find: -delete: <path>: relative path potentially not safe
1037
1038	Deleting the pathnames given as arguments can be prevented
1039	without error messages using -mindepth 1 or by changing
1040	directory and passing "." as argument to find. This works in the
1041	old as well as the new version of find.
1042
104320130726:
1044	Behavior of devfs rules path matching has been changed.
1045	Pattern is now always matched against fully qualified devfs
1046	path and slash characters must be explicitly matched by
1047	slashes in pattern (FNM_PATHNAME). Rulesets involving devfs
1048	subdirectories must be reviewed.
1049
105020130716:
1051	The default ARM ABI has changed to the ARM EABI. The old ABI is
1052	incompatible with the ARM EABI and all programs and modules will
1053	need to be rebuilt to work with a new kernel.
1054
1055	To keep using the old ABI ensure the WITHOUT_ARM_EABI knob is set.
1056
1057	NOTE: Support for the old ABI will be removed in the future and
1058	users are advised to upgrade.
1059
106020130709:
1061	pkg_install has been disconnected from the build if you really need it
1062	you should add WITH_PKGTOOLS in your src.conf(5).
1063
106420130709:
1065	Most of network statistics structures were changed to be able
1066	keep 64-bits counters. Thus all tools, that work with networking
1067	statistics, must be rebuilt (netstat(1), bsnmpd(1), etc.)
1068
106920130618:
1070	Fix a bug that allowed a tracing process (e.g. gdb) to write
1071	to a memory-mapped file in the traced process's address space
1072	even if neither the traced process nor the tracing process had
1073	write access to that file.
1074
107520130615:
1076	CVS has been removed from the base system.  An exact copy
1077	of the code is available from the devel/cvs port.
1078
107920130613:
1080	Some people report the following error after the switch to bmake:
1081
1082		make: illegal option -- J
1083		usage: make [-BPSXeiknpqrstv] [-C directory] [-D variable]
1084			...
1085		*** [buildworld] Error code 2
1086
1087	this likely due to an old instance of make in
1088	${MAKEPATH} (${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE})
1089	which src/Makefile will use that blindly, if it exists, so if
1090	you see the above error:
1091
1092		rm -rf `make -V MAKEPATH`
1093
1094	should resolve it.
1095
109620130516:
1097	Use bmake by default.
1098	Whereas before one could choose to build with bmake via
1099	-DWITH_BMAKE one must now use -DWITHOUT_BMAKE to use the old
1100	make. The goal is to remove these knobs for 10-RELEASE.
1101
1102	It is worth noting that bmake (like gmake) treats the command
1103	line as the unit of failure, rather than statements within the
1104	command line.  Thus '(cd some/where && dosomething)' is safer
1105	than 'cd some/where; dosomething'. The '()' allows consistent
1106	behavior in parallel build.
1107
110820130429:
1109        Fix a bug that allows NFS clients to issue READDIR on files.
1110
111120130426:
1112	The WITHOUT_IDEA option has been removed because
1113	the IDEA patent expired.
1114
111520130426:
1116	The sysctl which controls TRIM support under ZFS has been renamed
1117	from vfs.zfs.trim_disable -> vfs.zfs.trim.enabled and has been
1118	enabled by default.
1119
112020130425:
1121	The mergemaster command now uses the default MAKEOBJDIRPREFIX
1122	rather than creating it's own in the temporary directory in
1123	order allow access to bootstrapped versions of tools such as
1124	install and mtree.  When upgrading from version of FreeBSD where
1125	the install command does not support -l, you will need to
1126	install a new mergemaster command if mergemaster -p is required.
1127	This can be accomplished with the command (cd src/usr.sbin/mergemaster
1128	&& make install).
1129
113020130404:
1131	Legacy ATA stack, disabled and replaced by new CAM-based one since
1132	FreeBSD 9.0, completely removed from the sources.  Kernel modules
1133	atadisk and atapi*, user-level tools atacontrol and burncd are
1134	removed.  Kernel option `options ATA_CAM` is now permanently enabled
1135	and removed.
1136
113720130319:
1138	SOCK_CLOEXEC and SOCK_NONBLOCK flags have been added to socket(2)
1139	and socketpair(2). Software, in particular Kerberos, may
1140	automatically detect and use these during building. The resulting
1141	binaries will not work on older kernels.
1142
114320130308:
1144	CTL_DISABLE has also been added to the sparc64 GENERIC (for further
1145	information, see the respective 20130304 entry).
1146
114720130304:
1148	Recent commits to callout(9) changed the size of struct callout,
1149	so the KBI is probably heavily disturbed. Also, some functions
1150	in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced
1151	by macros. Every kernel module using it won't load, so rebuild
1152	is requested.
1153
1154	The ctl device has been re-enabled in GENERIC for i386 and amd64,
1155	but does not initialize by default (because of the new CTL_DISABLE
1156	option) to save memory.  To re-enable it, remove the CTL_DISABLE
1157	option from the kernel config file or set kern.cam.ctl.disable=0
1158	in /boot/loader.conf.
1159
116020130301:
1161	The ctl device has been disabled in GENERIC for i386 and amd64.
1162	This was done due to the extra memory being allocated at system
1163	initialisation time by the ctl driver which was only used if
1164	a CAM target device was created.  This makes a FreeBSD system
1165	unusable on 128MB or less of RAM.
1166
116720130208:
1168	A new compression method (lz4) has been merged to -HEAD.  Please
1169	refer to zpool-features(7) for more information.
1170
1171	Please refer to the "ZFS notes" section of this file for information
1172	on upgrading boot ZFS pools.
1173
117420130129:
1175	A BSD-licensed patch(1) variant has been added and is installed
1176	as bsdpatch, being the GNU version the default patch.
1177	To inverse the logic and use the BSD-licensed one as default,
1178	while having the GNU version installed as gnupatch, rebuild
1179	and install world with the WITH_BSD_PATCH knob set.
1180
118120130121:
1182	Due to the use of the new -l option to install(1) during build
1183	and install, you must take care not to directly set the INSTALL
1184	make variable in your /etc/make.conf, /etc/src.conf, or on the
1185	command line.  If you wish to use the -C flag for all installs
1186	you may be able to add INSTALL+=-C to /etc/make.conf or
1187	/etc/src.conf.
1188
118920130118:
1190	The install(1) option -M has changed meaning and now takes an
1191	argument that is a file or path to append logs to.  In the
1192	unlikely event that -M was the last option on the command line
1193	and the command line contained at least two files and a target
1194	directory the first file will have logs appended to it.  The -M
1195	option served little practical purpose in the last decade so its
1196	use is expected to be extremely rare.
1197
119820121223:
1199	After switching to Clang as the default compiler some users of ZFS
1200	on i386 systems started to experience stack overflow kernel panics.
1201	Please consider using 'options KSTACK_PAGES=4' in such configurations.
1202
120320121222:
1204	GEOM_LABEL now mangles label names read from file system metadata.
1205	Mangling affect labels containing spaces, non-printable characters,
1206	'%' or '"'. Device names in /etc/fstab and other places may need to
1207	be updated.
1208
120920121217:
1210	By default, only the 10 most recent kernel dumps will be saved.  To
1211	restore the previous behaviour (no limit on the number of kernel dumps
1212	stored in the dump directory) add the following line to /etc/rc.conf:
1213
1214		savecore_flags=""
1215
121620121201:
1217	With the addition of auditdistd(8), a new auditdistd user is now
1218	required during installworld.  "mergemaster -p" can be used to
1219	add the user prior to installworld, as documented in the handbook.
1220
122120121117:
1222	The sin6_scope_id member variable in struct sockaddr_in6 is now
1223	filled by the kernel before passing the structure to the userland via
1224	sysctl or routing socket.  This means the KAME-specific embedded scope
1225	id in sin6_addr.s6_addr[2] is always cleared in userland application.
1226	This behavior can be controlled by net.inet6.ip6.deembed_scopeid.
1227	__FreeBSD_version is bumped to 1000025.
1228
122920121105:
1230	On i386 and amd64 systems WITH_CLANG_IS_CC is now the default.
1231	This means that the world and kernel will be compiled with clang
1232	and that clang will be installed as /usr/bin/cc, /usr/bin/c++,
1233	and /usr/bin/cpp.  To disable this behavior and revert to building
1234	with gcc, compile with WITHOUT_CLANG_IS_CC. Really old versions
1235	of current may need to bootstrap WITHOUT_CLANG first if the clang
1236	build fails (its compatibility window doesn't extend to the 9 stable
1237	branch point).
1238
123920121102:
1240	The IPFIREWALL_FORWARD kernel option has been removed. Its
1241	functionality now turned on by default.
1242
124320121023:
1244	The ZERO_COPY_SOCKET kernel option has been removed and
1245	split into SOCKET_SEND_COW and SOCKET_RECV_PFLIP.
1246	NB: SOCKET_SEND_COW uses the VM page based copy-on-write
1247	mechanism which is not safe and may result in kernel crashes.
1248	NB: The SOCKET_RECV_PFLIP mechanism is useless as no current
1249	driver supports disposeable external page sized mbuf storage.
1250	Proper replacements for both zero-copy mechanisms are under
1251	consideration and will eventually lead to complete removal
1252	of the two kernel options.
1253
125420121023:
1255	The IPv4 network stack has been converted to network byte
1256	order. The following modules need to be recompiled together
1257	with kernel: carp(4), divert(4), gif(4), siftr(4), gre(4),
1258	pf(4), ipfw(4), ng_ipfw(4), stf(4).
1259
126020121022:
1261	Support for non-MPSAFE filesystems was removed from VFS. The
1262	VFS_VERSION was bumped, all filesystem modules shall be
1263	recompiled.
1264
126520121018:
1266	All the non-MPSAFE filesystems have been disconnected from
1267	the build. The full list includes: codafs, hpfs, ntfs, nwfs,
1268	portalfs, smbfs, xfs.
1269
127020121016:
1271	The interface cloning API and ABI has changed. The following
1272	modules need to be recompiled together with kernel:
1273	ipfw(4), pfsync(4), pflog(4), usb(4), wlan(4), stf(4),
1274	vlan(4), disc(4), edsc(4), if_bridge(4), gif(4), tap(4),
1275	faith(4), epair(4), enc(4), tun(4), if_lagg(4), gre(4).
1276
127720121015:
1278	The sdhci driver was split in two parts: sdhci (generic SD Host
1279	Controller logic) and sdhci_pci (actual hardware driver).
1280	No kernel config modifications are required, but if you
1281	load sdhc as a module you must switch to sdhci_pci instead.
1282
128320121014:
1284	Import the FUSE kernel and userland support into base system.
1285
128620121013:
1287	The GNU sort(1) program has been removed since the BSD-licensed
1288	sort(1) has been the default for quite some time and no serious
1289	problems have been reported.  The corresponding WITH_GNU_SORT
1290	knob has also gone.
1291
129220121006:
1293	The pfil(9) API/ABI for AF_INET family has been changed. Packet
1294	filtering modules: pf(4), ipfw(4), ipfilter(4) need to be recompiled
1295	with new kernel.
1296
129720121001:
1298	The net80211(4) ABI has been changed to allow for improved driver
1299	PS-POLL and power-save support.  All wireless drivers need to be
1300	recompiled to work with the new kernel.
1301
130220120913:
1303	The random(4) support for the VIA hardware random number
1304	generator (`PADLOCK') is no longer enabled unconditionally.
1305	Add the padlock_rng device in the custom kernel config if
1306	needed.  The GENERIC kernels on i386 and amd64 do include the
1307	device, so the change only affects the custom kernel
1308	configurations.
1309
131020120908:
1311	The pf(4) packet filter ABI has been changed. pfctl(8) and
1312	snmp_pf module need to be recompiled to work with new kernel.
1313
131420120828:
1315	A new ZFS feature flag "com.delphix:empty_bpobj" has been merged
1316	to -HEAD. Pools that have empty_bpobj in active state can not be
1317	imported read-write with ZFS implementations that do not support
1318	this feature. For more information read the zpool-features(5)
1319	manual page.
1320
132120120727:
1322	The sparc64 ZFS loader has been changed to no longer try to auto-
1323	detect ZFS providers based on diskN aliases but now requires these
1324	to be explicitly listed in the OFW boot-device environment variable.
1325
132620120712:
1327	The OpenSSL has been upgraded to 1.0.1c.  Any binaries requiring
1328	libcrypto.so.6 or libssl.so.6 must be recompiled.  Also, there are
1329	configuration changes.  Make sure to merge /etc/ssl/openssl.cnf.
1330
133120120712:
1332	The following sysctls and tunables have been renamed for consistency
1333	with other variables:
1334	  kern.cam.da.da_send_ordered   -> kern.cam.da.send_ordered
1335	  kern.cam.ada.ada_send_ordered -> kern.cam.ada.send_ordered
1336
133720120628:
1338	The sort utility has been replaced with BSD sort.  For now, GNU sort
1339	is also available as "gnusort" or the default can be set back to
1340	GNU sort by setting WITH_GNU_SORT.  In this case, BSD sort will be
1341	installed as "bsdsort".
1342
134320120611:
1344	A new version of ZFS (pool version 5000) has been merged to -HEAD.
1345	Starting with this version the old system of ZFS pool versioning
1346	is superseded by "feature flags". This concept enables forward
1347	compatibility against certain future changes in functionality of ZFS
1348	pools. The first read-only compatible "feature flag" for ZFS pools
1349	is named "com.delphix:async_destroy". For more information
1350	read the new zpool-features(5) manual page.
1351	Please refer to the "ZFS notes" section of this file for information
1352	on upgrading boot ZFS pools.
1353
135420120417:
1355	The malloc(3) implementation embedded in libc now uses sources imported
1356	as contrib/jemalloc.  The most disruptive API change is to
1357	/etc/malloc.conf.  If your system has an old-style /etc/malloc.conf,
1358	delete it prior to installworld, and optionally re-create it using the
1359	new format after rebooting.  See malloc.conf(5) for details
1360	(specifically the TUNING section and the "opt.*" entries in the MALLCTL
1361	NAMESPACE section).
1362
136320120328:
1364	Big-endian MIPS TARGET_ARCH values no longer end in "eb".  mips64eb
1365	is now spelled mips64.  mipsn32eb is now spelled mipsn32.  mipseb is
1366	now spelled mips.  This is to aid compatibility with third-party
1367	software that expects this naming scheme in uname(3).  Little-endian
1368	settings are unchanged. If you are updating a big-endian mips64 machine
1369	from before this change, you may need to set MACHINE_ARCH=mips64 in
1370	your environment before the new build system will recognize your machine.
1371
137220120306:
1373	Disable by default the option VFS_ALLOW_NONMPSAFE for all supported
1374	platforms.
1375
137620120229:
1377	Now unix domain sockets behave "as expected" on	nullfs(5). Previously
1378	nullfs(5) did not pass through all behaviours to the underlying layer,
1379	as a result if we bound to a socket on the lower layer we could connect
1380	only to the lower path; if we bound to the upper layer we could connect
1381	only to	the upper path. The new behavior is one can connect to both the
1382	lower and the upper paths regardless what layer path one binds to.
1383
138420120211:
1385	The getifaddrs upgrade path broken with 20111215 has been restored.
1386	If you have upgraded in between 20111215 and 20120209 you need to
1387	recompile libc again with your kernel.  You still need to recompile
1388	world to be able to configure CARP but this restriction already
1389	comes from 20111215.
1390
139120120114:
1392	The set_rcvar() function has been removed from /etc/rc.subr.  All
1393	base and ports rc.d scripts have been updated, so if you have a
1394	port installed with a script in /usr/local/etc/rc.d you can either
1395	hand-edit the rcvar= line, or reinstall the port.
1396
1397	An easy way to handle the mass-update of /etc/rc.d:
1398	rm /etc/rc.d/* && mergemaster -i
1399
140020120109:
1401	panic(9) now stops other CPUs in the SMP systems, disables interrupts
1402	on the current CPU and prevents other threads from running.
1403	This behavior can be reverted using the kern.stop_scheduler_on_panic
1404	tunable/sysctl.
1405	The new behavior can be incompatible with kern.sync_on_panic.
1406
140720111215:
1408	The carp(4) facility has been changed significantly. Configuration
1409	of the CARP protocol via ifconfig(8) has changed, as well as format
1410	of CARP events submitted to devd(8) has changed. See manual pages
1411	for more information. The arpbalance feature of carp(4) is currently
1412	not supported anymore.
1413
1414	Size of struct in_aliasreq, struct in6_aliasreq has changed. User
1415	utilities using SIOCAIFADDR, SIOCAIFADDR_IN6, e.g. ifconfig(8),
1416	need to be recompiled.
1417
141820111122:
1419	The acpi_wmi(4) status device /dev/wmistat has been renamed to
1420	/dev/wmistat0.
1421
142220111108:
1423	The option VFS_ALLOW_NONMPSAFE option has been added in order to
1424	explicitely support non-MPSAFE filesystems.
1425	It is on by default for all supported platform at this present
1426	time.
1427
142820111101:
1429	The broken amd(4) driver has been replaced with esp(4) in the amd64,
1430	i386 and pc98 GENERIC kernel configuration files.
1431
143220110930:
1433	sysinstall has been removed
1434
143520110923:
1436	The stable/9 branch created in subversion.  This corresponds to the
1437	RELENG_9 branch in CVS.
1438
1439COMMON ITEMS:
1440
1441	General Notes
1442	-------------
1443	Avoid using make -j when upgrading.  While generally safe, there are
1444	sometimes problems using -j to upgrade.  If your upgrade fails with
1445	-j, please try again without -j.  From time to time in the past there
1446	have been problems using -j with buildworld and/or installworld.  This
1447	is especially true when upgrading between "distant" versions (eg one
1448	that cross a major release boundary or several minor releases, or when
1449	several months have passed on the -current branch).
1450
1451	Sometimes, obscure build problems are the result of environment
1452	poisoning.  This can happen because the make utility reads its
1453	environment when searching for values for global variables.  To run
1454	your build attempts in an "environmental clean room", prefix all make
1455	commands with 'env -i '.  See the env(1) manual page for more details.
1456
1457	When upgrading from one major version to another it is generally best
1458	to upgrade to the latest code in the currently installed branch first,
1459	then do an upgrade to the new branch. This is the best-tested upgrade
1460	path, and has the highest probability of being successful.  Please try
1461	this approach before reporting problems with a major version upgrade.
1462
1463	When upgrading a live system, having a root shell around before
1464	installing anything can help undo problems. Not having a root shell
1465	around can lead to problems if pam has changed too much from your
1466	starting point to allow continued authentication after the upgrade.
1467
1468	This file should be read as a log of events. When a later event changes
1469	information of a prior event, the prior event should not be deleted.
1470	Instead, a pointer to the entry with the new information should be
1471	placed in the old entry. Readers of this file should also sanity check
1472	older entries before relying on them blindly. Authors of new entries
1473	should write them with this in mind.
1474
1475	ZFS notes
1476	---------
1477	When upgrading the boot ZFS pool to a new version, always follow
1478	these two steps:
1479
1480	1.) recompile and reinstall the ZFS boot loader and boot block
1481	(this is part of "make buildworld" and "make installworld")
1482
1483	2.) update the ZFS boot block on your boot drive
1484
1485	The following example updates the ZFS boot block on the first
1486	partition (freebsd-boot) of a GPT partitioned drive ada0:
1487	"gpart bootcode -p /boot/gptzfsboot -i 1 ada0"
1488
1489	Non-boot pools do not need these updates.
1490
1491	To build a kernel
1492	-----------------
1493	If you are updating from a prior version of FreeBSD (even one just
1494	a few days old), you should follow this procedure.  It is the most
1495	failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1496
1497	make kernel-toolchain
1498	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1499	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1500
1501	To test a kernel once
1502	---------------------
1503	If you just want to boot a kernel once (because you are not sure
1504	if it works, or if you want to boot a known bad kernel to provide
1505	debugging information) run
1506	make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1507	nextboot -k testkernel
1508
1509	To just build a kernel when you know that it won't mess you up
1510	--------------------------------------------------------------
1511	This assumes you are already running a CURRENT system.  Replace
1512	${arch} with the architecture of your machine (e.g. "i386",
1513	"arm", "amd64", "ia64", "pc98", "sparc64", "powerpc", "mips", etc).
1514
1515	cd src/sys/${arch}/conf
1516	config KERNEL_NAME_HERE
1517	cd ../compile/KERNEL_NAME_HERE
1518	make depend
1519	make
1520	make install
1521
1522	If this fails, go to the "To build a kernel" section.
1523
1524	To rebuild everything and install it on the current system.
1525	-----------------------------------------------------------
1526	# Note: sometimes if you are running current you gotta do more than
1527	# is listed here if you are upgrading from a really old current.
1528
1529	<make sure you have good level 0 dumps>
1530	make buildworld
1531	make kernel KERNCONF=YOUR_KERNEL_HERE
1532							[1]
1533	<reboot in single user>				[3]
1534	mergemaster -Fp					[5]
1535	make installworld
1536	mergemaster -Fi					[4]
1537	make delete-old					[6]
1538	<reboot>
1539
1540	To cross-install current onto a separate partition
1541	--------------------------------------------------
1542	# In this approach we use a separate partition to hold
1543	# current's root, 'usr', and 'var' directories.   A partition
1544	# holding "/", "/usr" and "/var" should be about 2GB in
1545	# size.
1546
1547	<make sure you have good level 0 dumps>
1548	<boot into -stable>
1549	make buildworld
1550	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1551	<maybe newfs current's root partition>
1552	<mount current's root partition on directory ${CURRENT_ROOT}>
1553	make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC
1554	make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1555	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1556	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
1557	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1558	<reboot into current>
1559	<do a "native" rebuild/install as described in the previous section>
1560	<maybe install compatibility libraries from ports/misc/compat*>
1561	<reboot>
1562
1563
1564	To upgrade in-place from stable to current
1565	----------------------------------------------
1566	<make sure you have good level 0 dumps>
1567	make buildworld					[9]
1568	make kernel KERNCONF=YOUR_KERNEL_HERE		[8]
1569							[1]
1570	<reboot in single user>				[3]
1571	mergemaster -Fp					[5]
1572	make installworld
1573	mergemaster -Fi					[4]
1574	make delete-old					[6]
1575	<reboot>
1576
1577	Make sure that you've read the UPDATING file to understand the
1578	tweaks to various things you need.  At this point in the life
1579	cycle of current, things change often and you are on your own
1580	to cope.  The defaults can also change, so please read ALL of
1581	the UPDATING entries.
1582
1583	Also, if you are tracking -current, you must be subscribed to
1584	freebsd-current@freebsd.org.  Make sure that before you update
1585	your sources that you have read and understood all the recent
1586	messages there.  If in doubt, please track -stable which has
1587	much fewer pitfalls.
1588
1589	[1] If you have third party modules, such as vmware, you
1590	should disable them at this point so they don't crash your
1591	system on reboot.
1592
1593	[3] From the bootblocks, boot -s, and then do
1594		fsck -p
1595		mount -u /
1596		mount -a
1597		cd src
1598		adjkerntz -i		# if CMOS is wall time
1599	Also, when doing a major release upgrade, it is required that
1600	you boot into single user mode to do the installworld.
1601
1602	[4] Note: This step is non-optional.  Failure to do this step
1603	can result in a significant reduction in the functionality of the
1604	system.  Attempting to do it by hand is not recommended and those
1605	that pursue this avenue should read this file carefully, as well
1606	as the archives of freebsd-current and freebsd-hackers mailing lists
1607	for potential gotchas.  The -U option is also useful to consider.
1608	See mergemaster(8) for more information.
1609
1610	[5] Usually this step is a noop.  However, from time to time
1611	you may need to do this if you get unknown user in the following
1612	step.  It never hurts to do it all the time.  You may need to
1613	install a new mergemaster (cd src/usr.sbin/mergemaster && make
1614	install) after the buildworld before this step if you last updated
1615	from current before 20130425 or from -stable before 20130430.
1616
1617	[6] This only deletes old files and directories. Old libraries
1618	can be deleted by "make delete-old-libs", but you have to make
1619	sure that no program is using those libraries anymore.
1620
1621	[8] In order to have a kernel that can run the 4.x binaries needed to
1622	do an installworld, you must include the COMPAT_FREEBSD4 option in
1623	your kernel.  Failure to do so may leave you with a system that is
1624	hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is
1625	required to run the 5.x binaries on more recent kernels.  And so on
1626	for COMPAT_FREEBSD6 and COMPAT_FREEBSD7.
1627
1628	Make sure that you merge any new devices from GENERIC since the
1629	last time you updated your kernel config file.
1630
1631	[9] When checking out sources, you must include the -P flag to have
1632	cvs prune empty directories.
1633
1634	If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1635	"?=" instead of the "=" assignment operator, so that buildworld can
1636	override the CPUTYPE if it needs to.
1637
1638	MAKEOBJDIRPREFIX must be defined in an environment variable, and
1639	not on the command line, or in /etc/make.conf.  buildworld will
1640	warn if it is improperly defined.
1641FORMAT:
1642
1643This file contains a list, in reverse chronological order, of major
1644breakages in tracking -current.  It is not guaranteed to be a complete
1645list of such breakages, and only contains entries since September 23, 2011.
1646If you need to see UPDATING entries from before that date, you will need
1647to fetch an UPDATING file from an older FreeBSD release.
1648
1649Copyright information:
1650
1651Copyright 1998-2009 M. Warner Losh.  All Rights Reserved.
1652
1653Redistribution, publication, translation and use, with or without
1654modification, in full or in part, in any form or format of this
1655document are permitted without further permission from the author.
1656
1657THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1658IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1659WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1660DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1661INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1662(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1663SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1664HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1665STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1666IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1667POSSIBILITY OF SUCH DAMAGE.
1668
1669Contact Warner Losh if you have any questions about your use of
1670this document.
1671
1672$FreeBSD: releng/11.0/UPDATING 316722 2017-04-12 06:24:35Z delphij $
1673