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