UPDATING revision 180487
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
2520080713:
26	The sio(4) driver has been removed from the i386 and amd64
27	kernel configuration files. This means uart(4) is now the
28	default serial port driver on those platforms as well.
29	
30	To prevent collisions with the sio(4) driver, the uart(4) driver
31	uses different names for its device nodes. This means the
32	onboard serial port will now most likely be called "ttyu0"
33	instead of "ttyd0". You may need to reconfigure applications to
34	use the new device names.
35
3620080609:
37	The gpt(8) utility has been removed. Use gpart(8) to partition
38	disks instead.
39
4020080603:
41	The version that Linuxulator emulates was changed from 2.4.2
42	to 2.6.16. If you experience any problems with Linux binaries
43	please try to set sysctl compat.linux.osrelease to 2.4.2 and 
44	if it fixes the problem contact emulation mailing list.
45
4620080525:
47	ISDN4BSD (I4B) was removed from the src tree. You may need to
48	update a your kernel configuration and remove relevant entries.
49
5020080509:
51	I have checked in code to support multiple routing tables.
52	see the man pages setfib(1) and setfib(2).
53	This is a hopefully backwards compatible version,
54	but to make use of it you need to compile your kernel
55	with options ROUTETABLES=2 (or more up to 16).
56
5720080420:
58	The 802.11 wireless support was redone to enable multi-bss
59	operation on devices that are capable.  The underlying device
60	is no longer used directly but instead wlanX devices are
61	cloned with ifconfig.  This requires changes to rc.conf files.
62	For example, change:
63		ifconfig_ath0="WPA DHCP"
64	to
65		wlans_ath0=wlan0
66		ifconfig_wlan0="WPA DHCP"
67	see rc.conf(5) for more details.  In addition, mergemaster of
68	/etc/rc.d is highly recommended.  Simultaneous update of userland
69	and kernel wouldn't hurt either.
70
71	As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta
72	modules were merged into the base wlan module.  All references
73	to these modules (e.g. in kernel config files) must be removed.
74
7520080408:
76	psm(4) has gained write(2) support in native operation level.
77	Arbitrary commands can be written to /dev/psm%d and status can
78	be read back from it.  Therefore, an application is responsible
79	for status validation and error recovery.  It is a no-op in
80	other operation levels.
81
8220080312:
83	Support for KSE threading has been removed from the kernel.  To
84	run legacy applications linked against KSE libmap.conf may
85	be used.  The following libmap.conf may be used to ensure
86	compatibility with any prior release:
87
88	libpthread.so.1 libthr.so.1
89	libpthread.so.2 libthr.so.2
90	libkse.so.3 libthr.so.3
91
9220080301:
93	The layout of struct vmspace has changed. This affects libkvm
94	and any executables that link against libkvm and use the
95	kvm_getprocs() function. In particular, but not exclusively,
96	it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1).
97	The effects are minimal, but it's advisable to upgrade world
98	nonetheless.
99
10020080229:
101	The latest em driver no longer has support in it for the
102	82575 adapter, this is now moved to the igb driver. The
103	split was done to make new features that are incompatible
104	with older hardware easier to do.
105
10620080220:
107	The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4),
108	likewise the kernel option is now GEOM_LINUX_LVM.
109
11020080211:
111	The default NFS mount mode has changed from UDP to TCP for
112	increased reliability.  If you rely on (insecurely) NFS
113	mounting across a firewall you may need to update your
114	firewall rules.
115
11620080208:
117	Belatedly note the addition of m_collapse for compacting
118	mbuf chains.
119
12020080126:
121	The fts(3) structures have been changed to use adequate
122	integer types for their members and so to be able to cope
123	with huge file trees.  The old fts(3) ABI is preserved
124	through symbol versioning in libc, so third-party binaries
125	using fts(3) should still work, although they will not take
126	advantage of the extended types.  At the same time, some
127	third-party software might fail to build after this change
128	due to unportable assumptions made in its source code about
129	fts(3) structure members.  Such software should be fixed
130	by its vendor or, in the worst case, in the ports tree.
131	FreeBSD_version 800015 marks this change for the unlikely
132	case that a portable fix is impossible.
133
13420080123:
135	To upgrade to -current after this date, you must be running
136	FreeBSD not older than 6.0-RELEASE.  Upgrading to -current
137	from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems.
138
13920071128:
140	The ADAPTIVE_GIANT kernel option has been retired because its
141	functionality is the default now.
142
14320071118:
144	The AT keyboard emulation of sunkbd(4) has been turned on
145	by default. In order to make the special symbols of the Sun
146	keyboards driven by sunkbd(4) work under X these now have
147	to be configured the same way as Sun USB keyboards driven
148	by ukbd(4) (which also does AT keyboard emulation), f.e.:
149
150	Option	"XkbLayout" "us"
151	Option	"XkbRules" "xorg"
152	Option	"XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us"
153
15420071024:
155	It has been decided that it is desirable to provide ABI
156	backwards compatibility to the FreeBSD 4/5/6 versions of the
157	PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was
158	broken with the introduction of PCI domain support (see the
159	20070930 entry). Unfortunately, this required the ABI of
160	PCIOCGETCONF to be broken again in order to be able to
161	provide backwards compatibility to the old version of that
162	IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled
163	again. As for prominent ports this affects neither pciutils
164	nor xorg-server this time, the hal port needs to be rebuilt
165	however.
166
16720071020:
168	The misnamed kthread_create() and friends have been renamed
169	to kproc_create() etc. Many of the callers already
170	used kproc_start()..
171	I will return kthread_create() and friends in a while
172	with implementations that actually create threads, not procs.
173	Renaming corresponds with version 800002.
174
17520071010:
176	RELENG_7 branched.
177
17820071009:
179	Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and
180	WITHOUT_LIBTHR are set.
181
18220070930:
183	The PCI code has been made aware of PCI domains. This means that
184	the location strings as used by pciconf(8) etc are now in the
185	following format: pci<domain>:<bus>:<device>[:<function>]. It
186	also means that consumers of <sys/pciio.h> potentially need to
187	be recompiled; this includes the hal and xorg-server ports.
188
18920070928:
190        The caching daemon (cached) was renamed to nscd. nscd.conf
191        configuration file should be used instead of cached.conf and
192        nscd_enable, nscd_pidfile and nscd_flags options should be used
193        instead of cached_enable, cached_pidfile and cached_flags in
194        rc.conf.
195
19620070921:
197	The getfacl(1) utility now prints owning user and group name
198	instead of owning uid and gid in the three line comment header.
199	This is the same behavior as getfacl(1) on Solaris and Linux.
200
20120070704:
202        The new IPsec code is now compiled in using the IPSEC option.  The
203	IPSEC option now requires "device crypto" be defined in your kernel
204	configuration.  The FAST_IPSEC kernel option is now deprecated.
205
20620070702:
207	The packet filter (pf) code has been updated to OpenBSD 4.1 Please
208	note the changed syntax - keep state is now on by default.  Also
209	note the fact that ftp-proxy(8) has been changed from bottom up and
210	has been moved from libexec to usr/sbin.  Changes in the ALTQ
211	handling also affect users of IPFW's ALTQ capabilities.
212
21320070701:
214	Remove KAME IPsec in favor of FAST_IPSEC, which is now the
215	only IPsec supported by FreeBSD.  The new IPsec stack
216	supports both IPv4 and IPv6. The kernel option will change
217	after the code changes have settled in.  For now the kernel
218	option IPSEC is deprecated and FAST_IPSEC is the only option, that
219	will change after some settling time.
220
22120070701:
222	The wicontrol(8) utility has been removed from the base system. wi(4)
223	cards should be configured using ifconfig(8), see the man page for more
224	information.
225
22620070612:
227	The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver
228	instead of the nve(4) driver. Please update your configuration
229	accordingly.
230
23120070612:
232	By default, /etc/rc.d/sendmail no longer rebuilds the aliases
233	database if it is missing or older than the aliases file.  If
234	desired, set the new rc.conf option sendmail_rebuild_aliases
235	to "YES" to restore that functionality.
236
23720070612:
238	The IPv4 multicast socket code has been considerably modified, and
239	moved to the file sys/netinet/in_mcast.c. Initial support for the
240	RFC 3678 Source-Specific Multicast Socket API has been added to
241	the IPv4 network stack.
242
243	Strict multicast and broadcast reception is now the default for
244	UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable
245	has now been removed.
246
247	The RFC 1724 hack for interface selection has been removed; the use
248	of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has
249	been added to replace it. Consumers such as routed will soon be
250	updated to reflect this.
251
252	These changes affect users who are running routed(8) or rdisc(8)
253	from the FreeBSD base system on point-to-point or unnumbered
254	interfaces.
255
25620070610:
257	The net80211 layer has changed significantly and all wireless
258	drivers that depend on it need to be recompiled.  Further these
259	changes require that any program that interacts with the wireless
260	support in the kernel be recompiled; this includes: ifconfig,
261	wpa_supplicant, hostapd, and wlanstats.  Users must also, for
262	the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules
263	if they use modules for wireless support.  These modules implement
264	scanning support for station and ap modes, respectively.  Failure
265	to load the appropriate module before marking a wireless interface
266	up will result in a message to the console and the device not
267	operating properly.
268
26920070610:
270	The pam_nologin(8) module ceases to provide an authentication
271	function and starts providing an account management function.
272	Consequent changes to /etc/pam.d should be brought in using
273	mergemaster(8).  Third-party files in /usr/local/etc/pam.d may
274	need manual editing as follows.  Locate this line (or similar):
275
276		auth	required	pam_nologin.so	no_warn
277
278	and change it according to this example:
279
280		account	required	pam_nologin.so	no_warn
281
282	That is, the first word needs to be changed from "auth" to
283	"account".  The new line can be moved to the account section
284	within the file for clarity.  Not updating pam.conf(5) files
285	will result in nologin(5) ignored by the respective services.
286
28720070529:
288	The ether_ioctl() function has been synchronized with ioctl(2)
289	and ifnet.if_ioctl.  Due to that, the size of one of its arguments
290	has changed on 64-bit architectures.  All kernel modules using
291	ether_ioctl() need to be rebuilt on such architectures.
292
29320070516:
294	Improved INCLUDE_CONFIG_FILE support has been introduced to the
295	config(8) utility. In order to take advantage of this new
296	functionality, you are expected to recompile and install
297	src/usr.sbin/config. If you don't rebuild config(8), and your
298	kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel
299	build will be broken because of a missing "kernconfstring"
300	symbol.
301
30220070513:
303	Symbol versioning is enabled by default.  To disable it, use
304	option WITHOUT_SYMVER.  It is not advisable to attempt to
305	disable symbol versioning once it is enabled; your installworld
306	will break because a symbol version-less libc will get installed
307	before the install tools.  As a result, the old install tools,
308	which previously had symbol dependencies to FBSD_1.0, will fail
309	because the freshly installed libc will not have them.
310
311	The default threading library (providing "libpthread") has been
312	changed to libthr.  If you wish to have libkse as your default,
313	use option DEFAULT_THREAD_LIB=libkse for the buildworld.
314
31520070423:
316	The ABI breakage in sendmail(8)'s libmilter has been repaired
317	so it is no longer necessary to recompile mail filters (aka,
318	milters).  If you recompiled mail filters after the 20070408
319	note, it is not necessary to recompile them again.
320
32120070417:
322	The new trunk(4) driver has been renamed to lagg(4) as it better
323	reflects its purpose. ifconfig will need to be recompiled.
324
32520070408:
326	sendmail(8) has been updated to version 8.14.1.  Mail filters
327	(aka, milters) compiled against the libmilter included in the
328	base operating system should be recompiled.
329
33020070302:
331	Firmwares for ipw(4) and iwi(4) are now included in the base tree.
332	In order to use them one must agree to the respective LICENSE in
333	share/doc/legal and define legal.intel_<name>.license_ack=1 via
334	loader.conf(5) or kenv(1).  Make sure to deinstall the now
335	deprecated modules from the respective firmware ports.
336
33720070228:
338	The name resolution/mapping functions addr2ascii(3) and ascii2addr(3)
339	were removed from FreeBSD's libc. These originally came from INRIA
340	IPv6. Nothing in FreeBSD ever used them. They may be regarded as
341	deprecated in previous releases.
342	The AF_LINK support for getnameinfo(3) was merged from NetBSD to
343	replace it as a more portable (and re-entrant) API.
344
34520070224:
346	To support interrupt filtering a modification to the newbus API 
347	has occurred, ABI was broken and __FreeBSD_version was bumped
348	to 700031. Please make sure that your kernel and modules are in 
349	sync. For more info:
350	http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941
351
35220070224:
353	The IPv6 multicast forwarding code may now be loaded into GENERIC
354	kernels by loading the ip_mroute.ko module. This is built into the
355	module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are
356	set; see src.conf(5) for more information.
357
35820070214:
359	The output of netstat -r has changed. Without -n, we now only
360	print a "network name" without the prefix length if the network
361	address and mask exactly match a Class A/B/C network, and an entry
362	exists in the nsswitch "networks" map.
363	With -n, we print the full unabbreviated CIDR network prefix in
364	the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default".
365	This change is in preparation for changes such as equal-cost
366	multipath, and to more generally assist operational deployment
367	of FreeBSD as a modern IPv4 router.
368
36920070210:
370	PIM has been turned on by default in the IPv4 multicast
371	routing code. The kernel option 'PIM' has now been removed.
372	PIM is now built by default if option 'MROUTING' is specified.
373	It may now be loaded into GENERIC kernels by loading the
374	ip_mroute.ko module.
375
37620070207:
377	Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing
378	has been removed. Its functionality may be achieved by explicitly
379	configuring gif(4) interfaces and using the 'phyint' keyword in
380	mrouted.conf.
381	XORP does not support source-routed IPv4 multicast tunnels nor the
382	integrated IPIP tunneling, therefore it is not affected by this
383	change. The __FreeBSD_version macro has been bumped to 700030.
384
38520061221:
386	Support for PCI Message Signalled Interrupts has been
387	re-enabled in the bge driver, only for those chips which are
388	believed to support it properly.  If there are any problems,
389	MSI can be disabled completely by setting the
390	'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0
391	in the loader.
392
39320061214:
394	Support for PCI Message Signalled Interrupts has been
395	disabled again in the bge driver.  Many revisions of the
396	hardware fail to support it properly.  Support can be
397	re-enabled by removing the #define of BGE_DISABLE_MSI in
398	"src/sys/dev/bge/if_bge.c".
399
40020061214:
401	Support for PCI Message Signalled Interrupts has been added
402	to the bge driver.  If there are any problems, MSI can be
403	disabled completely by setting the 'hw.pci.enable_msi' and
404	'hw.pci.enable_msix' tunables to 0 in the loader.
405
40620061205:
407	The removal of several facets of the experimental Threading 
408	system from the kernel means that the proc and thread structures 
409	have changed quite a bit. I suggest all kernel modules that might
410	reference these structures be recompiled.. Especially the
411	linux module.
412
41320061126:
414	Sound infrastructure has been updated with various fixes and
415	improvements. Most of the changes are pretty much transparent,
416	with exceptions of followings:
417	1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been
418	   moved to their own dev sysctl nodes, for example:
419		hw.snd.pcm0.vchans -> dev.pcm.0.vchans
420	2) /dev/dspr%d.%d has been deprecated. Each channel now has its
421	   own chardev in the form of "dsp%d.<function>%d", where <function>
422	   is p = playback, r = record and v = virtual, respectively. Users
423	   are encouraged to use these devs instead of (old) "/dev/dsp%d.%d".
424	   This does not affect those who are using "/dev/dsp".
425
42620061122:
427	geom(4)'s gmirror(8) class metadata structure has been
428	rev'd from v3 to v4. If you update across this point and
429	your metadata is converted for you, you will not be easily
430	able to downgrade since the /boot/kernel.old/geom_mirror.ko
431	kernel module will be unable to read the v4 metadata.  You
432	can resolve this by doing from the loader(8) prompt:
433
434		set vfs.root.mountfrom="ufs:/dev/XXX"
435
436	where XXX is the root slice of one of the disks that composed
437	the mirror (i.e.: /dev/ad0s1a). You can then rebuild
438	the array the same way you built it originally.
439
44020061122:
441	The following binaries have been disconnected from the build:
442	mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs,
443	and mount_std.  The functionality of these programs has been
444	moved into the mount program.  For example, to mount a devfs
445	filesystem, instead of using mount_devfs, use: "mount -t devfs".
446	This does not affect entries in /etc/fstab, since entries in
447	/etc/fstab are always processed with "mount -t fstype".
448
44920061113:
450	Support for PCI Message Signalled Interrupts on i386 and amd64
451	has been added to the kernel and various drivers will soon be
452	updated to use MSI when it is available.  If there are any problems,
453	MSI can be disabled completely by setting the 'hw.pci.enable_msi'
454	and 'hw.pci.enable_msix' tunables to 0 in the loader.
455
45620061110:
457	The MUTEX_PROFILING option has been renamed to LOCK_PROFILING.
458	The lockmgr object layout has been changed as a result of having
459	a lock_object embedded in it. As a consequence all file system
460	kernel modules must be re-compiled. The mutex profiling man page 
461	has not yet been updated to reflect this change.
462
46320061026:
464	KSE in the kernel has now been made optional and turned on by
465	default. Use 'nooption KSE' in your kernel config to turn it
466	off. All kernel modules *must* be recompiled after this change.
467	There-after, modules from a KSE kernel should be compatible with
468	modules from a NOKSE kernel due to the temporary padding fields
469	added to 'struct proc'.
470
47120060929:
472	mrouted and its utilities have been removed from the base system.
473
47420060927:
475	Some ioctl(2) command codes have changed.  Full backward ABI
476	compatibility is provided if the "options COMPAT_FREEBSD6" is
477	present in the kernel configuration file.  Make sure to add
478	this option to your kernel config file, or recompile X.Org
479	and the rest of ports; otherwise they may refuse to work.
480
48120060924:
482	tcpslice has been removed from the base system.
483
48420060913:
485	The sizes of struct tcpcb (and struct xtcpcb) have changed due to
486	the rewrite of TCP syncookies.  Tools like netstat, sockstat, and
487	systat needs to be rebuilt.
488
48920060903:
490	libpcap updated to v0.9.4 and tcpdump to v3.9.4
491
49220060816:
493	The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour
494	for IPFIREWALL_FORWARD is now as it was before when it was first
495	committed and for years after. The behaviour is now ON.
496
49720060725:
498	enigma(1)/crypt(1) utility has been changed on 64 bit architectures.
499	Now it can decrypt files created from different architectures.
500	Unfortunately, it is no longer able to decrypt a cipher text
501	generated with an older version on 64 bit architectures.
502	If you have such a file, you need old utility to decrypt it.
503
50420060709:
505 	The interface version of the i4b kernel part has changed. So
506 	after updating the kernel sources and compiling a new kernel,
507 	the i4b user space tools in "/usr/src/usr.sbin/i4b" must also
508 	be rebuilt, and vice versa.
509 
51020060627:
511	The XBOX kernel now defaults to the nfe(4) driver instead of
512	the nve(4) driver. Please update your configuration
513	accordingly.
514
51520060514:
516	The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx
517	PCnet family of NICs has been removed. The new le(4) driver serves
518	as an equivalent but cross-platform replacement with the pcn(4)
519	driver still providing performance-optimized support for the subset
520	of AMD Am79C971 PCnet-FAST and greater chips as before.
521
52220060511:
523	The machdep.* sysctls and the adjkerntz utility have been
524	modified a bit.  The new adjkerntz utility uses the new
525	sysctl names and sysctlbyname() calls, so it may be impossible
526	to run an old /sbin/adjkerntz utility in single-user mode
527	with a new kernel.  Replace the `adjkerntz -i' step before
528	`make installworld' with:
529
530	    /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i
531
532	and proceed as usual with the rest of the installworld-stage
533	steps.  Otherwise, you risk installing binaries with their
534	timestamp set several hours in the future, especially if
535	you are running with local time set to GMT+X hours.
536
53720060412:
538	The ip6fw utility has been removed.  The behavior provided by
539	ip6fw has been in ipfw2 for a good while and the rc.d scripts
540	have been updated to deal with it.  There are some rules that
541	might not migrate cleanly.  Use rc.firewall6 as a template to
542	rewrite rules.
543
54420060428:
545	The puc(4) driver has been overhauled. The ebus(4) and sbus(4)
546	attachments have been removed. Make sure to configure scc(4)
547	on sparc64. Note also that by default puc(4) will use uart(4)
548	and not sio(4) for serial ports because interrupt handling has
549	been optimized for multi-port serial cards and only uart(4)
550	implements the interface to support it.
551
55220060330:
553	The scc(4) driver replaces puc(4) for Serial Communications
554	Controllers (SCCs) like the Siemens SAB82532 and the Zilog
555	Z8530. On sparc64, it is advised to add scc(4) to the kernel
556	configuration to make sure that the serial ports remain
557	functional.
558
55920060317:
560	Most world/kernel related NO_* build options changed names.
561	New knobs have common prefixes WITHOUT_*/WITH_* (modelled
562	after FreeBSD ports) and should be set in /etc/src.conf
563	(the src.conf(5) manpage is provided).  Full backwards
564	compatibility is maintained for the time being though it's
565	highly recommended to start moving old options out of the
566	system-wide /etc/make.conf file into the new /etc/src.conf
567	while also properly renaming them.  More conversions will
568	likely follow.  Posting to current@:
569
570	http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html
571
57220060305:
573	The NETSMBCRYPTO kernel option has been retired because its
574	functionality is always included in NETSMB and smbfs.ko now.
575
57620060303:
577	The TDFX_LINUX kernel option was retired and replaced by the
578	tdfx_linux device.  The latter can be loaded as the 3dfx_linux.ko
579	kernel module.  Loading it alone should suffice to get 3dfx support
580	for Linux apps because it will pull in 3dfx.ko and linux.ko through
581	its dependencies.
582
58320060204:
584	The 'audit' group was added to support the new auditing functionality
585	in the base system.  Be sure to follow the directions for updating,
586	including the requirement to run mergemaster -p.
587
58820060201:
589	The kernel ABI to file system modules was changed on i386.
590	Please make sure that your kernel and modules are in sync.
591	
59220060118:
593	This actually occured some time ago, but installing the kernel
594	now also installs a bunch of symbol files for the kernel modules.
595	This increases the size of /boot/kernel to about 67Mbytes. You
596	will need twice this if you will eventually back this up to kernel.old
597	on your next install.
598	If you have a shortage of room in your root partition, you should add
599	-DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes"
600	to your /etc/make.conf.
601
60220060113:
603	libc's malloc implementation has been replaced.  This change has the
604	potential to uncover application bugs that previously went unnoticed.
605	See the malloc(3) manual page for more details.
606
60720060112:
608	The generic netgraph(4) cookie has been changed. If you upgrade
609	kernel passing this point, you also need to upgrade userland
610	and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4.
611
61220060106:
613	si(4)'s device files now contain the unit number.
614	Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f].
615
61620060106:
617	The kernel ABI was mostly destroyed due to a change in the size
618	of struct lock_object which is nested in other structures such
619	as mutexes which are nested in all sorts of other structures.
620	Make sure your kernel and modules are in sync.
621
62220051231:
623	The page coloring algorithm in the VM subsystem was converted
624	from tuning with kernel options to autotuning. Please remove
625	any PQ_* option except PQ_NOOPT from your kernel config.
626
62720051211:
628	The net80211-related tools in the tools/tools/ath directory
629	have been moved to tools/tools/net80211 and renamed with a
630	"wlan" prefix.  Scripts that use them should be adjusted
631	accordingly.
632
63320051202:
634	Scripts in the local_startup directories (as defined in
635	/etc/defaults/rc.conf) that have the new rc.d semantics will
636	now be run as part of the base system rcorder. If there are
637	errors or problems with one of these local scripts, it could
638	cause boot problems. If you encounter such problems, boot in
639	single user mode, remove that script from the */rc.d directory.
640	Please report the problem to the port's maintainer, and the
641	freebsd-ports@freebsd.org mailing list.
642
64320051129:
644	The nodev mount option was deprecated in RELENG_6 (where it
645	was a no-op), and is now unsupported.  If you have nodev or dev listed
646	in /etc/fstab, remove it, otherwise it will result in a mount error.
647
64820051129:
649	ABI between ipfw(4) and ipfw(8) has been changed. You need
650	to rebuild ipfw(8) when rebuilding kernel.
651
65220051108:
653	rp(4)'s device files now contain the unit number.
654	Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f].
655
65620051029:
657	/etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp.
658	Its /etc/rc.conf.d configuration file has been `ppp' from
659	the beginning, and hence there is no need to touch it.
660
66120051014:
662	Now most modules get their build-time options from the kernel
663	configuration file.  A few modules still have fixed options
664	due to their non-conformant implementation, but they will be
665	corrected eventually.  You may need to review the options of
666	the modules in use, explicitly specify the non-default options
667	in the kernel configuration file, and rebuild the kernel and
668	modules afterwards.
669
67020051001:
671	kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8)
672	to turn polling(4) on your interfaces.
673
67420050927:
675	The old bridge(4) implementation was retired.  The new
676	if_bridge(4) serves as a full functional replacement.
677
67820050722:
679	The ai_addrlen of a struct addrinfo was changed to a socklen_t
680	to conform to POSIX-2001.  This change broke an ABI
681	compatibility on 64 bit architecture.  You have to recompile
682	userland programs that use getaddrinfo(3) on 64 bit
683	architecture.
684
68520050711:
686	RELENG_6 branched here.
687
68820050629:
689	The pccard_ifconfig rc.conf variable has been removed and a new
690	variable, ifconfig_DEFAULT has been introduced.  Unlike
691	pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that
692	do not have ifconfig_ifn entries rather than just those in
693	removable_interfaces.
694
69520050616:
696	Some previous versions of PAM have permitted the use of
697	non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring
698	to third party PAM modules in /usr/local/lib.  A change has been
699	made to require the use of absolute paths in order to avoid
700	ambiguity and dependence on library path configuration, which may
701	affect existing configurations.
702
70320050610:
704	Major changes to network interface API.  All drivers must be
705	recompiled.  Drivers not in the base system will need to be
706	updated to the new APIs.
707
70820050609:
709	Changes were made to kinfo_proc in sys/user.h.  Please recompile
710	userland, or commands like `fstat', `pkill', `ps', `top' and `w'
711	will not behave correctly.
712
713	The API and ABI for hwpmc(4) have changed with the addition
714	of sampling support.  Please recompile lib/libpmc(3) and
715	usr.sbin/{pmcstat,pmccontrol}.
716
71720050606:
718	The OpenBSD dhclient was imported in place of the ISC dhclient
719	and the network interface configuration scripts were updated
720	accordingly.  If you use DHCP to configure your interfaces, you
721	must now run devd.  Also, DNS updating was lost so you will need
722	to find a workaround if you use this feature.
723
724	The '_dhcp' user was added to support the OpenBSD dhclient.  Be
725	sure to run mergemaster -p (like you are supposed to do every time
726	anyway).
727
72820050605:
729	if_bridge was added to the tree. This has changed struct ifnet.
730	Please recompile userland and all network related modules.
731
73220050603:
733	The n_net of a struct netent was changed to an uint32_t, and
734	1st argument of getnetbyaddr() was changed to an uint32_t, to
735	conform to POSIX-2001.  These changes broke an ABI
736	compatibility on 64 bit architecture.  With these changes,
737	shlib major of libpcap was bumped.  You have to recompile
738	userland programs that use getnetbyaddr(3), getnetbyname(3),
739	getnetent(3) and/or libpcap on 64 bit architecture.
740
74120050528:
742	Kernel parsing of extra options on '#!' first lines of shell
743	scripts has changed.  Lines with multiple options likely will
744	fail after this date.  For full details, please see
745		http://people.freebsd.org/~gad/Updating-20050528.txt
746
74720050503:
748	The packet filter (pf) code has been updated to OpenBSD 3.7
749	Please note the changed anchor syntax and the fact that
750	authpf(8) now needs a mounted fdescfs(5) to function.
751
75220050415:
753	The NO_MIXED_MODE kernel option has been removed from the i386
754	amd64 platforms as its use has been superceded by the new local
755	APIC timer code.  Any kernel config files containing this option
756	should be updated.
757
75820050227:
759	The on-disk format of LC_CTYPE files was changed to be machine
760	independent.  Please make sure NOT to use NO_CLEAN buildworld
761	when crossing this point. Crossing this point also requires
762	recompile or reinstall of all locale depended packages.
763
76420050225:
765	The ifi_epoch member of struct if_data has been changed to
766	contain the uptime at which the interface was created or the
767	statistics zeroed rather then the wall clock time because
768	wallclock time may go backwards.  This should have no impact
769	unless an snmp implementation is using this value (I know of
770	none at this point.)
771
77220050224:
773	The acpi_perf and acpi_throttle drivers are now part of the
774	acpi(4) main module.  They are no longer built separately.
775
77620050223:
777	The layout of struct image_params has changed. You have to
778	recompile all compatibility modules (linux, svr4, etc) for use
779	with the new kernel.
780
78120050223:
782	The p4tcc driver has been merged into cpufreq(4).  This makes
783	"options CPU_ENABLE_TCC" obsolete.  Please load cpufreq.ko or
784	compile in "device cpufreq" to restore this functionality.
785
78620050220:
787	The responsibility of recomputing the file system summary of
788	a SoftUpdates-enabled dirty volume has been transferred to the
789	background fsck.  A rebuild of fsck(8) utility is recommended
790	if you have updated the kernel.
791
792	To get the old behavior (recompute file system summary at mount
793	time), you can set vfs.ffs.compute_summary_at_mount=1 before
794	mounting the new volume.
795
79620050206:
797	The cpufreq import is complete.  As part of this, the sysctls for
798	acpi(4) throttling have been removed.  The power_profile script
799	has been updated, so you can use performance/economy_cpu_freq in
800	rc.conf(5) to set AC on/offline cpu frequencies.
801
80220050206:
803	NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko)
804	requires recompiling libnetgraph and userland netgraph utilities.
805
80620050114:
807	Support for abbreviated forms of a number of ipfw options is
808	now deprecated.  Warnings are printed to stderr indicating the
809	correct full form when a match occurs.  Some abbreviations may
810	be supported at a later date based on user feedback.  To be
811	considered for support, abbreviations must be in use prior to
812	this commit and unlikely to be confused with current key words.
813
81420041221:
815	By a popular demand, a lot of NOFOO options were renamed
816	to NO_FOO (see bsd.compat.mk for a full list).  The old
817	spellings are still supported, but will cause annoying
818	warnings on stderr.  Make sure you upgrade properly (see
819	the COMMON ITEMS: section later in this file).
820
82120041219:
822	Auto-loading of ancillary wlan modules such as wlan_wep has
823	been temporarily disabled; you need to statically configure
824	the modules you need into your kernel or explicitly load them
825	prior to use.  Specifically, if you intend to use WEP encryption
826	with an 802.11 device load/configure wlan_wep; if you want to
827	use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp,
828	and wlan_xauth as required.
829
83020041213:
831	The behaviour of ppp(8) has changed slightly.  If lqr is enabled
832	(``enable lqr''), older versions would revert to LCP ECHO mode on
833	negotiation failure.  Now, ``enable echo'' is required for this
834	behaviour.  The ppp version number has been bumped to 3.4.2 to
835	reflect the change.
836
83720041201:
838	The wlan support has been updated to split the crypto support
839	into separate modules.  For static WEP you must configure the
840	wlan_wep module in your system or build and install the module
841	in place where it can be loaded (the kernel will auto-load
842	the module when a wep key is configured).
843
84420041201:
845	The ath driver has been updated to split the tx rate control
846	algorithm into a separate module.  You need to include either
847	ath_rate_onoe or ath_rate_amrr when configuring the kernel.
848
84920041116:
850	Support for systems with an 80386 CPU has been removed.  Please
851	use FreeBSD 5.x or earlier on systems with an 80386.
852
85320041110:
854	We have had a hack which would mount the root filesystem
855	R/W if the device were named 'md*'.  As part of the vnode
856	work I'm doing I have had to remove this hack.  People
857	building systems which use preloaded MD root filesystems
858	may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in
859	their /etc/rc scripts.
860
86120041104:
862	FreeBSD 5.3 shipped here.
863
86420041102:
865	The size of struct tcpcb has changed again due to the removal
866	of RFC1644 T/TCP.  You have to recompile userland programs that
867	read kmem for tcp sockets directly (netstat, sockstat, etc.)
868
86920041022:
870	The size of struct tcpcb has changed.  You have to recompile
871	userland programs that read kmem for tcp sockets directly
872	(netstat, sockstat, etc.)
873
87420041016:
875	RELENG_5 branched here.  For older entries, please see updating
876	in the RELENG_5 branch.
877
878COMMON ITEMS:
879
880	General Notes
881	-------------
882	Avoid using make -j when upgrading.  From time to time in the
883	past there have been problems using -j with buildworld and/or
884	installworld.  This is especially true when upgrading between
885	"distant" versions (eg one that cross a major release boundary
886	or several minor releases, or when several months have passed
887	on the -current branch).
888
889	Sometimes, obscure build problems are the result of environment
890	poisoning.  This can happen because the make utility reads its
891	environment when searching for values for global variables.
892	To run your build attempts in an "environmental clean room",
893	prefix all make commands with 'env -i '.  See the env(1) manual
894	page for more details.
895
896	When upgrading from one major version to another it is generally
897	best to upgrade to the latest code in the currently installed branch
898	first, then do an upgrade to the new branch. This is the best-tested
899	upgrade path, and has the highest probability of being successful.
900	Please try this approach before reporting problems with a major
901	version upgrade.
902
903	To build a kernel
904	-----------------
905	If you are updating from a prior version of FreeBSD (even one just
906	a few days old), you should follow this procedure.  It is the most
907	failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
908
909	make kernel-toolchain
910	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
911	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
912
913	To test a kernel once
914	---------------------
915	If you just want to boot a kernel once (because you are not sure
916	if it works, or if you want to boot a known bad kernel to provide
917	debugging information) run
918	make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
919	nextboot -k testkernel
920
921	To just build a kernel when you know that it won't mess you up
922	--------------------------------------------------------------
923	This assumes you are already running a 5.X system.  Replace
924	${arch} with the architecture of your machine (e.g. "i386",
925	"alpha", "amd64", "ia64", "pc98", "sparc64", etc).
926
927	cd src/sys/${arch}/conf
928	config KERNEL_NAME_HERE
929	cd ../compile/KERNEL_NAME_HERE
930	make depend
931	make
932	make install
933
934	If this fails, go to the "To build a kernel" section.
935
936	To rebuild everything and install it on the current system.
937	-----------------------------------------------------------
938	# Note: sometimes if you are running current you gotta do more than
939	# is listed here if you are upgrading from a really old current.
940
941	<make sure you have good level 0 dumps>
942	make buildworld
943	make kernel KERNCONF=YOUR_KERNEL_HERE
944							[1]
945	<reboot in single user>				[3]
946	mergemaster -p					[5]
947	make installworld
948	make delete-old
949	mergemaster					[4]
950	<reboot>
951
952
953	To cross-install current onto a separate partition
954	--------------------------------------------------
955	# In this approach we use a separate partition to hold
956	# current's root, 'usr', and 'var' directories.   A partition
957	# holding "/", "/usr" and "/var" should be about 2GB in
958	# size.
959
960	<make sure you have good level 0 dumps>
961	<boot into -stable>
962	make buildworld
963	make buildkernel KERNCONF=YOUR_KERNEL_HERE
964	<maybe newfs current's root partition>
965	<mount current's root partition on directory ${CURRENT_ROOT}>
966	make installworld DESTDIR=${CURRENT_ROOT}
967	make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
968	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
969	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
970	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
971	<reboot into current>
972	<do a "native" rebuild/install as described in the previous section>
973	<maybe install compatibility libraries from src/lib/compat>
974 	<reboot>
975
976
977	To upgrade in-place from 5.x-stable to current
978	----------------------------------------------
979	<make sure you have good level 0 dumps>
980	make buildworld					[9]
981	make kernel KERNCONF=YOUR_KERNEL_HERE		[8]
982							[1]
983	<reboot in single user>				[3]
984	mergemaster -p					[5]
985	make installworld
986	make delete-old
987	mergemaster -i					[4]
988	<reboot>
989
990	Make sure that you've read the UPDATING file to understand the
991	tweaks to various things you need.  At this point in the life
992	cycle of current, things change often and you are on your own
993	to cope.  The defaults can also change, so please read ALL of
994	the UPDATING entries.
995
996	Also, if you are tracking -current, you must be subscribed to
997	freebsd-current@freebsd.org.  Make sure that before you update
998	your sources that you have read and understood all the recent
999	messages there.  If in doubt, please track -stable which has
1000	much fewer pitfalls.
1001
1002	[1] If you have third party modules, such as vmware, you
1003	should disable them at this point so they don't crash your
1004	system on reboot.
1005
1006	[3] From the bootblocks, boot -s, and then do
1007		fsck -p
1008		mount -u /
1009		mount -a
1010		cd src
1011		adjkerntz -i		# if CMOS is wall time
1012	Also, when doing a major release upgrade, it is required that
1013	you boot into single user mode to do the installworld.
1014
1015	[4] Note: This step is non-optional.  Failure to do this step
1016	can result in a significant reduction in the functionality of the
1017	system.  Attempting to do it by hand is not recommended and those
1018	that pursue this avenue should read this file carefully, as well
1019	as the archives of freebsd-current and freebsd-hackers mailing lists
1020	for potential gotchas.
1021
1022	[5] Usually this step is a noop.  However, from time to time
1023	you may need to do this if you get unknown user in the following
1024	step.  It never hurts to do it all the time.  You may need to
1025	install a new mergemaster (cd src/usr.sbin/mergemaster && make
1026	install) after the buildworld before this step if you last updated
1027	from current before 20020224 or from -stable before 20020408.
1028
1029	[8] In order to have a kernel that can run the 4.x binaries
1030	needed to do an installworld, you must include the COMPAT_FREEBSD4
1031	option in your kernel.  Failure to do so may leave you with a system
1032	that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5
1033	is required to run the 5.x binaries on more recent kernels.
1034
1035	Make sure that you merge any new devices from GENERIC since the
1036	last time you updated your kernel config file.
1037
1038	[9] When checking out sources, you must include the -P flag to have
1039	cvs prune empty directories.
1040
1041	If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1042	"?=" instead of the "=" assignment operator, so that buildworld can
1043	override the CPUTYPE if it needs to.
1044
1045	MAKEOBJDIRPREFIX must be defined in an environment variable, and
1046	not on the command line, or in /etc/make.conf.  buildworld will
1047	warn if it is improperly defined.
1048FORMAT:
1049
1050This file contains a list, in reverse chronological order, of major
1051breakages in tracking -current.  Not all things will be listed here,
1052and it only starts on October 16, 2004.  Updating files can found in
1053previous releases if your system is older than this.
1054
1055Copyright information:
1056
1057Copyright 1998-2005 M. Warner Losh.  All Rights Reserved.
1058
1059Redistribution, publication, translation and use, with or without
1060modification, in full or in part, in any form or format of this
1061document are permitted without further permission from the author.
1062
1063THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1064IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1065WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1066DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1067INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1068(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1069SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1070HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1071STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1072IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1073POSSIBILITY OF SUCH DAMAGE.
1074
1075If you find this document useful, and you want to, you may buy the
1076author a beer.
1077
1078Contact Warner Losh if you have any questions about your use of
1079this document.
1080
1081$FreeBSD: head/UPDATING 180487 2008-07-13 07:20:14Z ed $
1082