UPDATING revision 137790
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.  Important recent entries: 20040724 (default X changes).
10
11[[ The UPDATING file will be trimmed to 20040814 on or about Oct 1, 2004 ]]
12
13NOTE TO PEOPLE WHO THINK THAT FreeBSD 6.x IS SLOW:
14	FreeBSD 6.x has many debugging features turned on, in
15	both the kernel and userland.  These features attempt to detect
16	incorrect use of system primitives, and encourage loud failure
17	through extra sanity checking and fail stop semantics.  They
18	also substantially impact system performance.  If you want to
19	do performance measurement, benchmarking, and optimization,
20	you'll want to turn them off.  This includes various WITNESS-
21	related kernel options, INVARIANTS, malloc debugging flags
22	in userland, and various verbose features in the kernel.  Many
23	developers choose to disable these features on build machines
24	to maximize performance.
25
2620041116:
27	Support for systems with an 80386 CPU has been removed.  Please
28	use FreeBSD 5.x or earlier on systems with an 80386.
29
3020041110:
31	We have had a hack which would mount the root filesystem
32	R/W if the device were named 'md*'.  As part of the vnode
33	work I'm doing I have had to remove this hack.  People
34	building systems which use preloaded MD root filesystems
35	may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in
36	their /etc/rc scripts.
37
3820041102:
39	The size of struct tcpcb has changed again due to the removal
40	of RFC1644 T/TCP.  You have to recompile userland programs that
41	read kmem for tcp sockets directly (netstat, sockstat, etc.)
42
4320041022:
44	The size of struct tcpcb has changed.  You have to recompile
45	userland programs that read kmem for tcp sockets directly
46	(netstat, sockstat, etc.)
47
4820041018:
49	A major sweep over the tty drivers to elimnate approx 3100
50	lines of copy&pasted code have been performed.  As a part of
51	this change some tty devices have changed names:
52	sio devices are now named:	{tty,cua}d%d[.init,.lock]
53	ucom devices are now named:	{tty,cua}U%d[.init,.lock]
54	For other drivers see the commit logs.
55
5620041007:
57	The FreeBSD keyword is no longer a requirement for a valid
58	rc.d script. The rc(8) and rc.shutdown(8) scripts no longer check
59	for the existence of this keyword when ordering rc.d scripts.
60	This change touches most of the file in /etc/rc.d; therefore,
61	if you have not modified any files in that directory it may
62	be easier to rm -rf /etc/rc.d and then use the -i switch with
63	mergemaster(8).
64
6520041007:
66	One of the syscalls the 1:1 threading library libthr uses has
67	changed, thus breaking ABI compatibility. Make sure you rebuild
68	this library with the kernel.
69
7020041001:
71	The following libraries had their version number bumped up:
72		/lib/libm.so.2 -> libm.so.3
73		/lib/libreadline.so.4 -> libreadline.so.5
74		/usr/lib/libhistory.so.4 -> libhistory.so.5
75		/usr/lib/libopie.so.2 -> libopie.so.3
76		/usr/lib/libpcap.so.2 -> libpcap.so.3
77	FreeBSD 4.10 versions of these libraries will be added to the
78	compat4x collection.  If you expect to be able to run old 4.X
79	executables you will need to remove the old versions of these
80	libraries.  However note that any 5.X executables you have built
81	will stop working once you remove those old libraries.  You should
82	have all your ports/packages rebuilt before removing the old
83	libraries.
84
8520040929:
86	The pfil API has gained an additional argument to pass an inpcb.
87	You should rebuild all pfil consuming modules: ipfw, ipfilter
88	and pf.
89
9020040928:
91	If named is enabled, the default is now to run it in a chroot
92	"sandbox." For users with existing configurations in
93	/etc/namedb the migration should be simple. Upgrade your
94	world as usual, then after installworld but before
95	mergemaster do the following:
96
97	If named is running: /etc/rc.d/named stop
98	cd /etc
99	mv namedb namedb.bak
100	mkdir -p /var/named/etc/namedb
101	cp -Rp namedb.bak/* /var/named/etc/namedb/
102	mergemaster (with your usual options)
103	If using the generated localhost* files:
104		cd /var/named/etc/namedb
105		/bin/sh make-localhost
106		rm -f localhost-v6.rev localhost.rev
107	/etc/rc.d/syslogd restart
108	/etc/rc.d/named start
109
110	If you are using a custom configuration, or if you have
111	customised the named_* variables in /etc/rc.conf[.local]
112	then you may have to adjust the instructions accordingly.
113	It is suggested that you carefully examine the new named
114	variables in /etc/defaults/rc.conf and the options in
115	/var/named/etc/namedb/named.conf to see if they might
116	now be more suitable.
117
11820040925:
119	BIND 9 has been imported into the base, and is now fully
120	functional. BIND 8 has now been removed. There are numerous
121	differences between BIND 8 and 9, and users with critical
122	named installations should read the migration documentation
123	in /usr/share/doc/bind9/misc/migration. There is also a
124	new instruction manual in /usr/share/doc/bind9/arm.
125
126	The key differences that most users will experience are in
127	how picky BIND 9 is about zone file format. If you are using
128	named as a resolving (caching) name server, you will likely
129	not have trouble.
130
131	The following files are part of the old BIND 8 installation
132	and should be removed:
133	/usr/bin/dnskeygen /usr/bin/dnsquery /usr/libexec/named-xfer
134	/usr/sbin/named.restart /usr/sbin/ndc
135
136	The following files have moved to /usr/bin, and should be
137	removed from their old locations:
138	/usr/sbin/nslookup /usr/sbin/nsupdate
139
14020040914:
141	The format of the pflogd(8) logfile "/var/log/pflog" has changed for
142	architectures that have a 64 bit long type to make it compatible to
143	the standard pcap format. In order to prevent corruption move away
144	any old logfile before using a new pflogd(8).
145
14620040906:
147	debug.witness_* has been renamed to debug.witness.*.  There are
148	compatibility tunables left in for a few days.  Update loader.conf
149	as necessary.
150
15120040902:
152	The ifi_epoch change has been reverted because the ABI breakage
153	was too extensive.  If you are running with a kernel/userland
154	containing the initial change (20040830), you should heed the
155	warning about ifconfig incompatibility when upgrading again.
156	With this change, 5.3 and 6.0 ifconfigs and kernels are once
157	again interoperable.
158
15920040830:
160	A new variable, ifi_epoch, has been added to struct if_data
161	which is part if struct ifnet.  This means all network drivers
162	and network monitoring applications need to be recompiled.
163
164        WARNING WARNING WARNING WARNING WARNING WARNING WARNING
165
166        This also breaks ifconfig compatibility.  An old ifconfig will
167        not work with the new kernel and a new ifconfig will not work
168        with the old.  It is strongly recommended that you make a copy
169        of your old ifconfig before installworld.  If you are installing
170        remotely, you must copy over a new ifconfig before rebooting in
171        to the new kernel.
172
17320040828:
174	The default configuration for the network stack has been changed
175	such that it now runs without the Giant lock unless configured
176	otherwise.  If you experience network-related instability, you
177	may wish to try setting "debug.mpsafenet=0" or compiling the
178	kernel with "options NET_WITH_GIANT".  Details on the netperf
179	project may be found at:
180
181	    http://www.watson.org/~robert/freebsd/netperf/
182
183	Including the 20040828 announcement of configuration change
184	details.
185
18620040827:
187	PFIL_HOOKS are a fixed part of the network stack now and do not
188	need to be specified in the kernel configuration file anymore.
189
19020040819:
191	Netgraph changed its message format slightly to align the data
192	portion well on 64 bit machines.
193	Netgraph using utilities (e.g. ngctl, nghook, ppp, mpd,
194	pppoed, bluetooth, ATM) should be recompiled when a new kernel
195	is installed.
196
19720040817:
198	IPFW has been converted to use PFIL_HOOKS.  This change is
199	transparent to userland and preserves the ipfw ABI.  The ipfw
200	core packet inspection and filtering functions have not been
201	changed, only how ipfw is invoked is different.  Note that
202	"option PFIL_HOOKS" is required to use IPFIREWALL compiled
203	into the kernel or as KLD.
204
20520040814:
206	The RANDOM_IP_ID option has been replaced by the sysctl
207	net.inet.ip.random_id. If you had RANDOM_IP_ID in your kernel then
208	you may want to add "net.inet.ip.random_id=1" to /etc/sysctl.conf.
209
21020040807:
211	The size of 'struct ifnet' has changed due to the addition of the
212	if_carp placeholder.  All kernel modules implementing network
213	interfaces must be recompiled as a result.
214
21520040806:
216	Module loading has been fixed.  Some older installations will
217	drop proper module_path initialization and modules will fail to
218	load properly.  If you have a line in /boot/loader.rc that says:
219	"initialize drop", do (i386 only):
220		cp /usr/src/sys/boot/i386/loader/loader.rc /boot/loader.rc
221		chown root:wheel /boot/loader.rc
222		chmod 444 /boot/loader.rc
223
22420040802:
225	making /dev/(null|zero) into a module proved to be too unpopular,
226	so this bit has been revoked from the previous (20040801) entry.
227
22820040801:
229	The /dev/mem, /dev/io /dev/(null/zero) devices are now modules,
230	so you may wish to add them to your kernel config file. See
231	GENERIC for examples.
232
23320040728:
234	System compiler has been upgraded to GCC 3.4.2-pre. As with any major
235	compiler upgrade, there are several issues to be aware of. GCC 3.4.x
236	has broken C++ ABI compatibility with previous releases yet again
237	and users will have to rebuild all their C++ programs with the new
238	compiler. If you are getting run-time error such as
239	/libexec/ld-elf.so.1: Undefined symbol "_ZNSs20_S_empty_rep_storageE"
240	This entry does apply to you.
241
242	A new unit-at-a-time optimization mode, which is default in this
243	compiler release, is more aggressive in removing unused static
244	symbols. This is the likely cause of 'make buildworld' breakages
245	with non-default CFLAGS where optimization level is set to -O2
246	or higher.
247
248	With the upgrade of the system compiler, the kernel has been upgraded
249	to match the new system compiler.  This makes it impossible to build
250	a new kernel with the old compiler.  Upgrade your system via
251	make buildworld and make kernel (see below) to fix this problem.
252
25320040727:
254	The size of 'struct ifnet' has changed due to the addition of
255	the IFF_NEEDSGIANT flag (and what it implies).  All kernel
256	modules implementing network interfaces must be recompiled as
257	a result.
258
25920040716:
260	The sound device drivers are renamed.  `sound' is always required,
261	while `snd_*' should be configured accordingly to your hardware.
262	Refer to NOTES for the detail of the drivers.
263
26420040710:
265	__FreeBSD_version bumped to 502122.
266
26720040710:
268	The console initialization on Alpha has been reworked and is now
269	identical to other platforms. This means that the hardcoding of
270	the serial console and the debug port has been removed. As such,
271	hints are now required for the sio(4) driver to become a console
272	or debug port. The NO_SIO option has been decommissioned because
273	of this.
274
27520040710:
276	A revamp of the debugging code in the kernel with some visible
277	changes beyond just the debugging experience:
278	o  The DDB option is now specific to the DDB debugger backend
279	   and should not be used any more for conditional compilation
280	   of debugging code for when debugging is enabled. Use the KDB
281	   option for this.
282	o  The WITNESS_DDB, DDB_TRACE and DDB_UNATTENDED options have
283	   been renamed to WITNESS_KDB, KDB_TRACE and KDB_UNATTENDED
284	   respectively. This is in line with the first bullet.
285	o  The remote GDB support has been untangled from DDB and needs
286	   to be enabled separately now. Use the GDB option for this.
287	o  The GDB_REMOTE_CHAT option has been removed. Support for this
288	   homegrown feature is discontinued. The GDB remote protocol
289	   supports console output and it makes sense to use that. 
290	o  The DDB_NOKLDSYM option has been removed. The DDB debugger
291	   now supports both direct symbol table lookups as well as KLD
292	   symbol lookups through the linker.
293
29420040708:
295	Bluetooth code has been marked as non-i386 specific.
296	__FreeBSD_version has been bumped to 502121 to mark this change.
297
29820040702:
299	The native preemption has been added to the kernel scheduler.
300	There is some report that the ULE scheduler was broken in some
301	machines and we encourage users using the ULE scheduler either
302	stick with a known good kernel, or temporarily switch to the 4BSD
303	scheduler as a workaround.
304
30520040630:
306	The netgraph ABI version number has been incremented to indicate
307	an incompatible change in the ABI. Old netgraph nodes will refuse
308	to attach until recompiled. Netgraph now uses mbuf tags to move
309	metadata and this commit removes its home-grown metadata facility.
310	Nodes should just recompile, unless they use metadata, in which
311	case the changes are simple; the file ng_ksocket.c serves as an
312	example of such changes.
313
314	This also broke i4b, although the compile problem has been papered
315	over.
316
31720040630:
318	ACPI has been updated to disable known-bad BIOS revisions.  A message
319	will be printed on the console indicating that ACPI has been disabled
320	automatically and that the user should use a newer BIOS, if possible.
321	If you think ACPI does work on your system and want to override
322	this (i.e., for testing), set hint.acpi.0.disabled="0" at the
323	loader prompt.
324
32520040623:
326	pf was updated to OpenBSD-stable 3.5 and pflogd(8) is privilege
327	separated now. It uses the newly created "_pflogd" user/group
328	combination. If you plan to use pflogd(8) make sure to run
329	mergemaster -p or install the "_pflogd" user and group manually.
330
33120040622:
332	Network interface cloning has been overhauled.  This change will
333	require a recompile of modules using cloning and modification of
334	external ones to the new API.  __FreeBSD_version has been bumped
335	to 502119 to mark this change.  Additionally, users creating
336	stf(4) interfaces via "ifconfig stf" will need to update their
337	scripts as this will create an interface named "stf" instead of
338	"stf0" and ifconfig will not print "stf0" to stdout.
339
34020040621:
341	On 20040524, the /etc/rc.d/nsswitch script was modified to
342	automatically create /etc/nsswitch.conf on startup if it did
343	not already exist.  Unfortunately, an error in the man page
344	was carried over to the script, resulting in incorrect
345	nsswitch settings.  The simplest remedy is to remove both
346	/etc/nsswitch.conf and /etc/host.conf; they will be recreated
347	during the next reboot.
348
34920040614:
350	The return value of sema_timedwait(9) has been changed to
351	make it consistent with cv_timedwait(9).  Be sure to recompile
352	the ips module and any third-party modules which call
353	sema_timedwait.
354
35520040613:
356	ALTQ is now linked to the build. This breaks ABI for struct ifnet.
357	Make sure to recompile modules and any userland that makes use of
358	sizeof(struct ifnet). In order to get the altq headers in place
359	please recompile and reinstall world.
360
36120040607:
362	Splitting kern_thread.c into 2 files (adding kern_kse.c)
363	requires that you re-run config after updating your tree.
364
36520040601:
366	The MIDI drivers have been removed. Until the new module-friendly
367	ones are merged, remove or comment out midi and seq from your
368	kernel configuration.
369
37020040423:
371	Due to a new option in ipfw (versrcreach) the ipfw(8) command
372	needs to be recompiled.  Normal accept/reject rules without
373	options are not affected but those with options may break until
374	ipfw(8) is recompiled.
375
37620040420:
377	Due to changes in the callout ABI, kernels compiled after this
378	date may be incompatible with kernel modules compiled prior to
379	20040406.
380
38120040414:
382	The PCI bus power state stuff has been turned on.  If this causes
383	problems for your system, please disable it using the tunable
384	hw.pci.do_powerstate=0.
385
38620040412:
387	The bulk of the pci problems have been fixed, although the floppy
388	drive is still broken.
389
39020040410:
391	A substantial update to the pci bus resource and power management
392	have been committed.  Expect a bumpy ride for a few days until
393	the unanticipated problems have been resolved.
394
39520040409:
396        Due to changes in the the Yarrow initialization process,
397        /dev/random needs to be fed before operations requiring
398        temp files can succeed in single user mode.  This includes
399        running "make installworld". /dev/random may be fed by running
400        "/etc/rc.d/initrandom start" or with 20040415 source by running
401        "/etc/rc.d/preseedrandom".
402
40320040322:
404	The debug.mpsafenet tunable controls whether the kernel Giant
405	lock is held across the lower levels of the network stack, and
406	by default is turned off.  In the few days following 20040322,
407	the behavior of debug.mpsafenet will change such that this
408	tunable controls Giant over all levels of the network stack.
409	If you are currently setting debug.mpsafenet to 1, you should
410	set it back to 0 (the default) again during the change-over.
411	An additional note will be added to UPDATING when sufficient
412	locking is merged to permit this to take place.
413
41420040310:
415	The FreeBSD/sparc64 platform is changing time_t from 32-bits to
416	64-bits.  This is a very major incompatible change, so people
417	using FreeBSD/sparc64 *must* read the UPDATING.64BTT file for
418	detailed instructions on how to make this upgrade.  People
419	upgrading FreeBSD on other platforms can ignore this event.
420
42120040308:
422	The packet filter (pf) is now installed with the base system. Make
423	sure to run mergemaster -p before installworld to create required
424	user account ("proxy"). If you do not want to build pf with your
425	system you can use the NO_PF knob in make.conf.
426	Also note that pf requires "options PFIL_HOOKS" in the kernel. The
427	pf system consists of the following three devices:
428	device		pf		# required
429	device		pflog		# optional
430	device		pfsync		# optional
431
43220040303:
433	If you are having trouble with the libc_r -> libpthread transition
434	(see the 20040130 entry), place the following lines at the top of
435	/etc/libmap.conf:
436
437	libc_r.so.5		libpthread.so.1
438	libc_r.so		libpthread.so
439
440	This will cause all programs and libraries linked against libc_r
441	to use libpthread instead.
442
44320040226:
444	Some sshd configuration defaults have changed: protocol version 1
445	is no longer enabled by default, and password authentication is
446	disabled by default if PAM is enabled (which it is by default).
447	OpenSSH clients should not be affected by this; other clients may
448	have to be reconfigured, upgraded or replaced.
449
45020040225:
451	The ABIs defined in <resolv.h> and <netdb.h> have been updated
452	to support improved reentrancy.  Multi-threaded programs that
453	reference the "_res" or "h_errno" symbols may experience some
454	problems if they are not recompiled.  Single-threaded programs
455	should remain unaffected.
456
45720040225:
458	routed has been updated in the base system from the vendor
459	sources, routed v2.27, from rhyolite.com. This change means that
460	for users who use RIP's MD5 authentication feature, FreeBSD
461	-CURRENT's routed is now incompatible with previous versions
462	of FreeBSD; however it is now compatible with implementations
463	from Sun, Cisco and other vendors.
464
46520040224:
466	The tcpcb structure has changed and makes a recompile of libkvm
467	and related userland network utilities necessary.
468
46920040222:
470	The cdevsw structure has changed in two externally visible ways.
471	First, the sense of the D_GIANT flag has changed to D_NEEDSGIANT.
472	Second, the d_version field must be filled in with D_VERSION.
473	Drivers outside the tree will need to be updated.
474
47520040207:
476	The /etc/rc.d/ttys script has been removed. It is no longer
477	necessary since devfs has been mandatory for some time.
478
47920040130:
480	libkse has been renamed back to libpthread and is now the
481	default threads library.  The gcc -pthread option has also
482	been changed to link to libpthread instead of libc_r.  For
483	alpha and sparc64 machines, libkse is not renamed and links
484	are installed so that libpthread points to libc_r.  Until
485	the ports system is updated to handle this change, it is
486	recommended that folks install an /etc/libmap.conf(5) that
487	maps libc_r to libpthread.  If you have any binaries or
488	libraries linked to libkse, then it is also recommended
489	that you map libkse to libpthread.  Anyone that is using
490	nvidia supplied drivers and libraries should use a libmap.conf
491	that maps libpthread to libc_r since their drivers/libraries
492	do not work with libpthread.
493
49420040125:
495	ULE has entered into its probationary period as the default scheduler
496	in GENERIC.  For the average user, interactivity is reported to be
497	better in many cases.  On SMP machines ULE will be able to make more
498	efficient use of the available parallel resources.  If you are not
499	running it now, please switch over, replacing the kernel option
500	SCHED_4BSD with SCHED_ULE.
501
50220040125:
503	Move LongRun support out of identcpu.c, where it hardly
504	belongs, into its own file and make it opt-in, not mandatory,
505	depending on CPU_ENABLE_LONGRUN config(8) option.
506
50720031213:
508	src/lib/libc/gen/initgroups.c:1.8 now causes logins to fail
509	if the login process is unable to successfully set the
510	process credentials to include all groups defined for the
511	user.  The current kernel limit is 16 groups; administrators
512	may wish to check that users do not have over 16 groups
513	defined, or they will be unable to log in.
514
51520031203:
516	The ACPI module has been reactivated.  It is no longer required
517	to compile ACPI support into kernels statically.
518
51920031112:
520	The statfs structure has been updated with 64-bit fields to
521	allow accurate reporting of multi-terabyte filesystem
522	sizes. You should build world, then build and boot the new kernel
523	BEFORE doing a `installworld' as the new kernel will know about
524	binaries using the old statfs structure, but an old kernel will
525	not know about the new system calls that support the new statfs
526	structure.
527	Note that the backwards compatibility is only present when the
528	kernel is configured with the COMPAT_FREEBSD4 option. Since
529	even /bin/sh will not run with a new kernel without said option
530	you're pretty much dead in the water without it. Make sure you
531	have COMPAT_FREEBSD4!
532	Running an old kernel after a `make world' will cause programs
533	such as `df' that do a statfs system call to fail with a bad
534	system call. Marco Wertejuk <wertejuk@mwcis.com> also reports
535	that cfsd (ports/security/cfs) needs to be recompiled after
536	these changes are installed.
537
538	****************************DANGER*******************************
539
540	DO NOT make installworld after the buildworld w/o building and
541	installing a new kernel FIRST.  You will be unable to build a
542	new kernel otherwise on a system with new binaries and an old
543	kernel.
544
54520031112:
546	Some netgraph string length constants have been changed. This
547	change requires the netgraph kernel modules and all netgraph
548	userland components to be in sync. Especially users who require
549	netgraph to boot need to make sure to have world and kernel in
550	sync before rebooting.
551
55220031111:
553	Hyperthreading logical CPU's are no longer probed by default
554	when using the MP Table.  If ACPI is being used, then logical
555	CPUs will be probed if hyperthreading is enabled in the BIOS.
556	If ACPI is not being used and hyperthreading is enabled in the
557	BIOS, logical CPUs can be enabled by building a custom kernel
558	with the option MPTABLE_FORCE_HTT enabled.
559
56020031103:
561	The i386 APIC_IO kernel option has been replaced by
562	'device apic'.  The ACPI module has also been temporarily
563	disabled, so ACPI must be statically compiled into your
564	kernel using 'device acpi' if you wish to use the ACPI driver.
565
56620031031:
567	The API and ABI of struct ifnet have been changed by removing
568	the if_name and if_unit members and replacing them with
569	if_xname, if_dname, and if_dunit.  All network drivers and most
570	userland programs which include net/if_var.h must be updated
571	and recompiled.  __FreeBSD_version has been bumped to 501113 to
572	reflect this change.
573
57420030928:
575	Changes to the cdevsw default functions have been made to remove
576	the need to specify nullopen() and nullclose() explicitly.
577	__FreeBSD_version bumped to 501110.
578
57920030926:
580	kiconv(3) has been added. mount_msdosfs(8), mount_ntfs(8) and
581	mount_cd9660(8) need to be in sync with kernel.
582
58320030925:
584	Configuring a system to use IPFILTER now requires that PFIL_HOOKS
585	also be explicitly configured.  Previously this dependency was
586	magically handled through some cruft in net/pfil.h; but that has
587	been removed.  Building a kernel with IPFILTER but not PFIL_HOOKS
588	will fail with obtuse errors in ip_fil.c.
589
59020030923:
591	Fix a bug in arplookup(), whereby a hostile party on a locally
592	attached network could exhaust kernel memory, and cause a system
593	panic, by sending a flood of spoofed ARP requests. See
594	FreeBSD-SA-03:14.arp.
595
59620030915:
597	A change to /etc/defaults/rc.conf now causes inetd to be started
598	with `-C 60' if it is not overridden in /etc/rc.conf.  This
599	causes inetd to stop accepting connections from an IP address
600	that exceeds the rate of 60 connections per minute.
601
60220030829:
603	The following rc.d scripts have been removed and should be
604	deleted from your installation: atm2.sh atm3.sh devdb
605	localdaemons network1 network2 network3. Depending on when
606	you last updated world and used mergemaster(8) you may or
607	may not have problems during the rc boot sequence. The simplest
608	solution is an 'rm -rf /etc/rc.d/*' and then 'mergemaster -i'.
609	The atm2.sh atm3.sh and devdb scripts were removed some time
610	ago, so depending on when you installed -CURRENT these scripts
611	may or may not exist on your system.
612
61320030824:
614	ATAng has been committed. You need to build world as sys/ata.h
615	has changed, and userland atacontrol depends on it.
616	If you use ATA SW raids you need "device ataraid" in your
617	kernel config file, as it is no longer pulled in automatically.
618
61920030819:
620	The OFW_NEWPCI option has been turned on in the Sparc64 GENERIC kernel.
621	Among other things, this changes the device enumeration to be
622	closer to Solaris.  Be aware that, this can even cause the machine
623	to not boot without manual intervention before the fstab is adjusted.
624
62520030728:
626	All current USB and Firewire quirks in da(4) have been deprecated
627	and will be removed for 5.2.  If this causes failure for your
628	umass(4) devices, enable "options DA_OLD_QUIRKS" in your kernel
629	and send the output of "camcontrol inquiry da0" to scsi@freebsd.org
630	so the quirk can be re-enabled.
631
63220030724:
633	Problems with entry 20030714 have been corrected and no known issues
634	with /rescue and -j exist for host systems after this point in time.
635
63620030722:
637	FPU-less support has been removed from FreeBSD.  Chances are you won't
638	notice.  386+387 support should still work after this change, but
639	it is now a minimum requirement for the i386 port that you have real
640	FPU hardware.
641
64220030714:
643	Some people are having problems with changes related to /rescue.
644	If you are building -j N, you will need to define NO_RESCUE.  Others
645	will need to define it if /rescue has issues with their environment.
646	People should report those issues to current@.
647
64820030711:
649	gcc was upgraded to 3.3.  You are advised to not build -DNOCLEAN
650	across this point.  Further, it might be a good idea to remove
651	/usr/obj.
652
65320030610:
654	Remove deprecated locale names and transition period code
655	for them, finishing switching to the new scheme. Check your
656	LANG environment variable.
657
65820030609:
659	CCD has been changed to be a fully GEOMified class.  Kernel
660	and ccdconfig(8) needs to be in sync, this is particularly
661	important to remember beforehand if your source tree is on
662	a ccd device.  Consider making a copy of the old ccdconfig
663	into /boot/kernel.good or wherever you keep your backup
664	kernel.
665
66620030605:
667	There was a small window in which sed(1) was broken.  If you
668	happen to have sed(1) installed during that window, which is
669	evidenced by an inability to build world with the failure
670	given below, you need to manually build and install sed(1)
671	(and only sed(1)) before doing anything else. This is a one-
672	time snafu. Typical failure mode:
673
674	In file included from /usr/src/contrib/binutils/bfd/targets.c:1092:
675	targmatch.h:7:1: null character(s) ignored
676	targmatch.h:12:1: null character(s) ignored
677	targmatch.h:16:1: null character(s) ignored
678		:
679
680	The window of "sed(1)-uction" is from Wed Jun 4 15:31:55 2003 UTC
681	to Thu Jun 5 12:10:19 2003 UTC (from rev 1.30 to rev 1.31 of
682	usr.bin/sed/process.c).
683
68420030505:
685	Kerberos 5 (Heimdal) is now built by default. Setting
686	MAKE_KERBEROS5 no longer has any effect. If you do NOT
687	want the "base" Kerberos 5, you need to set NO_KERBEROS.
688
68920030502:
690	groff has been updated.  If you try to do a buildworld and
691	get an infinite loop in troff, update to May 4th or newer.  If you
692	have a newer kernel than userland, you may need to set the OSRELDATE
693	to 500110 in your environment before starting a buildworld.
694
69520030501:
696	The old rc system has been removed.  Please report any problems
697	to freebsd-rc@yahoogroups.com, and/or freebsd-current@freebsd.org.
698	Your personal versions of these files will not be removed, so you can
699	continue to use them. However, you should take great care when updating,
700	especially when using mergemaster, since the compatibility code that
701	utilizes these old scripts has also been removed.
702
70320030423:
704	A bug has been fixed in /dev/devctl which would cause devd
705	to hang on boot, were it not for a workaround in devd.  The
706	work around in devd will be removed around 20030507.  You
707	have until then to upgrade your kernel before updating
708	userland.  In general, you should have a userland and
709	kernel that's in sync with each other.  However, given the
710	effects of this bug (hang on boot when starting devd), some
711	allowances are made.
712
71320030329:
714	Alphas with libc from between 20030312 and 20030329 exhibit
715	floating point exceptions (FPEs), most notably in awk(1)
716	while upgrading the system through a buildworld.
717
718	So, to successfully upgrade your Alpha, you must either
719	downgrade your libc.so to a pre-20030312 version, or update
720	/usr/share/mk/bsd.cpu.mk to revision 1.26 which adds -mieee
721	to CFLAGS, then forcibly rebuild and install libc:
722
723	cd /usr/src/lib/libc && \
724	    make cleandir && make obj && \
725	    make -DNOMAN -DNOPROFILE all && \
726	    make -DNOMAN -DNOPROFILE install
727
72820030208:
729	sendmail 8.12.7 has been imported.  It has one important
730	change for IPv6 users.  The default submit.mc now uses
731	'[127.0.0.1]' instead of 'localhost' meaning only IPv4 is
732	used to connect to the MTA.  Users on IPv6-only machines
733	will need to edit /etc/mail/submit.mc appropriately.
734
73520030128:
736	NODEVFS option has been removed and DEVFS thereby made standard.
737	This makes all references to MAKEDEV obsolete, and they should
738	be removed when convenient.
739
74020030126:
741	The name of the device for the ofw console has changed, sparc64 users
742	must run mergemaster to update their installed /etc/ttys.
743
74420030125:
745	The scheduler framework has grown a second scheduler and consequently
746	you must specify one and only one scheduler in your kernel config.
747	The cvs config files have been updated to use the old scheduler
748	which may be selected via 'options SCHED_4BSD'.  If you would like
749	to try the new, much more experimental, scheduler please try
750	'options SCHED_ULE' and contribute to the arch@ discussion.
751
75220030115:
753	A new version of the wi driver has been imported into the tree.
754	One now must have device wlan in the config file for it to operate
755	properly.
756
757	In addition, there have been some changes to how wi devices are
758	configured for point to point links to bring it more in line
759	with the former way of doing things, as well as compatibility
760	with NetBSD.
761
76220021222:
763 	For a period after the GCC 3.2.1 import (from 12/04 to 12/22), GCC
764 	used an incompatible form of ABI for returning structures and unions
765 	which FreeBSD's GCC maintainers were not aware of relative to previous
766 	versions of FreeBSD.  We have gone back to the ABI for now, and any
767 	code compiled which is required to interoperate with other code (not
768 	built at the same time) returning structs or unions should be
769	rebuilt.
770
77120021216:
772	A name change in /etc/netconfig has been reverted to stay
773	compatible with suns TIRPC and also with NetBSD. You need
774	to run mergemaster after make world. A new libc does still work
775	with an outdated /etc/netconfig for some time, but you'll get
776	a warning. This warning will be removed in 20030301.
777
77820021202:
779	The recent binutils upgrade marks a kernel flag day on
780	sparc64: modules built with the old binutils will not work
781	with new kernels and vice versa. Mismatches will result in
782	panics.  Make sure your kernel and modules are in sync.
783
78420021029:
785	The value of IPPROTO_DIVERT has changed.  Make sure to keep
786	your kernel, netstat, natd and any third-party DIVERT
787	consumers in sync.
788
78920021024:
790	Old, compatibility slices have been removed in GEOM kernels.
791	This means that you will have to update your /etc/fstab to
792	not use disk devices of the form /dev/ad0a.  Instead, you
793	now must specify /dev/ad0s1a, or whatever slice your FreeBSD
794	partition really is on.  The old device names have gone
795	away, so if you use them anywhere else, you must also adjust
796	those uses.  (This doesn't affect the disks formatted in
797	the ``dangerously-dedicated'' mode.)
798
79920021023:
800	Alphas with kernels from between 20020830 and 20021023 and/or
801	rtld (ld-elf.so.1) older than 20021023 may experience problems
802	with groff while doing a buildworld (kernel: "out of memory",
803	fixed in rev 1.129 of kern/imgact_elf.c; rtld: "too few PT_LOAD
804	segments", fixed in rev 1.8 of libexec/rtld-elf/map_object.c).
805
806	So, to successfully upgrade your Alpha, you must either
807	upgrade your kernel and rtld first (which might be a bit
808	tricky), or avoid running the bootstrapped groff during the
809	"transitional" buildworld.  To avoid running groff during the
810	transitional upgrade run make buildworld with -DNOMAN,
811	-DNO_SHAREDOCS, and -DNO_LPR.
812
81320020831:
814	gcc has been upgraded to 3.2.  It is not all binary compatible
815	with earlier versions of gcc for c++ programs.  All c++
816	programs and libraries need to be recompiled.
817
818	Also, if you encounter g++ issues, rm /usr/include/g++/* before
819	doing an installworld to make sure that stale files are removed.
820
82120020827:
822	Our /etc/termcap now has all the entries from the XFree86 xterm
823	almost unchanged. This means xterm now supports color by default.
824	If you used TERM=xterm-color in the past you now should use
825	TERM=xterm. (xterm-color will lead to benign warnings).
826
82720020815:
828	A "bug" in gcc(1) that was hiding warning in system headers was
829	fixed.  It's probably time to add -DNO_WERROR to your make line
830	again.
831
83220020729:
833	COPY is being deprecated.  The 20010530 change was reverted, as
834	it causes far more pain than was expected, and to always compare
835	before installing, please use INSTALL="install -C" again.  The
836	-C option is now silently ignored when used with the -d option.
837
83820020702:
839	Problems with libc_r clients like KDE and GNOME have been resolved.
840	There are still some minor problems with some signals but the
841	system is stable enough for general use again. SMP is less so than UP
842	but each can successfully complete multiple buildworlds.
843	Libkvm needs to be recompiled due to KSE.
844
84520020701:
846	Now would be a bad time to upgrade.  Something in or near the
847	KSE commit totally broke programs using libc_r like KDE and
848	GNOME.
849
85020020511:
851	The k5su utility installed as part of Kerberos 5 is no longer
852	installed with the set-user-ID bit set by default.  Add
853	ENABLE_SUID_K5SU=yes to /etc/make.conf to have it installed
854	with the set-user-ID bit set.
855
85620020510:
857	Gcc 3.1 debugging format (cc -g) has changed from STABS to DWARF2.
858	Unfortunately our native GDB (at version 4.18) does not understand
859	the DWARF2 debugging format.  Thus you must use `gcc -gstabs+' to
860	generated debugging information for our native GDB.
861
86220020510:
863	Due to the way CVS works, it may not properly update src/contrib/gcc
864	to the 3.1 sources.  The easiest fix is to `rm -rf' src/contrib/gcc
865	and then do a cvs update.
866
86720020421:
868	When exec'ing set[ug]id executables, the kernel now ensures that the
869	stdio file descriptors (0..2) are open.  See FreeBSD-SA-02:23.stdio.
870
87120020404:
872	New sendmail startup scripts have been installed to make it
873	easier to use alternative MTAs with FreeBSD.  Setting the rc.conf
874	variable sendmail_enable to "NO" no longer prevents any sendmail
875	daemons from starting.  Instead, either set sendmail_enable to
876	"NONE" or change mta_start_script to a script for starting
877	an alternative MTA.  Setting mta_start_script to "" will
878	also prevent any MTA from being started at boot.
879
88020020403:
881	UCONSOLE is no longer a valid kernel option.
882
88320020315:
884	FreeBSD 5.0 DP-1 was basically branched today.
885
88620020225:
887	Warnings are now errors in the kernel.  Unless you are a developer,
888	you should add -DNO_WERROR to your make line.
889
89020020217:
891	sendmail 8.12.2 has been imported.  The sendmail binary is no
892	longer a set-user-ID root binary and the infrastructure to support
893	command line mail submission has changed.  Be sure to run
894	mergemaster (especially for updating /etc/rc, /etc/defaults/rc.conf,
895	and /etc/mail) and read /etc/mail/README for more details.
896
897	Due to the import of sendmail 8.12.2, a new user and group are
898	required in order for sendmail to run as a set-group-ID
899	binary.  A 'make installworld' will use the new user and group
900	to set the owner and group of /var/spool/clientmqueue and will
901	fail if the new user and group do not exist.  The 'smmsp' user
902	and group must be merged from src/etc/group and
903	src/etc/master.passwd before using 'make installworld'.
904	'mergemaster -p' will do this.  You may need to install
905	mergemaster before this will work if you are updating from a
906	very old version of current.  The updating recipe has changed
907	as of this date.
908
90920020112:
910	The preferred configuration method for PAM is now /etc/pam.d/
911	rather than /etc/pam.conf.  If you have an unmodified
912	pam.conf, just delete it after your next mergemaster run.  If
913	you have local modifications, you can use
914	/usr/src/etc/pam.d/convert.pl to incorporate them into your
915	/etc/pam.d.
916
917	Please see the following url for more details:
918http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<xzp6667fyoa.fsf@flood.ping.uio.no>
91920011229:
920	If anyone here is already using the new rc.conf(5) variable
921	networkfs_types, please note that it has changed
922http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<9744.1009655556@axl.seasidesoftware.co.za>
923
92420011220:
925	sys/i4b/driver/i4b_ispppsubr.c has been retired.  This file
926	started out its life in the ISDN4BSD project as an offspring
927	from sys/net/if_spppsubr.c, which eventually got a life of its
928	own.  All the accumulated features and bug fixes of the i4b
929	version have now been merged back into the base system's
930	version now.  The only user-visible change resulting from this
931	is that i4b's sppp(4) interfaces are to be managed with
932	spppcontrol(8) again, since ispppcontrol(8) has been retired
933	as well.  (There has never been rc file support for
934	ispppcontrol in -current, but only in -stable.  That will be
935	reverted by the time the changes are MFCed.)
936
93720011215:
938	The fdc(4) driver has been updated and now automatically
939	recognizes media in `standard' formats (like 1440 KB and
940	720 KB for a 3.5" high-density drive) when accessing the
941	default device node (e. g. /dev/fd0).  The old variety of
942	floppy device nodes /dev/fd*.* is no longer present by
943	default, devices can be created (in DEVFS) on demand.  They
944	will need to be customized then for `odd' densities using
945	fdcontrol(8).
946
94720011209:
948	The bugs in procfs' debugging support code have been fixed,
949	and truss(1) now works again.
950
95120011207:
952	Daily security checks have been split out to use the periodic(8)
953	scripts.  Some change in configuration may be necessary.  Please
954	see
955http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<20011207155805.R8975@blossom.cjclark.org>
956	for details.
957
95820011204:
959	sos added VCD/SVCD support to ata driver and that needs the
960	kernel and burncd to be in sync.
961
96220011203:
963	The procfs pseudo-filesystem has now been converted to use the
964	pseudofs framework.  If you have 'options PROCFS' in your
965	kernel config, you'll need to add 'options PSEUDOFS' if it's
966	not there already.
967
968	This change temporarily breaks truss(1); use ktrace(1) instead
969	until the issue has been resolved.
970
97120011202:
972	A security hole in OpenSSH involving `UseLogin yes' has been
973	patched.
974
97520011126:
976	You need to remove /usr/obj/.../usr.bin/tip before rebuilding
977	after this date.  You need to do this only once.
978
97920011103:
980	Most of the awk issues have been resolved.  Some rough
981	edges may be left, but for the most part things should be
982	back to "normal." For CURRENT's usual definition of "normal."
983
98420011030:
985	Awk has been upgraded to the one true awk from bell labs.  Expect
986	choppy waves in the upgrade process.
987
98820011030:
989	The asr driver problem has been resolved.
990
99120011027:
992	Due to changes in other parts of the system, the asr driver
993	now causes the system to panic on boot.  Do not use it pending
994	correction.  Comment it out of any kernel config file that you
995	try to use from this date forward.
996
99720011025:
998	When crossbuilding, use TARGET=xxx where you used to use
999	MACHINE=xxx.  You don't need to set TARGET_ARCH and TARGET,
1000	unless you are changing both of them.  To cross build pc98 on
1001	an alpha, for example, you need to set TARGET=pc98 and
1002	TARGET_ARCH=i386.
1003
100420011001:
1005	The kernel interface that burncd depends on has changed.
1006	You must recompile both the kernel and userland applications
1007	at the same time.
1008
100920010929:
1010	When crossbuilding, please set TARGET_ARCH rather than
1011	MACHINE_ARCH to indicate the target.  In the future, one will
1012	set TARGET_MACHINE where you set MACHINE now.  At the moment,
1013	setting MACHINE alone for same MACHINE_ARCH machines works
1014	(eg, you can build pc98 on an i386 machine and vice versa).
1015
101620010927:
1017	Some weird problems result from using ACPI on some machines.
1018	To disable ACPI you can add
1019		hint.acpi.0.disabled="1"
1020	to /boot/loader.conf (or by putting set X=Y at the boot
1021	loader "ok" prompt).
1022
1023	Alternatively, you can remove it from /boot/kernel/acpi.ko
1024	or use the MODULES_OVERRIDE function in your kernel config
1025	file and not list acpi in that list.
1026
102720010924:
1028	The buildworld has been fixed.  You may need to install
1029	the 4.x compatibility libraries for some old binaries
1030	to work.  Add COMPAT4X=true to your /etc/make.conf to
1031	get them installed on every installworld, or execute the
1032	following to get them installed only once:
1033		cd src/lib/compat/compat4x.<arch>
1034		make all install
1035	You will see ``__stdoutp undefined'' until you do this.
1036
103720010919:
1038	There's a bug in the world build process.  The cross-tools
1039	are build with the NEW headers, but the OLD libc.a.  This
1040	leads to all kinds of problems with the new libc.  A temporary
1041	workaround is to add
1042		CFLAGS="-O -pipe -D_OLD_STDIO"
1043	before building world when upgrading from 4.x to current.  This
1044	can be removed afterwards.
1045
1046	A proper fix to the buildworld target is needed.
1047
104820010918:
1049	Peter has committed his new kthread nfs client/server code.
1050	NFS may be unstable after this date.
1051
105220010912:
1053	KSE has hit the tree.  Lots of things are now different in
1054	the kernel.  While a few problems were introduced in the
1055	initial commit, most of the major ones have been found and
1056	corrected.
1057
105820010901:
1059	In OLDCARD, CardBus bridges appear to be stable.  The work
1060	arounds described in the 20010604 entry are now no longer
1061	necessary and will be ignored.  Most insert/remove problems
1062	have been rectified around this date.
1063
106420010823:
1065 	named now runs as user bind and group bind rather than as
1066 	root.  If named_enable is set to YES in /etc/rc.conf, ensure
1067 	that user bind is available in /etc/passwd (using vipw(8))
1068 	and that group bind is available in /etc/group.  Also make
1069 	sure that user or group bind has read (and not write)
1070 	permission for your name server configuration and that it
1071 	has read and write permission for your slave zone files and
1072 	directory.
1073
1074 	If you wish to continue to run named as root (a less secure
1075 	alternative), add a line to /etc/rc.conf saying
1076
1077 		named_flags=
1078
107920010709:
1080	The PAM libraries have had an API upgrade that is beyond
1081	the ability of the shared library major number to handle.
1082	It is manifested by PAM-using ports dumping core. The
1083	solution is to rebuild those ports.
1084
108520010628:
1086	The kernel compile module has moved from src/sys/compile/FOO
1087	to src/sys/${MACHINE}/compile/FOO.
1088
108920010625:
1090	The pccard modem issue from 20010613 has been corrected.
1091	OLDCARD support is still a little weak in -current.  slot 1 is
1092	known not to work on some TI based cardbus bridges.  Some
1093	cardbus bridges do not properly detect insert/removal events.
1094	IRQ configuration needs more safety belts.
1095
109620010617:
1097	Softupdates problems have been corrected.
1098
109920010614:
1100	Peter ripped out the linkerset support.  You must, as always,
1101	rerun config after you cvsup if you are using the traditional
1102	kernel building methods.
1103
110420010613:
1105	pccard modems may not work with current after 20010604 date.  Some
1106	do, others result in panics.  *MAKE*SURE* that you update your
1107	config and /etc/rc.conf ala the 20010604 entry, or you will have
1108	problems (this issue will be fixed, it just hasn't been yet).
1109
111020010613:
1111	SOFTUPDATES seem to be broken since the middle of May or so.  Do not
1112	use them in current.  You can disable softupdates on all mounted
1113	partitions, or remove SOFTUPDATES the kernel config file.
1114
111520010612:
1116	After Peter's commits to the hints code, people have been noticing
1117	that certain devices are attached (or try to) twice.  This is due
1118	to having both static hints as well as a /boot/device.hints.  To
1119	work around this issue, please use only one or the other mechanism
1120	until this bug is fixed.
1121
1122	Please note that a feature of config is that if you have config
1123	file FOO and FOO.hints, it automatically adds FOO.hints to the
1124	hints.c file, whether you want it to or not.
1125
112620010610:
1127	Locale names have changed to match other systems better.
1128
112920010604:
1130	pccard support for pci cards has been committed.  You must change
1131	your /etc/pccard.conf irq lines.  It must match the irq used by
1132	pcic device.  Interrupt storms may result if you fail to do this.
1133	Interrupt storms look a lot like a hang.
1134
1135	You must also install a new pccardd, otherwise you will get an
1136	interrupt storm at card reset time (just after it tells you what
1137	it is).
1138
1139	pccardd_flags="-I" is necessary for the time being.  It tells pccardd
1140	not to ask the kernel if the interrupt is really free or not before
1141	using it.  You can either change the /etc/pccard.conf irq lines to
1142	match pcic, or add "-i X" to the pccardd_flags.
1143
114420010530:
1145	INSTALL=install -C is being deprecated.  If you want to do this,
1146	use COPY=-C instead.  The former method will be supported for only
1147	a limited time.  If you see
1148
1149install: warning: the -d and -C options may not be specified together
1150
1151	in your makeworld, then you need to migrate towards using
1152	COPY=-C.
1153
115420010525:
1155	It appears that vm is now stable enough to use again.  However,
1156	there may be other problems, so caution is still urged.  alpha
1157	definitely is in bad shape.
1158
115920010521:
1160	Minor repo damage has happened.  This may cause problems
1161	with cvsup of ports.  If you get errors, please see
1162	http://www.FreeBSD.org/cgi/query-pr.cgi?pr=27495
1163	at the bottom for details on a workaround.  The error message
1164	is
1165Updater failed: Cannot delete "/usr/ports/www/jakarta-tomcat/files": Directory not empty
1166
116720010520:
1168	Vm and/or swapping are busted on -current.  Please be patient.
1169
117020010519:
1171	pccard has had much reorganizational work done to it over
1172	the past few days.  Everything should still work, but if
1173	not, please contact imp@freebsd.org.
1174
117520010517:
1176	ata ioctl changed.  Make sure to recompile both kernel and
1177	userland at the same time.
1178
117920010517:
1180	New ncurses imported.
1181
118220010512:
1183	DEVFS is now opt out, not opt in.  Barring major problems, this
1184	will be the only way to go starting July 1.
1185
118620010504:
1187	OpenSSH has been updated to 2.9.  Some defaults are different,
1188	including RhostsRSAAuthentication, which changes from yes to no.
1189
119020010502:
1191	Perl breakage in 20010501 was corrected at 14:18:33 PDT.
1192
119320010501:
1194	Building perl was broken at 02:25:25 PDT.
1195
119620010430:
1197	The bug in 20010429 was corrected at 07:35:37 PDT.  It is safe to
1198	go back in the water.
1199
120020010429:
1201	A bad bug was committed at 04:48:42 PDT.  Don't use kernels after
1202	this date, but before the correction date.
1203
120420010423:
1205	old fsck and new kernel interactions appear to have been fixed.
1206
120720010411:
1208	fsck and the kernel were changed to handle some optimizations
1209	to directory layout.  This breaks backward compatibility.
1210	Update only if you understand that you must not use the old
1211	fsck with the new kernel ever.
1212
121320010330:
1214	fsck has changed the meaning of the pass column in /etc/fstab.
1215	Please see the cvs commit to fsck.8 or the fsck.8 man page for
1216	details.  It is unclear if changes to /etc/fstab are necessary.
1217
121820010319:
1219	portmap had changed name to rpcbind for maximum POLA in your
1220	current world.  /etc/hosts.{allow,deny} needs changes.  nfs and
1221	other rpc based programs that rely on portmapper will not work
1222	without updates to /etc/hosts.{allow,deny} and /etc/netconfig.
1223
122420010315:
1225	ata subsystem changes.  ATA_ENABLE_ATAPI_DMA, ATA_ENABLE_WC
1226	and ATA_ENABLE_TAGS are no longer kernel options.  They have
1227	been replaced by tunables.  See ata.4 for details.
1228
122920010312:
1230	The fxp driver was converted to use miibus.  If you compile
1231	fxp into your kernel statically, you will need to add miibus.
1232
123320010312:
1234	The wi device now defaults to BSS (infrastructure) mode
1235	instead of ad-hoc.
1236
123720010310:
1238	/dev/urandom should be a symbolic link to /dev/random now.
1239	Users of current not using DEVFS need to run MAKEDEV std.
1240	ssh might not work if you don't.
1241
124220010303:
1243	The ed driver has been updated.  It now allows mii attachments,
1244	which means that you must include the miibus in your kernel if
1245	you use the ed driver.
1246
124720010220:
1248	The problems with libc have been corrected.  It is now mostly
1249	safe to go back into the water.
1250
125120010211:
1252	The size of FILE was changed.  This breaks upgrading.  If
1253	you must upgrade, be prepared for pain.  It also breaks almost
1254	all binaries that you've compiled on -current.  You are warned
1255	that before upgrading would be a good time to do a level 0
1256	dump of your system.  No, really, I mean it this time.
1257
1258	To get to the new system, you'll need to use the following
1259	workaround.  Hopefully this can be sorted out so that we
1260	don't have to move this to the updating section.
1261
1262	To get around the installworld problem, do:
1263		# cd /usr/src/usr.bin/sed
1264		# make install
1265		# cd /usr/src
1266		# make installworld
1267	If that doesn't work, then try:
1268		# make -k installworld
1269		# make installworld
1270
127120010207:
1272	DEVFS is now the default.  If you use vinum, make sure that you
1273	do not include devfs in your kernel as problems result.
1274
127520010205:
1276	FFS_ROOT and CD9660_ROOT have been removed or deprecated.
1277	Remove them from your config.
1278
127920010122:
1280	****************************** WARNING ******************************
1281			buildkernel has been changed slightly
1282	****************************** WARNING ******************************
1283	KERNCONF replaces the variable KERNEL for buildkernel.  You
1284	should update your scripts and make.conf accordingly.
1285
128620010119:
1287	config has changed to allow DEV_FOO as a replacement for NFOO.
1288	This requires a new config to build correctly.
1289
129020010116:
1291	The kernel option I386_CPU is now mutually exclusive with the
1292	other cpu types. If you have an i386 system, be sure that it
1293	only had this line.  Remove it for all other configurations.
1294
129520010110:
1296	Changes to the kernel require it and burncd be in sync.
1297
129820010102:
1299	Everyone who has hw.sndunit set to something in
1300	/etc/sysctl.conf, it is now hw.snd.unit.
1301
130220010101:
1303	ex and vi were broken by some changes to sys/queue.h.  If you
1304	have a bad vi, you will see make buildworld fail with a core
1305	dump while building termcap.  You can work around this problem
1306	by adding -k to your make buildworld.  This will cause the
1307	build to complete and install a new vi.  Once that's done, you
1308	can rebuild again without the -k to pick up anything that
1309	might have been ignored by the -k option.
1310
1311	Others have suggested that you can just rebuild libc if your
1312	vi/ex is dynamically linked, but I've not received any reports
1313	of this working.
1314
131520001228:
1316	There have been some changes to libcrypt in -current.  The
1317	libscrypt/libdescrypt symlink silliness is gone and the installed
1318	libcrypt is fully functional.  Be aware of this.
1319
132020001218:
1321	Linksys Fast Ethernet PCCARD cards supported by the ed driver
1322	now require the addition of flag 0x80000 to their config line
1323	in pccard.conf(5).  This flag is not optional.  These Linksys
1324	cards will not be recognized without it.
1325
132620001205:
1327	Important new FreeBSD-version stuff: PAM support has been worked
1328	in, partially from the "Unix" OpenSSH version.  This requires
1329	adding the following in pam.conf:
1330
1331	sshd    auth    sufficient      pam_skey.so
1332	sshd    auth    required        pam_unix.so         try_first_pass
1333	sshd    session required        pam_permit.so
1334
133520001031:
1336	cvs updated to 1.11.
1337
133820001020:
1339	The random device needs more entropy, so you need to make sure
1340	that you've run mergemaster to get a /etc/rc which will seed
1341	/dev/random.  If you don't and the system hangs after ldconfig,
1342	then banging on the keyboard randomly until it unhangs is one
1343	workaround.
1344
134520001010:
1346	****************************** WARNING ******************************
1347				Sendmail has been updated.
1348	****************************** WARNING ******************************
1349	o mail.local(8) is no longer installed as a set-user-id binary.
1350	o sendmail(8) is now built with STARTTLS support unless NO_OPENSSL
1351	  is set.
1352	o The default /etc/mail/sendmail.cf disables the SMTP EXPN and VRFY
1353	  commands.
1354	o Now using sendmail's version of vacation(1).
1355	o The sendmail cf building tools (contrib/sendmail/cf) are installed
1356	  in /usr/share/sendmail/cf.
1357	o sendmail.cw changed to local-host-names
1358
1359	More details can be found at
1360		http://people.freebsd.org/~imp/UPDATING/sendmail-20001010
1361
136220001009:
1363	The ports tree's new layout is in place.  Be sure to update
1364	your entire ports tree, or you will have problems.
1365
136620001006:
1367	The perl build procedure no longer installs miniperl, nor uses
1368	the installed miniperl.  It is recommended that you delete
1369	/usr/bin/miniperl.
1370
137120001005:
1372	This weekend the ports tree will be updated to a new layout.
1373	It will be in an inconsistent state until noted in the UPDATING
1374	file, or with asami-san's message to the relevant mailing
1375	lists.  With this new layout, you'll need to update the whole
1376	tree for anything to work.
1377
137820000928:
1379	There was a change in the passwd format.  Need more information.
1380
138120000916:
1382	/boot/kernel/kernel.ko -> /boot/kernel/kernel change has taken
1383	place.  Please update boot loader (not the boot blocks) at the
1384	same time as your kernel.
1385
138620000914:
1387	The new pmtimer device is necessary for laptops.  Failure to
1388	include the device will cause suspended laptops losing time
1389	when they resume.  Include
1390		device		pmtimer
1391	in your config file and
1392		hint.pmtimer.0.at="isa"
1393	to your /boot/device.hints file.
1394
139520000911:
1396	The random device has been turned into a (pseudo-)device,
1397	rather than an option. The supplied kernel config files have
1398	been updated. You will need to do something similar in your
1399	own kernel config file.
1400	Remove:
1401		options		RANDOMDEV
1402	Add:
1403		device		random
1404	If you prefer to load the loadable module, you need to do
1405	nothing.
1406
140720000909:
1408	The random device module has been renamed from randomdev.ko to
1409	random.ko. You will need to edit your /boot/loader.conf to
1410	reflect this if you load this module at boot time.
1411	The line should read:
1412		random_load="YES"
1413
141420000907:
1415	The SMPNG commit has happened.  It should work, but if it
1416	doesn't, fallback to the PRE_SMPNG CVS tag.  There are likely
1417	to be a variety of minor issues.  Please see 20000905 to make
1418	sure you don't have model loading problems which might at
1419	first blush appear related to SMP.
1420
142120000906:
1422	nsswitch has been imported from NetBSD.  Among other things,
1423	this means that /etc/host.conf is no longer used.  See
1424	nsswitch.conf(5) instead.  Note that at boot time rc.network
1425	will attempt to produce a new nsswitch.conf file for you if you
1426	don't have one, and you have host.conf.
1427
142820000905:
1429	The ucred structure changed size.  This breaks the interface
1430	that mountd uses.  Trying to use an older mountd with a newer
1431	kernel guarantees a panic.  This means that you need to use
1432	kernels newer than today only with matching mountd, but you
1433	needed to do that anyway with the boot loader changes.
1434
143520000905:
1436	The boot loader has been updated.  The new default kernel is
1437	now /boot/kernel/kernel.ko.  The new default module location
1438	is /boot/kernel.
1439
1440	You *MUST* upgrade your boot loader and kernel at the same time.
1441	The easiest way to do this is to do the buildworld/buildkernel/
1442	installkernel/installworld dance.
1443
1444	Furthermore, you are urged to delete your old /modules directory
1445	before booting the new kernel, since kldload will find stale
1446	modules in that directory instead of finding them in the correct
1447	path, /boot/kernel.  The most common complaint that this cures
1448	is that the linux module crashes your machine after the update.
1449
1450	if [ ! -d /boot/kernel.old ]; then
1451		mv /modules.old /boot/kernel.old
1452		chflags noschg /kernel.old
1453		mv /kernel.old /boot/kernel.old/kernel.ko
1454		chflags schg /boot/kernel.old/kernel.ko
1455	fi
1456
145720000904:
1458	A new issue with the sendmail upgrade has come to light.
1459	/etc/aliases has moved to /etc/mail/aliases.  Mergemaster will
1460	incorrectly install the default aliases in /etc/mail rather than
1461	move the old one from /etc.  So you'll need to manually move the
1462	file, create a symbolic link, remove the old /etc/aliases.db and
1463	run newaliases.  For safety sake, you should stop sendmail
1464	while doing this and run the upgrade when locally sourced email
1465	is not likely to be generated.
1466
146720000825:
1468	/boot/device.hints is now required for installkernel to
1469	succeed.  You should copy GENERIC.hints for your architecture
1470	into /boot/device.hints.  If and only if you compile hints
1471	into your kernel, then this file may be empty.  Please note,
1472	if you have an empty or missing /boot/device.hints file and
1473	you neglected to compile hints into your kernel, no boot
1474	messages will appear after the boot loader tries to start the
1475	kernel.
1476
147720000821:
1478	If you do NOT have ``options RANDOMDEV'' in your kernel and
1479	you DO want the random device then add randomdev_load="YES" to
1480	/boot/loader.conf.
1481
148220000812:
1483	suidperl is now always built and installed on the system, but
1484	with permissions of 511.  If you have applications that use
1485	this program, you are now required to add ENABLE_SUIDPERL=true
1486	to /etc/make.conf.  If you forget to do this,
1487		chmod 4511 /usr/bin/suidperl
1488	will fix this until the next build.
1489
149020000812:
1491	sendmail has been updated from 8.9.3 to 8.11.0.  Some of the more
1492	visible changes that may immediately affect your configuration
1493	include:
1494	- New default file locations from src/contrib/sendmail/cf/README
1495	- newaliases limited to root and trusted users
1496	- MSA port (587) turned on by default
1497	- New queue file naming system so can't go from 8.11 -> 8.9
1498	- FEATURE(`rbl') renamed to FEATURE(`dnsbl')
1499	- FEATURE(`nullclient') is more full featured
1500	- FEATURE(`nouucp') requires an argument: `reject' or `nospecial'
1501	- mail.local FreeBSD-only -b option changed to -B
1502	- See src/contrib/sendmail/RELEASE_NOTES for more info
1503
150420000810:
1505	suidperl (aka sperl) is no longer build by default.  You must
1506	specifically define BUILD_SUIDPERL to "true" for it to be build.
1507	Furthermore, we recommend that you remove /usr/bin/sperl* and
1508	/usr/bin/suidperl files from your system unless you have a
1509	specific use for it.
1510
151120000729:
1512	Networking defaults have been tightened.  Anybody upgrading
1513	/etc/defaults/rc.conf needs to add the following lines to
1514	/etc/rc.conf if they want to have the same setup
1515	afterwards (unless the variables already are set, of course):
1516		# Enable network daemons for user convenience.
1517		inetd_enable="YES"
1518		portmap_enable="YES"
1519		sendmail_enable="YES"
1520
152120000728:
1522	If you have null_load="YES" in your /boot/loader.conf, you
1523	will need to change that to nullfs_load="YES".
1524
152520000728:
1526	The "installkernel" target has changed slightly. Now even if
1527	you override KERNEL e.g. 'make installkernel KERNEL=MYKERNEL'
1528	it will install the MYKERNEL file (built with the buildkernel
1529	target) as /kernel rather than /MYKERNEL. Those who have
1530	updated their /boot/loader.conf files to point to /MYKERNEL
1531	should remove that entry or perform manual rename of /kernel
1532	to /MYKERNEL.
1533
153420000711:
1535	If you use CVSUP or CTM to get CVS trees, AND you used to get
1536	the old crypto files from internat.freebsd.org AND you check
1537	out files from the CVS tree with the cvs command, please read
1538		http://people.freebsd.org/~imp/internat.txt
1539	for details on potential problems that you might have and how
1540	to get around them.
1541
1542	If you are merely a mirror, or don't answer yes to each of the
1543	clauses above, you needn't worry.
1544
154520000711:
1546	/etc/security has been updated to print the inode number of
1547	setuid programs that have changed.  You will see a large spike
1548	in the number of changed programs the first time when you run
1549	mergemaster to get a new /etc/security.
1550
155120000710:
1552	/dev/random now has good entropy collection (from the keyboard
1553	and sysmouse drivers). Please ensure that either `options
1554	RANDOMDEV' is present in your kernel config file or that
1555	`randomdev_load="YES"' is in your /boot/loader.conf. If you do
1556	not have the /dev/random driver, OpenSSL (and consequently
1557	lots of crypto tools (like SSH)) will fail with strange
1558	errors. (see below, 20000624).
1559
1560	FreeBSD-current is safe again to run Crypto.
1561
156220000709:
1563	phk made the malloc default options AJ.  This may slow things
1564	down and uncover other latent bugs in the code.  If you need to
1565	run at full speed, you can disable this by doing the following:
1566		ln -s aj /etc/malloc.conf
1567
156820000706:
1569	libftpio's version was accidentally bumped a few days ago.  This
1570	has been corrected.  You may need to remove /usr/lib/libftpio.so.6
1571	before doing your next buildworld/installworld pair.  It certainly
1572	won't hurt to remove it before the update procedure.  It will
1573	break fetch until a new one is built, but ftp can be used in the
1574	interim if needed.
1575
157620000705:
1577	The crypto packages have changed for the cvsup.  This has been done
1578	in a backward compatible way, but the old packages will go away at
1579	some point in the future.  Look at /usr/share/examples/cvsup for
1580	details.
1581
158220000704:
1583	With the new sys/modules/sound/drivers/*, you will need to
1584	set SYSDIR until you do an installworld after July 7th.
1585
158620000704:
1587	rc.shutdown and rc will now call the rc.d scripts with start
1588	or stop.  This may cause some harmless warnings from older
1589	rc.d scripts that haven't been updated.
1590
159120000630:
1592	The libfetch based version of fetch has gone into the tree.
1593	Minor problems may result on some of the less popular sites,
1594	which should be reported to des@freebsd.org.
1595
159620000625:
1597	From approximately this date forward, one must have the crypto
1598	system installed in order to build the system and kernel.
1599	While not technically strictly true, one should treat it as
1600	required and grab the crypto bits.  If you are grabbing CVS
1601	trees, src-all and cvs-crypto should be treated as if they
1602	were required.  You should check with the latest collections
1603	to make sure that these haven't changed.
1604
160520000624:
1606	Mark Murray just committed the first parts of a cleanup of
1607	/dev/zero, et al.  This is also cleaning up /dev/random.
1608	The entropy is disconnected, so DO NOT USE VERSIONS OF FREEBSD
1609	-CURRENT FROM THIS POINT to 2000710 for cryptographic services
1610	until Mark can merge in the fixes to this work in progress.
1611	openssh and openssl should not be used to generate keys from this
1612	date to the completion of the work.
1613
1614	If you must operate at this reduced level of security, add '
1615	options RANDOMDEV' to your kernel or modload the randomdev
1616	module.  You may also need to copy a new MAKEDEV to /dev and
1617	recreate the random and urandom devices.
1618
161920000622:
1620	The license on the softupdates is now a standard 2 clause
1621	BSD license.  You may need to remove your symbolic links
1622	that used to be required when updating.
1623
162420000621:
1625	Scott Flatman <sf@aracnet.com> sent in a decent write-up on
1626	the config file update procedure.
1627		http://people.freebsd.org/~imp/config-upd.html
1628	NOTE: LINT is gone.  It has been replaced with NOTES.  NOTES
1629	isn't buildable.  However, you can generate a LINT file:
1630		cd /sys/<ARCH>/conf && make LINT
1631
163220000620:
1633	Binutils 2.10 have hit the tree, or will shortly.  As soon
1634	as they do, the problem noted in 20000522 will be resolved and
1635	that workaround will no longer be required.
1636
163720000615:
1638	phk removed the compatibility creation of wd devices in the
1639	ad driver.  If you haven't done so already, you must update
1640	your fstab, etc to use the ad devices instead of the wd
1641	devices.
1642
1643	In addition, you'll need to update your boot blocks to a
1644	more modern version, if you haven't already done so.  Modern
1645	here means 4.0 release or newer (although older releases
1646	may work).
1647
164820000612:
1649	Peter took an axe to config(8).  Be sure that you read his mail
1650	on the topic before even thinking about updating.  You will
1651	need to create a /boot/device.hints or add a hints directive
1652	to your config file to compile them in statically.  The format
1653	of the config file has changed as well.  Please see GENERIC or
1654	NEWCARD for examples of the new format.
1655
1656	Indirectly, this also breaks USERCONFIG.  Unless a newer entry
1657	says that it has been fixed, assume that must use the hints mechanism
1658	in the loader if you need to use a machine with very old ISA cards
1659	in it.
1660
166120000522:
1662	A new set of binutils went into the tree today.  Anybody
1663	building a kernel after this point is advised that they need
1664	to rebuild their binutils (or better yet do a
1665	buildworld/installworld) before building a new kernel.
1666
1667	Due to bugs in binutils, using malloc options (eg /etc/malloc.conf
1668	or MALLOC_OPTIONS env var) J will cause ld to dump core.  It
1669	is recommended that you don't set this option until the problem
1670	is resolved.
1671
167220000513:
1673	The ethernet drivers were all updated to clean up the BPF handling.
1674
167520000510:
1676	The problems with boot blocks on the alphas have been corrected.
1677	This will require some care in updating alphas.  A new libstand
1678	is requires for the boot blocks to build properly.
1679
168020000503:
1681	Recompile all kld modules.  Proper version dependency info
1682	is now available.
1683
168420000502:
1685	Modules have been disconnected from the buildworld tree and
1686	connected to the kernel building instead.
1687
168820000427:
1689	You may need to build gperf
1690		cd /usr/src/gnu/usr.bin/gperf && make depend all install
1691	when upgrading from 4.0 -> current.  The build system now uses
1692	an option only in -current.
1693
169420000417:
1695	The method that we brand ELF binaries has changed to be more
1696	acceptable to the binutils maintainers.  You will need to
1697	rebrand your ELF binaries that aren't native.  One problem
1698	binary is the Linux ldconfig.  After your make world, but
1699	before you reboot, you'll need to issue:
1700		brandelf -t Linux /compat/linux/sbin/ldconfig
1701	if you have Linux compatibility enabled on your machine.
1702
170320000320:
1704	If you have really bad/marginal IDE drives, you may find they
1705	don't work well.  Use pio mode instead.  The easiest way to
1706	cope if you have a problem combination is to add:
1707		/sbin/sysctl hw.ata.ata_dma=0
1708	to the start of /etc/rc.conf.
1709
171020000319:
1711	The ISA and PCI compatibility shims have been connected to the
1712	options COMPAT_OLDISA and COMPAT_OLDPCI.  If you are using old
1713	style PCI or ISA drivers (i.e. tx, voxware, etc.) you must
1714	include the appropriate option in your kernel config.  Drivers
1715	using the shims should be updated or they won't ship with
1716	5.0-RELEASE, targeted for 2001.
1717
171820000318:
1719	We've entered the traditional post release dumping party.
1720	Large kernel changes are being committed and are in the
1721	works.  It is important to keep the systems' klds and kernel
1722	in sync as kernel interfaces and structures are changing.
1723	Before reporting kernel panics, make sure that all modules
1724	that you are loading are up to date.
1725
172620000315:
1727	If you are upgrading from an older version of FreeBSD, you
1728	need to update your boot blocks as well.  'disklabel -B ad0'
1729	will do the trick.  This isn't critical until you remove your
1730	wd device entries in /dev, at which point your system will not
1731	boot.
1732
173320000315:
1734	4.0 RELEASE shipped.  Please see the 4.0 UPDATING file for how
1735	to upgrade to 4.0 from 3.x.
1736
1737COMMON ITEMS:
1738
1739	# NOTE: 5.x below applies to 6.0-currrent as well, for the
1740	# momemnt.  4.any -> 5.any upgrade support will remain in
1741	# place for 6.0 current, but after 5.3 RELEASE, the 4.any ->
1742	# 6.0-current upgrade path will require moving through 5.3
1743	# RELEASE or newer.
1744
1745	General Notes
1746	-------------
1747	Avoid using make -j when upgrading.  From time to time in the
1748	past there have been problems using -j with buildworld and/or
1749	installworld.  This is especially true when upgrading between
1750	"distant" versions (eg one that cross a major release boundary
1751	or several minor releases, or when several months have passed
1752	on the -current branch).
1753
1754	Sometimes, obscure build problems are the result of environment
1755	poisoning.  This can happen because the make utility reads its
1756	environment when searching for values for global variables.
1757	To run your build attempts in an "environmental clean room",
1758	prefix all make commands with 'env -i '.  See the env(1) manual
1759	page for more details.
1760
1761	To build a kernel
1762	-----------------
1763	If you are updating from a prior version of FreeBSD (even one just
1764	a few days old), you should follow this procedure. With a
1765	/usr/obj tree with a fresh buildworld,
1766	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1767	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1768
1769	To just build a kernel when you know that it won't mess you up
1770	--------------------------------------------------------------
1771	This assumes you are already running a 5.X system.  Replace
1772	${arch} with the architecture of your machine (e.g. "i386",
1773	"alpha", "amd64", "ia64", "pc98", "sparc64", etc).
1774
1775	cd src/sys/${arch}/conf
1776	config KERNEL_NAME_HERE
1777	cd ../compile/KERNEL_NAME_HERE
1778	make depend
1779	make
1780	make install
1781
1782	If this fails, go to the "To build a kernel" section.
1783
1784	To rebuild everything and install it on the current system.
1785	-----------------------------------------------------------
1786	# Note: sometimes if you are running current you gotta do more than
1787	# is listed here if you are upgrading from a really old current.
1788
1789	<make sure you have good level 0 dumps>
1790	<maybe fix /etc/fstab>				[7]
1791	make buildworld
1792	make kernel KERNCONF=YOUR_KERNEL_HERE
1793							[1]
1794	<reboot in single user>				[3]
1795	src/etc/rc.d/preseedrandom			[10]
1796	mergemaster -p					[5]
1797	make installworld
1798	mergemaster					[4]
1799	<reboot>
1800
1801
1802	To cross-install current onto a separate partition
1803	--------------------------------------------------
1804	# In this approach we use a separate partition to hold
1805	# current's root, 'usr', and 'var' directories.   A partition
1806	# holding "/", "/usr" and "/var" should be about 2GB in
1807	# size.
1808
1809	<make sure you have good level 0 dumps>
1810	<boot into -stable>
1811	make buildworld
1812	<maybe newfs current's root partition>
1813	<mount current's root partition on directory ${CURRENT_ROOT}>
1814	make installworld DESTDIR=${CURRENT_ROOT}
1815	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1816	cp src/sys/${ARCH}/conf/GENERIC.hints \
1817		${CURRENT_ROOT}/boot/device.hints	# as needed
1818	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1819	cd src/etc; make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1820	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
1821	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1822	<reboot into current>
1823	<do a "native" rebuild/install as described in the previous section>
1824	<maybe install compatibility libraries from src/lib/compat>
1825 	<reboot>
1826
1827
1828	To upgrade in-place from 4.x-stable to current
1829	----------------------------------------------
1830	# 5.x uses more space than 4.x.  Also, the location of kernel
1831	# modules has changed.  If you are installing 5.x onto a 4.x
1832	# system, you'll need about 30MB of free disk space on your /
1833	# partition.  If you have less than this, you may encounter difficult
1834	# to back out of problems with this procedure.  If /tmp is on
1835	# the / partition, you may want to completely remove all its content
1836	# before upgrading, as this can be a common source of shortage of
1837	# space on /.
1838
1839	<make sure you have good level 0 dumps>
1840	<maybe fix /etc/fstab>				[7]
1841	make buildworld					[9]
1842	cp sys/${MACHINE}/conf/GENERIC.hints /boot/device.hints [2]
1843	make kernel KERNCONF=YOUR_KERNEL_HERE		[8]
1844	cd sys/boot ; make STRIP="" install		[6]
1845							[1]
1846	<reboot in single user>				[3]
1847	src/etc/rc.d/preseedrandom			[10]
1848	mergemaster -p					[5]
1849	rm -rf /usr/include/g++
1850	make installworld
1851	mergemaster -i					[4]
1852	<reboot>
1853
1854	Make sure that you've read the UPDATING file to understand the
1855	tweaks to various things you need.  At this point in the life
1856	cycle of current, things change often and you are on your own
1857	to cope.  The defaults can also change, so please read ALL of
1858	the UPDATING entries.
1859
1860	Also, if you are tracking -current, you must be subscribed to
1861	freebsd-current@freebsd.org.  Make sure that before you update
1862	your sources that you have read and understood all the recent
1863	messages there.  If in doubt, please track -stable which has
1864	much fewer pitfalls.
1865
1866	[1] If you have third party modules, such as vmware, you
1867	should disable them at this point so they don't crash your
1868	system on reboot.
1869
1870	[2] If you have legacy ISA devices, you may need to create
1871	your own device.hints to reflect your unique hardware
1872	configuration.
1873
1874	[3] From the bootblocks, boot -s, and then do
1875		fsck -p
1876		mount -u /
1877		mount -a
1878		cd src
1879		adjkerntz -i		# if CMOS is wall time
1880	Also, when doing a major release upgrade, it is required that
1881	you boot into single user mode to do the installworld.
1882	For the 4.x -> 5.x upgrade, you will also see many messages about
1883	needing to recompile your userland.  These are harmless and can
1884	be ignored while you proceed to the next step.
1885
1886	[4] Note: This step is non-optional.  Failure to do this step
1887	can result in a significant reduction in the functionality of the
1888	system.  Attempting to do it by hand is not recommended and those
1889	that pursue this avenue should read this file carefully, as well
1890	as the archives of freebsd-current and freebsd-hackers mailing lists
1891	for potential gotchas.
1892
1893	[5] Usually this step is a noop.  However, from time to time
1894	you may need to do this if you get unknown user in the following
1895	step.  It never hurts to do it all the time.  You may need to
1896	install a new mergemaster (cd src/usr.sbin/mergemaster && make
1897	install) after the buildworld before this step if you last updated
1898	from current before 20020224 or from -stable before 20020408.
1899
1900	[6] 4.x boot loader can be used to boot a 5.x system, however
1901	it is difficult to do that at best.  If you wish to try, then
1902	you should interrupt the boot and at the ok prompt type:
1903		ok unload
1904		ok boot /boot/kernel/kernel
1905	If this fails to work, you must install a new boot loader as
1906	described here.
1907
1908	[7] Before you upgrade, please make sure that you are not using
1909	compatibility slices.  These are device names of the form /dev/ad0a
1910	without the actual slice name.  These will break with 5.x and newer.
1911	You generally must update these entries to use the post FreeBSD
1912	2.x form of /dev/ad0s1a. i386 and pc98 are affected, while alpha
1913	is not.
1914
1915	[8] In order to have a kernel that can run the 4.x binaries
1916	needed to do an installworld, you must include the COMPAT_FREEBSD4
1917	option in your kernel.  Failure to do so may leave you with a system
1918	that is hard to boot to recover.
1919
1920	Make sure that you merge any new devices from GENERIC since the
1921	last time you updated your kernel config file.
1922
1923	[9] When checking out sources, you must include the -P flag to have
1924	cvs prune empty directories.
1925
1926	If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1927	"?=" instead of the "=" assignment operator, so that buildworld can
1928	override the CPUTYPE if it needs to.
1929
1930	MAKEOBJDIRPREFIX must be defined in an environment variable, and
1931	not on the command line, or in /etc/make.conf.  buildworld will
1932	warn if it is improperly defined.
1933
1934	In case you would like to avoid installing new packages of everything,
1935	you might want to uncomment the "COMPAT4X=	YES" entry, so that 4.x
1936	compatibility libraries are built which should allow you to continue
1937	using your existing software for a while.  Alternatively, you can
1938	install the misc/compat4x port.
1939
1940	[10] In order to create temporary files, /dev/random must be
1941	initialized by feeding data into it.  src/etc/rc.d/preseedrandom
1942	takes care of this.
1943FORMAT:
1944
1945This file contains a list, in reverse chronological order, of major
1946breakages in tracking -current.  Not all things will be listed here,
1947and it only starts on March 15, 2000.  Updating files can found in
1948previous releases if your system is older than this.
1949
1950Copyright information:
1951
1952Copyright 1998-2004 M. Warner Losh.  All Rights Reserved.
1953
1954Redistribution, publication, translation and use, with or without
1955modification, in full or in part, in any form or format of this
1956document are permitted without further permission from the author.
1957
1958THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1959IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1960WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1961DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1962INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1963(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1964SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1965HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1966STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1967IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1968POSSIBILITY OF SUCH DAMAGE.
1969
1970If you find this document useful, and you want to, you may buy the
1971author a beer.
1972
1973Contact Warner Losh if you have any questions about your use of
1974this document.
1975
1976$FreeBSD: head/UPDATING 137790 2004-11-16 21:18:41Z jhb $
1977