UPDATING revision 249219
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 TO PEOPLE WHO THINK THAT FreeBSD 10.x IS SLOW:
15	FreeBSD 10.x has many debugging features turned on, in both the kernel
16	and userland.  These features attempt to detect incorrect use of
17	system primitives, and encourage loud failure through extra sanity
18	checking and fail stop semantics.  They also substantially impact
19	system performance.  If you want to do performance measurement,
20	benchmarking, and optimization, you'll want to turn them off.  This
21	includes various WITNESS- related kernel options, INVARIANTS, malloc
22	debugging flags in userland, and various verbose features in the
23	kernel.  Many developers choose to disable these features on build
24	machines to maximize performance.  (To completely disable malloc
25	debugging, define MALLOC_PRODUCTION in /etc/make.conf, or to merely
26	disable the most expensive debugging functionality run
27	"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
28
2920130404:
30	Legacy ATA stack, disabled and replaced by new CAM-based one since
31	FreeBSD 9.0, completely removed from the sources.  Kernel modules
32	atadisk and atapi*, user-level tools atacontrol and burncd are
33	removed.  Kernel option `options ATA_CAM` is now permanently enabled
34	and removed.
35
3620130319:
37	SOCK_CLOEXEC and SOCK_NONBLOCK flags have been added to socket(2)
38	and socketpair(2). Software, in particular Kerberos, may
39	automatically detect and use these during building. The resulting
40	binaries will not work on older kernels.
41
4220130308:
43	CTL_DISABLE has also been added to the sparc64 GENERIC (for further
44	information, see the respective 20130304 entry).
45
4620130304:
47	Recent commits to callout(9) changed the size of struct callout,
48	so the KBI is probably heavily disturbed. Also, some functions
49	in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced
50	by macros. Every kernel module using it won't load, so rebuild
51	is requested.
52
53	The ctl device has been re-enabled in GENERIC for i386 and amd64,
54	but does not initialize by default (because of the new CTL_DISABLE
55	option) to save memory.  To re-enable it, remove the CTL_DISABLE
56	option from the kernel config file or set kern.cam.ctl.disable=0
57	in /boot/loader.conf.
58
5920130301:
60	The ctl device has been disabled in GENERIC for i386 and amd64.
61	This was done due to the extra memory being allocated at system
62	initialisation time by the ctl driver which was only used if
63	a CAM target device was created.  This makes a FreeBSD system
64	unusable on 128MB or less of RAM.
65
6620130208:
67	A new compression method (lz4) has been merged to -HEAD.  Please
68	refer to zpool-features(7) for more information.
69
70	Please refer to the "ZFS notes" section of this file for information
71	on upgrading boot ZFS pools.
72
7320130129:
74	A BSD-licensed patch(1) variant has been added and is installed
75	as bsdpatch, being the GNU version the default patch.
76	To inverse the logic and use the BSD-licensed one as default,
77	while having the GNU version installed as gnupatch, rebuild
78	and install world with the WITH_BSD_PATCH knob set.
79
8020130118:
81	The install(1) option -M has changed meaning and now takes an
82	argument that is a file or path to append logs to.  In the
83	unlikely event that -M was the last option on the command line
84	and the command line contained at least two files and a target
85	directory the first file will have logs appended to it.  The -M
86	option served little practical purpose in the last decade so its
87	use is expected to be extremely rare.
88
8920121223:
90	After switching to Clang as the default compiler some users of ZFS
91	on i386 systems started to experience stack overflow kernel panics.
92	Please consider using 'options KSTACK_PAGES=4' in such configurations.
93
9420121222:
95	GEOM_LABEL now mangles label names read from file system metadata.
96	Mangling affect labels containing spaces, non-printable characters,
97	'%' or '"'. Device names in /etc/fstab and other places may need to
98	be updated.
99
10020121217:
101	By default, only the 10 most recent kernel dumps will be saved.  To
102	restore the previous behaviour (no limit on the number of kernel dumps
103	stored in the dump directory) add the following line to /etc/rc.conf:
104
105		savecore_flags=""
106
10720121201:
108	With the addition of auditdistd(8), a new auditdistd user is now
109	depended on during installworld.  "mergemaster -p" can be used to add
110	the user prior to installworld, as documented in the handbook.
111
11220121117:
113	The sin6_scope_id member variable in struct sockaddr_in6 is now
114	filled by the kernel before passing the structure to the userland via
115	sysctl or routing socket.  This means the KAME-specific embedded scope
116	id in sin6_addr.s6_addr[2] is always cleared in userland application.
117	This behavior can be controlled by net.inet6.ip6.deembed_scopeid.
118	__FreeBSD_version is bumped to 1000025.
119
12020121105:
121	On i386 and amd64 systems WITH_CLANG_IS_CC is now the default.
122	This means that the world and kernel will be compiled with clang
123	and that clang will be installed as /usr/bin/cc, /usr/bin/c++,
124	and /usr/bin/cpp.  To disable this behavior and revert to building
125	with gcc, compile with WITHOUT_CLANG_IS_CC.
126
12720121102:
128	The IPFIREWALL_FORWARD kernel option has been removed. Its
129	functionality now turned on by default.
130
13120121023:
132	The ZERO_COPY_SOCKET kernel option has been removed and
133	split into SOCKET_SEND_COW and SOCKET_RECV_PFLIP.
134	NB: SOCKET_SEND_COW uses the VM page based copy-on-write
135	mechanism which is not safe and may result in kernel crashes.
136	NB: The SOCKET_RECV_PFLIP mechanism is useless as no current
137	driver supports disposeable external page sized mbuf storage.
138	Proper replacements for both zero-copy mechanisms are under
139	consideration and will eventually lead to complete removal
140	of the two kernel options.
141
14220121023:
143	The IPv4 network stack has been converted to network byte
144	order. The following modules need to be recompiled together
145	with kernel: carp(4), divert(4), gif(4), siftr(4), gre(4),
146	pf(4), ipfw(4), ng_ipfw(4), stf(4).
147
14820121022:
149	Support for non-MPSAFE filesystems was removed from VFS. The
150	VFS_VERSION was bumped, all filesystem modules shall be
151	recompiled.
152
15320121018:
154	All the non-MPSAFE filesystems have been disconnected from
155	the build. The full list includes: codafs, hpfs, ntfs, nwfs,
156	portalfs, smbfs, xfs.
157
15820121016:
159	The interface cloning API and ABI has changed. The following
160	modules need to be recompiled together with kernel:
161	ipfw(4), pfsync(4), pflog(4), usb(4), wlan(4), stf(4),
162	vlan(4), disc(4), edsc(4), if_bridge(4), gif(4), tap(4),
163	faith(4), epair(4), enc(4), tun(4), if_lagg(4), gre(4).
164
16520121015:
166	The sdhci driver was split in two parts: sdhci (generic SD Host
167	Controller logic) and sdhci_pci (actual hardware driver).
168	No kernel config modifications are required, but if you
169	load sdhc as a module you must switch to sdhci_pci instead.
170
17120121014:
172	Import the FUSE kernel and userland support into base system.
173
17420121013:
175	The GNU sort(1) program has been removed since the BSD-licensed
176	sort(1) has been the default for quite some time and no serious
177	problems have been reported.  The corresponding WITH_GNU_SORT
178	knob has also gone.
179
18020121006:
181	The pfil(9) API/ABI for AF_INET family has been changed. Packet
182	filtering modules: pf(4), ipfw(4), ipfilter(4) need to be recompiled
183	with new kernel.
184
18520121001:
186	The net80211(4) ABI has been changed to allow for improved driver
187	PS-POLL and power-save support.  All wireless drivers need to be
188	recompiled to work with the new kernel.
189
19020120913:
191	The random(4) support for the VIA hardware random number
192	generator (`PADLOCK') is no longer enabled unconditionally.
193	Add the PADLOCK_RNG option in the custom kernel config if
194	needed.  The GENERIC kernels on i386 and amd64 do include the
195	option, so the change only affects the custom kernel
196	configurations.
197
19820120908:
199	The pf(4) packet filter ABI has been changed. pfctl(8) and
200	snmp_pf module need to be recompiled to work with new kernel.
201
20220120828:
203	A new ZFS feature flag "com.delphix:empty_bpobj" has been merged
204	to -HEAD. Pools that have empty_bpobj in active state can not be
205	imported read-write with ZFS implementations that do not support
206	this feature. For more information read the zpool-features(5)
207	manual page.
208
20920120727:
210	The sparc64 ZFS loader has been changed to no longer try to auto-
211	detect ZFS providers based on diskN aliases but now requires these
212	to be explicitly listed in the OFW boot-device environment variable. 
213
21420120712:
215	The OpenSSL has been upgraded to 1.0.1c.  Any binaries requiring
216	libcrypto.so.6 or libssl.so.6 must be recompiled.  Also, there are
217	configuration changes.  Make sure to merge /etc/ssl/openssl.cnf.
218
21920120712:
220	The following sysctls and tunables have been renamed for consistency
221	with other variables:
222	  kern.cam.da.da_send_ordered   -> kern.cam.da.send_ordered
223	  kern.cam.ada.ada_send_ordered -> kern.cam.ada.send_ordered
224
22520120628:
226	The sort utility has been replaced with BSD sort.  For now, GNU sort
227	is also available as "gnusort" or the default can be set back to
228	GNU sort by setting WITH_GNU_SORT.  In this case, BSD sort will be
229	installed as "bsdsort".
230
23120120611:
232	A new version of ZFS (pool version 5000) has been merged to -HEAD.
233	Starting with this version the old system of ZFS pool versioning
234	is superseded by "feature flags". This concept enables forward
235	compatibility against certain future changes in functionality of ZFS
236	pools. The first read-only compatible "feature flag" for ZFS pools
237	is named "com.delphix:async_destroy". For more information
238	read the new zpool-features(5) manual page.
239	Please refer to the "ZFS notes" section of this file for information
240	on upgrading boot ZFS pools.
241
24220120417:
243	The malloc(3) implementation embedded in libc now uses sources imported
244	as contrib/jemalloc.  The most disruptive API change is to
245	/etc/malloc.conf.  If your system has an old-style /etc/malloc.conf,
246	delete it prior to installworld, and optionally re-create it using the
247	new format after rebooting.  See malloc.conf(5) for details
248	(specifically the TUNING section and the "opt.*" entries in the MALLCTL
249	NAMESPACE section).
250
25120120328:
252	Big-endian MIPS TARGET_ARCH values no longer end in "eb".  mips64eb
253	is now spelled mips64.  mipsn32eb is now spelled mipsn32.  mipseb is
254	now spelled mips.  This is to aid compatibility with third-party
255	software that expects this naming scheme in uname(3).  Little-endian
256	settings are unchanged.
257
25820120306:
259	Disable by default the option VFS_ALLOW_NONMPSAFE for all supported
260	platforms.
261
26220120229:
263	Now unix domain sockets behave "as expected" on	nullfs(5). Previously
264	nullfs(5) did not pass through all behaviours to the underlying layer,
265	as a result if we bound to a socket on the lower layer we could connect
266	only to the lower path; if we bound to the upper layer we could connect
267	only to	the upper path. The new behavior is one can connect to both the
268	lower and the upper paths regardless what layer path one binds to.
269
27020120211:
271	The getifaddrs upgrade path broken with 20111215 has been restored.
272	If you have upgraded in between 20111215 and 20120209 you need to
273	recompile libc again with your kernel.  You still need to recompile
274	world to be able to configure CARP but this restriction already
275	comes from 20111215.
276
27720120114:
278	The set_rcvar() function has been removed from /etc/rc.subr.  All
279	base and ports rc.d scripts have been updated, so if you have a
280	port installed with a script in /usr/local/etc/rc.d you can either
281	hand-edit the rcvar= line, or reinstall the port.
282
283	An easy way to handle the mass-update of /etc/rc.d:
284	rm /etc/rc.d/* && mergemaster -i
285
28620120109:
287	panic(9) now stops other CPUs in the SMP systems, disables interrupts
288	on the current CPU and prevents other threads from running.
289	This behavior can be reverted using the kern.stop_scheduler_on_panic
290	tunable/sysctl.
291	The new behavior can be incompatible with kern.sync_on_panic.
292
29320111215:
294	The carp(4) facility has been changed significantly. Configuration
295	of the CARP protocol via ifconfig(8) has changed, as well as format
296	of CARP events submitted to devd(8) has changed. See manual pages
297	for more information. The arpbalance feature of carp(4) is currently
298	not supported anymore.
299
300	Size of struct in_aliasreq, struct in6_aliasreq has changed. User
301	utilities using SIOCAIFADDR, SIOCAIFADDR_IN6, e.g. ifconfig(8),
302	need to be recompiled.
303
30420111122:
305	The acpi_wmi(4) status device /dev/wmistat has been renamed to
306	/dev/wmistat0.
307
30820111108:
309	The option VFS_ALLOW_NONMPSAFE option has been added in order to
310	explicitely support non-MPSAFE filesystems.
311	It is on by default for all supported platform at this present
312	time.
313
31420111101:
315	The broken amd(4) driver has been replaced with esp(4) in the amd64,
316	i386 and pc98 GENERIC kernel configuration files.
317
31820110930:
319	sysinstall has been removed
320
32120110923:
322	The stable/9 branch created in subversion.  This corresponds to the
323	RELENG_9 branch in CVS.
324
32520110913:
326	This commit modifies vfs_register() so that it uses a hash
327	calculation to set vfc_typenum, which is enabled by default.
328	The first time a system is booted after this change, the
329	vfc_typenum values will change for all file systems. The
330	main effect of this is a change to the NFS server file handles
331	for file systems that use vfc_typenum in their fsid, such as ZFS.
332	It will, however, prevent vfc_typenum from changing when file
333	systems are loaded in a different order for subsequent reboots.
334	To disable this, you can set vfs.typenumhash=0 in /boot/loader.conf
335	until you are ready to remount all NFS clients after a reboot.
336
33720110828:
338	Bump the shared library version numbers for libraries that
339	do not use symbol versioning, have changed the ABI compared
340	to stable/8 and which shared library version was not bumped.
341	Done as part of 9.0-RELEASE cycle.
342
34320110815:
344	During the merge of Capsicum features, the fget(9) KPI was modified.
345	This may require the rebuilding of out-of-tree device drivers --
346	issues have been reported specifically with the nVidia device driver.
347	__FreeBSD_version is bumped to 900041.
348
349	Also, there is a period between 20110811 and 20110814 where the
350	special devices /dev/{stdin,stdout,stderr} did not work correctly.
351	Building world from a kernel during that window may not work.
352
35320110628:
354	The packet filter (pf) code has been updated to OpenBSD 4.5.
355	You need to update userland tools to be in sync with kernel.
356	This update breaks backward compatibility with earlier pfsync(4)
357	versions.  Care must be taken when updating redundant firewall setups.
358
35920110608:
360	The following sysctls and tunables are retired on x86 platforms:
361		machdep.hlt_cpus
362		machdep.hlt_logical_cpus
363	The following sysctl is retired:
364		machdep.hyperthreading_allowed
365	The sysctls were supposed to provide a way to dynamically offline and
366	online selected CPUs on x86 platforms, but the implementation has not
367	been reliable especially with SCHED_ULE scheduler.
368	machdep.hyperthreading_allowed tunable is still available to ignore
369	hyperthreading CPUs at OS level.
370	Individual CPUs can be disabled using hint.lapic.X.disabled tunable,
371	where X is an APIC ID of a CPU.  Be advised, though, that disabling
372	CPUs in non-uniform fashion will result in non-uniform topology and
373	may lead to sub-optimal system performance with SCHED_ULE, which is
374	a default scheduler.
375
37620110607:
377	cpumask_t type is retired and cpuset_t is used in order to describe
378	a mask of CPUs.
379
38020110531:
381	Changes to ifconfig(8) for dynamic address family detection mandate
382	that you are running a kernel of 20110525 or later.  Make sure to
383	follow the update procedure to boot a new kernel before installing
384	world.
385
38620110513:
387	Support for sun4v architecture is officially dropped
388
38920110503:
390	Several KPI breaking changes have been committed to the mii(4) layer,
391	the PHY drivers and consequently some Ethernet drivers using mii(4).
392	This means that miibus.ko and the modules of the affected Ethernet
393	drivers need to be recompiled.
394
395	Note to kernel developers: Given that the OUI bit reversion problem
396	was fixed as part of these changes all mii(4) commits related to OUIs,
397	i.e. to sys/dev/mii/miidevs, PHY driver probing and vendor specific
398	handling, no longer can be merged verbatim to stable/8 and previous
399	branches.
400
40120110430:
402	Users of the Atheros AR71xx SoC code now need to add 'device ar71xx_pci'
403	into their kernel configurations along with 'device pci'.
404
40520110427:
406	The default NFS client is now the new NFS client, so fstype "newnfs"
407	is now "nfs" and the regular/old NFS client is now fstype "oldnfs".
408	Although mounts via fstype "nfs" will usually work without userland
409	changes, it is recommended that the mount(8) and mount_nfs(8)
410	commands be rebuilt from sources and that a link to mount_nfs called
411	mount_oldnfs be created. The new client is compiled into the
412	kernel with "options NFSCL" and this is needed for diskless root
413	file systems. The GENERIC kernel configs have been changed to use
414	NFSCL and NFSD (the new server) instead of NFSCLIENT and NFSSERVER.
415	To use the regular/old client, you can "mount -t oldnfs ...". For
416	a diskless root file system, you must also include a line like:
417	
418	vfs.root.mountfrom="oldnfs:"
419
420	in the boot/loader.conf on the root fs on the NFS server to make
421	a diskless root fs use the old client.
422
42320110424:
424	The GENERIC kernels for all architectures now default to the new
425	CAM-based ATA stack. It means that all legacy ATA drivers were
426	removed and replaced by respective CAM drivers. If you are using
427	ATA device names in /etc/fstab or other places, make sure to update
428	them respectively (adX -> adaY, acdX -> cdY, afdX -> daY, astX -> saY,
429	where 'Y's are the sequential numbers starting from zero for each type
430	in order of detection, unless configured otherwise with tunables,
431	see cam(4)). There will be symbolic links created in /dev/ to map
432	old adX devices to the respective adaY. They should provide basic
433	compatibility for file systems mounting in most cases, but they do
434	not support old user-level APIs and do not have respective providers
435	in GEOM. Consider using updated management tools with new device names.
436
437	It is possible to load devices ahci, ata, siis and mvs as modules,
438	but option ATA_CAM should remain in kernel configuration to make ata
439	module work as CAM driver supporting legacy ATA controllers. Device ata
440	still can be used in modular fashion (atacore + ...). Modules atadisk
441	and atapi* are not used and won't affect operation in ATA_CAM mode.
442	Note that to use CAM-based ATA kernel should include CAM devices
443	scbus, pass, da (or explicitly ada), cd and optionally others. All of
444	them are parts of the cam module.
445
446	ataraid(4) functionality is now supported by the RAID GEOM class.
447	To use it you can load geom_raid kernel module and use graid(8) tool
448	for management. Instead of /dev/arX device names, use /dev/raid/rX.
449
450	No kernel config options or code have been removed, so if a problem
451	arises, please report it and optionally revert to the old ATA stack.
452	In order to do it you can remove from the kernel config:
453	    options        ATA_CAM
454	    device         ahci
455	    device         mvs
456	    device         siis
457	, and instead add back:
458	    device         atadisk         # ATA disk drives
459	    device         ataraid         # ATA RAID drives
460	    device         atapicd         # ATAPI CDROM drives
461	    device         atapifd         # ATAPI floppy drives
462	    device         atapist         # ATAPI tape drives
463
46420110423:
465	The default NFS server has been changed to the new server, which
466	was referred to as the experimental server. If you need to switch
467	back to the old NFS server, you must now put the "-o" option on
468	both the mountd and nfsd commands. This can be done using the
469	mountd_flags and nfs_server_flags rc.conf variables until an
470	update to the rc scripts is committed, which is coming soon.
471
47220110418:
473	The GNU Objective-C runtime library (libobjc), and other Objective-C
474	related components have been removed from the base system.  If you
475	require an Objective-C library, please use one of the available ports.
476
47720110331:
478	ath(4) has been split into bus- and device- modules. if_ath contains
479	the HAL, the TX rate control and the network device code. if_ath_pci
480	contains the PCI bus glue. For Atheros MIPS embedded systems, if_ath_ahb
481	contains the AHB glue. Users need to load both if_ath_pci and if_ath
482	in order to use ath on everything else.
483
484	TO REPEAT: if_ath_ahb is not needed for normal users. Normal users only
485	need to load if_ath and if_ath_pci for ath(4) operation.
486
48720110314:
488	As part of the replacement of sysinstall, the process of building
489	release media has changed significantly. For details, please re-read
490	release(7), which has been updated to reflect the new build process.
491
49220110218:
493	GNU binutils 2.17.50 (as of 2007-07-03) has been merged to -HEAD.  This
494	is the last available version under GPLv2.  It brings a number of new
495	features, such as support for newer x86 CPU's (with SSE-3, SSSE-3, SSE
496	4.1 and SSE 4.2), better support for powerpc64, a number of new
497	directives, and lots of other small improvements.  See the ChangeLog
498	file in contrib/binutils for the full details.
499
50020110218:
501	IPsec's HMAC_SHA256-512 support has been fixed to be RFC4868
502	compliant, and will now use half of hash for authentication.
503	This will break interoperability with all stacks (including all
504	actual FreeBSD versions) who implement
505	draft-ietf-ipsec-ciph-sha-256-00 (they use 96 bits of hash for
506	authentication).
507	The only workaround with such peers is to use another HMAC
508	algorithm for IPsec ("phase 2") authentication.
509
51020110207:
511	Remove the uio_yield prototype and symbol.  This function has
512	been misnamed since it was introduced and should not be
513	globally exposed with this name.  The equivalent functionality
514	is now available using kern_yield(curthread->td_user_pri).
515	The function remains undocumented.
516
51720110112:
518	A SYSCTL_[ADD_]UQUAD was added for unsigned uint64_t pointers,
519	symmetric with the existing SYSCTL_[ADD_]QUAD.  Type checking
520	for scalar sysctls is defined but disabled.  Code that needs
521	UQUAD to pass the type checking that must compile on older
522	systems where the define is not present can check against
523	__FreeBSD_version >= 900030.
524
525	The system dialog(1) has been replaced with a new version previously
526	in ports as devel/cdialog. dialog(1) is mostly command-line compatible
527	with the previous version, but the libdialog associated with it has
528	a largely incompatible API. As such, the original version of libdialog
529	will be kept temporarily as libodialog, until its base system consumers
530	are replaced or updated. Bump __FreeBSD_version to 900030.
531
53220110103:
533	If you are trying to run make universe on a -stable system, and you get
534	the following warning:
535	"Makefile", line 356: "Target architecture for i386/conf/GENERIC 
536	unknown.  config(8) likely too old."
537	or something similar to it, then you must upgrade your -stable system
538	to 8.2-Release or newer (really, any time after r210146 7/15/2010 in
539	stable/8) or build the config from the latest stable/8 branch and
540	install it on your system.
541
542	Prior to this date, building a current universe on 8-stable system from
543	between 7/15/2010 and 1/2/2011 would result in a weird shell parsing
544	error in the first kernel build phase.  A new config on those old 
545	systems will fix that problem for older versions of -current.
546
54720101228:
548	The TCP stack has been modified to allow Khelp modules to interact with
549	it via helper hook points and store per-connection data in the TCP
550	control block. Bump __FreeBSD_version to 900029. User space tools that
551	rely on the size of struct tcpcb in tcp_var.h (e.g. sockstat) need to
552	be recompiled.
553
55420101114:
555	Generic IEEE 802.3 annex 31B full duplex flow control support has been
556	added to mii(4) and bge(4), bce(4), msk(4), nfe(4) and stge(4) along
557	with brgphy(4), e1000phy(4) as well as ip1000phy() have been converted
558	to take advantage of it instead of using custom implementations.  This
559	means that these drivers now no longer unconditionally advertise
560	support for flow control but only do so if flow control is a selected
561	media option.  This was implemented in the generic support that way in
562	order to allow flow control to be switched on and off via ifconfig(8)
563	with the PHY specific default to typically off in order to protect
564	from unwanted effects.  Consequently, if you used flow control with
565	one of the above mentioned drivers you now need to explicitly enable
566	it, for example via:
567		ifconfig bge0 media auto mediaopt flowcontrol
568
569	Along with the above mentioned changes generic support for setting
570	1000baseT master mode also has been added and brgphy(4), ciphy(4),
571	e1000phy(4) as well as ip1000phy(4) have been converted to take
572	advantage of it.  This means that these drivers now no longer take the
573	link0 parameter for selecting master mode but the master media option
574	has to be used instead, for example like in the following:
575		ifconfig bge0 media 1000baseT mediaopt full-duplex,master
576
577	Selection of master mode now is also available with all other PHY
578	drivers supporting 1000baseT.
579
58020101111:
581	The TCP stack has received a significant update to add support for
582	modularised congestion control and generally improve the clarity of
583	congestion control decisions. Bump __FreeBSD_version to 900025. User
584	space tools that rely on the size of struct tcpcb in tcp_var.h (e.g.
585	sockstat) need to be recompiled.
586
58720101002:
588	The man(1) utility has been replaced by a new version that no longer
589	uses /etc/manpath.config. Please consult man.conf(5) for how to
590	migrate local entries to the new format.
591
59220100928:
593	The copyright strings printed by login(1) and sshd(8) at the time of a
594	new connection have been removed to follow other operating systems and
595	upstream sshd.
596
59720100915:
598	A workaround for a fixed ld bug has been removed in kernel code,
599	so make sure that your system ld is built from sources after
600	revision 210245 from 2010-07-19 (r211583 if building head kernel
601	on stable/8, r211584 for stable/7; both from 2010-08-21).
602	A symptom of incorrect ld version is different addresses for
603	set_pcpu section and __start_set_pcpu symbol in kernel and/or modules.
604
60520100913:
606	The $ipv6_prefer variable in rc.conf(5) has been split into
607	$ip6addrctl_policy and $ipv6_activate_all_interfaces.
608
609	The $ip6addrctl_policy is a variable to choose a pre-defined
610	address selection policy set by ip6addrctl(8).  A value
611	"ipv4_prefer", "ipv6_prefer" or "AUTO" can be specified.  The
612	default is "AUTO".
613
614	The $ipv6_activate_all_interfaces specifies whether IFDISABLED
615	flag (see an entry of 20090926) is set on an interface with no
616	corresponding $ifconfig_IF_ipv6 line.  The default is "NO" for
617	security reason.  If you want IPv6 link-local address on all
618	interfaces by default, set this to "YES".
619
620	The old ipv6_prefer="YES" is equivalent to
621	ipv6_activate_all_interfaces="YES" and
622	ip6addrctl_policy="ipv6_prefer".
623
62420100913:
625	DTrace has grown support for userland tracing. Due to this, DTrace is
626	now i386 and amd64 only.
627	dtruss(1) is now installed by default on those systems and a new
628	kernel module is needed for userland tracing: fasttrap.
629	No changes to your kernel config file are necessary to enable
630	userland tracing, but you might consider adding 'STRIP=' and
631	'CFLAGS+=-fno-omit-frame-pointer' to your make.conf if you want
632	to have informative userland stack traces in DTrace (ustack).
633
63420100725:
635	The acpi_aiboost(4) driver has been removed in favor of the new
636	aibs(4) driver. You should update your kernel configuration file.
637
63820100722:
639	BSD grep has been imported to the base system and it is built by
640	default.  It is completely BSD licensed, highly GNU-compatible, uses
641	less memory than its GNU counterpart and has a small codebase.
642	However, it is slower than its GNU counterpart, which is mostly
643	noticeable for larger searches, for smaller ones it is measurable
644	but not significant.  The reason is complex, the most important factor
645	is that we lack a modern and efficient regex library and GNU
646	overcomes this by optimizing the searches internally.  Future work
647	on improving the regex performance is planned, for the meantime,
648	users that need better performance, can build GNU grep instead by
649	setting the WITH_GNU_GREP knob.
650
65120100713:
652	Due to the import of powerpc64 support, all existing powerpc kernel
653	configuration files must be updated with a machine directive like this:
654	    machine powerpc powerpc
655
656	In addition, an updated config(8) is required to build powerpc kernels
657	after this change.
658
65920100713:
660	A new version of ZFS (version 15) has been merged to -HEAD.
661	This version uses a python library for the following subcommands:
662	zfs allow, zfs unallow, zfs groupspace, zfs userspace.
663	For full functionality of these commands the following port must
664	be installed: sysutils/py-zfs
665
66620100429:
667	'vm_page's are now hashed by physical address to an array of mutexes.
668	Currently this is only used to serialize access to hold_count. Over 
669	time the page queue mutex will be peeled away. This changes the size
670	of pmap on every architecture. And requires all callers of vm_page_hold
671	and vm_page_unhold to be updated. 
672 
67320100402:
674	WITH_CTF can now be specified in src.conf (not recommended, there
675	are some problems with static executables), make.conf (would also
676	affect ports which do not use GNU make and do not override the
677	compile targets) or in the kernel config (via "makeoptions
678	WITH_CTF=yes").
679	When WITH_CTF was specified there before this was silently ignored,
680	so make sure that WITH_CTF is not used in places which could lead
681	to unwanted behavior.
682
68320100311:
684	The kernel option COMPAT_IA32 has been replaced with COMPAT_FREEBSD32
685	to allow 32-bit compatibility on non-x86 platforms. All kernel
686	configurations on amd64 and ia64 platforms using these options must
687	be modified accordingly.
688
68920100113:
690	The utmp user accounting database has been replaced with utmpx,
691	the user accounting interface standardized by POSIX.
692	Unfortunately the semantics of utmp and utmpx don't match,
693	making it practically impossible to support both interfaces.
694	The user accounting database is used by tools like finger(1),
695	last(1), talk(1), w(1) and ac(8).
696
697	All applications in the base system use utmpx.  This means only
698	local binaries (e.g. from the ports tree) may still use these
699	utmp database files.  These applications must be rebuilt to make
700	use of utmpx.
701
702	After the system has been upgraded, it is safe to remove the old
703	log files (/var/run/utmp, /var/log/lastlog and /var/log/wtmp*),
704	assuming their contents is of no importance anymore.  Old wtmp
705	databases can only be used by last(1) and ac(8) after they have
706	been converted to the new format using wtmpcvt(1).
707
70820100108:
709	Introduce the kernel thread "deadlock resolver" (which can be enabled
710	via the DEADLKRES option, see NOTES for more details) and the
711	sleepq_type() function for sleepqueues.
712
71320091202:
714	The rc.firewall and rc.firewall6 were unified, and
715	rc.firewall6 and rc.d/ip6fw were removed.
716	According to the removal of rc.d/ip6fw, ipv6_firewall_* rc
717	variables are obsoleted.  Instead, the following new rc
718	variables are added to rc.d/ipfw:
719
720		firewall_client_net_ipv6, firewall_simple_iif_ipv6,
721		firewall_simple_inet_ipv6, firewall_simple_oif_ipv6,
722		firewall_simple_onet_ipv6, firewall_trusted_ipv6
723
724	The meanings correspond to the relevant IPv4 variables.
725
72620091125:
727	8.0-RELEASE.
728
72920091113:
730	The default terminal emulation for syscons(4) has been changed
731	from cons25 to xterm on all platforms except pc98.  This means
732	that the /etc/ttys file needs to be updated to ensure correct
733	operation of applications on the console.
734
735	The terminal emulation style can be toggled per window by using
736	vidcontrol(1)'s -T flag.  The TEKEN_CONS25 kernel configuration
737	options can be used to change the compile-time default back to
738	cons25.
739
740	To prevent graphical artifacts, make sure the TERM environment
741	variable is set to match the terminal emulation that is being
742	performed by syscons(4).
743
74420091109:
745	The layout of the structure ieee80211req_scan_result has changed.
746	Applications that require wireless scan results (e.g. ifconfig(8))
747	from net80211 need to be recompiled.
748
749	Applications such as wpa_supplicant(8) may require a full world
750	build without using NO_CLEAN in order to get synchronized with the
751	new structure.
752
75320091025:
754	The iwn(4) driver has been updated to support the 5000 and 5150 series.
755	There's one kernel module for each firmware. Adding "device iwnfw"
756	to the kernel configuration file means including all three firmware
757	images inside the kernel. If you want to include just the one for
758	your wireless card, use the devices iwn4965fw, iwn5000fw or
759	iwn5150fw.
760
76120090926:
762	The rc.d/network_ipv6, IPv6 configuration script has been integrated
763	into rc.d/netif.  The changes are the following:
764
765	1. To use IPv6, simply define $ifconfig_IF_ipv6 like $ifconfig_IF
766	   for IPv4.  For aliases, $ifconfig_IF_aliasN should be used.
767	   Note that both variables need the "inet6" keyword at the head.
768
769	   Do not set $ipv6_network_interfaces manually if you do not
770	   understand what you are doing.  It is not needed in most cases. 
771
772	   $ipv6_ifconfig_IF and $ipv6_ifconfig_IF_aliasN still work, but
773	   they are obsolete.
774
775	2. $ipv6_enable is obsolete.  Use $ipv6_prefer and
776	   "inet6 accept_rtadv" keyword in ifconfig(8) instead.
777
778	   If you define $ipv6_enable=YES, it means $ipv6_prefer=YES and
779	   all configured interfaces have "inet6 accept_rtadv" in the
780	   $ifconfig_IF_ipv6.  These are for backward compatibility.
781
782	3. A new variable $ipv6_prefer has been added.  If NO, IPv6
783	   functionality of interfaces with no corresponding
784	   $ifconfig_IF_ipv6 is disabled by using "inet6 ifdisabled" flag,
785	   and the default address selection policy of ip6addrctl(8) 
786	   is the IPv4-preferred one (see rc.d/ip6addrctl for more details).
787	   Note that if you want to configure IPv6 functionality on the
788	   disabled interfaces after boot, first you need to clear the flag by
789	   using ifconfig(8) like:
790
791		ifconfig em0 inet6 -ifdisabled
792
793	   If YES, the default address selection policy is set as
794	   IPv6-preferred.
795
796	   The default value of $ipv6_prefer is NO.
797
798	4. If your system need to receive Router Advertisement messages,
799	   define "inet6 accept_rtadv" in $ifconfig_IF_ipv6.  The rc(8)
800	   scripts automatically invoke rtsol(8) when the interface becomes
801	   UP.  The Router Advertisement messages are used for SLAAC
802	   (State-Less Address AutoConfiguration).
803
80420090922:
805	802.11s D3.03 support was committed. This is incompatible with the
806	previous code, which was based on D3.0.
807
80820090912:
809	A sysctl variable net.inet6.ip6.accept_rtadv now sets the default value
810	of a per-interface flag ND6_IFF_ACCEPT_RTADV, not a global knob to
811	control whether accepting Router Advertisement messages or not.
812	Also, a per-interface flag ND6_IFF_AUTO_LINKLOCAL has been added and
813	a sysctl variable net.inet6.ip6.auto_linklocal is its default value.
814	The ifconfig(8) utility now supports these flags.
815
81620090910:
817	ZFS snapshots are now mounted with MNT_IGNORE flag. Use -v option for
818	mount(8) and -a option for df(1) to see them.
819
82020090825:
821	The old tunable hw.bus.devctl_disable has been superseded by
822	hw.bus.devctl_queue.  hw.bus.devctl_disable=1 in loader.conf should be
823	replaced by hw.bus.devctl_queue=0.  The default for this new tunable
824	is 1000.
825
82620090813:
827	Remove the option STOP_NMI.  The default action is now to use NMI only
828	for KDB via the newly introduced function stop_cpus_hard() and
829	maintain stop_cpus() to just use a normal IPI_STOP on ia32 and amd64.
830
83120090803:
832	The stable/8 branch created in subversion.  This corresponds to the
833	RELENG_8 branch in CVS.
834
83520090719:
836	Bump the shared library version numbers for all libraries that do not
837	use symbol versioning as part of the 8.0-RELEASE cycle.  Bump
838	__FreeBSD_version to 800105.
839
84020090714:
841	Due to changes in the implementation of virtual network stack support,
842	all network-related kernel modules must be recompiled.  As this change
843	breaks the ABI, bump __FreeBSD_version to 800104.
844
84520090713:
846	The TOE interface to the TCP syncache has been modified to remove
847	struct tcpopt (<netinet/tcp_var.h>) from the ABI of the network stack.
848	The cxgb driver is the only TOE consumer affected by this change, and
849	needs to be recompiled along with the kernel. As this change breaks
850	the ABI, bump __FreeBSD_version to 800103.
851
85220090712: 
853	Padding has been added to struct tcpcb, sackhint and tcpstat in
854	<netinet/tcp_var.h> to facilitate future MFCs and bug fixes whilst
855	maintaining the ABI. However, this change breaks the ABI, so bump
856	__FreeBSD_version to 800102. User space tools that rely on the size of
857	any of these structs (e.g. sockstat) need to be recompiled.
858
85920090630:
860	The NFS_LEGACYRPC option has been removed along with the old kernel
861	RPC implementation that this option selected. Kernel configurations
862	may need to be adjusted.
863
86420090629:
865	The network interface device nodes at /dev/net/<interface> have been
866	removed.  All ioctl operations can be performed the normal way using
867	routing sockets.  The kqueue functionality can generally be replaced
868	with routing sockets.
869
87020090628:
871	The documentation from the FreeBSD Documentation Project (Handbook,
872	FAQ, etc.) is now installed via packages by sysinstall(8) and under
873	the /usr/local/share/doc/freebsd directory instead of /usr/share/doc.
874
87520090624:
876	The ABI of various structures related to the SYSV IPC API have been
877	changed.  As a result, the COMPAT_FREEBSD[456] and COMPAT_43 kernel
878	options now all require COMPAT_FREEBSD7.  Bump __FreeBSD_version to
879	800100.
880
88120090622:
882	Layout of struct vnet has changed as routing related variables were
883	moved to their own Vimage module. Modules need to be recompiled.  Bump
884	__FreeBSD_version to 800099.
885
88620090619:
887	NGROUPS_MAX and NGROUPS have been increased from 16 to 1023 and 1024
888	respectively.  As long as no more than 16 groups per process are used,
889	no changes should be visible.  When more than 16 groups are used, old
890	binaries may fail if they call getgroups() or getgrouplist() with
891	statically sized storage.  Recompiling will work around this, but
892	applications should be modified to use dynamically allocated storage
893	for group arrays as POSIX.1-2008 does not cap an implementation's
894	number of supported groups at NGROUPS_MAX+1 as previous versions did.
895
896	NFS and portalfs mounts may also be affected as the list of groups is
897	truncated to 16.  Users of NFS who use more than 16 groups, should
898	take care that negative group permissions are not used on the exported
899	file systems as they will not be reliable unless a GSSAPI based
900	authentication method is used.
901
90220090616: 
903	The compiling option ADAPTIVE_LOCKMGRS has been introduced.  This
904	option compiles in the support for adaptive spinning for lockmgrs
905	which want to enable it.  The lockinit() function now accepts the flag
906	LK_ADAPTIVE in order to make the lock object subject to adaptive
907	spinning when both held in write and read mode.
908
90920090613:
910	The layout of the structure returned by IEEE80211_IOC_STA_INFO has
911	changed.  User applications that use this ioctl need to be rebuilt.
912
91320090611:
914	The layout of struct thread has changed.  Kernel and modules need to
915	be rebuilt.
916
91720090608:
918	The layout of structs ifnet, domain, protosw and vnet_net has changed.
919	Kernel modules need to be rebuilt.  Bump __FreeBSD_version to 800097.
920
92120090602:
922	window(1) has been removed from the base system. It can now be
923	installed from ports. The port is called misc/window.
924
92520090601:
926	The way we are storing and accessing `routing table' entries has
927	changed. Programs reading the FIB, like netstat, need to be
928	re-compiled.
929
93020090601:
931	A new netisr implementation has been added for FreeBSD 8.  Network
932	file system modules, such as igmp, ipdivert, and others, should be
933	rebuilt.
934	Bump __FreeBSD_version to 800096.
935
93620090530:
937	Remove the tunable/sysctl debug.mpsafevfs as its initial purpose is no
938	more valid.
939
94020090530:
941	Add VOP_ACCESSX(9).  File system modules need to be rebuilt.
942	Bump __FreeBSD_version to 800094.
943
94420090529:
945	Add mnt_xflag field to 'struct mount'.  File system modules need to be
946	rebuilt.
947	Bump __FreeBSD_version to 800093.
948
94920090528:
950	The compiling option ADAPTIVE_SX has been retired while it has been
951	introduced the option NO_ADAPTIVE_SX which handles the reversed logic.
952	The KPI for sx_init_flags() changes as accepting flags:
953	SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag has
954	been introduced in order to handle the reversed logic.
955	Bump __FreeBSD_version to 800092.
956
95720090527:
958	Add support for hierarchical jails.  Remove global securelevel.
959	Bump __FreeBSD_version to 800091.
960
96120090523:
962	The layout of struct vnet_net has changed, therefore modules
963	need to be rebuilt.
964	Bump __FreeBSD_version to 800090.
965
96620090523:
967	The newly imported zic(8) produces a new format in the output. Please
968	run tzsetup(8) to install the newly created data to /etc/localtime.
969
97020090520:
971	The sysctl tree for the usb stack has renamed from hw.usb2.* to
972	hw.usb.* and is now consistent again with previous releases.
973
97420090520:
975	802.11 monitor mode support was revised and driver api's were changed.
976	Drivers dependent on net80211 now support DLT_IEEE802_11_RADIO instead
977	of DLT_IEEE802_11.  No user-visible data structures were changed but
978	applications that use DLT_IEEE802_11 may require changes.
979	Bump __FreeBSD_version to 800088.
980
98120090430:
982	The layout of the following structs has changed: sysctl_oid,
983	socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet,
984	vnet_inet6 and vnet_ipfw.  Most modules need to be rebuild or
985	panics may be experienced.  World rebuild is required for
986	correctly checking networking state from userland.
987	Bump __FreeBSD_version to 800085.
988
98920090429:
990	MLDv2 and Source-Specific Multicast (SSM) have been merged
991	to the IPv6 stack. VIMAGE hooks are in but not yet used.
992	The implementation of SSM within FreeBSD's IPv6 stack closely
993	follows the IPv4 implementation.
994
995	For kernel developers:
996
997	* The most important changes are that the ip6_output() and
998	  ip6_input() paths no longer take the IN6_MULTI_LOCK,
999	  and this lock has been downgraded to a non-recursive mutex.
1000
1001	* As with the changes to the IPv4 stack to support SSM, filtering
1002	  of inbound multicast traffic must now be performed by transport
1003	  protocols within the IPv6 stack. This does not apply to TCP and
1004	  SCTP, however, it does apply to UDP in IPv6 and raw IPv6.
1005
1006	* The KPIs used by IPv6 multicast are similar to those used by
1007	  the IPv4 stack, with the following differences:
1008	   * im6o_mc_filter() is analogous to imo_multicast_filter().
1009	   * The legacy KAME entry points in6_joingroup and in6_leavegroup()
1010	     are shimmed to in6_mc_join() and in6_mc_leave() respectively.
1011	   * IN6_LOOKUP_MULTI() has been deprecated and removed.
1012	   * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs
1013	     for MLDv1 have an additional 'timer' argument which is used to
1014	     jitter the initial membership report for the solicited-node
1015	     multicast membership on-link.
1016	   * This is not strictly needed for MLDv2, which already jitters
1017	     its report transmissions.  However, the 'timer' argument is
1018	     preserved in case MLDv1 is active on the interface.
1019
1020	* The KAME linked-list based IPv6 membership implementation has
1021	  been refactored to use a vector similar to that used by the IPv4
1022	  stack.
1023	  Code which maintains a list of its own multicast memberships
1024	  internally, e.g. carp, has been updated to reflect the new
1025	  semantics.
1026
1027	* There is a known Lock Order Reversal (LOR) due to in6_setscope()
1028	  acquiring the IF_AFDATA_LOCK and being called within ip6_output().
1029	  Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an
1030	  implementation constraint which needs to be addressed in HEAD.
1031
1032	For application developers:
1033
1034	* The changes are broadly similar to those made for the IPv4
1035	  stack.
1036
1037	* The use of IPv4 and IPv6 multicast socket options on the same
1038	  socket, using mapped addresses, HAS NOT been tested or supported.
1039
1040	* There are a number of issues with the implementation of various
1041	  IPv6 multicast APIs which need to be resolved in the API surface
1042	  before the implementation is fully compatible with KAME userland
1043	  use, and these are mostly to do with interface index treatment.
1044
1045	* The literature available discusses the use of either the delta / ASM
1046	  API with setsockopt(2)/getsockopt(2), or the full-state / ASM API
1047	  using setsourcefilter(3)/getsourcefilter(3). For more information
1048	  please refer to RFC 3768, 'Socket Interface Extensions for
1049	  Multicast Source Filters'.
1050
1051	* Applications which use the published RFC 3678 APIs should be fine.
1052
1053	For systems administrators:
1054
1055	* The mtest(8) utility has been refactored to support IPv6, in
1056	  addition to IPv4. Interface addresses are no longer accepted
1057	  as arguments, their names must be used instead. The utility
1058	  will map the interface name to its first IPv4 address as
1059	  returned by getifaddrs(3).
1060
1061	* The ifmcstat(8) utility has also been updated to print the MLDv2
1062	  endpoint state and source filter lists via sysctl(3).
1063
1064	* The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable
1065	  loopback of IPv6 multicast datagrams by default; it defaults to 1
1066	  to preserve the existing behaviour. Disabling multicast loopback is
1067	  recommended for optimal system performance.
1068
1069	* The IPv6 MROUTING code has been changed to examine this sysctl
1070	  instead of attempting to perform a group lookup before looping
1071	  back forwarded datagrams.
1072
1073	Bump __FreeBSD_version to 800084.
1074
107520090422:
1076	Implement low-level Bluetooth HCI API.
1077	Bump __FreeBSD_version to 800083.
1078
107920090419:
1080	The layout of struct malloc_type, used by modules to register new
1081	memory allocation types, has changed.  Most modules will need to
1082	be rebuilt or panics may be experienced.
1083	Bump __FreeBSD_version to 800081.
1084
108520090415:
1086	Anticipate overflowing inp_flags - add inp_flags2.
1087	This changes most offsets in inpcb, so checking v4 connection
1088	state will require a world rebuild.
1089	Bump __FreeBSD_version to 800080.
1090
109120090415:
1092	Add an llentry to struct route and struct route_in6. Modules
1093	embedding a struct route will need to be recompiled.
1094	Bump __FreeBSD_version to 800079.
1095
109620090414:
1097	The size of rt_metrics_lite and by extension rtentry has changed.
1098	Networking administration apps will need to be recompiled.
1099	The route command now supports show as an alias for get, weighting
1100	of routes, sticky and nostick flags to alter the behavior of stateful
1101	load balancing.
1102	Bump __FreeBSD_version to 800078.
1103
110420090408:
1105	Do not use Giant for kbdmux(4) locking. This is wrong and
1106	apparently causing more problems than it solves. This will
1107	re-open the issue where interrupt handlers may race with
1108	kbdmux(4) in polling mode. Typical symptoms include (but
1109	not limited to) duplicated and/or missing characters when
1110	low level console functions (such as gets) are used while
1111	interrupts are enabled (for example geli password prompt,
1112	mountroot prompt etc.). Disabling kbdmux(4) may help.
1113
111420090407:
1115	The size of structs vnet_net, vnet_inet and vnet_ipfw has changed;
1116	kernel modules referencing any of the above need to be recompiled.
1117	Bump __FreeBSD_version to 800075.
1118
111920090320:
1120	GEOM_PART has become the default partition slicer for storage devices,
1121	replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It
1122	introduces some changes:
1123
1124	MSDOS/EBR: the devices created from MSDOS extended partition entries
1125	(EBR) can be named differently than with GEOM_MBR and are now symlinks
1126	to devices with offset-based names. fstabs may need to be modified.
1127
1128	BSD: the "geometry does not match label" warning is harmless in most
1129	cases but it points to problems in file system misalignment with
1130	disk geometry. The "c" partition is now implicit, covers the whole
1131	top-level drive and cannot be (mis)used by users.
1132
1133	General: Kernel dumps are now not allowed to be written to devices
1134	whose partition types indicate they are meant to be used for file
1135	systems (or, in case of MSDOS partitions, as something else than
1136	the "386BSD" type).
1137
1138	Most of these changes date approximately from 200812.
1139
114020090319:
1141	The uscanner(4) driver has been removed from the kernel. This follows
1142	Linux removing theirs in 2.6 and making libusb the default interface
1143	(supported by sane).
1144
114520090319:
1146	The multicast forwarding code has been cleaned up. netstat(1)
1147	only relies on KVM now for printing bandwidth upcall meters.
1148	The IPv4 and IPv6 modules are split into ip_mroute_mod and
1149	ip6_mroute_mod respectively. The config(5) options for statically
1150	compiling this code remain the same, i.e. 'options MROUTING'.
1151
115220090315:
1153	Support for the IFF_NEEDSGIANT network interface flag has been
1154	removed, which means that non-MPSAFE network device drivers are no
1155	longer supported.  In particular, if_ar, if_sr, and network device
1156	drivers from the old (legacy) USB stack can no longer be built or
1157	used.
1158
115920090313:
1160	POSIX.1 Native Language Support (NLS) has been enabled in libc and
1161	a bunch of new language catalog files have also been added.
1162	This means that some common libc messages are now localized and
1163	they depend on the LC_MESSAGES environmental variable.
1164
116520090313:
1166	The k8temp(4) driver has been renamed to amdtemp(4) since
1167	support for Family 10 and Family 11 CPU families was added.
1168
116920090309:
1170	IGMPv3 and Source-Specific Multicast (SSM) have been merged
1171	to the IPv4 stack. VIMAGE hooks are in but not yet used.
1172
1173	For kernel developers, the most important changes are that the
1174	ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(),
1175	and this lock has been downgraded to a non-recursive mutex.
1176
1177	Transport protocols (UDP, Raw IP) are now responsible for filtering
1178	inbound multicast traffic according to group membership and source
1179	filters. The imo_multicast_filter() KPI exists for this purpose.
1180	Transports which do not use multicast (SCTP, TCP) already reject
1181	multicast by default. Forwarding and receive performance may improve
1182	as a mutex acquisition is no longer needed in the ip_input()
1183	low-level input path.  in_addmulti() and in_delmulti() are shimmed
1184	to new KPIs which exist to support SSM in-kernel.
1185
1186	For application developers, it is recommended that loopback of
1187	multicast datagrams be disabled for best performance, as this
1188	will still cause the lock to be taken for each looped-back
1189	datagram transmission. The net.inet.ip.mcast.loop sysctl may
1190	be tuned to 0 to disable loopback by default; it defaults to 1
1191	to preserve the existing behaviour.
1192
1193	For systems administrators, to obtain best performance with
1194	multicast reception and multiple groups, it is always recommended
1195	that a card with a suitably precise hash filter is used. Hash
1196	collisions will still result in the lock being taken within the
1197	transport protocol input path to check group membership.
1198
1199	If deploying FreeBSD in an environment with IGMP snooping switches,
1200	it is recommended that the net.inet.igmp.sendlocal sysctl remain
1201	enabled; this forces 224.0.0.0/24 group membership to be announced
1202	via IGMP.
1203
1204	The size of 'struct igmpstat' has changed; netstat needs to be
1205	recompiled to reflect this.
1206	Bump __FreeBSD_version to 800070.
1207
120820090309:
1209	libusb20.so.1 is now installed as libusb.so.1 and the ports system
1210	updated to use it. This requires a buildworld/installworld in order to
1211	update the library and dependencies (usbconfig, etc). Its advisable to
1212	rebuild all ports which uses libusb. More specific directions are given
1213	in the ports collection UPDATING file. Any /etc/libmap.conf entries for
1214	libusb are no longer required and can be removed.
1215
121620090302:
1217	A workaround is committed to allow the creation of System V shared
1218	memory segment of size > 2 GB on the 64-bit architectures.
1219	Due to a limitation of the existing ABI, the shm_segsz member
1220	of the struct shmid_ds, returned by shmctl(IPC_STAT) call is
1221	wrong for large segments. Note that limits must be explicitly
1222	raised to allow such segments to be created.
1223
122420090301:
1225	The layout of struct ifnet has changed, requiring a rebuild of all
1226	network device driver modules.
1227
122820090227:
1229	The /dev handling for the new USB stack has changed, a
1230	buildworld/installworld is required for libusb20.
1231
123220090223:
1233	The new USB2 stack has now been permanently moved in and all kernel and
1234	module names reverted to their previous values (eg, usb, ehci, ohci,
1235	ums, ...).  The old usb stack can be compiled in by prefixing the name
1236	with the letter 'o', the old usb modules have been removed.
1237	Updating entry 20090216 for xorg and 20090215 for libmap may still
1238	apply.
1239
124020090217:
1241	The rc.conf(5) option if_up_delay has been renamed to
1242	defaultroute_delay to better reflect its purpose. If you have
1243	customized this setting in /etc/rc.conf you need to update it to
1244	use the new name.
1245
124620090216:
1247	xorg 7.4 wants to configure its input devices via hald which does not
1248	yet work with USB2. If the keyboard/mouse does not work in xorg then
1249	add
1250		Option "AllowEmptyInput" "off"
1251	to your ServerLayout section.  This will cause X to use the configured
1252	kbd and mouse sections from your xorg.conf.
1253
125420090215:
1255	The GENERIC kernels for all architectures now default to the new USB2
1256	stack. No kernel config options or code have been removed so if a
1257	problem arises please report it and optionally revert to the old USB
1258	stack. If you are loading USB kernel modules or have a custom kernel
1259	that includes GENERIC then ensure that usb names are also changed over,
1260	eg uftdi -> usb2_serial_ftdi.
1261
1262	Older programs linked against the ports libusb 0.1 need to be
1263	redirected to the new stack's libusb20.  /etc/libmap.conf can
1264	be used for this:
1265		# Map old usb library to new one for usb2 stack
1266		libusb-0.1.so.8	libusb20.so.1
1267
126820090209:
1269	All USB ethernet devices now attach as interfaces under the name ueN
1270	(eg. ue0). This is to provide a predictable name as vendors often
1271	change usb chipsets in a product without notice.
1272
127320090203:
1274	The ichsmb(4) driver has been changed to require SMBus slave
1275	addresses be left-justified (xxxxxxx0b) rather than right-justified.
1276	All of the other SMBus controller drivers require left-justified
1277	slave addresses, so this change makes all the drivers provide the
1278	same interface.
1279
128020090201:
1281	INET6 statistics (struct ip6stat) was updated.
1282	netstat(1) needs to be recompiled.
1283
128420090119:
1285	NTFS has been removed from GENERIC kernel on amd64 to match
1286	GENERIC on i386. Should not cause any issues since mount_ntfs(8)
1287	will load ntfs.ko module automatically when NTFS support is
1288	actually needed, unless ntfs.ko is not installed or security
1289	level prohibits loading kernel modules. If either is the case,
1290	"options NTFS" has to be added into kernel config.
1291
129220090115:
1293	TCP Appropriate Byte Counting (RFC 3465) support added to kernel.
1294	New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to
1295	800061. User space tools that rely on the size of struct tcpcb in
1296	tcp_var.h (e.g. sockstat) need to be recompiled.
1297
129820081225:
1299	ng_tty(4) module updated to match the new TTY subsystem.
1300	Due to API change, user-level applications must be updated.
1301	New API support added to mpd5 CVS and expected to be present
1302	in next mpd5.3 release.
1303
130420081219:
1305	With __FreeBSD_version 800060 the makefs tool is part of
1306	the base system (it was a port).
1307
130820081216:
1309	The afdata and ifnet locks have been changed from mutexes to
1310	rwlocks, network modules will need to be re-compiled.
1311
131220081214:
1313	__FreeBSD_version 800059 incorporates the new arp-v2 rewrite.
1314	RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated.
1315	The new code reduced struct rtentry{} by 16 bytes on 32-bit
1316	architecture and 40 bytes on 64-bit architecture. The userland
1317	applications "arp" and "ndp" have been updated accordingly.
1318	The output from "netstat -r" shows only routing entries and
1319	none of the L2 information.
1320
132120081130:
1322	__FreeBSD_version 800057 marks the switchover from the
1323	binary ath hal to source code. Users must add the line:
1324
1325	options	AH_SUPPORT_AR5416
1326
1327	to their kernel config files when specifying:
1328
1329	device	ath_hal
1330
1331	The ath_hal module no longer exists; the code is now compiled
1332	together with the driver in the ath module.  It is now
1333	possible to tailor chip support (i.e. reduce the set of chips
1334	and thereby the code size); consult ath_hal(4) for details.
1335
133620081121:
1337	__FreeBSD_version 800054 adds memory barriers to
1338	<machine/atomic.h>, new interfaces to ifnet to facilitate
1339	multiple hardware transmit queues for cards that support
1340	them, and a lock-less ring-buffer implementation to
1341	enable drivers to more efficiently manage queueing of
1342	packets.
1343
134420081117:
1345	A new version of ZFS (version 13) has been merged to -HEAD.
1346	This version has zpool attribute "listsnapshots" off by
1347	default, which means "zfs list" does not show snapshots,
1348	and is the same as Solaris behavior.
1349
135020081028:
1351	dummynet(4) ABI has changed. ipfw(8) needs to be recompiled.
1352
135320081009:
1354	The uhci, ohci, ehci and slhci USB Host controller drivers have
1355	been put into separate modules. If you load the usb module
1356	separately through loader.conf you will need to load the
1357	appropriate *hci module as well. E.g. for a UHCI-based USB 2.0
1358	controller add the following to loader.conf:
1359
1360		uhci_load="YES"
1361		ehci_load="YES"
1362
136320081009:
1364	The ABI used by the PMC toolset has changed.  Please keep
1365	userland (libpmc(3)) and the kernel module (hwpmc(4)) in
1366	sync.
1367
136820081009:
1369	atapci kernel module now includes only generic PCI ATA
1370	driver. AHCI driver moved to ataahci kernel module.
1371	All vendor-specific code moved into separate kernel modules:
1372	ataacard, ataacerlabs, ataadaptec, ataamd, ataati, atacenatek,
1373	atacypress, atacyrix, atahighpoint, ataintel, ataite, atajmicron,
1374	atamarvell, atamicron, atanational, atanetcell, atanvidia,
1375	atapromise, ataserverworks, atasiliconimage, atasis, atavia
1376
137720080820:
1378	The TTY subsystem of the kernel has been replaced by a new
1379	implementation, which provides better scalability and an
1380	improved driver model. Most common drivers have been migrated to
1381	the new TTY subsystem, while others have not. The following
1382	drivers have not yet been ported to the new TTY layer:
1383
1384	PCI/ISA:
1385		cy, digi, rc, rp, sio
1386
1387	USB:
1388		ubser, ucycom
1389
1390	Line disciplines:
1391		ng_h4, ng_tty, ppp, sl, snp
1392
1393	Adding these drivers to your kernel configuration file shall
1394	cause compilation to fail.
1395
139620080818:
1397	ntpd has been upgraded to 4.2.4p5.
1398
139920080801:
1400	OpenSSH has been upgraded to 5.1p1.
1401
1402	For many years, FreeBSD's version of OpenSSH preferred DSA
1403	over RSA for host and user authentication keys.  With this
1404	upgrade, we've switched to the vendor's default of RSA over
1405	DSA.  This may cause upgraded clients to warn about unknown
1406	host keys even for previously known hosts.  Users should
1407	follow the usual procedure for verifying host keys before
1408	accepting the RSA key.
1409
1410	This can be circumvented by setting the "HostKeyAlgorithms"
1411	option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh
1412	command line.
1413
1414	Please note that the sequence of keys offered for
1415	authentication has been changed as well.  You may want to
1416	specify IdentityFile in a different order to revert this
1417	behavior.
1418
141920080713:
1420	The sio(4) driver has been removed from the i386 and amd64
1421	kernel configuration files. This means uart(4) is now the
1422	default serial port driver on those platforms as well.
1423
1424	To prevent collisions with the sio(4) driver, the uart(4) driver
1425	uses different names for its device nodes. This means the
1426	onboard serial port will now most likely be called "ttyu0"
1427	instead of "ttyd0". You may need to reconfigure applications to
1428	use the new device names.
1429
1430	When using the serial port as a boot console, be sure to update
1431	/boot/device.hints and /etc/ttys before booting the new kernel.
1432	If you forget to do so, you can still manually specify the hints
1433	at the loader prompt:
1434
1435		set hint.uart.0.at="isa"
1436		set hint.uart.0.port="0x3F8"
1437		set hint.uart.0.flags="0x10"
1438		set hint.uart.0.irq="4"
1439		boot -s
1440
144120080609:
1442	The gpt(8) utility has been removed. Use gpart(8) to partition
1443	disks instead.
1444
144520080603:
1446	The version that Linuxulator emulates was changed from 2.4.2
1447	to 2.6.16. If you experience any problems with Linux binaries
1448	please try to set sysctl compat.linux.osrelease to 2.4.2 and
1449	if it fixes the problem contact emulation mailing list.
1450
145120080525:
1452	ISDN4BSD (I4B) was removed from the src tree. You may need to
1453	update a your kernel configuration and remove relevant entries.
1454
145520080509:
1456	I have checked in code to support multiple routing tables.
1457	See the man pages setfib(1) and setfib(2).
1458	This is a hopefully backwards compatible version,
1459	but to make use of it you need to compile your kernel
1460	with options ROUTETABLES=2 (or more up to 16).
1461
146220080420:
1463	The 802.11 wireless support was redone to enable multi-bss
1464	operation on devices that are capable.  The underlying device
1465	is no longer used directly but instead wlanX devices are
1466	cloned with ifconfig.  This requires changes to rc.conf files.
1467	For example, change:
1468		ifconfig_ath0="WPA DHCP"
1469	to
1470		wlans_ath0=wlan0
1471		ifconfig_wlan0="WPA DHCP"
1472	see rc.conf(5) for more details.  In addition, mergemaster of
1473	/etc/rc.d is highly recommended.  Simultaneous update of userland
1474	and kernel wouldn't hurt either.
1475
1476	As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta
1477	modules were merged into the base wlan module.  All references
1478	to these modules (e.g. in kernel config files) must be removed.
1479
148020080408:
1481	psm(4) has gained write(2) support in native operation level.
1482	Arbitrary commands can be written to /dev/psm%d and status can
1483	be read back from it.  Therefore, an application is responsible
1484	for status validation and error recovery.  It is a no-op in
1485	other operation levels.
1486
148720080312:
1488	Support for KSE threading has been removed from the kernel.  To
1489	run legacy applications linked against KSE libmap.conf may
1490	be used.  The following libmap.conf may be used to ensure
1491	compatibility with any prior release:
1492
1493	libpthread.so.1 libthr.so.1
1494	libpthread.so.2 libthr.so.2
1495	libkse.so.3 libthr.so.3
1496
149720080301:
1498	The layout of struct vmspace has changed. This affects libkvm
1499	and any executables that link against libkvm and use the
1500	kvm_getprocs() function. In particular, but not exclusively,
1501	it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1).
1502	The effects are minimal, but it's advisable to upgrade world
1503	nonetheless.
1504
150520080229:
1506	The latest em driver no longer has support in it for the
1507	82575 adapter, this is now moved to the igb driver. The
1508	split was done to make new features that are incompatible
1509	with older hardware easier to do.
1510
151120080220:
1512	The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4),
1513	likewise the kernel option is now GEOM_LINUX_LVM.
1514
151520080211:
1516	The default NFS mount mode has changed from UDP to TCP for
1517	increased reliability.  If you rely on (insecurely) NFS
1518	mounting across a firewall you may need to update your
1519	firewall rules.
1520
152120080208:
1522	Belatedly note the addition of m_collapse for compacting
1523	mbuf chains.
1524
152520080126:
1526	The fts(3) structures have been changed to use adequate
1527	integer types for their members and so to be able to cope
1528	with huge file trees.  The old fts(3) ABI is preserved
1529	through symbol versioning in libc, so third-party binaries
1530	using fts(3) should still work, although they will not take
1531	advantage of the extended types.  At the same time, some
1532	third-party software might fail to build after this change
1533	due to unportable assumptions made in its source code about
1534	fts(3) structure members.  Such software should be fixed
1535	by its vendor or, in the worst case, in the ports tree.
1536	FreeBSD_version 800015 marks this change for the unlikely
1537	case that a portable fix is impossible.
1538
153920080123:
1540	To upgrade to -current after this date, you must be running
1541	FreeBSD not older than 6.0-RELEASE.  Upgrading to -current
1542	from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems.
1543
154420071128:
1545	The ADAPTIVE_GIANT kernel option has been retired because its
1546	functionality is the default now.
1547
154820071118:
1549	The AT keyboard emulation of sunkbd(4) has been turned on
1550	by default. In order to make the special symbols of the Sun
1551	keyboards driven by sunkbd(4) work under X these now have
1552	to be configured the same way as Sun USB keyboards driven
1553	by ukbd(4) (which also does AT keyboard emulation), f.e.:
1554
1555	Option	"XkbLayout" "us"
1556	Option	"XkbRules" "xorg"
1557	Option	"XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us"
1558
155920071024:
1560	It has been decided that it is desirable to provide ABI
1561	backwards compatibility to the FreeBSD 4/5/6 versions of the
1562	PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was
1563	broken with the introduction of PCI domain support (see the
1564	20070930 entry). Unfortunately, this required the ABI of
1565	PCIOCGETCONF to be broken again in order to be able to
1566	provide backwards compatibility to the old version of that
1567	IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled
1568	again. As for prominent ports this affects neither pciutils
1569	nor xorg-server this time, the hal port needs to be rebuilt
1570	however.
1571
157220071020:
1573	The misnamed kthread_create() and friends have been renamed
1574	to kproc_create() etc. Many of the callers already
1575	used kproc_start()..
1576	I will return kthread_create() and friends in a while
1577	with implementations that actually create threads, not procs.
1578	Renaming corresponds with version 800002.
1579
158020071010:
1581	RELENG_7 branched.
1582
1583COMMON ITEMS:
1584
1585	General Notes
1586	-------------
1587	Avoid using make -j when upgrading.  While generally safe, there are
1588	sometimes problems using -j to upgrade.  If your upgrade fails with
1589	-j, please try again without -j.  From time to time in the past there
1590	have been problems using -j with buildworld and/or installworld.  This
1591	is especially true when upgrading between "distant" versions (eg one
1592	that cross a major release boundary or several minor releases, or when
1593	several months have passed on the -current branch).
1594
1595	Sometimes, obscure build problems are the result of environment
1596	poisoning.  This can happen because the make utility reads its
1597	environment when searching for values for global variables.  To run
1598	your build attempts in an "environmental clean room", prefix all make
1599	commands with 'env -i '.  See the env(1) manual page for more details.
1600
1601	When upgrading from one major version to another it is generally best
1602	to upgrade to the latest code in the currently installed branch first,
1603	then do an upgrade to the new branch. This is the best-tested upgrade
1604	path, and has the highest probability of being successful.  Please try
1605	this approach before reporting problems with a major version upgrade.
1606
1607	ZFS notes
1608	---------
1609	When upgrading the boot ZFS pool to a new version, always follow
1610	these two steps:
1611
1612	1.) recompile and reinstall the ZFS boot loader and boot block
1613	(this is part of "make buildworld" and "make installworld")
1614
1615	2.) update the ZFS boot block on your boot drive
1616
1617	The following example updates the ZFS boot block on the first
1618	partition (freebsd-boot) of a GPT partitioned drive ad0:
1619	"gpart bootcode -p /boot/gptzfsboot -i 1 ad0"
1620
1621	Non-boot pools do not need these updates.
1622
1623	To build a kernel
1624	-----------------
1625	If you are updating from a prior version of FreeBSD (even one just
1626	a few days old), you should follow this procedure.  It is the most
1627	failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1628
1629	make kernel-toolchain
1630	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1631	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1632
1633	To test a kernel once
1634	---------------------
1635	If you just want to boot a kernel once (because you are not sure
1636	if it works, or if you want to boot a known bad kernel to provide
1637	debugging information) run
1638	make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1639	nextboot -k testkernel
1640
1641	To just build a kernel when you know that it won't mess you up
1642	--------------------------------------------------------------
1643	This assumes you are already running a CURRENT system.  Replace
1644	${arch} with the architecture of your machine (e.g. "i386",
1645	"arm", "amd64", "ia64", "pc98", "sparc64", "powerpc", "mips", etc).
1646
1647	cd src/sys/${arch}/conf
1648	config KERNEL_NAME_HERE
1649	cd ../compile/KERNEL_NAME_HERE
1650	make depend
1651	make
1652	make install
1653
1654	If this fails, go to the "To build a kernel" section.
1655
1656	To rebuild everything and install it on the current system.
1657	-----------------------------------------------------------
1658	# Note: sometimes if you are running current you gotta do more than
1659	# is listed here if you are upgrading from a really old current.
1660
1661	<make sure you have good level 0 dumps>
1662	make buildworld
1663	make kernel KERNCONF=YOUR_KERNEL_HERE
1664							[1]
1665	<reboot in single user>				[3]
1666	mergemaster -p					[5]
1667	make installworld
1668	mergemaster -i					[4]
1669	make delete-old					[6]
1670	<reboot>
1671
1672
1673	To cross-install current onto a separate partition
1674	--------------------------------------------------
1675	# In this approach we use a separate partition to hold
1676	# current's root, 'usr', and 'var' directories.   A partition
1677	# holding "/", "/usr" and "/var" should be about 2GB in
1678	# size.
1679
1680	<make sure you have good level 0 dumps>
1681	<boot into -stable>
1682	make buildworld
1683	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1684	<maybe newfs current's root partition>
1685	<mount current's root partition on directory ${CURRENT_ROOT}>
1686	make installworld DESTDIR=${CURRENT_ROOT}
1687	make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1688	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1689	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
1690	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1691	<reboot into current>
1692	<do a "native" rebuild/install as described in the previous section>
1693	<maybe install compatibility libraries from ports/misc/compat*>
1694	<reboot>
1695
1696
1697	To upgrade in-place from stable to current
1698	----------------------------------------------
1699	<make sure you have good level 0 dumps>
1700	make buildworld					[9]
1701	make kernel KERNCONF=YOUR_KERNEL_HERE		[8]
1702							[1]
1703	<reboot in single user>				[3]
1704	mergemaster -p					[5]
1705	make installworld
1706	mergemaster -i					[4]
1707	make delete-old					[6]
1708	<reboot>
1709
1710	Make sure that you've read the UPDATING file to understand the
1711	tweaks to various things you need.  At this point in the life
1712	cycle of current, things change often and you are on your own
1713	to cope.  The defaults can also change, so please read ALL of
1714	the UPDATING entries.
1715
1716	Also, if you are tracking -current, you must be subscribed to
1717	freebsd-current@freebsd.org.  Make sure that before you update
1718	your sources that you have read and understood all the recent
1719	messages there.  If in doubt, please track -stable which has
1720	much fewer pitfalls.
1721
1722	[1] If you have third party modules, such as vmware, you
1723	should disable them at this point so they don't crash your
1724	system on reboot.
1725
1726	[3] From the bootblocks, boot -s, and then do
1727		fsck -p
1728		mount -u /
1729		mount -a
1730		cd src
1731		adjkerntz -i		# if CMOS is wall time
1732	Also, when doing a major release upgrade, it is required that
1733	you boot into single user mode to do the installworld.
1734
1735	[4] Note: This step is non-optional.  Failure to do this step
1736	can result in a significant reduction in the functionality of the
1737	system.  Attempting to do it by hand is not recommended and those
1738	that pursue this avenue should read this file carefully, as well
1739	as the archives of freebsd-current and freebsd-hackers mailing lists
1740	for potential gotchas.  The -U option is also useful to consider.
1741	See mergemaster(8) for more information.
1742
1743	[5] Usually this step is a noop.  However, from time to time
1744	you may need to do this if you get unknown user in the following
1745	step.  It never hurts to do it all the time.  You may need to
1746	install a new mergemaster (cd src/usr.sbin/mergemaster && make
1747	install) after the buildworld before this step if you last updated
1748	from current before 20020224 or from -stable before 20020408.
1749
1750	[6] This only deletes old files and directories. Old libraries
1751	can be deleted by "make delete-old-libs", but you have to make
1752	sure that no program is using those libraries anymore.
1753
1754	[8] In order to have a kernel that can run the 4.x binaries needed to
1755	do an installworld, you must include the COMPAT_FREEBSD4 option in
1756	your kernel.  Failure to do so may leave you with a system that is
1757	hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is
1758	required to run the 5.x binaries on more recent kernels.  And so on
1759	for COMPAT_FREEBSD6 and COMPAT_FREEBSD7.
1760
1761	Make sure that you merge any new devices from GENERIC since the
1762	last time you updated your kernel config file.
1763
1764	[9] When checking out sources, you must include the -P flag to have
1765	cvs prune empty directories.
1766
1767	If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1768	"?=" instead of the "=" assignment operator, so that buildworld can
1769	override the CPUTYPE if it needs to.
1770
1771	MAKEOBJDIRPREFIX must be defined in an environment variable, and
1772	not on the command line, or in /etc/make.conf.  buildworld will
1773	warn if it is improperly defined.
1774FORMAT:
1775
1776This file contains a list, in reverse chronological order, of major
1777breakages in tracking -current.  It is not guaranteed to be a complete
1778list of such breakages, and only contains entries since October 10, 2007.
1779If you need to see UPDATING entries from before that date, you will need
1780to fetch an UPDATING file from an older FreeBSD release.
1781
1782Copyright information:
1783
1784Copyright 1998-2009 M. Warner Losh.  All Rights Reserved.
1785
1786Redistribution, publication, translation and use, with or without
1787modification, in full or in part, in any form or format of this
1788document are permitted without further permission from the author.
1789
1790THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1791IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1792WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1793DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1794INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1795(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1796SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1797HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1798STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1799IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1800POSSIBILITY OF SUCH DAMAGE.
1801
1802Contact Warner Losh if you have any questions about your use of
1803this document.
1804
1805$FreeBSD: head/UPDATING 249219 2013-04-06 22:28:19Z jilles $
1806