UPDATING revision 189770
1Updating Information for FreeBSD current users
2
3This file is maintained and copyrighted by M. Warner Losh
4<imp@village.org>.  See end of file for further details.  For commonly
5done items, please see the COMMON ITEMS: section later in the file.
6
7Items affecting the ports and packages system can be found in
8/usr/ports/UPDATING.  Please read that file before running
9portupgrade.
10
11NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.x IS SLOW:
12	FreeBSD 8.x has many debugging features turned on, in
13	both the kernel and userland.  These features attempt to detect
14	incorrect use of system primitives, and encourage loud failure
15	through extra sanity checking and fail stop semantics.  They
16	also substantially impact system performance.  If you want to
17	do performance measurement, benchmarking, and optimization,
18	you'll want to turn them off.  This includes various WITNESS-
19	related kernel options, INVARIANTS, malloc debugging flags
20	in userland, and various verbose features in the kernel.  Many
21	developers choose to disable these features on build machines
22	to maximize performance.  (To disable malloc debugging, run
23	ln -s aj /etc/malloc.conf.)
24
2520090313:
26	The k8temp(4) driver has been renamed to amdtemp(4) since
27	support for K10 and K11 CPU families was added.
28
2920090309:
30	IGMPv3 and Source-Specific Multicast (SSM) have been merged
31	to the IPv4 stack. VIMAGE hooks are in but not yet used.
32
33	For kernel developers, the most important changes are that the
34	ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(),
35	and this lock has been downgraded to a non-recursive mutex.
36
37	Transport protocols (UDP, Raw IP) are now responsible for filtering
38	inbound multicast traffic according to group membership and source
39	filters. The imo_multicast_filter() KPI exists for this purpose.
40	Transports which do not use multicast (SCTP, TCP) already reject
41	multicast by default. Forwarding and receive performance may improve
42	as a mutex acquisition is no longer needed in the ip_input()
43	low-level input path.  in_addmulti() and in_delmulti() are shimmed
44	to new KPIs which exist to support SSM in-kernel.
45
46	For application developers, it is recommended that loopback of
47	multicast datagrams be disabled for best performance, as this
48	will still cause the lock to be taken for each looped-back
49	datagram transmission. The net.inet.ip.mcast.loop sysctl may
50	be tuned to 0 to disable loopback by default; it defaults to 1
51	to preserve the existing behaviour.
52
53	For systems administrators, to obtain best performance with
54	multicast reception and multiple groups, it is always recommended
55	that a card with a suitably precise hash filter is used. Hash
56	collisions will still result in the lock being taken within the
57	transport protocol input path to check group membership.
58
59	If deploying FreeBSD in an environment with IGMP snooping switches,
60	it is recommended that the net.inet.igmp.sendlocal sysctl remain
61	enabled; this forces 224.0.0.0/24 group membership to be announced
62	via IGMP.
63
64	The size of 'struct igmpstat' has changed; netstat needs to be
65	recompiled to reflect this.
66	Bump __FreeBSD_version to 800070.
67
6820090309:
69	libusb20.so.1 is now installed as libusb.so.1 and the ports system
70	updated to use it. This requires a buildworld/installworld in order to
71	update the library and dependencies (usbconfig, etc). Its advisable to
72	rebuild all ports which uses libusb. More specific directions are given
73	in the ports collection UPDATING file. Any /etc/libmap.conf entries for
74	libusb are no longer required and can be removed.
75
7620090302:
77	A workaround is committed to allow the creation of System V shared
78	memory segment of size > 2 GB on the 64-bit architectures.
79	Due to a limitation of the existing ABI, the shm_segsz member
80	of the struct shmid_ds, returned by shmctl(IPC_STAT) call is
81	wrong for large segments. Note that limits must be explicitely
82	raised to allow such segments to be created.
83
8420090301:
85	The layout of struct ifnet has changed, requiring a rebuild of all
86	network device driver modules.
87
8820090227:
89	The /dev handling for the new USB stack has changed, a
90	buildworld/installworld is required for libusb20.
91
9220090223:
93	The new USB2 stack has now been permanently moved in and all kernel and
94	module names reverted to their previous values (eg, usb, ehci, ohci,
95	ums, ...).  The old usb stack can be compiled in by prefixing the name
96	with the letter 'o', the old usb modules have been removed.
97	Updating entry 20090216 for xorg and 20090215 for libmap may still
98	apply.
99
10020090217:
101	The rc.conf(5) option if_up_delay has been renamed to
102	defaultroute_delay to better reflect its purpose. If you have
103	customized this setting in /etc/rc.conf you need to update it to
104	use the new name.
105
10620090216:
107	xorg 7.4 wants to configure its input devices via hald which does not
108	yet work with USB2. If the keyboard/mouse does not work in xorg then
109	add
110		Option "AllowEmptyInput" "off"
111	to your ServerLayout section.  This will cause X to use the configured
112	kbd and mouse sections from your xorg.conf.
113
11420090215:
115	The GENERIC kernels for all architectures now default to the new USB2
116	stack. No kernel config options or code have been removed so if a
117	problem arises please report it and optionally revert to the old USB
118	stack. If you are loading USB kernel modules or have a custom kernel
119	that includes GENERIC then ensure that usb names are also changed over,
120	eg uftdi -> usb2_serial_ftdi.
121
122	Older programs linked against the ports libusb 0.1 need to be
123	redirected to the new stack's libusb20.  /etc/libmap.conf can
124	be used for this:
125		# Map old usb library to new one for usb2 stack
126		libusb-0.1.so.8	libusb20.so.1
127
12820090203:
129	The ichsmb(4) driver has been changed to require SMBus slave
130	addresses be left-justified (xxxxxxx0b) rather than right-justified.
131	All of the other SMBus controller drivers require left-justified
132	slave addresses, so this change makes all the drivers provide the
133	same interface.
134
13520090201:
136	INET6 statistics (struct ip6stat) was updated.
137	netstat(1) needs to be recompiled.
138
13920090119:
140	NTFS has been removed from GENERIC kernel on amd64 to match
141	GENERIC on i386. Should not cause any issues since mount_ntfs(8)
142	will load ntfs.ko module automatically when NTFS support is
143	actually needed, unless ntfs.ko is not installed or security
144	level prohibits loading kernel modules. If either is the case,
145	"options NTFS" has to be added into kernel config.
146
14720090115:
148	TCP Appropriate Byte Counting (RFC 3465) support added to kernel.
149	New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to
150	800061. User space tools that rely on the size of struct tcpcb in
151	tcp_var.h (e.g. sockstat) need to be recompiled.
152
15320081225:
154	ng_tty(4) module updated to match the new TTY subsystem.
155	Due to API change, user-level applications must be updated.
156	New API support added to mpd5 CVS and expected to be present
157	in next mpd5.3 release.
158
15920081219:
160	With __FreeBSD_version 800060 the makefs tool is part of
161	the base system (it was a port).
162
16320081216:
164	The afdata and ifnet locks have been changed from mutexes to
165	rwlocks, network modules will need to be re-compiled.
166
16720081214:
168	__FreeBSD_version 800059 incorporates the new arp-v2 rewrite.
169	RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated.
170	The new code reduced struct rtentry{} by 16 bytes on 32-bit
171	architecture and 40 bytes on 64-bit architecture. The userland
172	applications "arp" and "ndp" have been updated accordingly.
173	The output from "netstat -r" shows only routing entries and
174	none of the L2 information.
175
17620081130:
177	__FreeBSD_version 800057 marks the switchover from the
178	binary ath hal to source code. Users must add the line:
179
180	options	AH_SUPPORT_AR5416
181
182	to their kernel config files when specifying:
183
184	device	ath_hal
185
186	The ath_hal module no longer exists; the code is now compiled
187	together with the driver in the ath module.  It is now
188	possible to tailor chip support (i.e. reduce the set of chips
189	and thereby the code size); consult ath_hal(4) for details.
190
19120081121:
192	__FreeBSD_version 800054 adds memory barriers to
193	<machine/atomic.h>, new interfaces to ifnet to facilitate
194	multiple hardware transmit queues for cards that support
195	them, and a lock-less ring-buffer implementation to
196	enable drivers to more efficiently manage queueing of
197	packets.
198
19920081117:
200	A new version of ZFS (version 13) has been merged to -HEAD.
201	This version has zpool attribute "listsnapshots" off by
202	default, which means "zfs list" does not show snapshots,
203	and is the same as Solaris behavior.
204
20520081028:
206	dummynet(4) ABI has changed. ipfw(8) needs to be recompiled.
207
20820081009:
209	The uhci, ohci, ehci and slhci USB Host controller drivers have
210	been put into separate modules. If you load the usb module
211	separately through loader.conf you will need to load the
212	appropriate *hci module as well. E.g. for a UHCI-based USB 2.0
213	controller add the following to loader.conf:
214
215		uhci_load="YES"
216		ehci_load="YES"
217
21820081009:
219	The ABI used by the PMC toolset has changed.  Please keep
220	userland (libpmc(3)) and the kernel module (hwpmc(4)) in
221	sync.
222
22320080820:
224	The TTY subsystem of the kernel has been replaced by a new
225	implementation, which provides better scalability and an
226	improved driver model. Most common drivers have been migrated to
227	the new TTY subsystem, while others have not. The following
228	drivers have not yet been ported to the new TTY layer:
229
230	PCI/ISA:
231		cy, digi, rc, rp, sio
232
233	USB:
234		ubser, ucycom
235
236	Line disciplines:
237		ng_h4, ng_tty, ppp, sl, snp
238
239	Adding these drivers to your kernel configuration file shall
240	cause compilation to fail.
241
24220080818:
243	ntpd has been upgraded to 4.2.4p5.
244
24520080801:
246	OpenSSH has been upgraded to 5.1p1.
247
248	For many years, FreeBSD's version of OpenSSH preferred DSA
249	over RSA for host and user authentication keys.  With this
250	upgrade, we've switched to the vendor's default of RSA over
251	DSA.  This may cause upgraded clients to warn about unknown
252	host keys even for previously known hosts.  Users should
253	follow the usual procedure for verifying host keys before
254	accepting the RSA key.
255
256	This can be circumvented by setting the "HostKeyAlgorithms"
257	option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh
258	command line.
259
260	Please note that the sequence of keys offered for
261	authentication has been changed as well.  You may want to
262	specify IdentityFile in a different order to revert this
263	behavior.
264
26520080713:
266	The sio(4) driver has been removed from the i386 and amd64
267	kernel configuration files. This means uart(4) is now the
268	default serial port driver on those platforms as well.
269
270	To prevent collisions with the sio(4) driver, the uart(4) driver
271	uses different names for its device nodes. This means the
272	onboard serial port will now most likely be called "ttyu0"
273	instead of "ttyd0". You may need to reconfigure applications to
274	use the new device names.
275
276	When using the serial port as a boot console, be sure to update
277	/boot/device.hints and /etc/ttys before booting the new kernel.
278	If you forget to do so, you can still manually specify the hints
279	at the loader prompt:
280
281		set hint.uart.0.at="isa"
282		set hint.uart.0.port="0x3F8"
283		set hint.uart.0.flags="0x10"
284		set hint.uart.0.irq="4"
285		boot -s
286
28720080609:
288	The gpt(8) utility has been removed. Use gpart(8) to partition
289	disks instead.
290
29120080603:
292	The version that Linuxulator emulates was changed from 2.4.2
293	to 2.6.16. If you experience any problems with Linux binaries
294	please try to set sysctl compat.linux.osrelease to 2.4.2 and
295	if it fixes the problem contact emulation mailing list.
296
29720080525:
298	ISDN4BSD (I4B) was removed from the src tree. You may need to
299	update a your kernel configuration and remove relevant entries.
300
30120080509:
302	I have checked in code to support multiple routing tables.
303	See the man pages setfib(1) and setfib(2).
304	This is a hopefully backwards compatible version,
305	but to make use of it you need to compile your kernel
306	with options ROUTETABLES=2 (or more up to 16).
307
30820080420:
309	The 802.11 wireless support was redone to enable multi-bss
310	operation on devices that are capable.  The underlying device
311	is no longer used directly but instead wlanX devices are
312	cloned with ifconfig.  This requires changes to rc.conf files.
313	For example, change:
314		ifconfig_ath0="WPA DHCP"
315	to
316		wlans_ath0=wlan0
317		ifconfig_wlan0="WPA DHCP"
318	see rc.conf(5) for more details.  In addition, mergemaster of
319	/etc/rc.d is highly recommended.  Simultaneous update of userland
320	and kernel wouldn't hurt either.
321
322	As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta
323	modules were merged into the base wlan module.  All references
324	to these modules (e.g. in kernel config files) must be removed.
325
32620080408:
327	psm(4) has gained write(2) support in native operation level.
328	Arbitrary commands can be written to /dev/psm%d and status can
329	be read back from it.  Therefore, an application is responsible
330	for status validation and error recovery.  It is a no-op in
331	other operation levels.
332
33320080312:
334	Support for KSE threading has been removed from the kernel.  To
335	run legacy applications linked against KSE libmap.conf may
336	be used.  The following libmap.conf may be used to ensure
337	compatibility with any prior release:
338
339	libpthread.so.1 libthr.so.1
340	libpthread.so.2 libthr.so.2
341	libkse.so.3 libthr.so.3
342
34320080301:
344	The layout of struct vmspace has changed. This affects libkvm
345	and any executables that link against libkvm and use the
346	kvm_getprocs() function. In particular, but not exclusively,
347	it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1).
348	The effects are minimal, but it's advisable to upgrade world
349	nonetheless.
350
35120080229:
352	The latest em driver no longer has support in it for the
353	82575 adapter, this is now moved to the igb driver. The
354	split was done to make new features that are incompatible
355	with older hardware easier to do.
356
35720080220:
358	The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4),
359	likewise the kernel option is now GEOM_LINUX_LVM.
360
36120080211:
362	The default NFS mount mode has changed from UDP to TCP for
363	increased reliability.  If you rely on (insecurely) NFS
364	mounting across a firewall you may need to update your
365	firewall rules.
366
36720080208:
368	Belatedly note the addition of m_collapse for compacting
369	mbuf chains.
370
37120080126:
372	The fts(3) structures have been changed to use adequate
373	integer types for their members and so to be able to cope
374	with huge file trees.  The old fts(3) ABI is preserved
375	through symbol versioning in libc, so third-party binaries
376	using fts(3) should still work, although they will not take
377	advantage of the extended types.  At the same time, some
378	third-party software might fail to build after this change
379	due to unportable assumptions made in its source code about
380	fts(3) structure members.  Such software should be fixed
381	by its vendor or, in the worst case, in the ports tree.
382	FreeBSD_version 800015 marks this change for the unlikely
383	case that a portable fix is impossible.
384
38520080123:
386	To upgrade to -current after this date, you must be running
387	FreeBSD not older than 6.0-RELEASE.  Upgrading to -current
388	from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems.
389
39020071128:
391	The ADAPTIVE_GIANT kernel option has been retired because its
392	functionality is the default now.
393
39420071118:
395	The AT keyboard emulation of sunkbd(4) has been turned on
396	by default. In order to make the special symbols of the Sun
397	keyboards driven by sunkbd(4) work under X these now have
398	to be configured the same way as Sun USB keyboards driven
399	by ukbd(4) (which also does AT keyboard emulation), f.e.:
400
401	Option	"XkbLayout" "us"
402	Option	"XkbRules" "xorg"
403	Option	"XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us"
404
40520071024:
406	It has been decided that it is desirable to provide ABI
407	backwards compatibility to the FreeBSD 4/5/6 versions of the
408	PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was
409	broken with the introduction of PCI domain support (see the
410	20070930 entry). Unfortunately, this required the ABI of
411	PCIOCGETCONF to be broken again in order to be able to
412	provide backwards compatibility to the old version of that
413	IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled
414	again. As for prominent ports this affects neither pciutils
415	nor xorg-server this time, the hal port needs to be rebuilt
416	however.
417
41820071020:
419	The misnamed kthread_create() and friends have been renamed
420	to kproc_create() etc. Many of the callers already
421	used kproc_start()..
422	I will return kthread_create() and friends in a while
423	with implementations that actually create threads, not procs.
424	Renaming corresponds with version 800002.
425
42620071010:
427	RELENG_7 branched.
428
42920071009:
430	Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and
431	WITHOUT_LIBTHR are set.
432
43320070930:
434	The PCI code has been made aware of PCI domains. This means that
435	the location strings as used by pciconf(8) etc are now in the
436	following format: pci<domain>:<bus>:<device>[:<function>]. It
437	also means that consumers of <sys/pciio.h> potentially need to
438	be recompiled; this includes the hal and xorg-server ports.
439
44020070928:
441	The caching daemon (cached) was renamed to nscd. nscd.conf
442	configuration file should be used instead of cached.conf and
443	nscd_enable, nscd_pidfile and nscd_flags options should be used
444	instead of cached_enable, cached_pidfile and cached_flags in
445	rc.conf.
446
44720070921:
448	The getfacl(1) utility now prints owning user and group name
449	instead of owning uid and gid in the three line comment header.
450	This is the same behavior as getfacl(1) on Solaris and Linux.
451
45220070704:
453	The new IPsec code is now compiled in using the IPSEC option.  The
454	IPSEC option now requires "device crypto" be defined in your kernel
455	configuration.  The FAST_IPSEC kernel option is now deprecated.
456
45720070702:
458	The packet filter (pf) code has been updated to OpenBSD 4.1 Please
459	note the changed syntax - keep state is now on by default.  Also
460	note the fact that ftp-proxy(8) has been changed from bottom up and
461	has been moved from libexec to usr/sbin.  Changes in the ALTQ
462	handling also affect users of IPFW's ALTQ capabilities.
463
46420070701:
465	Remove KAME IPsec in favor of FAST_IPSEC, which is now the
466	only IPsec supported by FreeBSD.  The new IPsec stack
467	supports both IPv4 and IPv6. The kernel option will change
468	after the code changes have settled in.  For now the kernel
469	option IPSEC is deprecated and FAST_IPSEC is the only option, that
470	will change after some settling time.
471
47220070701:
473	The wicontrol(8) utility has been removed from the base system. wi(4)
474	cards should be configured using ifconfig(8), see the man page for more
475	information.
476
47720070612:
478	The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver
479	instead of the nve(4) driver. Please update your configuration
480	accordingly.
481
48220070612:
483	By default, /etc/rc.d/sendmail no longer rebuilds the aliases
484	database if it is missing or older than the aliases file.  If
485	desired, set the new rc.conf option sendmail_rebuild_aliases
486	to "YES" to restore that functionality.
487
48820070612:
489	The IPv4 multicast socket code has been considerably modified, and
490	moved to the file sys/netinet/in_mcast.c. Initial support for the
491	RFC 3678 Source-Specific Multicast Socket API has been added to
492	the IPv4 network stack.
493
494	Strict multicast and broadcast reception is now the default for
495	UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable
496	has now been removed.
497
498	The RFC 1724 hack for interface selection has been removed; the use
499	of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has
500	been added to replace it. Consumers such as routed will soon be
501	updated to reflect this.
502
503	These changes affect users who are running routed(8) or rdisc(8)
504	from the FreeBSD base system on point-to-point or unnumbered
505	interfaces.
506
50720070610:
508	The net80211 layer has changed significantly and all wireless
509	drivers that depend on it need to be recompiled.  Further these
510	changes require that any program that interacts with the wireless
511	support in the kernel be recompiled; this includes: ifconfig,
512	wpa_supplicant, hostapd, and wlanstats.  Users must also, for
513	the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules
514	if they use modules for wireless support.  These modules implement
515	scanning support for station and ap modes, respectively.  Failure
516	to load the appropriate module before marking a wireless interface
517	up will result in a message to the console and the device not
518	operating properly.
519
52020070610:
521	The pam_nologin(8) module ceases to provide an authentication
522	function and starts providing an account management function.
523	Consequent changes to /etc/pam.d should be brought in using
524	mergemaster(8).  Third-party files in /usr/local/etc/pam.d may
525	need manual editing as follows.  Locate this line (or similar):
526
527		auth	required	pam_nologin.so	no_warn
528
529	and change it according to this example:
530
531		account	required	pam_nologin.so	no_warn
532
533	That is, the first word needs to be changed from "auth" to
534	"account".  The new line can be moved to the account section
535	within the file for clarity.  Not updating pam.conf(5) files
536	will result in nologin(5) ignored by the respective services.
537
53820070529:
539	The ether_ioctl() function has been synchronized with ioctl(2)
540	and ifnet.if_ioctl.  Due to that, the size of one of its arguments
541	has changed on 64-bit architectures.  All kernel modules using
542	ether_ioctl() need to be rebuilt on such architectures.
543
54420070516:
545	Improved INCLUDE_CONFIG_FILE support has been introduced to the
546	config(8) utility. In order to take advantage of this new
547	functionality, you are expected to recompile and install
548	src/usr.sbin/config. If you don't rebuild config(8), and your
549	kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel
550	build will be broken because of a missing "kernconfstring"
551	symbol.
552
55320070513:
554	Symbol versioning is enabled by default.  To disable it, use
555	option WITHOUT_SYMVER.  It is not advisable to attempt to
556	disable symbol versioning once it is enabled; your installworld
557	will break because a symbol version-less libc will get installed
558	before the install tools.  As a result, the old install tools,
559	which previously had symbol dependencies to FBSD_1.0, will fail
560	because the freshly installed libc will not have them.
561
562	The default threading library (providing "libpthread") has been
563	changed to libthr.  If you wish to have libkse as your default,
564	use option DEFAULT_THREAD_LIB=libkse for the buildworld.
565
56620070423:
567	The ABI breakage in sendmail(8)'s libmilter has been repaired
568	so it is no longer necessary to recompile mail filters (aka,
569	milters).  If you recompiled mail filters after the 20070408
570	note, it is not necessary to recompile them again.
571
57220070417:
573	The new trunk(4) driver has been renamed to lagg(4) as it better
574	reflects its purpose. ifconfig will need to be recompiled.
575
57620070408:
577	sendmail(8) has been updated to version 8.14.1.  Mail filters
578	(aka, milters) compiled against the libmilter included in the
579	base operating system should be recompiled.
580
58120070302:
582	Firmwares for ipw(4) and iwi(4) are now included in the base tree.
583	In order to use them one must agree to the respective LICENSE in
584	share/doc/legal and define legal.intel_<name>.license_ack=1 via
585	loader.conf(5) or kenv(1).  Make sure to deinstall the now
586	deprecated modules from the respective firmware ports.
587
58820070228:
589	The name resolution/mapping functions addr2ascii(3) and ascii2addr(3)
590	were removed from FreeBSD's libc. These originally came from INRIA
591	IPv6. Nothing in FreeBSD ever used them. They may be regarded as
592	deprecated in previous releases.
593	The AF_LINK support for getnameinfo(3) was merged from NetBSD to
594	replace it as a more portable (and re-entrant) API.
595
59620070224:
597	To support interrupt filtering a modification to the newbus API
598	has occurred, ABI was broken and __FreeBSD_version was bumped
599	to 700031. Please make sure that your kernel and modules are in
600	sync. For more info:
601	http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941
602
60320070224:
604	The IPv6 multicast forwarding code may now be loaded into GENERIC
605	kernels by loading the ip_mroute.ko module. This is built into the
606	module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are
607	set; see src.conf(5) for more information.
608
60920070214:
610	The output of netstat -r has changed. Without -n, we now only
611	print a "network name" without the prefix length if the network
612	address and mask exactly match a Class A/B/C network, and an entry
613	exists in the nsswitch "networks" map.
614	With -n, we print the full unabbreviated CIDR network prefix in
615	the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default".
616	This change is in preparation for changes such as equal-cost
617	multipath, and to more generally assist operational deployment
618	of FreeBSD as a modern IPv4 router.
619
62020070210:
621	PIM has been turned on by default in the IPv4 multicast
622	routing code. The kernel option 'PIM' has now been removed.
623	PIM is now built by default if option 'MROUTING' is specified.
624	It may now be loaded into GENERIC kernels by loading the
625	ip_mroute.ko module.
626
62720070207:
628	Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing
629	has been removed. Its functionality may be achieved by explicitly
630	configuring gif(4) interfaces and using the 'phyint' keyword in
631	mrouted.conf.
632	XORP does not support source-routed IPv4 multicast tunnels nor the
633	integrated IPIP tunneling, therefore it is not affected by this
634	change. The __FreeBSD_version macro has been bumped to 700030.
635
63620061221:
637	Support for PCI Message Signalled Interrupts has been
638	re-enabled in the bge driver, only for those chips which are
639	believed to support it properly.  If there are any problems,
640	MSI can be disabled completely by setting the
641	'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0
642	in the loader.
643
64420061214:
645	Support for PCI Message Signalled Interrupts has been
646	disabled again in the bge driver.  Many revisions of the
647	hardware fail to support it properly.  Support can be
648	re-enabled by removing the #define of BGE_DISABLE_MSI in
649	"src/sys/dev/bge/if_bge.c".
650
65120061214:
652	Support for PCI Message Signalled Interrupts has been added
653	to the bge driver.  If there are any problems, MSI can be
654	disabled completely by setting the 'hw.pci.enable_msi' and
655	'hw.pci.enable_msix' tunables to 0 in the loader.
656
65720061205:
658	The removal of several facets of the experimental Threading
659	system from the kernel means that the proc and thread structures
660	have changed quite a bit. I suggest all kernel modules that might
661	reference these structures be recompiled.. Especially the
662	linux module.
663
66420061126:
665	Sound infrastructure has been updated with various fixes and
666	improvements. Most of the changes are pretty much transparent,
667	with exceptions of followings:
668	1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been
669	   moved to their own dev sysctl nodes, for example:
670		hw.snd.pcm0.vchans -> dev.pcm.0.vchans
671	2) /dev/dspr%d.%d has been deprecated. Each channel now has its
672	   own chardev in the form of "dsp%d.<function>%d", where <function>
673	   is p = playback, r = record and v = virtual, respectively. Users
674	   are encouraged to use these devs instead of (old) "/dev/dsp%d.%d".
675	   This does not affect those who are using "/dev/dsp".
676
67720061122:
678	geom(4)'s gmirror(8) class metadata structure has been
679	rev'd from v3 to v4. If you update across this point and
680	your metadata is converted for you, you will not be easily
681	able to downgrade since the /boot/kernel.old/geom_mirror.ko
682	kernel module will be unable to read the v4 metadata.  You
683	can resolve this by doing from the loader(8) prompt:
684
685		set vfs.root.mountfrom="ufs:/dev/XXX"
686
687	where XXX is the root slice of one of the disks that composed
688	the mirror (i.e.: /dev/ad0s1a). You can then rebuild
689	the array the same way you built it originally.
690
69120061122:
692	The following binaries have been disconnected from the build:
693	mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs,
694	and mount_std.  The functionality of these programs has been
695	moved into the mount program.  For example, to mount a devfs
696	filesystem, instead of using mount_devfs, use: "mount -t devfs".
697	This does not affect entries in /etc/fstab, since entries in
698	/etc/fstab are always processed with "mount -t fstype".
699
70020061113:
701	Support for PCI Message Signalled Interrupts on i386 and amd64
702	has been added to the kernel and various drivers will soon be
703	updated to use MSI when it is available.  If there are any problems,
704	MSI can be disabled completely by setting the 'hw.pci.enable_msi'
705	and 'hw.pci.enable_msix' tunables to 0 in the loader.
706
70720061110:
708	The MUTEX_PROFILING option has been renamed to LOCK_PROFILING.
709	The lockmgr object layout has been changed as a result of having
710	a lock_object embedded in it. As a consequence all file system
711	kernel modules must be re-compiled. The mutex profiling man page
712	has not yet been updated to reflect this change.
713
71420061026:
715	KSE in the kernel has now been made optional and turned on by
716	default. Use 'nooption KSE' in your kernel config to turn it
717	off. All kernel modules *must* be recompiled after this change.
718	There-after, modules from a KSE kernel should be compatible with
719	modules from a NOKSE kernel due to the temporary padding fields
720	added to 'struct proc'.
721
72220060929:
723	mrouted and its utilities have been removed from the base system.
724
72520060927:
726	Some ioctl(2) command codes have changed.  Full backward ABI
727	compatibility is provided if the "options COMPAT_FREEBSD6" is
728	present in the kernel configuration file.  Make sure to add
729	this option to your kernel config file, or recompile X.Org
730	and the rest of ports; otherwise they may refuse to work.
731
73220060924:
733	tcpslice has been removed from the base system.
734
73520060913:
736	The sizes of struct tcpcb (and struct xtcpcb) have changed due to
737	the rewrite of TCP syncookies.  Tools like netstat, sockstat, and
738	systat needs to be rebuilt.
739
74020060903:
741	libpcap updated to v0.9.4 and tcpdump to v3.9.4
742
74320060816:
744	The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour
745	for IPFIREWALL_FORWARD is now as it was before when it was first
746	committed and for years after. The behaviour is now ON.
747
74820060725:
749	enigma(1)/crypt(1) utility has been changed on 64 bit architectures.
750	Now it can decrypt files created from different architectures.
751	Unfortunately, it is no longer able to decrypt a cipher text
752	generated with an older version on 64 bit architectures.
753	If you have such a file, you need old utility to decrypt it.
754
75520060709:
756	The interface version of the i4b kernel part has changed. So
757	after updating the kernel sources and compiling a new kernel,
758	the i4b user space tools in "/usr/src/usr.sbin/i4b" must also
759	be rebuilt, and vice versa.
760
76120060627:
762	The XBOX kernel now defaults to the nfe(4) driver instead of
763	the nve(4) driver. Please update your configuration
764	accordingly.
765
76620060514:
767	The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx
768	PCnet family of NICs has been removed. The new le(4) driver serves
769	as an equivalent but cross-platform replacement with the pcn(4)
770	driver still providing performance-optimized support for the subset
771	of AMD Am79C971 PCnet-FAST and greater chips as before.
772
77320060511:
774	The machdep.* sysctls and the adjkerntz utility have been
775	modified a bit.  The new adjkerntz utility uses the new
776	sysctl names and sysctlbyname() calls, so it may be impossible
777	to run an old /sbin/adjkerntz utility in single-user mode
778	with a new kernel.  Replace the `adjkerntz -i' step before
779	`make installworld' with:
780
781	    /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i
782
783	and proceed as usual with the rest of the installworld-stage
784	steps.  Otherwise, you risk installing binaries with their
785	timestamp set several hours in the future, especially if
786	you are running with local time set to GMT+X hours.
787
78820060412:
789	The ip6fw utility has been removed.  The behavior provided by
790	ip6fw has been in ipfw2 for a good while and the rc.d scripts
791	have been updated to deal with it.  There are some rules that
792	might not migrate cleanly.  Use rc.firewall6 as a template to
793	rewrite rules.
794
79520060428:
796	The puc(4) driver has been overhauled. The ebus(4) and sbus(4)
797	attachments have been removed. Make sure to configure scc(4)
798	on sparc64. Note also that by default puc(4) will use uart(4)
799	and not sio(4) for serial ports because interrupt handling has
800	been optimized for multi-port serial cards and only uart(4)
801	implements the interface to support it.
802
80320060330:
804	The scc(4) driver replaces puc(4) for Serial Communications
805	Controllers (SCCs) like the Siemens SAB82532 and the Zilog
806	Z8530. On sparc64, it is advised to add scc(4) to the kernel
807	configuration to make sure that the serial ports remain
808	functional.
809
81020060317:
811	Most world/kernel related NO_* build options changed names.
812	New knobs have common prefixes WITHOUT_*/WITH_* (modelled
813	after FreeBSD ports) and should be set in /etc/src.conf
814	(the src.conf(5) manpage is provided).  Full backwards
815	compatibility is maintained for the time being though it's
816	highly recommended to start moving old options out of the
817	system-wide /etc/make.conf file into the new /etc/src.conf
818	while also properly renaming them.  More conversions will
819	likely follow.  Posting to current@:
820
821	http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html
822
82320060305:
824	The NETSMBCRYPTO kernel option has been retired because its
825	functionality is always included in NETSMB and smbfs.ko now.
826
82720060303:
828	The TDFX_LINUX kernel option was retired and replaced by the
829	tdfx_linux device.  The latter can be loaded as the 3dfx_linux.ko
830	kernel module.  Loading it alone should suffice to get 3dfx support
831	for Linux apps because it will pull in 3dfx.ko and linux.ko through
832	its dependencies.
833
83420060204:
835	The 'audit' group was added to support the new auditing functionality
836	in the base system.  Be sure to follow the directions for updating,
837	including the requirement to run mergemaster -p.
838
83920060201:
840	The kernel ABI to file system modules was changed on i386.
841	Please make sure that your kernel and modules are in sync.
842
84320060118:
844	This actually occured some time ago, but installing the kernel
845	now also installs a bunch of symbol files for the kernel modules.
846	This increases the size of /boot/kernel to about 67Mbytes. You
847	will need twice this if you will eventually back this up to kernel.old
848	on your next install.
849	If you have a shortage of room in your root partition, you should add
850	-DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes"
851	to your /etc/make.conf.
852
85320060113:
854	libc's malloc implementation has been replaced.  This change has the
855	potential to uncover application bugs that previously went unnoticed.
856	See the malloc(3) manual page for more details.
857
85820060112:
859	The generic netgraph(4) cookie has been changed. If you upgrade
860	kernel passing this point, you also need to upgrade userland
861	and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4.
862
86320060106:
864	si(4)'s device files now contain the unit number.
865	Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f].
866
86720060106:
868	The kernel ABI was mostly destroyed due to a change in the size
869	of struct lock_object which is nested in other structures such
870	as mutexes which are nested in all sorts of other structures.
871	Make sure your kernel and modules are in sync.
872
87320051231:
874	The page coloring algorithm in the VM subsystem was converted
875	from tuning with kernel options to autotuning. Please remove
876	any PQ_* option except PQ_NOOPT from your kernel config.
877
87820051211:
879	The net80211-related tools in the tools/tools/ath directory
880	have been moved to tools/tools/net80211 and renamed with a
881	"wlan" prefix.  Scripts that use them should be adjusted
882	accordingly.
883
88420051202:
885	Scripts in the local_startup directories (as defined in
886	/etc/defaults/rc.conf) that have the new rc.d semantics will
887	now be run as part of the base system rcorder. If there are
888	errors or problems with one of these local scripts, it could
889	cause boot problems. If you encounter such problems, boot in
890	single user mode, remove that script from the */rc.d directory.
891	Please report the problem to the port's maintainer, and the
892	freebsd-ports@freebsd.org mailing list.
893
89420051129:
895	The nodev mount option was deprecated in RELENG_6 (where it
896	was a no-op), and is now unsupported.  If you have nodev or dev listed
897	in /etc/fstab, remove it, otherwise it will result in a mount error.
898
89920051129:
900	ABI between ipfw(4) and ipfw(8) has been changed. You need
901	to rebuild ipfw(8) when rebuilding kernel.
902
90320051108:
904	rp(4)'s device files now contain the unit number.
905	Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f].
906
90720051029:
908	/etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp.
909	Its /etc/rc.conf.d configuration file has been `ppp' from
910	the beginning, and hence there is no need to touch it.
911
91220051014:
913	Now most modules get their build-time options from the kernel
914	configuration file.  A few modules still have fixed options
915	due to their non-conformant implementation, but they will be
916	corrected eventually.  You may need to review the options of
917	the modules in use, explicitly specify the non-default options
918	in the kernel configuration file, and rebuild the kernel and
919	modules afterwards.
920
92120051001:
922	kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8)
923	to turn polling(4) on your interfaces.
924
92520050927:
926	The old bridge(4) implementation was retired.  The new
927	if_bridge(4) serves as a full functional replacement.
928
92920050722:
930	The ai_addrlen of a struct addrinfo was changed to a socklen_t
931	to conform to POSIX-2001.  This change broke an ABI
932	compatibility on 64 bit architecture.  You have to recompile
933	userland programs that use getaddrinfo(3) on 64 bit
934	architecture.
935
93620050711:
937	RELENG_6 branched here.
938
93920050629:
940	The pccard_ifconfig rc.conf variable has been removed and a new
941	variable, ifconfig_DEFAULT has been introduced.  Unlike
942	pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that
943	do not have ifconfig_ifn entries rather than just those in
944	removable_interfaces.
945
94620050616:
947	Some previous versions of PAM have permitted the use of
948	non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring
949	to third party PAM modules in /usr/local/lib.  A change has been
950	made to require the use of absolute paths in order to avoid
951	ambiguity and dependence on library path configuration, which may
952	affect existing configurations.
953
95420050610:
955	Major changes to network interface API.  All drivers must be
956	recompiled.  Drivers not in the base system will need to be
957	updated to the new APIs.
958
95920050609:
960	Changes were made to kinfo_proc in sys/user.h.  Please recompile
961	userland, or commands like `fstat', `pkill', `ps', `top' and `w'
962	will not behave correctly.
963
964	The API and ABI for hwpmc(4) have changed with the addition
965	of sampling support.  Please recompile lib/libpmc(3) and
966	usr.sbin/{pmcstat,pmccontrol}.
967
96820050606:
969	The OpenBSD dhclient was imported in place of the ISC dhclient
970	and the network interface configuration scripts were updated
971	accordingly.  If you use DHCP to configure your interfaces, you
972	must now run devd.  Also, DNS updating was lost so you will need
973	to find a workaround if you use this feature.
974
975	The '_dhcp' user was added to support the OpenBSD dhclient.  Be
976	sure to run mergemaster -p (like you are supposed to do every time
977	anyway).
978
97920050605:
980	if_bridge was added to the tree. This has changed struct ifnet.
981	Please recompile userland and all network related modules.
982
98320050603:
984	The n_net of a struct netent was changed to an uint32_t, and
985	1st argument of getnetbyaddr() was changed to an uint32_t, to
986	conform to POSIX-2001.  These changes broke an ABI
987	compatibility on 64 bit architecture.  With these changes,
988	shlib major of libpcap was bumped.  You have to recompile
989	userland programs that use getnetbyaddr(3), getnetbyname(3),
990	getnetent(3) and/or libpcap on 64 bit architecture.
991
99220050528:
993	Kernel parsing of extra options on '#!' first lines of shell
994	scripts has changed.  Lines with multiple options likely will
995	fail after this date.  For full details, please see
996		http://people.freebsd.org/~gad/Updating-20050528.txt
997
99820050503:
999	The packet filter (pf) code has been updated to OpenBSD 3.7
1000	Please note the changed anchor syntax and the fact that
1001	authpf(8) now needs a mounted fdescfs(5) to function.
1002
100320050415:
1004	The NO_MIXED_MODE kernel option has been removed from the i386
1005	amd64 platforms as its use has been superceded by the new local
1006	APIC timer code.  Any kernel config files containing this option
1007	should be updated.
1008
100920050227:
1010	The on-disk format of LC_CTYPE files was changed to be machine
1011	independent.  Please make sure NOT to use NO_CLEAN buildworld
1012	when crossing this point. Crossing this point also requires
1013	recompile or reinstall of all locale depended packages.
1014
101520050225:
1016	The ifi_epoch member of struct if_data has been changed to
1017	contain the uptime at which the interface was created or the
1018	statistics zeroed rather then the wall clock time because
1019	wallclock time may go backwards.  This should have no impact
1020	unless an snmp implementation is using this value (I know of
1021	none at this point.)
1022
102320050224:
1024	The acpi_perf and acpi_throttle drivers are now part of the
1025	acpi(4) main module.  They are no longer built separately.
1026
102720050223:
1028	The layout of struct image_params has changed. You have to
1029	recompile all compatibility modules (linux, svr4, etc) for use
1030	with the new kernel.
1031
103220050223:
1033	The p4tcc driver has been merged into cpufreq(4).  This makes
1034	"options CPU_ENABLE_TCC" obsolete.  Please load cpufreq.ko or
1035	compile in "device cpufreq" to restore this functionality.
1036
103720050220:
1038	The responsibility of recomputing the file system summary of
1039	a SoftUpdates-enabled dirty volume has been transferred to the
1040	background fsck.  A rebuild of fsck(8) utility is recommended
1041	if you have updated the kernel.
1042
1043	To get the old behavior (recompute file system summary at mount
1044	time), you can set vfs.ffs.compute_summary_at_mount=1 before
1045	mounting the new volume.
1046
104720050206:
1048	The cpufreq import is complete.  As part of this, the sysctls for
1049	acpi(4) throttling have been removed.  The power_profile script
1050	has been updated, so you can use performance/economy_cpu_freq in
1051	rc.conf(5) to set AC on/offline cpu frequencies.
1052
105320050206:
1054	NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko)
1055	requires recompiling libnetgraph and userland netgraph utilities.
1056
105720050114:
1058	Support for abbreviated forms of a number of ipfw options is
1059	now deprecated.  Warnings are printed to stderr indicating the
1060	correct full form when a match occurs.  Some abbreviations may
1061	be supported at a later date based on user feedback.  To be
1062	considered for support, abbreviations must be in use prior to
1063	this commit and unlikely to be confused with current key words.
1064
106520041221:
1066	By a popular demand, a lot of NOFOO options were renamed
1067	to NO_FOO (see bsd.compat.mk for a full list).  The old
1068	spellings are still supported, but will cause annoying
1069	warnings on stderr.  Make sure you upgrade properly (see
1070	the COMMON ITEMS: section later in this file).
1071
107220041219:
1073	Auto-loading of ancillary wlan modules such as wlan_wep has
1074	been temporarily disabled; you need to statically configure
1075	the modules you need into your kernel or explicitly load them
1076	prior to use.  Specifically, if you intend to use WEP encryption
1077	with an 802.11 device load/configure wlan_wep; if you want to
1078	use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp,
1079	and wlan_xauth as required.
1080
108120041213:
1082	The behaviour of ppp(8) has changed slightly.  If lqr is enabled
1083	(``enable lqr''), older versions would revert to LCP ECHO mode on
1084	negotiation failure.  Now, ``enable echo'' is required for this
1085	behaviour.  The ppp version number has been bumped to 3.4.2 to
1086	reflect the change.
1087
108820041201:
1089	The wlan support has been updated to split the crypto support
1090	into separate modules.  For static WEP you must configure the
1091	wlan_wep module in your system or build and install the module
1092	in place where it can be loaded (the kernel will auto-load
1093	the module when a wep key is configured).
1094
109520041201:
1096	The ath driver has been updated to split the tx rate control
1097	algorithm into a separate module.  You need to include either
1098	ath_rate_onoe or ath_rate_amrr when configuring the kernel.
1099
110020041116:
1101	Support for systems with an 80386 CPU has been removed.  Please
1102	use FreeBSD 5.x or earlier on systems with an 80386.
1103
110420041110:
1105	We have had a hack which would mount the root filesystem
1106	R/W if the device were named 'md*'.  As part of the vnode
1107	work I'm doing I have had to remove this hack.  People
1108	building systems which use preloaded MD root filesystems
1109	may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in
1110	their /etc/rc scripts.
1111
111220041104:
1113	FreeBSD 5.3 shipped here.
1114
111520041102:
1116	The size of struct tcpcb has changed again due to the removal
1117	of RFC1644 T/TCP.  You have to recompile userland programs that
1118	read kmem for tcp sockets directly (netstat, sockstat, etc.)
1119
112020041022:
1121	The size of struct tcpcb has changed.  You have to recompile
1122	userland programs that read kmem for tcp sockets directly
1123	(netstat, sockstat, etc.)
1124
112520041016:
1126	RELENG_5 branched here.  For older entries, please see updating
1127	in the RELENG_5 branch.
1128
1129COMMON ITEMS:
1130
1131	General Notes
1132	-------------
1133	Avoid using make -j when upgrading.  From time to time in the
1134	past there have been problems using -j with buildworld and/or
1135	installworld.  This is especially true when upgrading between
1136	"distant" versions (eg one that cross a major release boundary
1137	or several minor releases, or when several months have passed
1138	on the -current branch).
1139
1140	Sometimes, obscure build problems are the result of environment
1141	poisoning.  This can happen because the make utility reads its
1142	environment when searching for values for global variables.
1143	To run your build attempts in an "environmental clean room",
1144	prefix all make commands with 'env -i '.  See the env(1) manual
1145	page for more details.
1146
1147	When upgrading from one major version to another it is generally
1148	best to upgrade to the latest code in the currently installed branch
1149	first, then do an upgrade to the new branch. This is the best-tested
1150	upgrade path, and has the highest probability of being successful.
1151	Please try this approach before reporting problems with a major
1152	version upgrade.
1153
1154	To build a kernel
1155	-----------------
1156	If you are updating from a prior version of FreeBSD (even one just
1157	a few days old), you should follow this procedure.  It is the most
1158	failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1159
1160	make kernel-toolchain
1161	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1162	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1163
1164	To test a kernel once
1165	---------------------
1166	If you just want to boot a kernel once (because you are not sure
1167	if it works, or if you want to boot a known bad kernel to provide
1168	debugging information) run
1169	make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1170	nextboot -k testkernel
1171
1172	To just build a kernel when you know that it won't mess you up
1173	--------------------------------------------------------------
1174	This assumes you are already running a 5.X system.  Replace
1175	${arch} with the architecture of your machine (e.g. "i386",
1176	"alpha", "amd64", "ia64", "pc98", "sparc64", etc).
1177
1178	cd src/sys/${arch}/conf
1179	config KERNEL_NAME_HERE
1180	cd ../compile/KERNEL_NAME_HERE
1181	make depend
1182	make
1183	make install
1184
1185	If this fails, go to the "To build a kernel" section.
1186
1187	To rebuild everything and install it on the current system.
1188	-----------------------------------------------------------
1189	# Note: sometimes if you are running current you gotta do more than
1190	# is listed here if you are upgrading from a really old current.
1191
1192	<make sure you have good level 0 dumps>
1193	make buildworld
1194	make kernel KERNCONF=YOUR_KERNEL_HERE
1195							[1]
1196	<reboot in single user>				[3]
1197	mergemaster -p					[5]
1198	make installworld
1199	make delete-old
1200	mergemaster					[4]
1201	<reboot>
1202
1203
1204	To cross-install current onto a separate partition
1205	--------------------------------------------------
1206	# In this approach we use a separate partition to hold
1207	# current's root, 'usr', and 'var' directories.   A partition
1208	# holding "/", "/usr" and "/var" should be about 2GB in
1209	# size.
1210
1211	<make sure you have good level 0 dumps>
1212	<boot into -stable>
1213	make buildworld
1214	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1215	<maybe newfs current's root partition>
1216	<mount current's root partition on directory ${CURRENT_ROOT}>
1217	make installworld DESTDIR=${CURRENT_ROOT}
1218	make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1219	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1220	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
1221	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1222	<reboot into current>
1223	<do a "native" rebuild/install as described in the previous section>
1224	<maybe install compatibility libraries from ports/misc/compat*>
1225	<reboot>
1226
1227
1228	To upgrade in-place from 5.x-stable to current
1229	----------------------------------------------
1230	<make sure you have good level 0 dumps>
1231	make buildworld					[9]
1232	make kernel KERNCONF=YOUR_KERNEL_HERE		[8]
1233							[1]
1234	<reboot in single user>				[3]
1235	mergemaster -p					[5]
1236	make installworld
1237	make delete-old
1238	mergemaster -i					[4]
1239	<reboot>
1240
1241	Make sure that you've read the UPDATING file to understand the
1242	tweaks to various things you need.  At this point in the life
1243	cycle of current, things change often and you are on your own
1244	to cope.  The defaults can also change, so please read ALL of
1245	the UPDATING entries.
1246
1247	Also, if you are tracking -current, you must be subscribed to
1248	freebsd-current@freebsd.org.  Make sure that before you update
1249	your sources that you have read and understood all the recent
1250	messages there.  If in doubt, please track -stable which has
1251	much fewer pitfalls.
1252
1253	[1] If you have third party modules, such as vmware, you
1254	should disable them at this point so they don't crash your
1255	system on reboot.
1256
1257	[3] From the bootblocks, boot -s, and then do
1258		fsck -p
1259		mount -u /
1260		mount -a
1261		cd src
1262		adjkerntz -i		# if CMOS is wall time
1263	Also, when doing a major release upgrade, it is required that
1264	you boot into single user mode to do the installworld.
1265
1266	[4] Note: This step is non-optional.  Failure to do this step
1267	can result in a significant reduction in the functionality of the
1268	system.  Attempting to do it by hand is not recommended and those
1269	that pursue this avenue should read this file carefully, as well
1270	as the archives of freebsd-current and freebsd-hackers mailing lists
1271	for potential gotchas.
1272
1273	[5] Usually this step is a noop.  However, from time to time
1274	you may need to do this if you get unknown user in the following
1275	step.  It never hurts to do it all the time.  You may need to
1276	install a new mergemaster (cd src/usr.sbin/mergemaster && make
1277	install) after the buildworld before this step if you last updated
1278	from current before 20020224 or from -stable before 20020408.
1279
1280	[8] In order to have a kernel that can run the 4.x binaries
1281	needed to do an installworld, you must include the COMPAT_FREEBSD4
1282	option in your kernel.  Failure to do so may leave you with a system
1283	that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5
1284	is required to run the 5.x binaries on more recent kernels.
1285
1286	Make sure that you merge any new devices from GENERIC since the
1287	last time you updated your kernel config file.
1288
1289	[9] When checking out sources, you must include the -P flag to have
1290	cvs prune empty directories.
1291
1292	If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1293	"?=" instead of the "=" assignment operator, so that buildworld can
1294	override the CPUTYPE if it needs to.
1295
1296	MAKEOBJDIRPREFIX must be defined in an environment variable, and
1297	not on the command line, or in /etc/make.conf.  buildworld will
1298	warn if it is improperly defined.
1299FORMAT:
1300
1301This file contains a list, in reverse chronological order, of major
1302breakages in tracking -current.  Not all things will be listed here,
1303and it only starts on October 16, 2004.  Updating files can found in
1304previous releases if your system is older than this.
1305
1306Copyright information:
1307
1308Copyright 1998-2005 M. Warner Losh.  All Rights Reserved.
1309
1310Redistribution, publication, translation and use, with or without
1311modification, in full or in part, in any form or format of this
1312document are permitted without further permission from the author.
1313
1314THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1315IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1316WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1317DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1318INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1319(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1320SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1321HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1322STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1323IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1324POSSIBILITY OF SUCH DAMAGE.
1325
1326If you find this document useful, and you want to, you may buy the
1327author a beer.
1328
1329Contact Warner Losh if you have any questions about your use of
1330this document.
1331
1332$FreeBSD: head/UPDATING 189770 2009-03-13 16:30:33Z rpaulo $
1333