UPDATING revision 132840
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
7NOTE TO PEOPLE WHO THINK THAT FreeBSD 5.x IS SLOW:
8	FreeBSD 5.x has many debugging features turned on, in
9	both the kernel and userland.  These features attempt to detect
10	incorrect use of system primitives, and encourage loud failure
11	through extra sanity checking and fail stop semantics.  They
12	also substantially impact system performance.  If you want to
13	do performance measurement, benchmarking, and optimization,
14	you'll want to turn them off.  This includes various WITNESS-
15	related kernel options, INVARIANTS, malloc debugging flags
16	in userland, and various verbose features in the kernel.  Many
17	developers choose to disable these features on build machines
18	to maximize performance.
19
2020030728:
21	System compiler has been upgraded to GCC 3.4.2-pre. As with any major
22	compiler upgrade, there are several issues to be aware of. GCC 3.4.x
23	has broken C++ ABI compatibility with previous releases yet again
24	and users will have to rebuild all their C++ programs with the new 
25	compiler. A new unit-at-a-time optimization mode, which is default
26	in this compiler release, is more aggressive in removing unused
27	static symbols. This is the likely cause of 'make buildworld'
28	breakages with non-default CFLAGS where optimization level is set
29	to -O2 or higher.
30
3120040727:
32	The size of 'struct ifnet' has changed due to the addition of
33	the IFF_NEEDSGIANT flag (and what it implies).  All kernel
34	modules implementing network interfaces must be recompiled as
35	a result.
36
3720040716:
38	The sound device drivers are renamed.  `sound' is always required,
39	while `snd_*' should be configured accordingly to your hardware.
40	Refer to NOTES for the detail of the drivers.
41
4220040710:
43	__FreeBSD_version bumped to 502122.
44
4520040710:
46	The console initialization on Alpha has been reworked and is now
47	identical to other platforms. This means that the hardcoding of
48	the serial console and the debug port has been removed. As such,
49	hints are now required for the sio(4) driver to become a console
50	or debug port. The NO_SIO option has been decommissioned because
51	of this.
52
5320040710:
54	A revamp of the debugging code in the kernel with some visible
55	changes beyond just the debugging experience:
56	o  The DDB option is now specific to the DDB debugger backend
57	   and should not be used any more for conditional compilation
58	   of debugging code for when debugging is enabled. Use the KDB
59	   option for this.
60	o  The WITNESS_DDB, DDB_TRACE and DDB_UNATTENDED options have
61	   been renamed to WITNESS_KDB, KDB_TRACE and KDB_UNATTENDED
62	   respectively. This is in line with the first bullet.
63	o  The remote GDB support has been untangled from DDB and needs
64	   to be enabled separately now. Use the GDB option for this.
65	o  The GDB_REMOTE_CHAT option has been removed. Support for this
66	   homegrown feature is discontinued. The GDB remote protocol
67	   supports console output and it makes sense to use that. 
68	o  The DDB_NOKLDSYM option has been removed. The DDB debugger
69	   now supports both direct symbol table lookups as well as KLD
70	   symbol lookups through the linker.
71
7220040708:
73	Bluetooth code has been marked as non-i386 specific.
74	__FreeBSD_version has been bumped to 502121 to mark this change.
75
7620040702:
77	The native preemption has been added to the kernel scheduler.
78	There is some report that the ULE scheduler was broken in some
79	machines and we encourage users using the ULE scheduler either
80	stick with a known good kernel, or temporarily switch to the 4BSD
81	scheduler as a workaround.
82
8320040630:
84	The netgraph ABI version number has been incremented to indicate
85	an incompatible change in the ABI. Old netgraph nodes will refuse
86	to attach until recompiled. Netgraph now uses mbuf tags to move
87	metadata and this commit removes its home-grown metadata facility.
88	Nodes should just recompile, unless they use metadata, in which
89	case the changes are simple; the file ng_ksocket.c serves as an
90	example of such changes.
91
92	This also broke i4b, although the compile problem has been papered
93	over.
94
9520040630:
96	ACPI has been updated to disable known-bad BIOS revisions.  A message
97	will be printed on the console indicating that ACPI has been disabled
98	automatically and that the user should use a newer BIOS, if possible.
99	If you think ACPI does work on your system and want to override
100	this (i.e., for testing), set hint.acpi.0.disabled="0" at the
101	loader prompt.
102
10320040623:
104	pf was updated to OpenBSD-stable 3.5 and pflogd(8) is privilege
105	separated now. It uses the newly created "_pflogd" user/group
106	combination. If you plan to use pflogd(8) make sure to run
107	mergemaster -p or install the "_pflogd" user and group manually.
108
10920040622:
110	Network interface cloning has been overhauled.  This change will
111	require a recompile of modules using cloning and modification of
112	external ones to the new API.  __FreeBSD_version has been bumped
113	to 502119 to mark this change.  Additionally, users creating
114	stf(4) interfaces via "ifconfig stf" will need to update their
115	scripts as this will create an interface named "stf" instead of
116	"stf0" and ifconfig will not print "stf0" to stdout.
117
11820040621:
119	On 20040524, the /etc/rc.d/nsswitch script was modified to
120	automatically create /etc/nsswitch.conf on startup if it did
121	not already exist.  Unfortunately, an error in the man page
122	was carried over to the script, resulting in incorrect
123	nsswitch settings.  The simplest remedy is to remove both
124	/etc/nsswitch.conf and /etc/host.conf; they will be recreated
125	during the next reboot.
126
12720040614:
128	The return value of sema_timedwait(9) has been changed to
129	make it consistent with cv_timedwait(9).  Be sure to recompile
130	the ips module and any third-party modules which call
131	sema_timedwait.
132
13320040613:
134	ALTQ is now linked to the build. This breaks ABI for struct ifnet.
135	Make sure to recompile modules and any userland that makes use of
136	sizeof(struct ifnet). In order to get the altq headers in place
137	please recompile and reinstall world.
138
13920040607:
140	Splitting kern_thread.c into 2 files (adding kern_kse.c)
141	requires that you re-run config after updating your tree.
142
14320040601:
144	The MIDI drivers have been removed. Until the new module-friendly
145	ones are merged, remove or comment out midi and seq from your
146	kernel configuration.
147
14820040423:
149	Due to a new option in ipfw (versrcreach) the ipfw(8) command
150	needs to be recompiled.  Normal accept/reject rules without
151	options are not affected but those with options may break until
152	ipfw(8) is recompiled.
153
15420040420:
155	Due to changes in the callout ABI, kernels compiled after this
156	date may be incompatible with kernel modules compiled prior to
157	20040406.
158
15920040414:
160	The PCI bus power state stuff has been turned on.  If this causes
161	problems for your system, please disable it using the tunable
162	hw.pci.do_powerstate=0.
163
16420040412:
165	The bulk of the pci problems have been fixed, although the floppy
166	drive is still broken.
167
16820040410:
169	A substantial update to the pci bus resource and power management
170	have been committed.  Expect a bumpy ride for a few days until
171	the unanticipated problems have been resolved.
172
17320040409:
174        Due to changes in the the Yarrow initialization process,
175        /dev/random needs to be fed before operations requiring
176        temp files can succeed in single user mode.  This includes
177        running "make installworld". /dev/random may be fed by running
178        "/etc/rc.d/initrandom start" or with 20040415 source by running
179        "/etc/rc.d/preseedrandom".
180
18120040322:
182	The debug.mpsafenet tunable controls whether the kernel Giant
183	lock is held across the lower levels of the network stack, and
184	by default is turned off.  In the few days following 20040322,
185	the behavior of debug.mpsafenet will change such that this
186	tunable controls Giant over all levels of the network stack.
187	If you are currently setting debug.mpsafenet to 1, you should
188	set it back to 0 (the default) again during the change-over.
189	An additional note will be added to UPDATING when sufficient
190	locking is merged to permit this to take place.
191
19220040310:
193	The FreeBSD/sparc64 platform is changing time_t from 32-bits to
194	64-bits.  This is a very major incompatible change, so people
195	using FreeBSD/sparc64 *must* read the UPDATING.64BTT file for
196	detailed instructions on how to make this upgrade.  People
197	upgrading FreeBSD on other platforms can ignore this event.
198
19920040308:
200	The packet filter (pf) is now installed with the base system. Make
201	sure to run mergemaster -p before installworld to create required
202	user account ("proxy"). If you do not want to build pf with your
203	system you can use the NO_PF knob in make.conf.
204	Also note that pf requires "options PFIL_HOOKS" in the kernel. The
205	pf system consists of the following three devices:
206	device		pf		# required
207	device		pflog		# optional
208	device		pfsync		# optional
209
21020040303:
211	If you are having trouble with the libc_r -> libpthread transition
212	(see the 20040130 entry), place the following lines at the top of
213	/etc/libmap.conf:
214
215	libc_r.so.5		libpthread.so.1
216	libc_r.so		libpthread.so
217
218	This will cause all programs and libraries linked against libc_r
219	to use libpthread instead.
220
22120040226:
222	Some sshd configuration defaults have changed: protocol version 1
223	is no longer enabled by default, and password authentication is
224	disabled by default if PAM is enabled (which it is by default).
225	OpenSSH clients should not be affected by this; other clients may
226	have to be reconfigured, upgraded or replaced.
227
22820040225:
229	The ABIs defined in <resolv.h> and <netdb.h> have been updated
230	to support improved reentrancy.  Multi-threaded programs that
231	reference the "_res" or "h_errno" symbols may experience some
232	problems if they are not recompiled.  Single-threaded programs
233	should remain unaffected.
234
23520040225:
236	routed has been updated in the base system from the vendor
237	sources, routed v2.27, from rhyolite.com. This change means that
238	for users who use RIP's MD5 authentication feature, FreeBSD
239	-CURRENT's routed is now incompatible with previous versions
240	of FreeBSD; however it is now compatible with implementations
241	from Sun, Cisco and other vendors.
242
24320040224:
244	The tcpcb structure has changed and makes a recompile of libkvm
245	and related userland network utilities necessary.
246
24720040222:
248	The cdevsw structure has changed in two externally visible ways.
249	First, the sense of the D_GIANT flag has changed to D_NEEDSGIANT.
250	Second, the d_version field must be filled in with D_VERSION.
251	Drivers outside the tree will need to be updated.
252
25320040207:
254	The /etc/rc.d/ttys script has been removed. It is no longer
255	necessary since devfs has been mandatory for some time.
256
25720040130:
258	libkse has been renamed back to libpthread and is now the
259	default threads library.  The gcc -pthread option has also
260	been changed to link to libpthread instead of libc_r.  For
261	alpha and sparc64 machines, libkse is not renamed and links
262	are installed so that libpthread points to libc_r.  Until
263	the ports system is updated to handle this change, it is
264	recommended that folks install an /etc/libmap.conf(5) that
265	maps libc_r to libpthread.  If you have any binaries or
266	libraries linked to libkse, then it is also recommended
267	that you map libkse to libpthread.  Anyone that is using
268	nvidia supplied drivers and libraries should use a libmap.conf
269	that maps libpthread to libc_r since their drivers/libraries
270	do not work with libpthread.
271
27220040125:
273	ULE has entered into its probationary period as the default scheduler
274	in GENERIC.  For the average user, interactivity is reported to be
275	better in many cases.  On SMP machines ULE will be able to make more
276	efficient use of the available parallel resources.  If you are not
277	running it now, please switch over, replacing the kernel option
278	SCHED_4BSD with SCHED_ULE.
279
28020040125:
281	Move LongRun support out of identcpu.c, where it hardly
282	belongs, into its own file and make it opt-in, not mandatory,
283	depending on CPU_ENABLE_LONGRUN config(8) option.
284
28520031213:
286	src/lib/libc/gen/initgroups.c:1.8 now causes logins to fail
287	if the login process is unable to successfully set the
288	process credentials to include all groups defined for the
289	user.  The current kernel limit is 16 groups; administrators
290	may wish to check that users do not have over 16 groups
291	defined, or they will be unable to log in.
292
29320031203:
294	The ACPI module has been reactivated.  It is no longer required
295	to compile ACPI support into kernels statically.
296
29720031112:
298	The statfs structure has been updated with 64-bit fields to
299	allow accurate reporting of multi-terabyte filesystem
300	sizes. You should build world, then build and boot the new kernel
301	BEFORE doing a `installworld' as the new kernel will know about
302	binaries using the old statfs structure, but an old kernel will
303	not know about the new system calls that support the new statfs
304	structure.
305	Note that the backwards compatibility is only present when the
306	kernel is configured with the COMPAT_FREEBSD4 option. Since
307	even /bin/sh will not run with a new kernel without said option
308	you're pretty much dead in the water without it. Make sure you
309	have COMPAT_FREEBSD4!
310	Running an old kernel after a `make world' will cause programs
311	such as `df' that do a statfs system call to fail with a bad
312	system call. Marco Wertejuk <wertejuk@mwcis.com> also reports
313	that cfsd (ports/security/cfs) needs to be recompiled after
314	these changes are installed.
315
316	****************************DANGER*******************************
317
318	DO NOT make installworld after the buildworld w/o building and
319	installing a new kernel FIRST.  You will be unable to build a
320	new kernel otherwise on a system with new binaries and an old
321	kernel.
322
32320031112:
324	Some netgraph string length constants have been changed. This
325	change requires the netgraph kernel modules and all netgraph
326	userland components to be in sync. Especially users who require
327	netgraph to boot need to make sure to have world and kernel in
328	sync before rebooting.
329
33020031111:
331	Hyperthreading logical CPU's are no longer probed by default
332	when using the MP Table.  If ACPI is being used, then logical
333	CPUs will be probed if hyperthreading is enabled in the BIOS.
334	If ACPI is not being used and hyperthreading is enabled in the
335	BIOS, logical CPUs can be enabled by building a custom kernel
336	with the option MPTABLE_FORCE_HTT enabled.
337
33820031103:
339	The i386 APIC_IO kernel option has been replaced by
340	'device apic'.  The ACPI module has also been temporarily
341	disabled, so ACPI must be statically compiled into your
342	kernel using 'device acpi' if you wish to use the ACPI driver.
343
34420031031:
345	The API and ABI of struct ifnet have been changed by removing
346	the if_name and if_unit members and replacing them with
347	if_xname, if_dname, and if_dunit.  All network drivers and most
348	userland programs which include net/if_var.h must be updated
349	and recompiled.  __FreeBSD_version has been bumped to 501113 to
350	reflect this change.
351
35220030928:
353	Changes to the cdevsw default functions have been made to remove
354	the need to specify nullopen() and nullclose() explicitly.
355	__FreeBSD_version bumped to 501110.
356
35720030926:
358	kiconv(3) has been added. mount_msdosfs(8), mount_ntfs(8) and
359	mount_cd9660(8) need to be in sync with kernel.
360
36120030925:
362	Configuring a system to use IPFILTER now requires that PFIL_HOOKS
363	also be explicitly configured.  Previously this dependency was
364	magically handled through some cruft in net/pfil.h; but that has
365	been removed.  Building a kernel with IPFILTER but not PFIL_HOOKS
366	will fail with obtuse errors in ip_fil.c.
367
36820030923:
369	Fix a bug in arplookup(), whereby a hostile party on a locally
370	attached network could exhaust kernel memory, and cause a system
371	panic, by sending a flood of spoofed ARP requests. See
372	FreeBSD-SA-03:14.arp.
373
37420030915:
375	A change to /etc/defaults/rc.conf now causes inetd to be started
376	with `-C 60' if it is not overridden in /etc/rc.conf.  This
377	causes inetd to stop accepting connections from an IP address
378	that exceeds the rate of 60 connections per minute.
379
38020030829:
381	The following rc.d scripts have been removed and should be
382	deleted from your installation: atm2.sh atm3.sh devdb
383	localdaemons network1 network2 network3. Depending on when
384	you last updated world and used mergemaster(8) you may or
385	may not have problems during the rc boot sequence. The simplest
386	solution is an 'rm -rf /etc/rc.d/*' and then 'mergemaster -i'.
387	The atm2.sh atm3.sh and devdb scripts were removed some time
388	ago, so depending on when you installed -CURRENT these scripts
389	may or may not exist on your system.
390
39120030824:
392	ATAng has been committed. You need to build world as sys/ata.h
393	has changed, and userland atacontrol depends on it.
394	If you use ATA SW raids you need "device ataraid" in your
395	kernel config file, as it is no longer pulled in automatically.
396
39720030819:
398	The OFW_NEWPCI option has been turned on in the Sparc64 GENERIC kernel.
399	Among other things, this changes the device enumeration to be
400	closer to Solaris.  Be aware that, this can even cause the machine
401	to not boot without manual intervention before the fstab is adjusted.
402
40320030728:
404	All current USB and Firewire quirks in da(4) have been deprecated
405	and will be removed for 5.2.  If this causes failure for your
406	umass(4) devices, enable "options DA_OLD_QUIRKS" in your kernel
407	and send the output of "camcontrol inquiry da0" to scsi@freebsd.org
408	so the quirk can be re-enabled.
409
41020030724:
411	Problems with entry 20030714 have been corrected and no known issues
412	with /rescue and -j exist for host systems after this point in time.
413
41420030722:
415	FPU-less support has been removed from FreeBSD.  Chances are you won't
416	notice.  386+387 support should still work after this change, but
417	it is now a minimum requirement for the i386 port that you have real
418	FPU hardware.
419
42020030714:
421	Some people are having problems with changes related to /rescue.
422	If you are building -j N, you will need to define NO_RESCUE.  Others
423	will need to define it if /rescue has issues with their environment.
424	People should report those issues to current@.
425
42620030711:
427	gcc was upgraded to 3.3.  You are advised to not build -DNOCLEAN
428	across this point.  Further, it might be a good idea to remove
429	/usr/obj.
430
43120030610:
432	Remove deprecated locale names and transition period code
433	for them, finishing switching to the new scheme. Check your
434	LANG environment variable.
435
43620030609:
437	CCD has been changed to be a fully GEOMified class.  Kernel
438	and ccdconfig(8) needs to be in sync, this is particularly
439	important to remember beforehand if your source tree is on
440	a ccd device.  Consider making a copy of the old ccdconfig
441	into /boot/kernel.good or wherever you keep your backup
442	kernel.
443
44420030605:
445	There was a small window in which sed(1) was broken.  If you
446	happen to have sed(1) installed during that window, which is
447	evidenced by an inability to build world with the failure
448	given below, you need to manually build and install sed(1)
449	(and only sed(1)) before doing anything else. This is a one-
450	time snafu. Typical failure mode:
451
452	In file included from /usr/src/contrib/binutils/bfd/targets.c:1092:
453	targmatch.h:7:1: null character(s) ignored
454	targmatch.h:12:1: null character(s) ignored
455	targmatch.h:16:1: null character(s) ignored
456		:
457
458	The window of "sed(1)-uction" is from Wed Jun 4 15:31:55 2003 UTC
459	to Thu Jun 5 12:10:19 2003 UTC (from rev 1.30 to rev 1.31 of
460	usr.bin/sed/process.c).
461
46220030505:
463	Kerberos 5 (Heimdal) is now built by default. Setting
464	MAKE_KERBEROS5 no longer has any effect. If you do NOT
465	want the "base" Kerberos 5, you need to set NO_KERBEROS.
466
46720030502:
468	groff has been updated.  If you try to do a buildworld and
469	get an infinite loop in troff, update to May 4th or newer.  If you
470	have a newer kernel than userland, you may need to set the OSRELDATE
471	to 500110 in your environment before starting a buildworld.
472
47320030501:
474	The old rc system has been removed.  Please report any problems
475	to freebsd-rc@yahoogroups.com, and/or freebsd-current@freebsd.org.
476	Your personal versions of these files will not be removed, so you can
477	continue to use them. However, you should take great care when updating,
478	especially when using mergemaster, since the compatibility code that
479	utilizes these old scripts has also been removed.
480
48120030423:
482	A bug has been fixed in /dev/devctl which would cause devd
483	to hang on boot, were it not for a workaround in devd.  The
484	work around in devd will be removed around 20030507.  You
485	have until then to upgrade your kernel before updating
486	userland.  In general, you should have a userland and
487	kernel that's in sync with each other.  However, given the
488	effects of this bug (hang on boot when starting devd), some
489	allowances are made.
490
49120030329:
492	Alphas with libc from between 20030312 and 20030329 exhibit
493	floating point exceptions (FPEs), most notably in awk(1)
494	while upgrading the system through a buildworld.
495
496	So, to successfully upgrade your Alpha, you must either
497	downgrade your libc.so to a pre-20030312 version, or update
498	/usr/share/mk/bsd.cpu.mk to revision 1.26 which adds -mieee
499	to CFLAGS, then forcibly rebuild and install libc:
500
501	cd /usr/src/lib/libc && \
502	    make cleandir && make obj && \
503	    make -DNOMAN -DNOPROFILE all && \
504	    make -DNOMAN -DNOPROFILE install
505
50620030208:
507	sendmail 8.12.7 has been imported.  It has one important
508	change for IPv6 users.  The default submit.mc now uses
509	'[127.0.0.1]' instead of 'localhost' meaning only IPv4 is
510	used to connect to the MTA.  Users on IPv6-only machines
511	will need to edit /etc/mail/submit.mc appropriately.
512
51320030128:
514	NODEVFS option has been removed and DEVFS thereby made standard.
515	This makes all references to MAKEDEV obsolete, and they should
516	be removed when convenient.
517
51820030126:
519	The name of the device for the ofw console has changed, sparc64 users
520	must run mergemaster to update their installed /etc/ttys.
521
52220030125:
523	The scheduler framework has grown a second scheduler and consequently
524	you must specify one and only one scheduler in your kernel config.
525	The cvs config files have been updated to use the old scheduler
526	which may be selected via 'options SCHED_4BSD'.  If you would like
527	to try the new, much more experimental, scheduler please try
528	'options SCHED_ULE' and contribute to the arch@ discussion.
529
53020030115:
531	A new version of the wi driver has been imported into the tree.
532	One now must have device wlan in the config file for it to operate
533	properly.
534
535	In addition, there have been some changes to how wi devices are
536	configured for point to point links to bring it more in line
537	with the former way of doing things, as well as compatibility
538	with NetBSD.
539
54020021222:
541 	For a period after the GCC 3.2.1 import (from 12/04 to 12/22), GCC
542 	used an incompatible form of ABI for returning structures and unions
543 	which FreeBSD's GCC maintainers were not aware of relative to previous
544 	versions of FreeBSD.  We have gone back to the ABI for now, and any
545 	code compiled which is required to interoperate with other code (not
546 	built at the same time) returning structs or unions should be
547	rebuilt.
548
54920021216:
550	A name change in /etc/netconfig has been reverted to stay
551	compatible with suns TIRPC and also with NetBSD. You need
552	to run mergemaster after make world. A new libc does still work
553	with an outdated /etc/netconfig for some time, but you'll get
554	a warning. This warning will be removed in 20030301.
555
55620021202:
557	The recent binutils upgrade marks a kernel flag day on
558	sparc64: modules built with the old binutils will not work
559	with new kernels and vice versa. Mismatches will result in
560	panics.  Make sure your kernel and modules are in sync.
561
56220021029:
563	The value of IPPROTO_DIVERT has changed.  Make sure to keep
564	your kernel, netstat, natd and any third-party DIVERT
565	consumers in sync.
566
56720021024:
568	Old, compatibility slices have been removed in GEOM kernels.
569	This means that you will have to update your /etc/fstab to
570	not use disk devices of the form /dev/ad0a.  Instead, you
571	now must specify /dev/ad0s1a, or whatever slice your FreeBSD
572	partition really is on.  The old device names have gone
573	away, so if you use them anywhere else, you must also adjust
574	those uses.  (This doesn't affect the disks formatted in
575	the ``dangerously-dedicated'' mode.)
576
57720021023:
578	Alphas with kernels from between 20020830 and 20021023 and/or
579	rtld (ld-elf.so.1) older than 20021023 may experience problems
580	with groff while doing a buildworld (kernel: "out of memory",
581	fixed in rev 1.129 of kern/imgact_elf.c; rtld: "too few PT_LOAD
582	segments", fixed in rev 1.8 of libexec/rtld-elf/map_object.c).
583
584	So, to successfully upgrade your Alpha, you must either
585	upgrade your kernel and rtld first (which might be a bit
586	tricky), or avoid running the bootstrapped groff during the
587	"transitional" buildworld.  To avoid running groff during the
588	transitional upgrade run make buildworld with -DNOMAN,
589	-DNO_SHAREDOCS, and -DNO_LPR.
590
59120020831:
592	gcc has been upgraded to 3.2.  It is not all binary compatible
593	with earlier versions of gcc for c++ programs.  All c++
594	programs and libraries need to be recompiled.
595
596	Also, if you encounter g++ issues, rm /usr/include/g++/* before
597	doing an installworld to make sure that stale files are removed.
598
59920020827:
600	Our /etc/termcap now has all the entries from the XFree86 xterm
601	almost unchanged. This means xterm now supports color by default.
602	If you used TERM=xterm-color in the past you now should use
603	TERM=xterm. (xterm-color will lead to benign warnings).
604
60520020815:
606	A "bug" in gcc(1) that was hiding warning in system headers was
607	fixed.  It's probably time to add -DNO_WERROR to your make line
608	again.
609
61020020729:
611	COPY is being deprecated.  The 20010530 change was reverted, as
612	it causes far more pain than was expected, and to always compare
613	before installing, please use INSTALL="install -C" again.  The
614	-C option is now silently ignored when used with the -d option.
615
61620020702:
617	Problems with libc_r clients like KDE and GNOME have been resolved.
618	There are still some minor problems with some signals but the
619	system is stable enough for general use again. SMP is less so than UP
620	but each can successfully complete multiple buildworlds.
621	Libkvm needs to be recompiled due to KSE.
622
62320020701:
624	Now would be a bad time to upgrade.  Something in or near the
625	KSE commit totally broke programs using libc_r like KDE and
626	GNOME.
627
62820020511:
629	The k5su utility installed as part of Kerberos 5 is no longer
630	installed with the set-user-ID bit set by default.  Add
631	ENABLE_SUID_K5SU=yes to /etc/make.conf to have it installed
632	with the set-user-ID bit set.
633
63420020510:
635	Gcc 3.1 debugging format (cc -g) has changed from STABS to DWARF2.
636	Unfortunately our native GDB (at version 4.18) does not understand
637	the DWARF2 debugging format.  Thus you must use `gcc -gstabs+' to
638	generated debugging information for our native GDB.
639
64020020510:
641	Due to the way CVS works, it may not properly update src/contrib/gcc
642	to the 3.1 sources.  The easiest fix is to `rm -rf' src/contrib/gcc
643	and then do a cvs update.
644
64520020421:
646	When exec'ing set[ug]id executables, the kernel now ensures that the
647	stdio file descriptors (0..2) are open.  See FreeBSD-SA-02:23.stdio.
648
64920020404:
650	New sendmail startup scripts have been installed to make it
651	easier to use alternative MTAs with FreeBSD.  Setting the rc.conf
652	variable sendmail_enable to "NO" no longer prevents any sendmail
653	daemons from starting.  Instead, either set sendmail_enable to
654	"NONE" or change mta_start_script to a script for starting
655	an alternative MTA.  Setting mta_start_script to "" will
656	also prevent any MTA from being started at boot.
657
65820020403:
659	UCONSOLE is no longer a valid kernel option.
660
66120020315:
662	FreeBSD 5.0 DP-1 was basically branched today.
663
66420020225:
665	Warnings are now errors in the kernel.  Unless you are a developer,
666	you should add -DNO_WERROR to your make line.
667
66820020217:
669	sendmail 8.12.2 has been imported.  The sendmail binary is no
670	longer a set-user-ID root binary and the infrastructure to support
671	command line mail submission has changed.  Be sure to run
672	mergemaster (especially for updating /etc/rc, /etc/defaults/rc.conf,
673	and /etc/mail) and read /etc/mail/README for more details.
674
675	Due to the import of sendmail 8.12.2, a new user and group are
676	required in order for sendmail to run as a set-group-ID
677	binary.  A 'make installworld' will use the new user and group
678	to set the owner and group of /var/spool/clientmqueue and will
679	fail if the new user and group do not exist.  The 'smmsp' user
680	and group must be merged from src/etc/group and
681	src/etc/master.passwd before using 'make installworld'.
682	'mergemaster -p' will do this.  You may need to install
683	mergemaster before this will work if you are updating from a
684	very old version of current.  The updating recipe has changed
685	as of this date.
686
68720020112:
688	The preferred configuration method for PAM is now /etc/pam.d/
689	rather than /etc/pam.conf.  If you have an unmodified
690	pam.conf, just delete it after your next mergemaster run.  If
691	you have local modifications, you can use
692	/usr/src/etc/pam.d/convert.pl to incorporate them into your
693	/etc/pam.d.
694
695	Please see the following url for more details:
696http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<xzp6667fyoa.fsf@flood.ping.uio.no>
69720011229:
698	If anyone here is already using the new rc.conf(5) variable
699	networkfs_types, please note that it has changed
700http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<9744.1009655556@axl.seasidesoftware.co.za>
701
70220011220:
703	sys/i4b/driver/i4b_ispppsubr.c has been retired.  This file
704	started out its life in the ISDN4BSD project as an offspring
705	from sys/net/if_spppsubr.c, which eventually got a life of its
706	own.  All the accumulated features and bug fixes of the i4b
707	version have now been merged back into the base system's
708	version now.  The only user-visible change resulting from this
709	is that i4b's sppp(4) interfaces are to be managed with
710	spppcontrol(8) again, since ispppcontrol(8) has been retired
711	as well.  (There has never been rc file support for
712	ispppcontrol in -current, but only in -stable.  That will be
713	reverted by the time the changes are MFCed.)
714
71520011215:
716	The fdc(4) driver has been updated and now automatically
717	recognizes media in `standard' formats (like 1440 KB and
718	720 KB for a 3.5" high-density drive) when accessing the
719	default device node (e. g. /dev/fd0).  The old variety of
720	floppy device nodes /dev/fd*.* is no longer present by
721	default, devices can be created (in DEVFS) on demand.  They
722	will need to be customized then for `odd' densities using
723	fdcontrol(8).
724
72520011209:
726	The bugs in procfs' debugging support code have been fixed,
727	and truss(1) now works again.
728
72920011207:
730	Daily security checks have been split out to use the periodic(8)
731	scripts.  Some change in configuration may be necessary.  Please
732	see
733http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<20011207155805.R8975@blossom.cjclark.org>
734	for details.
735
73620011204:
737	sos added VCD/SVCD support to ata driver and that needs the
738	kernel and burncd to be in sync.
739
74020011203:
741	The procfs pseudo-filesystem has now been converted to use the
742	pseudofs framework.  If you have 'options PROCFS' in your
743	kernel config, you'll need to add 'options PSEUDOFS' if it's
744	not there already.
745
746	This change temporarily breaks truss(1); use ktrace(1) instead
747	until the issue has been resolved.
748
74920011202:
750	A security hole in OpenSSH involving `UseLogin yes' has been
751	patched.
752
75320011126:
754	You need to remove /usr/obj/.../usr.bin/tip before rebuilding
755	after this date.  You need to do this only once.
756
75720011103:
758	Most of the awk issues have been resolved.  Some rough
759	edges may be left, but for the most part things should be
760	back to "normal." For CURRENT's usual definition of "normal."
761
76220011030:
763	Awk has been upgraded to the one true awk from bell labs.  Expect
764	choppy waves in the upgrade process.
765
76620011030:
767	The asr driver problem has been resolved.
768
76920011027:
770	Due to changes in other parts of the system, the asr driver
771	now causes the system to panic on boot.  Do not use it pending
772	correction.  Comment it out of any kernel config file that you
773	try to use from this date forward.
774
77520011025:
776	When crossbuilding, use TARGET=xxx where you used to use
777	MACHINE=xxx.  You don't need to set TARGET_ARCH and TARGET,
778	unless you are changing both of them.  To cross build pc98 on
779	an alpha, for example, you need to set TARGET=pc98 and
780	TARGET_ARCH=i386.
781
78220011001:
783	The kernel interface that burncd depends on has changed.
784	You must recompile both the kernel and userland applications
785	at the same time.
786
78720010929:
788	When crossbuilding, please set TARGET_ARCH rather than
789	MACHINE_ARCH to indicate the target.  In the future, one will
790	set TARGET_MACHINE where you set MACHINE now.  At the moment,
791	setting MACHINE alone for same MACHINE_ARCH machines works
792	(eg, you can build pc98 on an i386 machine and vice versa).
793
79420010927:
795	Some weird problems result from using ACPI on some machines.
796	To disable ACPI you can add
797		hint.acpi.0.disabled="1"
798	to /boot/loader.conf (or by putting set X=Y at the boot
799	loader "ok" prompt).
800
801	Alternatively, you can remove it from /boot/kernel/acpi.ko
802	or use the MODULES_OVERRIDE function in your kernel config
803	file and not list acpi in that list.
804
80520010924:
806	The buildworld has been fixed.  You may need to install
807	the 4.x compatibility libraries for some old binaries
808	to work.  Add COMPAT4X=true to your /etc/make.conf to
809	get them installed on every installworld, or execute the
810	following to get them installed only once:
811		cd src/lib/compat/compat4x.<arch>
812		make all install
813	You will see ``__stdoutp undefined'' until you do this.
814
81520010919:
816	There's a bug in the world build process.  The cross-tools
817	are build with the NEW headers, but the OLD libc.a.  This
818	leads to all kinds of problems with the new libc.  A temporary
819	workaround is to add
820		CFLAGS="-O -pipe -D_OLD_STDIO"
821	before building world when upgrading from 4.x to current.  This
822	can be removed afterwards.
823
824	A proper fix to the buildworld target is needed.
825
82620010918:
827	Peter has committed his new kthread nfs client/server code.
828	NFS may be unstable after this date.
829
83020010912:
831	KSE has hit the tree.  Lots of things are now different in
832	the kernel.  While a few problems were introduced in the
833	initial commit, most of the major ones have been found and
834	corrected.
835
83620010901:
837	In OLDCARD, CardBus bridges appear to be stable.  The work
838	arounds described in the 20010604 entry are now no longer
839	necessary and will be ignored.  Most insert/remove problems
840	have been rectified around this date.
841
84220010823:
843 	named now runs as user bind and group bind rather than as
844 	root.  If named_enable is set to YES in /etc/rc.conf, ensure
845 	that user bind is available in /etc/passwd (using vipw(8))
846 	and that group bind is available in /etc/group.  Also make
847 	sure that user or group bind has read (and not write)
848 	permission for your name server configuration and that it
849 	has read and write permission for your slave zone files and
850 	directory.
851
852 	If you wish to continue to run named as root (a less secure
853 	alternative), add a line to /etc/rc.conf saying
854
855 		named_flags=
856
85720010709:
858	The PAM libraries have had an API upgrade that is beyond
859	the ability of the shared library major number to handle.
860	It is manifested by PAM-using ports dumping core. The
861	solution is to rebuild those ports.
862
86320010628:
864	The kernel compile module has moved from src/sys/compile/FOO
865	to src/sys/${MACHINE}/compile/FOO.
866
86720010625:
868	The pccard modem issue from 20010613 has been corrected.
869	OLDCARD support is still a little weak in -current.  slot 1 is
870	known not to work on some TI based cardbus bridges.  Some
871	cardbus bridges do not properly detect insert/removal events.
872	IRQ configuration needs more safety belts.
873
87420010617:
875	Softupdates problems have been corrected.
876
87720010614:
878	Peter ripped out the linkerset support.  You must, as always,
879	rerun config after you cvsup if you are using the traditional
880	kernel building methods.
881
88220010613:
883	pccard modems may not work with current after 20010604 date.  Some
884	do, others result in panics.  *MAKE*SURE* that you update your
885	config and /etc/rc.conf ala the 20010604 entry, or you will have
886	problems (this issue will be fixed, it just hasn't been yet).
887
88820010613:
889	SOFTUPDATES seem to be broken since the middle of May or so.  Do not
890	use them in current.  You can disable softupdates on all mounted
891	partitions, or remove SOFTUPDATES the kernel config file.
892
89320010612:
894	After Peter's commits to the hints code, people have been noticing
895	that certain devices are attached (or try to) twice.  This is due
896	to having both static hints as well as a /boot/device.hints.  To
897	work around this issue, please use only one or the other mechanism
898	until this bug is fixed.
899
900	Please note that a feature of config is that if you have config
901	file FOO and FOO.hints, it automatically adds FOO.hints to the
902	hints.c file, whether you want it to or not.
903
90420010610:
905	Locale names have changed to match other systems better.
906
90720010604:
908	pccard support for pci cards has been committed.  You must change
909	your /etc/pccard.conf irq lines.  It must match the irq used by
910	pcic device.  Interrupt storms may result if you fail to do this.
911	Interrupt storms look a lot like a hang.
912
913	You must also install a new pccardd, otherwise you will get an
914	interrupt storm at card reset time (just after it tells you what
915	it is).
916
917	pccardd_flags="-I" is necessary for the time being.  It tells pccardd
918	not to ask the kernel if the interrupt is really free or not before
919	using it.  You can either change the /etc/pccard.conf irq lines to
920	match pcic, or add "-i X" to the pccardd_flags.
921
92220010530:
923	INSTALL=install -C is being deprecated.  If you want to do this,
924	use COPY=-C instead.  The former method will be supported for only
925	a limited time.  If you see
926
927install: warning: the -d and -C options may not be specified together
928
929	in your makeworld, then you need to migrate towards using
930	COPY=-C.
931
93220010525:
933	It appears that vm is now stable enough to use again.  However,
934	there may be other problems, so caution is still urged.  alpha
935	definitely is in bad shape.
936
93720010521:
938	Minor repo damage has happened.  This may cause problems
939	with cvsup of ports.  If you get errors, please see
940	http://www.FreeBSD.org/cgi/query-pr.cgi?pr=27495
941	at the bottom for details on a workaround.  The error message
942	is
943Updater failed: Cannot delete "/usr/ports/www/jakarta-tomcat/files": Directory not empty
944
94520010520:
946	Vm and/or swapping are busted on -current.  Please be patient.
947
94820010519:
949	pccard has had much reorganizational work done to it over
950	the past few days.  Everything should still work, but if
951	not, please contact imp@freebsd.org.
952
95320010517:
954	ata ioctl changed.  Make sure to recompile both kernel and
955	userland at the same time.
956
95720010517:
958	New ncurses imported.
959
96020010512:
961	DEVFS is now opt out, not opt in.  Barring major problems, this
962	will be the only way to go starting July 1.
963
96420010504:
965	OpenSSH has been updated to 2.9.  Some defaults are different,
966	including RhostsRSAAuthentication, which changes from yes to no.
967
96820010502:
969	Perl breakage in 20010501 was corrected at 14:18:33 PDT.
970
97120010501:
972	Building perl was broken at 02:25:25 PDT.
973
97420010430:
975	The bug in 20010429 was corrected at 07:35:37 PDT.  It is safe to
976	go back in the water.
977
97820010429:
979	A bad bug was committed at 04:48:42 PDT.  Don't use kernels after
980	this date, but before the correction date.
981
98220010423:
983	old fsck and new kernel interactions appear to have been fixed.
984
98520010411:
986	fsck and the kernel were changed to handle some optimizations
987	to directory layout.  This breaks backward compatibility.
988	Update only if you understand that you must not use the old
989	fsck with the new kernel ever.
990
99120010330:
992	fsck has changed the meaning of the pass column in /etc/fstab.
993	Please see the cvs commit to fsck.8 or the fsck.8 man page for
994	details.  It is unclear if changes to /etc/fstab are necessary.
995
99620010319:
997	portmap had changed name to rpcbind for maximum POLA in your
998	current world.  /etc/hosts.{allow,deny} needs changes.  nfs and
999	other rpc based programs that rely on portmapper will not work
1000	without updates to /etc/hosts.{allow,deny} and /etc/netconfig.
1001
100220010315:
1003	ata subsystem changes.  ATA_ENABLE_ATAPI_DMA, ATA_ENABLE_WC
1004	and ATA_ENABLE_TAGS are no longer kernel options.  They have
1005	been replaced by tunables.  See ata.4 for details.
1006
100720010312:
1008	The fxp driver was converted to use miibus.  If you compile
1009	fxp into your kernel statically, you will need to add miibus.
1010
101120010312:
1012	The wi device now defaults to BSS (infrastructure) mode
1013	instead of ad-hoc.
1014
101520010310:
1016	/dev/urandom should be a symbolic link to /dev/random now.
1017	Users of current not using DEVFS need to run MAKEDEV std.
1018	ssh might not work if you don't.
1019
102020010303:
1021	The ed driver has been updated.  It now allows mii attachments,
1022	which means that you must include the miibus in your kernel if
1023	you use the ed driver.
1024
102520010220:
1026	The problems with libc have been corrected.  It is now mostly
1027	safe to go back into the water.
1028
102920010211:
1030	The size of FILE was changed.  This breaks upgrading.  If
1031	you must upgrade, be prepared for pain.  It also breaks almost
1032	all binaries that you've compiled on -current.  You are warned
1033	that before upgrading would be a good time to do a level 0
1034	dump of your system.  No, really, I mean it this time.
1035
1036	To get to the new system, you'll need to use the following
1037	workaround.  Hopefully this can be sorted out so that we
1038	don't have to move this to the updating section.
1039
1040	To get around the installworld problem, do:
1041		# cd /usr/src/usr.bin/sed
1042		# make install
1043		# cd /usr/src
1044		# make installworld
1045	If that doesn't work, then try:
1046		# make -k installworld
1047		# make installworld
1048
104920010207:
1050	DEVFS is now the default.  If you use vinum, make sure that you
1051	do not include devfs in your kernel as problems result.
1052
105320010205:
1054	FFS_ROOT and CD9660_ROOT have been removed or deprecated.
1055	Remove them from your config.
1056
105720010122:
1058	****************************** WARNING ******************************
1059			buildkernel has been changed slightly
1060	****************************** WARNING ******************************
1061	KERNCONF replaces the variable KERNEL for buildkernel.  You
1062	should update your scripts and make.conf accordingly.
1063
106420010119:
1065	config has changed to allow DEV_FOO as a replacement for NFOO.
1066	This requires a new config to build correctly.
1067
106820010116:
1069	The kernel option I386_CPU is now mutually exclusive with the
1070	other cpu types. If you have an i386 system, be sure that it
1071	only had this line.  Remove it for all other configurations.
1072
107320010110:
1074	Changes to the kernel require it and burncd be in sync.
1075
107620010102:
1077	Everyone who has hw.sndunit set to something in
1078	/etc/sysctl.conf, it is now hw.snd.unit.
1079
108020010101:
1081	ex and vi were broken by some changes to sys/queue.h.  If you
1082	have a bad vi, you will see make buildworld fail with a core
1083	dump while building termcap.  You can work around this problem
1084	by adding -k to your make buildworld.  This will cause the
1085	build to complete and install a new vi.  Once that's done, you
1086	can rebuild again without the -k to pick up anything that
1087	might have been ignored by the -k option.
1088
1089	Others have suggested that you can just rebuild libc if your
1090	vi/ex is dynamically linked, but I've not received any reports
1091	of this working.
1092
109320001228:
1094	There have been some changes to libcrypt in -current.  The
1095	libscrypt/libdescrypt symlink silliness is gone and the installed
1096	libcrypt is fully functional.  Be aware of this.
1097
109820001218:
1099	Linksys Fast Ethernet PCCARD cards supported by the ed driver
1100	now require the addition of flag 0x80000 to their config line
1101	in pccard.conf(5).  This flag is not optional.  These Linksys
1102	cards will not be recognized without it.
1103
110420001205:
1105	Important new FreeBSD-version stuff: PAM support has been worked
1106	in, partially from the "Unix" OpenSSH version.  This requires
1107	adding the following in pam.conf:
1108
1109	sshd    auth    sufficient      pam_skey.so
1110	sshd    auth    required        pam_unix.so         try_first_pass
1111	sshd    session required        pam_permit.so
1112
111320001031:
1114	cvs updated to 1.11.
1115
111620001020:
1117	The random device needs more entropy, so you need to make sure
1118	that you've run mergemaster to get a /etc/rc which will seed
1119	/dev/random.  If you don't and the system hangs after ldconfig,
1120	then banging on the keyboard randomly until it unhangs is one
1121	workaround.
1122
112320001010:
1124	****************************** WARNING ******************************
1125				Sendmail has been updated.
1126	****************************** WARNING ******************************
1127	o mail.local(8) is no longer installed as a set-user-id binary.
1128	o sendmail(8) is now built with STARTTLS support unless NO_OPENSSL
1129	  is set.
1130	o The default /etc/mail/sendmail.cf disables the SMTP EXPN and VRFY
1131	  commands.
1132	o Now using sendmail's version of vacation(1).
1133	o The sendmail cf building tools (contrib/sendmail/cf) are installed
1134	  in /usr/share/sendmail/cf.
1135	o sendmail.cw changed to local-host-names
1136
1137	More details can be found at
1138		http://people.freebsd.org/~imp/UPDATING/sendmail-20001010
1139
114020001009:
1141	The ports tree's new layout is in place.  Be sure to update
1142	your entire ports tree, or you will have problems.
1143
114420001006:
1145	The perl build procedure no longer installs miniperl, nor uses
1146	the installed miniperl.  It is recommended that you delete
1147	/usr/bin/miniperl.
1148
114920001005:
1150	This weekend the ports tree will be updated to a new layout.
1151	It will be in an inconsistent state until noted in the UPDATING
1152	file, or with asami-san's message to the relevant mailing
1153	lists.  With this new layout, you'll need to update the whole
1154	tree for anything to work.
1155
115620000928:
1157	There was a change in the passwd format.  Need more information.
1158
115920000916:
1160	/boot/kernel/kernel.ko -> /boot/kernel/kernel change has taken
1161	place.  Please update boot loader (not the boot blocks) at the
1162	same time as your kernel.
1163
116420000914:
1165	The new pmtimer device is necessary for laptops.  Failure to
1166	include the device will cause suspended laptops losing time
1167	when they resume.  Include
1168		device		pmtimer
1169	in your config file and
1170		hint.pmtimer.0.at="isa"
1171	to your /boot/device.hints file.
1172
117320000911:
1174	The random device has been turned into a (pseudo-)device,
1175	rather than an option. The supplied kernel config files have
1176	been updated. You will need to do something similar in your
1177	own kernel config file.
1178	Remove:
1179		options		RANDOMDEV
1180	Add:
1181		device		random
1182	If you prefer to load the loadable module, you need to do
1183	nothing.
1184
118520000909:
1186	The random device module has been renamed from randomdev.ko to
1187	random.ko. You will need to edit your /boot/loader.conf to
1188	reflect this if you load this module at boot time.
1189	The line should read:
1190		random_load="YES"
1191
119220000907:
1193	The SMPNG commit has happened.  It should work, but if it
1194	doesn't, fallback to the PRE_SMPNG CVS tag.  There are likely
1195	to be a variety of minor issues.  Please see 20000905 to make
1196	sure you don't have model loading problems which might at
1197	first blush appear related to SMP.
1198
119920000906:
1200	nsswitch has been imported from NetBSD.  Among other things,
1201	this means that /etc/host.conf is no longer used.  See
1202	nsswitch.conf(5) instead.  Note that at boot time rc.network
1203	will attempt to produce a new nsswitch.conf file for you if you
1204	don't have one, and you have host.conf.
1205
120620000905:
1207	The ucred structure changed size.  This breaks the interface
1208	that mountd uses.  Trying to use an older mountd with a newer
1209	kernel guarantees a panic.  This means that you need to use
1210	kernels newer than today only with matching mountd, but you
1211	needed to do that anyway with the boot loader changes.
1212
121320000905:
1214	The boot loader has been updated.  The new default kernel is
1215	now /boot/kernel/kernel.ko.  The new default module location
1216	is /boot/kernel.
1217
1218	You *MUST* upgrade your boot loader and kernel at the same time.
1219	The easiest way to do this is to do the buildworld/buildkernel/
1220	installkernel/installworld dance.
1221
1222	Furthermore, you are urged to delete your old /modules directory
1223	before booting the new kernel, since kldload will find stale
1224	modules in that directory instead of finding them in the correct
1225	path, /boot/kernel.  The most common complaint that this cures
1226	is that the linux module crashes your machine after the update.
1227
1228	if [ ! -d /boot/kernel.old ]; then
1229		mv /modules.old /boot/kernel.old
1230		chflags noschg /kernel.old
1231		mv /kernel.old /boot/kernel.old/kernel.ko
1232		chflags schg /boot/kernel.old/kernel.ko
1233	fi
1234
123520000904:
1236	A new issue with the sendmail upgrade has come to light.
1237	/etc/aliases has moved to /etc/mail/aliases.  Mergemaster will
1238	incorrectly install the default aliases in /etc/mail rather than
1239	move the old one from /etc.  So you'll need to manually move the
1240	file, create a symbolic link, remove the old /etc/aliases.db and
1241	run newaliases.  For safety sake, you should stop sendmail
1242	while doing this and run the upgrade when locally sourced email
1243	is not likely to be generated.
1244
124520000825:
1246	/boot/device.hints is now required for installkernel to
1247	succeed.  You should copy GENERIC.hints for your architecture
1248	into /boot/device.hints.  If and only if you compile hints
1249	into your kernel, then this file may be empty.  Please note,
1250	if you have an empty or missing /boot/device.hints file and
1251	you neglected to compile hints into your kernel, no boot
1252	messages will appear after the boot loader tries to start the
1253	kernel.
1254
125520000821:
1256	If you do NOT have ``options RANDOMDEV'' in your kernel and
1257	you DO want the random device then add randomdev_load="YES" to
1258	/boot/loader.conf.
1259
126020000812:
1261	suidperl is now always built and installed on the system, but
1262	with permissions of 511.  If you have applications that use
1263	this program, you are now required to add ENABLE_SUIDPERL=true
1264	to /etc/make.conf.  If you forget to do this,
1265		chmod 4511 /usr/bin/suidperl
1266	will fix this until the next build.
1267
126820000812:
1269	sendmail has been updated from 8.9.3 to 8.11.0.  Some of the more
1270	visible changes that may immediately affect your configuration
1271	include:
1272	- New default file locations from src/contrib/sendmail/cf/README
1273	- newaliases limited to root and trusted users
1274	- MSA port (587) turned on by default
1275	- New queue file naming system so can't go from 8.11 -> 8.9
1276	- FEATURE(`rbl') renamed to FEATURE(`dnsbl')
1277	- FEATURE(`nullclient') is more full featured
1278	- FEATURE(`nouucp') requires an argument: `reject' or `nospecial'
1279	- mail.local FreeBSD-only -b option changed to -B
1280	- See src/contrib/sendmail/RELEASE_NOTES for more info
1281
128220000810:
1283	suidperl (aka sperl) is no longer build by default.  You must
1284	specifically define BUILD_SUIDPERL to "true" for it to be build.
1285	Furthermore, we recommend that you remove /usr/bin/sperl* and
1286	/usr/bin/suidperl files from your system unless you have a
1287	specific use for it.
1288
128920000729:
1290	Networking defaults have been tightened.  Anybody upgrading
1291	/etc/defaults/rc.conf needs to add the following lines to
1292	/etc/rc.conf if they want to have the same setup
1293	afterwards (unless the variables already are set, of course):
1294		# Enable network daemons for user convenience.
1295		inetd_enable="YES"
1296		portmap_enable="YES"
1297		sendmail_enable="YES"
1298
129920000728:
1300	If you have null_load="YES" in your /boot/loader.conf, you
1301	will need to change that to nullfs_load="YES".
1302
130320000728:
1304	The "installkernel" target has changed slightly. Now even if
1305	you override KERNEL e.g. 'make installkernel KERNEL=MYKERNEL'
1306	it will install the MYKERNEL file (built with the buildkernel
1307	target) as /kernel rather than /MYKERNEL. Those who have
1308	updated their /boot/loader.conf files to point to /MYKERNEL
1309	should remove that entry or perform manual rename of /kernel
1310	to /MYKERNEL.
1311
131220000711:
1313	If you use CVSUP or CTM to get CVS trees, AND you used to get
1314	the old crypto files from internat.freebsd.org AND you check
1315	out files from the CVS tree with the cvs command, please read
1316		http://people.freebsd.org/~imp/internat.txt
1317	for details on potential problems that you might have and how
1318	to get around them.
1319
1320	If you are merely a mirror, or don't answer yes to each of the
1321	clauses above, you needn't worry.
1322
132320000711:
1324	/etc/security has been updated to print the inode number of
1325	setuid programs that have changed.  You will see a large spike
1326	in the number of changed programs the first time when you run
1327	mergemaster to get a new /etc/security.
1328
132920000710:
1330	/dev/random now has good entropy collection (from the keyboard
1331	and sysmouse drivers). Please ensure that either `options
1332	RANDOMDEV' is present in your kernel config file or that
1333	`randomdev_load="YES"' is in your /boot/loader.conf. If you do
1334	not have the /dev/random driver, OpenSSL (and consequently
1335	lots of crypto tools (like SSH)) will fail with strange
1336	errors. (see below, 20000624).
1337
1338	FreeBSD-current is safe again to run Crypto.
1339
134020000709:
1341	phk made the malloc default options AJ.  This may slow things
1342	down and uncover other latent bugs in the code.  If you need to
1343	run at full speed, you can disable this by doing the following:
1344		ln -s aj /etc/malloc.conf
1345
134620000706:
1347	libftpio's version was accidentally bumped a few days ago.  This
1348	has been corrected.  You may need to remove /usr/lib/libftpio.so.6
1349	before doing your next buildworld/installworld pair.  It certainly
1350	won't hurt to remove it before the update procedure.  It will
1351	break fetch until a new one is built, but ftp can be used in the
1352	interim if needed.
1353
135420000705:
1355	The crypto packages have changed for the cvsup.  This has been done
1356	in a backward compatible way, but the old packages will go away at
1357	some point in the future.  Look at /usr/share/examples/cvsup for
1358	details.
1359
136020000704:
1361	With the new sys/modules/sound/drivers/*, you will need to
1362	set SYSDIR until you do an installworld after July 7th.
1363
136420000704:
1365	rc.shutdown and rc will now call the rc.d scripts with start
1366	or stop.  This may cause some harmless warnings from older
1367	rc.d scripts that haven't been updated.
1368
136920000630:
1370	The libfetch based version of fetch has gone into the tree.
1371	Minor problems may result on some of the less popular sites,
1372	which should be reported to des@freebsd.org.
1373
137420000625:
1375	From approximately this date forward, one must have the crypto
1376	system installed in order to build the system and kernel.
1377	While not technically strictly true, one should treat it as
1378	required and grab the crypto bits.  If you are grabbing CVS
1379	trees, src-all and cvs-crypto should be treated as if they
1380	were required.  You should check with the latest collections
1381	to make sure that these haven't changed.
1382
138320000624:
1384	Mark Murray just committed the first parts of a cleanup of
1385	/dev/zero, et al.  This is also cleaning up /dev/random.
1386	The entropy is disconnected, so DO NOT USE VERSIONS OF FREEBSD
1387	-CURRENT FROM THIS POINT to 2000710 for cryptographic services
1388	until Mark can merge in the fixes to this work in progress.
1389	openssh and openssl should not be used to generate keys from this
1390	date to the completion of the work.
1391
1392	If you must operate at this reduced level of security, add '
1393	options RANDOMDEV' to your kernel or modload the randomdev
1394	module.  You may also need to copy a new MAKEDEV to /dev and
1395	recreate the random and urandom devices.
1396
139720000622:
1398	The license on the softupdates is now a standard 2 clause
1399	BSD license.  You may need to remove your symbolic links
1400	that used to be required when updating.
1401
140220000621:
1403	Scott Flatman <sf@aracnet.com> sent in a decent write-up on
1404	the config file update procedure.
1405		http://people.freebsd.org/~imp/config-upd.html
1406	NOTE: LINT is gone.  It has been replaced with NOTES.  NOTES
1407	isn't buildable.  However, you can generate a LINT file:
1408		cd /sys/<ARCH>/conf && make LINT
1409
141020000620:
1411	Binutils 2.10 have hit the tree, or will shortly.  As soon
1412	as they do, the problem noted in 20000522 will be resolved and
1413	that workaround will no longer be required.
1414
141520000615:
1416	phk removed the compatibility creation of wd devices in the
1417	ad driver.  If you haven't done so already, you must update
1418	your fstab, etc to use the ad devices instead of the wd
1419	devices.
1420
1421	In addition, you'll need to update your boot blocks to a
1422	more modern version, if you haven't already done so.  Modern
1423	here means 4.0 release or newer (although older releases
1424	may work).
1425
142620000612:
1427	Peter took an axe to config(8).  Be sure that you read his mail
1428	on the topic before even thinking about updating.  You will
1429	need to create a /boot/device.hints or add a hints directive
1430	to your config file to compile them in statically.  The format
1431	of the config file has changed as well.  Please see GENERIC or
1432	NEWCARD for examples of the new format.
1433
1434	Indirectly, this also breaks USERCONFIG.  Unless a newer entry
1435	says that it has been fixed, assume that must use the hints mechanism
1436	in the loader if you need to use a machine with very old ISA cards
1437	in it.
1438
143920000522:
1440	A new set of binutils went into the tree today.  Anybody
1441	building a kernel after this point is advised that they need
1442	to rebuild their binutils (or better yet do a
1443	buildworld/installworld) before building a new kernel.
1444
1445	Due to bugs in binutils, using malloc options (eg /etc/malloc.conf
1446	or MALLOC_OPTIONS env var) J will cause ld to dump core.  It
1447	is recommended that you don't set this option until the problem
1448	is resolved.
1449
145020000513:
1451	The ethernet drivers were all updated to clean up the BPF handling.
1452
145320000510:
1454	The problems with boot blocks on the alphas have been corrected.
1455	This will require some care in updating alphas.  A new libstand
1456	is requires for the boot blocks to build properly.
1457
145820000503:
1459	Recompile all kld modules.  Proper version dependency info
1460	is now available.
1461
146220000502:
1463	Modules have been disconnected from the buildworld tree and
1464	connected to the kernel building instead.
1465
146620000427:
1467	You may need to build gperf
1468		cd /usr/src/gnu/usr.bin/gperf && make depend all install
1469	when upgrading from 4.0 -> current.  The build system now uses
1470	an option only in -current.
1471
147220000417:
1473	The method that we brand ELF binaries has changed to be more
1474	acceptable to the binutils maintainers.  You will need to
1475	rebrand your ELF binaries that aren't native.  One problem
1476	binary is the Linux ldconfig.  After your make world, but
1477	before you reboot, you'll need to issue:
1478		brandelf -t Linux /compat/linux/sbin/ldconfig
1479	if you have Linux compatibility enabled on your machine.
1480
148120000320:
1482	If you have really bad/marginal IDE drives, you may find they
1483	don't work well.  Use pio mode instead.  The easiest way to
1484	cope if you have a problem combination is to add:
1485		/sbin/sysctl hw.ata.ata_dma=0
1486	to the start of /etc/rc.conf.
1487
148820000319:
1489	The ISA and PCI compatibility shims have been connected to the
1490	options COMPAT_OLDISA and COMPAT_OLDPCI.  If you are using old
1491	style PCI or ISA drivers (i.e. tx, voxware, etc.) you must
1492	include the appropriate option in your kernel config.  Drivers
1493	using the shims should be updated or they won't ship with
1494	5.0-RELEASE, targeted for 2001.
1495
149620000318:
1497	We've entered the traditional post release dumping party.
1498	Large kernel changes are being committed and are in the
1499	works.  It is important to keep the systems' klds and kernel
1500	in sync as kernel interfaces and structures are changing.
1501	Before reporting kernel panics, make sure that all modules
1502	that you are loading are up to date.
1503
150420000315:
1505	If you are upgrading from an older version of FreeBSD, you
1506	need to update your boot blocks as well.  'disklabel -B ad0'
1507	will do the trick.  This isn't critical until you remove your
1508	wd device entries in /dev, at which point your system will not
1509	boot.
1510
151120000315:
1512	4.0 RELEASE shipped.  Please see the 4.0 UPDATING file for how
1513	to upgrade to 4.0 from 3.x.
1514
1515COMMON ITEMS:
1516
1517	General Notes
1518	-------------
1519	Avoid using make -j when upgrading.  From time to time in the
1520	past there have been problems using -j with buildworld and/or
1521	installworld.  This is especially true when upgrading between
1522	"distant" versions (eg one that cross a major release boundary
1523	or several minor releases, or when several months have passed
1524	on the -current branch).
1525
1526	Sometimes, obscure build problems are the result of environment
1527	poisoning.  This can happen because the make utility reads its
1528	environment when searching for values for global variables.
1529	To run your build attempts in an "environmental clean room",
1530	prefix all make commands with 'env -i '.  See the env(1) manual
1531	page for more details.
1532
1533	To build a kernel
1534	-----------------
1535	If you are updating from a prior version of FreeBSD (even one just
1536	a few days old), you should follow this procedure. With a
1537	/usr/obj tree with a fresh buildworld,
1538	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1539	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1540
1541	To just build a kernel when you know that it won't mess you up
1542	--------------------------------------------------------------
1543	This assumes you are already running a 5.X system.  Replace
1544	${arch} with the architecture of your machine (e.g. "i386",
1545	"alpha", "amd64", "ia64", "pc98", "sparc64", etc).
1546
1547	cd src/sys/${arch}/conf
1548	config KERNEL_NAME_HERE
1549	cd ../compile/KERNEL_NAME_HERE
1550	make depend
1551	make
1552	make install
1553
1554	If this fails, go to the "To build a kernel" section.
1555
1556	To rebuild everything and install it on the current system.
1557	-----------------------------------------------------------
1558	# Note: sometimes if you are running current you gotta do more than
1559	# is listed here if you are upgrading from a really old current.
1560
1561	<make sure you have good level 0 dumps>
1562	<maybe fix /etc/fstab>				[7]
1563	make buildworld
1564	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1565	make installkernel KERNCONF=YOUR_KERNEL_HERE
1566							[1]
1567	<reboot in single user>				[3]
1568	/etc/rc.d/preseedrandom				[10]
1569	mergemaster -p					[5]
1570	make installworld
1571	mergemaster					[4]
1572	<reboot>
1573
1574
1575	To cross-install current onto a separate partition
1576	--------------------------------------------------
1577	# In this approach we use a separate partition to hold
1578	# current's root, 'usr', and 'var' directories.   A partition
1579	# holding "/", "/usr" and "/var" should be about 2GB in
1580	# size.
1581
1582	<make sure you have good level 0 dumps>
1583	<boot into -stable>
1584	make buildworld
1585	<maybe newfs current's root partition>
1586	<mount current's root partition on directory ${CURRENT_ROOT}>
1587	make installworld DESTDIR=${CURRENT_ROOT}
1588	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1589	cp /usr/src/sys/${ARCH}/conf/GENERIC.hints \
1590		${CURRENT_ROOT}/boot/device.hints	# as needed
1591	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1592	cd /usr/src/etc; make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1593	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
1594	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1595	<reboot into current>
1596	<do a "native" rebuild/install as described in the previous section>
1597	<maybe install compatibility libraries from /usr/src/lib/compat>
1598 	<reboot>
1599
1600
1601	To upgrade in-place from 4.x-stable to current
1602	----------------------------------------------
1603	# 5.x uses more space than 4.x.  Also, the location of kernel
1604	# modules has changed.  If you are installing 5.0 onto a 4.x
1605	# system, you'll need about 30MB of free disk space on your /
1606	# partition.  If you have less than this, you may encounter difficult
1607	# to back out of problems with this procedure.  If /tmp is on
1608	# the / partition, you may want to completely remove all its content
1609	# before upgrading, as this can be a common source of shortage of
1610	# space on /.
1611
1612	<make sure you have good level 0 dumps>
1613	<maybe fix /etc/fstab>				[7]
1614	make buildworld					[9]
1615	make buildkernel KERNCONF=YOUR_KERNEL_HERE	[8]
1616	cp sys/${MACHINE}/conf/GENERIC.hints /boot/device.hints [2]
1617	make installkernel KERNCONF=YOUR_KERNEL_HERE
1618	cd sys/boot ; make STRIP="" install			[6]
1619							[1]
1620	<reboot in single user>				[3]
1621	/usr/src/etc/rc.d/preseedrandom				[10]
1622	mergemaster -p					[5]
1623	rm -rf /usr/include/g++
1624	make installworld
1625	mergemaster -i					[4]
1626	<reboot>
1627
1628	Make sure that you've read the UPDATING file to understand the
1629	tweaks to various things you need.  At this point in the life
1630	cycle of current, things change often and you are on your own
1631	to cope.  The defaults can also change, so please read ALL of
1632	the UPDATING entries.
1633
1634	Also, if you are tracking -current, you must be subscribed to
1635	freebsd-current@freebsd.org.  Make sure that before you update
1636	your sources that you have read and understood all the recent
1637	messages there.  If in doubt, please track -stable which has
1638	much fewer pitfalls.
1639
1640	[1] If you have third party modules, such as vmware, you
1641	should disable them at this point so they don't crash your
1642	system on reboot.
1643
1644	[2] If you have legacy ISA devices, you may need to create
1645	your own device.hints to reflect your unique hardware
1646	configuration.
1647
1648	[3] From the bootblocks, boot -s, and then do
1649		fsck -p
1650		mount -u /
1651		mount -a
1652		cd /usr/src
1653		adjkerntz -i		# if CMOS is wall time
1654	Also, when doing a major release upgrade, it is required that
1655	you boot into single user mode to do the installworld.
1656	For the 4.x -> 5.0 upgrade, you will also see many messages about
1657	needing to recompile your userland.  These are harmless and can
1658	be ignored while you proceed to the next step.
1659
1660	[4] Note: This step is non-optional.  Failure to do this step
1661	can result in a significant reduction in the functionality of the
1662	system.  Attempting to do it by hand is not recommended and those
1663	that pursue this avenue should read this file carefully, as well
1664	as the archives of freebsd-current and freebsd-hackers mailing lists
1665	for potential gotchas.
1666
1667	[5] Usually this step is a noop.  However, from time to time
1668	you may need to do this if you get unknown user in the following
1669	step.  It never hurts to do it all the time.  You may need to
1670	install a new mergemaster (cd src/usr.sbin/mergemaster && make
1671	install) after the buildworld before this step if you last updated
1672	from current before 20020224 or from -stable before 20020408.
1673
1674	[6] 4.x boot loader can be used to boot a 5.x system, however
1675	it is difficult to do that at best.  If you wish to try, then
1676	you should interrupt the boot and at the ok prompt type:
1677		ok unload
1678		ok boot /boot/kernel/kernel
1679	If this fails to work, you must install a new boot loader as
1680	described here.
1681
1682	[7] Before you upgrade, please make sure that you are not using
1683	compatibility slices.  These are device names of the form, on i386
1684	and other architectures that use MBR slicing, /dev/ad0a without the
1685	actual slice name.  Chances are excellent that these will break.
1686	You generally must update these entries to use the post FreeBSD
1687	2.x form of /dev/ad0s1a.
1688
1689	[8] In order to have a kernel that can run the 4.x binaries
1690	needed to do an installworld, you must include the COMPAT_FREEBSD4
1691	option in your kernel.  Failure to do so may leave you with a system
1692	that is hard to boot to recover.
1693
1694	[9] When checking out sources, you must include the -P flag to have
1695	cvs prune empty directories. Also, if CPUTYPE is defined in your
1696	/etc/make.conf, make sure to use the "?=" instead of the "=" assignment
1697	operator, so that buildworld can override the CPUTYPE if it needs to.
1698	In case you would like to avoid installing new packages of everything,
1699	you might want to uncomment the "COMPAT4X=	YES" entry, so that 4.x
1700	compatibility libraries are build which should allow you to continue
1701	using your existing software for a while.
1702
1703	[10] In order to create temporary files, /dev/random must be
1704	initialized by feeding data into it.  /etc/rc.d/preseedrandom
1705	takes care of this.
1706FORMAT:
1707
1708This file contains a list, in reverse chronological order, of major
1709breakages in tracking -current.  Not all things will be listed here,
1710and it only starts on March 15, 2000.  Updating files can found in
1711previous releases if your system is older than this.
1712
1713Copyright information:
1714
1715Copyright 1998, 2002 M. Warner Losh.  All Rights Reserved.
1716
1717Redistribution, publication, translation and use, with or without
1718modification, in full or in part, in any form or format of this
1719document are permitted without further permission from the author.
1720
1721THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1722IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1723WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1724DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1725INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1726(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1727SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1728HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1729STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1730IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1731POSSIBILITY OF SUCH DAMAGE.
1732
1733If you find this document useful, and you want to, you may buy the
1734author a beer.
1735
1736Contact Warner Losh if you have any questions about your use of
1737this document.
1738
1739$FreeBSD: head/UPDATING 132840 2004-07-29 14:49:57Z kan $
1740