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