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