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