UPDATING revision 175564
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
2520080121:
26	To upgrade to -current after this date, you must be running
27	FreeBSD after the RELENG_6 branch point.  This means any of the
28	6.x releases are supported and should work.  Upgrading to current
29	from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems.
30	FreeBSD_version must be 600029 or higher, although this isn't
31	enforced in the Makefile at this time.
32
3320071128:
34	The ADAPTIVE_GIANT kernel option has been retired because its
35	functionality is the default now.
36
3720071118:
38	The AT keyboard emulation of sunkbd(4) has been turned on
39	by default. In order to make the special symbols of the Sun
40	keyboards driven by sunkbd(4) work under X these now have
41	to be configured the same way as Sun USB keyboards driven
42	by ukbd(4) (which also does AT keyboard emulation), f.e.:
43
44	Option	"XkbLayout" "us"
45	Option	"XkbRules" "xorg"
46	Option	"XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us"
47
4820071024:
49	It has been decided that it is desirable to provide ABI
50	backwards compatibility to the FreeBSD 4/5/6 versions of the
51	PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was
52	broken with the introduction of PCI domain support (see the
53	20070930 entry). Unfortunately, this required the ABI of
54	PCIOCGETCONF to be broken again in order to be able to
55	provide backwards compatibility to the old version of that
56	IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled
57	again. As for prominent ports this affects neither pciutils
58	nor xorg-server this time, the hal port needs to be rebuilt
59	however.
60
6120071020:
62	The misnamed kthread_create() and friends have been renamed
63	to kproc_create() etc. Many of the callers already
64	used kproc_start()..
65	I will return kthread_create() and friends in a while
66	with implementations that actually create threads, not procs.
67	Renaming corresponds with version 800002.
68
6920071010:
70	RELENG_7 branched.
71
7220071009:
73	Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and
74	WITHOUT_LIBTHR are set.
75
7620070930:
77	The PCI code has been made aware of PCI domains. This means that
78	the location strings as used by pciconf(8) etc are now in the
79	following format: pci<domain>:<bus>:<device>[:<function>]. It
80	also means that consumers of <sys/pciio.h> potentially need to
81	be recompiled; this includes the hal and xorg-server ports.
82
8320070928:
84        The caching daemon (cached) was renamed to nscd. nscd.conf
85        configuration file should be used instead of cached.conf and
86        nscd_enable, nscd_pidfile and nscd_flags options should be used
87        instead of cached_enable, cached_pidfile and cached_flags in
88        rc.conf.
89
9020070921:
91	The getfacl(1) utility now prints owning user and group name
92	instead of owning uid and gid in the three line comment header.
93	This is the same behavior as getfacl(1) on Solaris and Linux.
94
9520070704:
96        The new IPsec code is now compiled in using the IPSEC option.  The
97	IPSEC option now requires "device crypto" be defined in your kernel
98	configuration.  The FAST_IPSEC kernel option is now deprecated.
99
10020070702:
101	The packet filter (pf) code has been updated to OpenBSD 4.1 Please
102	note the changed syntax - keep state is now on by default.  Also
103	note the fact that ftp-proxy(8) has been changed from bottom up and
104	has been moved from libexec to usr/sbin.  Changes in the ALTQ
105	handling also affect users of IPFW's ALTQ capabilities.
106
10720070701:
108	Remove KAME IPsec in favor of FAST_IPSEC, which is now the
109	only IPsec supported by FreeBSD.  The new IPsec stack
110	supports both IPv4 and IPv6. The kernel option will change
111	after the code changes have settled in.  For now the kernel
112	option IPSEC is deprecated and FAST_IPSEC is the only option, that
113	will change after some settling time.
114
11520070701:
116	The wicontrol(8) utility has been removed from the base system. wi(4)
117	cards should be configured using ifconfig(8), see the man page for more
118	information.
119
12020070612:
121	The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver
122	instead of the nve(4) driver. Please update your configuration
123	accordingly.
124
12520070612:
126	By default, /etc/rc.d/sendmail no longer rebuilds the aliases
127	database if it is missing or older than the aliases file.  If
128	desired, set the new rc.conf option sendmail_rebuild_aliases
129	to "YES" to restore that functionality.
130
13120070612:
132	The IPv4 multicast socket code has been considerably modified, and
133	moved to the file sys/netinet/in_mcast.c. Initial support for the
134	RFC 3678 Source-Specific Multicast Socket API has been added to
135	the IPv4 network stack.
136
137	Strict multicast and broadcast reception is now the default for
138	UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable
139	has now been removed.
140
141	The RFC 1724 hack for interface selection has been removed; the use
142	of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has
143	been added to replace it. Consumers such as routed will soon be
144	updated to reflect this.
145
146	These changes affect users who are running routed(8) or rdisc(8)
147	from the FreeBSD base system on point-to-point or unnumbered
148	interfaces.
149
15020070610:
151	The net80211 layer has changed significantly and all wireless
152	drivers that depend on it need to be recompiled.  Further these
153	changes require that any program that interacts with the wireless
154	support in the kernel be recompiled; this includes: ifconfig,
155	wpa_supplicant, hostapd, and wlanstats.  Users must also, for
156	the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules
157	if they use modules for wireless support.  These modules implement
158	scanning support for station and ap modes, respectively.  Failure
159	to load the appropriate module before marking a wireless interface
160	up will result in a message to the console and the device not
161	operating properly.
162
16320070610:
164	The pam_nologin(8) module ceases to provide an authentication
165	function and starts providing an account management function.
166	Consequent changes to /etc/pam.d should be brought in using
167	mergemaster(8).  Third-party files in /usr/local/etc/pam.d may
168	need manual editing as follows.  Locate this line (or similar):
169
170		auth	required	pam_nologin.so	no_warn
171
172	and change it according to this example:
173
174		account	required	pam_nologin.so	no_warn
175
176	That is, the first word needs to be changed from "auth" to
177	"account".  The new line can be moved to the account section
178	within the file for clarity.  Not updating pam.conf(5) files
179	will result in nologin(5) ignored by the respective services.
180
18120070529:
182	The ether_ioctl() function has been synchronized with ioctl(2)
183	and ifnet.if_ioctl.  Due to that, the size of one of its arguments
184	has changed on 64-bit architectures.  All kernel modules using
185	ether_ioctl() need to be rebuilt on such architectures.
186
18720070516:
188	Improved INCLUDE_CONFIG_FILE support has been introduced to the
189	config(8) utility. In order to take advantage of this new
190	functionality, you are expected to recompile and install
191	src/usr.sbin/config. If you don't rebuild config(8), and your
192	kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel
193	build will be broken because of a missing "kernconfstring"
194	symbol.
195
19620070513:
197	Symbol versioning is enabled by default.  To disable it, use
198	option WITHOUT_SYMVER.  It is not advisable to attempt to
199	disable symbol versioning once it is enabled; your installworld
200	will break because a symbol version-less libc will get installed
201	before the install tools.  As a result, the old install tools,
202	which previously had symbol dependencies to FBSD_1.0, will fail
203	because the freshly installed libc will not have them.
204
205	The default threading library (providing "libpthread") has been
206	changed to libthr.  If you wish to have libkse as your default,
207	use option DEFAULT_THREAD_LIB=libkse for the buildworld.
208
20920070423:
210	The ABI breakage in sendmail(8)'s libmilter has been repaired
211	so it is no longer necessary to recompile mail filters (aka,
212	milters).  If you recompiled mail filters after the 20070408
213	note, it is not necessary to recompile them again.
214
21520070417:
216	The new trunk(4) driver has been renamed to lagg(4) as it better
217	reflects its purpose. ifconfig will need to be recompiled.
218
21920070408:
220	sendmail(8) has been updated to version 8.14.1.  Mail filters
221	(aka, milters) compiled against the libmilter included in the
222	base operating system should be recompiled.
223
22420070302:
225	Firmwares for ipw(4) and iwi(4) are now included in the base tree.
226	In order to use them one must agree to the respective LICENSE in
227	share/doc/legal and define legal.intel_<name>.license_ack=1 via
228	loader.conf(5) or kenv(1).  Make sure to deinstall the now
229	deprecated modules from the respective firmware ports.
230
23120070228:
232	The name resolution/mapping functions addr2ascii(3) and ascii2addr(3)
233	were removed from FreeBSD's libc. These originally came from INRIA
234	IPv6. Nothing in FreeBSD ever used them. They may be regarded as
235	deprecated in previous releases.
236	The AF_LINK support for getnameinfo(3) was merged from NetBSD to
237	replace it as a more portable (and re-entrant) API.
238
23920070224:
240	To support interrupt filtering a modification to the newbus API 
241	has occurred, ABI was broken and __FreeBSD_version was bumped
242	to 700031. Please make sure that your kernel and modules are in 
243	sync. For more info:
244	http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941
245
24620070224:
247	The IPv6 multicast forwarding code may now be loaded into GENERIC
248	kernels by loading the ip_mroute.ko module. This is built into the
249	module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are
250	set; see src.conf(5) for more information.
251
25220070214:
253	The output of netstat -r has changed. Without -n, we now only
254	print a "network name" without the prefix length if the network
255	address and mask exactly match a Class A/B/C network, and an entry
256	exists in the nsswitch "networks" map.
257	With -n, we print the full unabbreviated CIDR network prefix in
258	the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default".
259	This change is in preparation for changes such as equal-cost
260	multipath, and to more generally assist operational deployment
261	of FreeBSD as a modern IPv4 router.
262
26320070210:
264	PIM has been turned on by default in the IPv4 multicast
265	routing code. The kernel option 'PIM' has now been removed.
266	PIM is now built by default if option 'MROUTING' is specified.
267	It may now be loaded into GENERIC kernels by loading the
268	ip_mroute.ko module.
269
27020070207:
271	Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing
272	has been removed. Its functionality may be achieved by explicitly
273	configuring gif(4) interfaces and using the 'phyint' keyword in
274	mrouted.conf.
275	XORP does not support source-routed IPv4 multicast tunnels nor the
276	integrated IPIP tunneling, therefore it is not affected by this
277	change. The __FreeBSD_version macro has been bumped to 700030.
278
27920061221:
280	Support for PCI Message Signalled Interrupts has been
281	re-enabled in the bge driver, only for those chips which are
282	believed to support it properly.  If there are any problems,
283	MSI can be disabled completely by setting the
284	'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0
285	in the loader.
286
28720061214:
288	Support for PCI Message Signalled Interrupts has been
289	disabled again in the bge driver.  Many revisions of the
290	hardware fail to support it properly.  Support can be
291	re-enabled by removing the #define of BGE_DISABLE_MSI in
292	"src/sys/dev/bge/if_bge.c".
293
29420061214:
295	Support for PCI Message Signalled Interrupts has been added
296	to the bge driver.  If there are any problems, MSI can be
297	disabled completely by setting the 'hw.pci.enable_msi' and
298	'hw.pci.enable_msix' tunables to 0 in the loader.
299
30020061205:
301	The removal of several facets of the experimental Threading 
302	system from the kernel means that the proc and thread structures 
303	have changed quite a bit. I suggest all kernel modules that might
304	reference these structures be recompiled.. Especially the
305	linux module.
306
30720061126:
308	Sound infrastructure has been updated with various fixes and
309	improvements. Most of the changes are pretty much transparent,
310	with exceptions of followings:
311	1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been
312	   moved to their own dev sysctl nodes, for example:
313		hw.snd.pcm0.vchans -> dev.pcm.0.vchans
314	2) /dev/dspr%d.%d has been deprecated. Each channel now has its
315	   own chardev in the form of "dsp%d.<function>%d", where <function>
316	   is p = playback, r = record and v = virtual, respectively. Users
317	   are encouraged to use these devs instead of (old) "/dev/dsp%d.%d".
318	   This does not affect those who are using "/dev/dsp".
319
32020061122:
321	The following binaries have been disconnected from the build:
322	mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs,
323	and mount_std.  The functionality of these programs has been
324	moved into the mount program.  For example, to mount a devfs
325	filesystem, instead of using mount_devfs, use: "mount -t devfs".
326	This does not affect entries in /etc/fstab, since entries in
327	/etc/fstab are always processed with "mount -t fstype".
328
32920061113:
330	Support for PCI Message Signalled Interrupts on i386 and amd64
331	has been added to the kernel and various drivers will soon be
332	updated to use MSI when it is available.  If there are any problems,
333	MSI can be disabled completely by setting the 'hw.pci.enable_msi'
334	and 'hw.pci.enable_msix' tunables to 0 in the loader.
335
33620061110:
337	The MUTEX_PROFILING option has been renamed to LOCK_PROFILING.
338	The lockmgr object layout has been changed as a result of having
339	a lock_object embedded in it. As a consequence all file system
340	kernel modules must be re-compiled. The mutex profiling man page 
341	has not yet been updated to reflect this change.
342
34320061026:
344	KSE in the kernel has now been made optional and turned on by
345	default. Use 'nooption KSE' in your kernel config to turn it
346	off. All kernel modules *must* be recompiled after this change.
347	There-after, modules from a KSE kernel should be compatible with
348	modules from a NOKSE kernel due to the temporary padding fields
349	added to 'struct proc'.
350
35120060929:
352	mrouted and its utilities have been removed from the base system.
353
35420060927:
355	Some ioctl(2) command codes have changed.  Full backward ABI
356	compatibility is provided if the "options COMPAT_FREEBSD6" is
357	present in the kernel configuration file.  Make sure to add
358	this option to your kernel config file, or recompile X.Org
359	and the rest of ports; otherwise they may refuse to work.
360
36120060924:
362	tcpslice has been removed from the base system.
363
36420060913:
365	The sizes of struct tcpcb (and struct xtcpcb) have changed due to
366	the rewrite of TCP syncookies.  Tools like netstat, sockstat, and
367	systat needs to be rebuilt.
368
36920060903:
370	libpcap updated to v0.9.4 and tcpdump to v3.9.4
371
37220060816:
373	The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour
374	for IPFIREWALL_FORWARD is now as it was before when it was first
375	committed and for years after. The behaviour is now ON.
376
37720060725:
378	enigma(1)/crypt(1) utility has been changed on 64 bit architectures.
379	Now it can decrypt files created from different architectures.
380	Unfortunately, it is no longer able to decrypt a cipher text
381	generated with an older version on 64 bit architectures.
382	If you have such a file, you need old utility to decrypt it.
383
38420060709:
385 	The interface version of the i4b kernel part has changed. So
386 	after updating the kernel sources and compiling a new kernel,
387 	the i4b user space tools in "/usr/src/usr.sbin/i4b" must also
388 	be rebuilt, and vice versa.
389 
39020060627:
391	The XBOX kernel now defaults to the nfe(4) driver instead of
392	the nve(4) driver. Please update your configuration
393	accordingly.
394
39520060514:
396	The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx
397	PCnet family of NICs has been removed. The new le(4) driver serves
398	as an equivalent but cross-platform replacement with the pcn(4)
399	driver still providing performance-optimized support for the subset
400	of AMD Am79C971 PCnet-FAST and greater chips as before.
401
40220060511:
403	The machdep.* sysctls and the adjkerntz utility have been
404	modified a bit.  The new adjkerntz utility uses the new
405	sysctl names and sysctlbyname() calls, so it may be impossible
406	to run an old /sbin/adjkerntz utility in single-user mode
407	with a new kernel.  Replace the `adjkerntz -i' step before
408	`make installworld' with:
409
410	    /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i
411
412	and proceed as usual with the rest of the installworld-stage
413	steps.  Otherwise, you risk installing binaries with their
414	timestamp set several hours in the future, especially if
415	you are running with local time set to GMT+X hours.
416
41720060412:
418	The ip6fw utility has been removed.  The behavior provided by
419	ip6fw has been in ipfw2 for a good while and the rc.d scripts
420	have been updated to deal with it.  There are some rules that
421	might not migrate cleanly.  Use rc.firewall6 as a template to
422	rewrite rules.
423
42420060428:
425	The puc(4) driver has been overhauled. The ebus(4) and sbus(4)
426	attachments have been removed. Make sure to configure scc(4)
427	on sparc64. Note also that by default puc(4) will use uart(4)
428	and not sio(4) for serial ports because interrupt handling has
429	been optimized for multi-port serial cards and only uart(4)
430	implements the interface to support it.
431
43220060330:
433	The scc(4) driver replaces puc(4) for Serial Communications
434	Controllers (SCCs) like the Siemens SAB82532 and the Zilog
435	Z8530. On sparc64, it is advised to add scc(4) to the kernel
436	configuration to make sure that the serial ports remain
437	functional.
438
43920060317:
440	Most world/kernel related NO_* build options changed names.
441	New knobs have common prefixes WITHOUT_*/WITH_* (modelled
442	after FreeBSD ports) and should be set in /etc/src.conf
443	(the src.conf(5) manpage is provided).  Full backwards
444	compatibility is maintained for the time being though it's
445	highly recommended to start moving old options out of the
446	system-wide /etc/make.conf file into the new /etc/src.conf
447	while also properly renaming them.  More conversions will
448	likely follow.  Posting to current@:
449
450	http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html
451
45220060305:
453	The NETSMBCRYPTO kernel option has been retired because its
454	functionality is always included in NETSMB and smbfs.ko now.
455
45620060303:
457	The TDFX_LINUX kernel option was retired and replaced by the
458	tdfx_linux device.  The latter can be loaded as the 3dfx_linux.ko
459	kernel module.  Loading it alone should suffice to get 3dfx support
460	for Linux apps because it will pull in 3dfx.ko and linux.ko through
461	its dependencies.
462
46320060204:
464	The 'audit' group was added to support the new auditing functionality
465	in the base system.  Be sure to follow the directions for updating,
466	including the requirement to run mergemaster -p.
467
46820060201:
469	The kernel ABI to file system modules was changed on i386.
470	Please make sure that your kernel and modules are in sync.
471	
47220060118:
473	This actually occured some time ago, but installing the kernel
474	now also installs a bunch of symbol files for the kernel modules.
475	This increases the size of /boot/kernel to about 67Mbytes. You
476	will need twice this if you will eventually back this up to kernel.old
477	on your next install.
478	If you have a shortage of room in your root partition, you should add
479	-DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes"
480	to your /etc/make.conf.
481
48220060113:
483	libc's malloc implementation has been replaced.  This change has the
484	potential to uncover application bugs that previously went unnoticed.
485	See the malloc(3) manual page for more details.
486
48720060112:
488	The generic netgraph(4) cookie has been changed. If you upgrade
489	kernel passing this point, you also need to upgrade userland
490	and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4.
491
49220060106:
493	si(4)'s device files now contain the unit number.
494	Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f].
495
49620060106:
497	The kernel ABI was mostly destroyed due to a change in the size
498	of struct lock_object which is nested in other structures such
499	as mutexes which are nested in all sorts of other structures.
500	Make sure your kernel and modules are in sync.
501
50220051231:
503	The page coloring algorithm in the VM subsystem was converted
504	from tuning with kernel options to autotuning. Please remove
505	any PQ_* option except PQ_NOOPT from your kernel config.
506
50720051211:
508	The net80211-related tools in the tools/tools/ath directory
509	have been moved to tools/tools/net80211 and renamed with a
510	"wlan" prefix.  Scripts that use them should be adjusted
511	accordingly.
512
51320051202:
514	Scripts in the local_startup directories (as defined in
515	/etc/defaults/rc.conf) that have the new rc.d semantics will
516	now be run as part of the base system rcorder. If there are
517	errors or problems with one of these local scripts, it could
518	cause boot problems. If you encounter such problems, boot in
519	single user mode, remove that script from the */rc.d directory.
520	Please report the problem to the port's maintainer, and the
521	freebsd-ports@freebsd.org mailing list.
522
52320051129:
524	The nodev mount option was deprecated in RELENG_6 (where it
525	was a no-op), and is now unsupported.  If you have nodev or dev listed
526	in /etc/fstab, remove it, otherwise it will result in a mount error.
527
52820051129:
529	ABI between ipfw(4) and ipfw(8) has been changed. You need
530	to rebuild ipfw(8) when rebuilding kernel.
531
53220051108:
533	rp(4)'s device files now contain the unit number.
534	Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f].
535
53620051029:
537	/etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp.
538	Its /etc/rc.conf.d configuration file has been `ppp' from
539	the beginning, and hence there is no need to touch it.
540
54120051014:
542	Now most modules get their build-time options from the kernel
543	configuration file.  A few modules still have fixed options
544	due to their non-conformant implementation, but they will be
545	corrected eventually.  You may need to review the options of
546	the modules in use, explicitly specify the non-default options
547	in the kernel configuration file, and rebuild the kernel and
548	modules afterwards.
549
55020051001:
551	kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8)
552	to turn polling(4) on your interfaces.
553
55420050927:
555	The old bridge(4) implementation was retired.  The new
556	if_bridge(4) serves as a full functional replacement.
557
55820050722:
559	The ai_addrlen of a struct addrinfo was changed to a socklen_t
560	to conform to POSIX-2001.  This change broke an ABI
561	compatibility on 64 bit architecture.  You have to recompile
562	userland programs that use getaddrinfo(3) on 64 bit
563	architecture.
564
56520050711:
566	RELENG_6 branched here.
567
56820050629:
569	The pccard_ifconfig rc.conf variable has been removed and a new
570	variable, ifconfig_DEFAULT has been introduced.  Unlike
571	pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that
572	do not have ifconfig_ifn entries rather than just those in
573	removable_interfaces.
574
57520050616:
576	Some previous versions of PAM have permitted the use of
577	non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring
578	to third party PAM modules in /usr/local/lib.  A change has been
579	made to require the use of absolute paths in order to avoid
580	ambiguity and dependence on library path configuration, which may
581	affect existing configurations.
582
58320050610:
584	Major changes to network interface API.  All drivers must be
585	recompiled.  Drivers not in the base system will need to be
586	updated to the new APIs.
587
58820050609:
589	Changes were made to kinfo_proc in sys/user.h.  Please recompile
590	userland, or commands like `fstat', `pkill', `ps', `top' and `w'
591	will not behave correctly.
592
593	The API and ABI for hwpmc(4) have changed with the addition
594	of sampling support.  Please recompile lib/libpmc(3) and
595	usr.sbin/{pmcstat,pmccontrol}.
596
59720050606:
598	The OpenBSD dhclient was imported in place of the ISC dhclient
599	and the network interface configuration scripts were updated
600	accordingly.  If you use DHCP to configure your interfaces, you
601	must now run devd.  Also, DNS updating was lost so you will need
602	to find a workaround if you use this feature.
603
604	The '_dhcp' user was added to support the OpenBSD dhclient.  Be
605	sure to run mergemaster -p (like you are supposed to do every time
606	anyway).
607
60820050605:
609	if_bridge was added to the tree. This has changed struct ifnet.
610	Please recompile userland and all network related modules.
611
61220050603:
613	The n_net of a struct netent was changed to an uint32_t, and
614	1st argument of getnetbyaddr() was changed to an uint32_t, to
615	conform to POSIX-2001.  These changes broke an ABI
616	compatibility on 64 bit architecture.  With these changes,
617	shlib major of libpcap was bumped.  You have to recompile
618	userland programs that use getnetbyaddr(3), getnetbyname(3),
619	getnetent(3) and/or libpcap on 64 bit architecture.
620
62120050528:
622	Kernel parsing of extra options on '#!' first lines of shell
623	scripts has changed.  Lines with multiple options likely will
624	fail after this date.  For full details, please see
625		http://people.freebsd.org/~gad/Updating-20050528.txt
626
62720050503:
628	The packet filter (pf) code has been updated to OpenBSD 3.7
629	Please note the changed anchor syntax and the fact that
630	authpf(8) now needs a mounted fdescfs(5) to function.
631
63220050415:
633	The NO_MIXED_MODE kernel option has been removed from the i386
634	amd64 platforms as its use has been superceded by the new local
635	APIC timer code.  Any kernel config files containing this option
636	should be updated.
637
63820050227:
639	The on-disk format of LC_CTYPE files was changed to be machine
640	independent.  Please make sure NOT to use NO_CLEAN buildworld
641	when crossing this point. Crossing this point also requires
642	recompile or reinstall of all locale depended packages.
643
64420050225:
645	The ifi_epoch member of struct if_data has been changed to
646	contain the uptime at which the interface was created or the
647	statistics zeroed rather then the wall clock time because
648	wallclock time may go backwards.  This should have no impact
649	unless an snmp implementation is using this value (I know of
650	none at this point.)
651
65220050224:
653	The acpi_perf and acpi_throttle drivers are now part of the
654	acpi(4) main module.  They are no longer built separately.
655
65620050223:
657	The layout of struct image_params has changed. You have to
658	recompile all compatibility modules (linux, svr4, etc) for use
659	with the new kernel.
660
66120050223:
662	The p4tcc driver has been merged into cpufreq(4).  This makes
663	"options CPU_ENABLE_TCC" obsolete.  Please load cpufreq.ko or
664	compile in "device cpufreq" to restore this functionality.
665
66620050220:
667	The responsibility of recomputing the file system summary of
668	a SoftUpdates-enabled dirty volume has been transferred to the
669	background fsck.  A rebuild of fsck(8) utility is recommended
670	if you have updated the kernel.
671
672	To get the old behavior (recompute file system summary at mount
673	time), you can set vfs.ffs.compute_summary_at_mount=1 before
674	mounting the new volume.
675
67620050206:
677	The cpufreq import is complete.  As part of this, the sysctls for
678	acpi(4) throttling have been removed.  The power_profile script
679	has been updated, so you can use performance/economy_cpu_freq in
680	rc.conf(5) to set AC on/offline cpu frequencies.
681
68220050206:
683	NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko)
684	requires recompiling libnetgraph and userland netgraph utilities.
685
68620050114:
687	Support for abbreviated forms of a number of ipfw options is
688	now deprecated.  Warnings are printed to stderr indicating the
689	correct full form when a match occurs.  Some abbreviations may
690	be supported at a later date based on user feedback.  To be
691	considered for support, abbreviations must be in use prior to
692	this commit and unlikely to be confused with current key words.
693
69420041221:
695	By a popular demand, a lot of NOFOO options were renamed
696	to NO_FOO (see bsd.compat.mk for a full list).  The old
697	spellings are still supported, but will cause annoying
698	warnings on stderr.  Make sure you upgrade properly (see
699	the COMMON ITEMS: section later in this file).
700
70120041219:
702	Auto-loading of ancillary wlan modules such as wlan_wep has
703	been temporarily disabled; you need to statically configure
704	the modules you need into your kernel or explicitly load them
705	prior to use.  Specifically, if you intend to use WEP encryption
706	with an 802.11 device load/configure wlan_wep; if you want to
707	use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp,
708	and wlan_xauth as required.
709
71020041213:
711	The behaviour of ppp(8) has changed slightly.  If lqr is enabled
712	(``enable lqr''), older versions would revert to LCP ECHO mode on
713	negotiation failure.  Now, ``enable echo'' is required for this
714	behaviour.  The ppp version number has been bumped to 3.4.2 to
715	reflect the change.
716
71720041201:
718	The wlan support has been updated to split the crypto support
719	into separate modules.  For static WEP you must configure the
720	wlan_wep module in your system or build and install the module
721	in place where it can be loaded (the kernel will auto-load
722	the module when a wep key is configured).
723
72420041201:
725	The ath driver has been updated to split the tx rate control
726	algorithm into a separate module.  You need to include either
727	ath_rate_onoe or ath_rate_amrr when configuring the kernel.
728
72920041116:
730	Support for systems with an 80386 CPU has been removed.  Please
731	use FreeBSD 5.x or earlier on systems with an 80386.
732
73320041110:
734	We have had a hack which would mount the root filesystem
735	R/W if the device were named 'md*'.  As part of the vnode
736	work I'm doing I have had to remove this hack.  People
737	building systems which use preloaded MD root filesystems
738	may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in
739	their /etc/rc scripts.
740
74120041104:
742	FreeBSD 5.3 shipped here.
743
74420041102:
745	The size of struct tcpcb has changed again due to the removal
746	of RFC1644 T/TCP.  You have to recompile userland programs that
747	read kmem for tcp sockets directly (netstat, sockstat, etc.)
748
74920041022:
750	The size of struct tcpcb has changed.  You have to recompile
751	userland programs that read kmem for tcp sockets directly
752	(netstat, sockstat, etc.)
753
75420041016:
755	RELENG_5 branched here.  For older entries, please see updating
756	in the RELENG_5 branch.
757
758COMMON ITEMS:
759
760	General Notes
761	-------------
762	Avoid using make -j when upgrading.  From time to time in the
763	past there have been problems using -j with buildworld and/or
764	installworld.  This is especially true when upgrading between
765	"distant" versions (eg one that cross a major release boundary
766	or several minor releases, or when several months have passed
767	on the -current branch).
768
769	Sometimes, obscure build problems are the result of environment
770	poisoning.  This can happen because the make utility reads its
771	environment when searching for values for global variables.
772	To run your build attempts in an "environmental clean room",
773	prefix all make commands with 'env -i '.  See the env(1) manual
774	page for more details.
775
776	When upgrading from one major version to another it is generally
777	best to upgrade to the latest code in the currently installed branch
778	first, then do an upgrade to the new branch. This is the best-tested
779	upgrade path, and has the highest probability of being successful.
780	Please try this approach before reporting problems with a major
781	version upgrade.
782
783	To build a kernel
784	-----------------
785	If you are updating from a prior version of FreeBSD (even one just
786	a few days old), you should follow this procedure.  It is the most
787	failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
788
789	make kernel-toolchain
790	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
791	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
792
793	To test a kernel once
794	---------------------
795	If you just want to boot a kernel once (because you are not sure
796	if it works, or if you want to boot a known bad kernel to provide
797	debugging information) run
798	make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
799	nextboot -k testkernel
800
801	To just build a kernel when you know that it won't mess you up
802	--------------------------------------------------------------
803	This assumes you are already running a 5.X system.  Replace
804	${arch} with the architecture of your machine (e.g. "i386",
805	"alpha", "amd64", "ia64", "pc98", "sparc64", etc).
806
807	cd src/sys/${arch}/conf
808	config KERNEL_NAME_HERE
809	cd ../compile/KERNEL_NAME_HERE
810	make depend
811	make
812	make install
813
814	If this fails, go to the "To build a kernel" section.
815
816	To rebuild everything and install it on the current system.
817	-----------------------------------------------------------
818	# Note: sometimes if you are running current you gotta do more than
819	# is listed here if you are upgrading from a really old current.
820
821	<make sure you have good level 0 dumps>
822	make buildworld
823	make kernel KERNCONF=YOUR_KERNEL_HERE
824							[1]
825	<reboot in single user>				[3]
826	mergemaster -p					[5]
827	make installworld
828	make delete-old
829	mergemaster					[4]
830	<reboot>
831
832
833	To cross-install current onto a separate partition
834	--------------------------------------------------
835	# In this approach we use a separate partition to hold
836	# current's root, 'usr', and 'var' directories.   A partition
837	# holding "/", "/usr" and "/var" should be about 2GB in
838	# size.
839
840	<make sure you have good level 0 dumps>
841	<boot into -stable>
842	make buildworld
843	make buildkernel KERNCONF=YOUR_KERNEL_HERE
844	<maybe newfs current's root partition>
845	<mount current's root partition on directory ${CURRENT_ROOT}>
846	make installworld DESTDIR=${CURRENT_ROOT}
847	make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
848	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
849	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
850	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
851	<reboot into current>
852	<do a "native" rebuild/install as described in the previous section>
853	<maybe install compatibility libraries from src/lib/compat>
854 	<reboot>
855
856
857	To upgrade in-place from 5.x-stable to current
858	----------------------------------------------
859	<make sure you have good level 0 dumps>
860	make buildworld					[9]
861	make kernel KERNCONF=YOUR_KERNEL_HERE		[8]
862							[1]
863	<reboot in single user>				[3]
864	mergemaster -p					[5]
865	make installworld
866	make delete-old
867	mergemaster -i					[4]
868	<reboot>
869
870	Make sure that you've read the UPDATING file to understand the
871	tweaks to various things you need.  At this point in the life
872	cycle of current, things change often and you are on your own
873	to cope.  The defaults can also change, so please read ALL of
874	the UPDATING entries.
875
876	Also, if you are tracking -current, you must be subscribed to
877	freebsd-current@freebsd.org.  Make sure that before you update
878	your sources that you have read and understood all the recent
879	messages there.  If in doubt, please track -stable which has
880	much fewer pitfalls.
881
882	[1] If you have third party modules, such as vmware, you
883	should disable them at this point so they don't crash your
884	system on reboot.
885
886	[3] From the bootblocks, boot -s, and then do
887		fsck -p
888		mount -u /
889		mount -a
890		cd src
891		adjkerntz -i		# if CMOS is wall time
892	Also, when doing a major release upgrade, it is required that
893	you boot into single user mode to do the installworld.
894
895	[4] Note: This step is non-optional.  Failure to do this step
896	can result in a significant reduction in the functionality of the
897	system.  Attempting to do it by hand is not recommended and those
898	that pursue this avenue should read this file carefully, as well
899	as the archives of freebsd-current and freebsd-hackers mailing lists
900	for potential gotchas.
901
902	[5] Usually this step is a noop.  However, from time to time
903	you may need to do this if you get unknown user in the following
904	step.  It never hurts to do it all the time.  You may need to
905	install a new mergemaster (cd src/usr.sbin/mergemaster && make
906	install) after the buildworld before this step if you last updated
907	from current before 20020224 or from -stable before 20020408.
908
909	[8] In order to have a kernel that can run the 4.x binaries
910	needed to do an installworld, you must include the COMPAT_FREEBSD4
911	option in your kernel.  Failure to do so may leave you with a system
912	that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5
913	is required to run the 5.x binaries on more recent kernels.
914
915	Make sure that you merge any new devices from GENERIC since the
916	last time you updated your kernel config file.
917
918	[9] When checking out sources, you must include the -P flag to have
919	cvs prune empty directories.
920
921	If CPUTYPE is defined in your /etc/make.conf, make sure to use the
922	"?=" instead of the "=" assignment operator, so that buildworld can
923	override the CPUTYPE if it needs to.
924
925	MAKEOBJDIRPREFIX must be defined in an environment variable, and
926	not on the command line, or in /etc/make.conf.  buildworld will
927	warn if it is improperly defined.
928FORMAT:
929
930This file contains a list, in reverse chronological order, of major
931breakages in tracking -current.  Not all things will be listed here,
932and it only starts on October 16, 2004.  Updating files can found in
933previous releases if your system is older than this.
934
935Copyright information:
936
937Copyright 1998-2005 M. Warner Losh.  All Rights Reserved.
938
939Redistribution, publication, translation and use, with or without
940modification, in full or in part, in any form or format of this
941document are permitted without further permission from the author.
942
943THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
944IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
945WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
946DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
947INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
948(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
949SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
950HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
951STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
952IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
953POSSIBILITY OF SUCH DAMAGE.
954
955If you find this document useful, and you want to, you may buy the
956author a beer.
957
958Contact Warner Losh if you have any questions about your use of
959this document.
960
961$FreeBSD: head/UPDATING 175564 2008-01-22 15:05:22Z trhodes $
962