UPDATING revision 128485
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
2020040420:
21	Due to changes in the callout ABI, kernels compiled after this 
22	date may be incompatible with kernel modules compiled prior to
23	20040406.
24
2520040414:
26	The PCI bus power state stuff has been turned on.  If this causes
27	problems for your system, please disable it using the tunable
28	hw.pci.do_powerstate=0.
29
3020040412:
31	The bulk of the pci problems have been fixed, although the floppy
32	drive is still broken.
33
3420040410:
35	A substantial update to the pci bus resource and power management
36	have been committed.  Expect a bumpy ride for a few days until
37	the unanticipated problems have been resolved.
38
3920040409:
40        Due to changes in the the Yarrow initialization process,
41        /dev/random needs to be fed before operations requiring
42        temp files can succeed in single user mode.  This includes
43        running "make installworld". /dev/random may be fed by running
44        "/etc/rc.d/initrandom start" or with 20040415 source by running
45        "/etc/rc.d/preseedrandom".
46
4720040322:
48	The debug.mpsafenet tunable controls whether the kernel Giant
49	lock is held across the lower levels of the network stack, and
50	by default is turned off.  In the few days following 20040322,
51	the behavior of debug.mpsafenet will change such that this
52	tunable controls Giant over all levels of the network stack.
53	If you are currently setting debug.mpsafenet to 1, you should
54	set it back to 0 (the default) again during the change-over.
55	An additional note will be added to UPDATING when sufficient
56	locking is merged to permit this to take place.
57
5820040310:
59	The FreeBSD/sparc64 platform is changing time_t from 32-bits to
60	64-bits.  This is a very major incompatible change, so people
61	using FreeBSD/sparc64 *must* read the UPDATING.64BTT file for
62	detailed instructions on how to make this upgrade.  People
63	upgrading FreeBSD on other platforms can ignore this event.
64
6520040308:
66	The packet filter (pf) is now installed with the base system. Make
67	sure to run mergemaster -p before installworld to create required
68	user account ("proxy"). If you do not want to build pf with your
69	system you can use the NO_PF knob in make.conf.
70	Also note that pf requires "options PFIL_HOOKS" in the kernel. The
71	pf system consists of the following three devices:
72	device		pf		# required
73	device		pflog		# optional
74	device		pfsync		# optional
75
7620040303:
77	If you are having trouble with the libc_r -> libpthread transition
78	(see the 20040130 entry), place the following lines at the top of
79	/etc/libmap.conf:
80
81	libc_r.so.5		libpthread.so.1
82	libc_r.so		libpthread.so
83
84	This will cause all programs and libraries linked against libc_r
85	to use libpthread instead.
86
8720040226:
88	Some sshd configuration defaults have changed: protocol version 1
89	is no longer enabled by default, and password authentication is
90	disabled by default if PAM is enabled (which it is by default).
91	OpenSSH clients should not be affected by this; other clients may
92	have to be reconfigured, upgraded or replaced.
93
9420040225:
95	The ABIs defined in <resolv.h> and <netdb.h> have been updated
96	to support improved reentrancy.  Multi-threaded programs that
97	reference the "_res" or "h_errno" symbols may experience some
98	problems if they are not recompiled.  Single-threaded programs
99	should remain unaffected.
100
10120040225:
102	routed has been updated in the base system from the vendor
103	sources, routed v2.27, from rhyolite.com. This change means that
104	for users who use RIP's MD5 authentication feature, FreeBSD
105	-CURRENT's routed is now incompatible with previous versions
106	of FreeBSD; however it is now compatible with implementations
107	from Sun, Cisco and other vendors.
108
10920040224:
110	The tcpcb structure has changed and makes a recompile of libkvm
111	and related userland network utilities neccessary.
112
11320040222:
114	The cdevsw structure has changed in two externally visible ways.
115	First, the sense of the D_GIANT flag has changed to D_NEEDSGIANT.
116	Second, the d_version field must be filled in with D_VERSION.
117	Drivers outside the tree will need to be updated.
118
11920040207:
120	The /etc/rc.d/ttys script has been removed. It is no longer
121	necessary since devfs has been mandatory for some time.
122
12320040130:
124	libkse has been renamed back to libpthread and is now the
125	default threads library.  The gcc -pthread option has also
126	been changed to link to libpthread instead of libc_r.  For
127	alpha and sparc64 machines, libkse is not renamed and links
128	are installed so that libpthread points to libc_r.  Until
129	the ports system is updated to handle this change, it is
130	recommended that folks install an /etc/libmap.conf(5) that
131	maps libc_r to libpthread.  If you have any binaries or
132	libraries linked to libkse, then it is also recommended
133	that you map libkse to libpthread.  Anyone that is using
134	nvidia supplied drivers and libraries should use a libmap.conf
135	that maps libpthread to libc_r since their drivers/libraries
136	do not work with libpthread.
137
13820040125:
139	ULE has entered into its probationary period as the default scheduler
140	in GENERIC.  For the average user, interactivity is reported to be
141	better in many cases.  On SMP machines ULE will be able to make more
142	efficient use of the available parallel resources.  If you are not
143	running it now, please switch over, replacing the kernel option
144	SCHED_4BSD with SCHED_ULE.
145
14620040125:
147	Move LongRun support out of identcpu.c, where it hardly
148	belongs, into its own file and make it opt-in, not mandatory,
149	depending on CPU_ENABLE_LONGRUN config(8) option.
150
15120031213:
152	src/lib/libc/gen/initgroups.c:1.8 now causes logins to fail
153	if the login process is unable to successfully set the
154	process credentials to include all groups defined for the
155	user.  The current kernel limit is 16 groups; administrators
156	may wish to check that users do not have over 16 groups
157	defined, or they will be unable to log in.
158
15920031203:
160	The ACPI module has been reactivated.  It is no longer required
161	to compile ACPI support into kernels statically.
162
16320031112:
164	The statfs structure has been updated with 64-bit fields to
165	allow accurate reporting of multi-terabyte filesystem
166	sizes. You should build world, then build and boot the new kernel
167	BEFORE doing a `installworld' as the new kernel will know about
168	binaries using the old statfs structure, but an old kernel will
169	not know about the new system calls that support the new statfs
170	structure.
171	Note that the backwards compatibility is only present when the
172	kernel is configured with the COMPAT_FREEBSD4 option. Since
173	even /bin/sh will not run with a new kernel without said option
174	you're pretty much dead in the water without it. Make sure you
175	have COMPAT_FREEBSD4!
176	Running an old kernel after a `make world' will cause programs
177	such as `df' that do a statfs system call to fail with a bad
178	system call. Marco Wertejuk <wertejuk@mwcis.com> also reports
179	that cfsd (ports/security/cfs) needs to be recompiled after
180	these changes are installed.
181
182	****************************DANGER*******************************
183
184	DO NOT make installworld after the buildworld w/o building and
185	installing a new kernel FIRST.  You will be unable to build a
186	new kernel otherwise on a system with new binaries and an old
187	kernel.
188
18920031112:
190	Some netgraph string length constants have been changed. This
191	change requires the netgraph kernel modules and all netgraph
192	userland components to be in sync. Especially users who require
193	netgraph to boot need to make sure to have world and kernel in
194	sync before rebooting.
195
19620031111:
197	Hyperthreading logical CPU's are no longer probed by default
198	when using the MP Table.  If ACPI is being used, then logical
199	CPUs will be probed if hyperthreading is enabled in the BIOS.
200	If ACPI is not being used and hyperthreading is enabled in the
201	BIOS, logical CPUs can be enabled by building a custom kernel
202	with the option MPTABLE_FORCE_HTT enabled.
203 
20420031103:
205	The i386 APIC_IO kernel option has been replaced by
206	'device apic'.  The ACPI module has also been temporarily
207	disabled, so ACPI must be statically compiled into your
208	kernel using 'device acpi' if you wish to use the ACPI driver.
209
21020031031:
211	The API and ABI of struct ifnet have been changed by removing
212	the if_name and if_unit members and replacing them with
213	if_xname, if_dname, and if_dunit.  All network drivers and most
214	userland programs which include net/if_var.h must be updated
215	and recompiled.  __FreeBSD_version has been bumped to 501113 to
216	reflect this change.
217
21820030928:
219	Changes to the cdevsw default functions have been made to remove
220	the need to specify nullopen() and nullclose() explicitly.
221	__FreeBSD_version bumpted to 501110.
222
22320030926:
224	kiconv(3) has been added. mount_msdosfs(8), mount_ntfs(8) and
225	mount_cd9660(8) need to be in sync with kernel.
226
22720030925:
228	Configuring a system to use IPFILTER now requires that PFIL_HOOKS
229	also be explicitly configured.  Previously this dependency was
230	magically handled through some cruft in net/pfil.h; but that has
231	been removed.  Building a kernel with IPFILTER but not PFIL_HOOKS
232	will fail with obtuse errors in ip_fil.c.
233
23420030923:
235	Fix a bug in arplookup(), whereby a hostile party on a locally
236	attached network could exhaust kernel memory, and cause a system 
237	panic, by sending a flood of spoofed ARP requests. See
238	FreeBSD-SA-03:14.arp.
239
24020030915:
241	A change to /etc/defaults/rc.conf now causes inetd to be started
242	with `-C 60' if it is not overridden in /etc/rc.conf.  This
243	causes inetd to stop accepting connections from an IP address
244	that exceeds the rate of 60 connections per minute.
245
24620030829:
247	The following rc.d scripts have been removed and should be
248	deleted from your installation: atm2.sh atm3.sh devdb
249	localdaemons network1 network2 network3. Depending on when
250	you last updated world and used mergemaster(8) you may or
251	may not have problems during the rc boot sequence. The simplest
252	solution is an 'rm -rf /etc/rc.d/*' and then 'mergemaster -i'.
253	The atm2.sh atm3.sh and devdb scripts were removed some time
254	ago, so depending on when you installed -CURRENT these scripts
255	may or may not exist on your system.
256
25720030824:
258	ATAng has been committed. You need to build world as sys/ata.h 
259	has changed, and userland atacontrol depends on it.
260	If you use ATA SW raids you need "device ataraid" in your
261	kernel config file, as it is no longer pulled in automatically.
262
26320030819:
264	The OFW_NEWPCI option has been turned on in the Sparc64 GENERIC kernel.
265	Among other things, this changes the device enumeration to be
266	closer to Solaris.  Be aware that, this can even cause the machine
267	to not boot without manual intervention before the fstab is adjusted.
268
26920030728:
270	All current USB and Firewire quirks in da(4) have been deprecated
271	and will be removed for 5.2.  If this causes failure for your
272	umass(4) devices, enable "options DA_OLD_QUIRKS" in your kernel
273	and send the output of "camcontrol inquiry da0" to scsi@freebsd.org
274	so the quirk can be re-enabled.
275
27620030724:
277	Problems with entry 20030714 have been corrected and no known issues
278	with /rescue and -j exist for host systems after this point in time.
279
28020030722:
281	FPU-less support has been removed from FreeBSD.  Chances are you won't
282	notice.  386+387 support should still work after this change, but
283	it is now a minimum requirement for the i386 port that you have real
284	FPU hardware.
285
28620030714:
287	Some people are having problems with changes related to /rescue.
288	If you are building -j N, you will need to define NO_RESCUE.  Others
289	will need to define it if /rescue has issues with their environment.
290	People should report those issues to current@.
291
29220030711:
293	gcc was upgraded to 3.3.  You are advised to not build -DNOCLEAN
294	across this point.  Further, it might be a good idea to remove
295	/usr/obj.
296
29720030610:
298	Remove deprecated locale names and transition period code
299	for them, finishing switching to the new scheme. Check your
300	LANG environment variable.
301
30220030609:
303	CCD has been changed to be a fully GEOMified class.  Kernel
304	and ccdconfig(8) needs to be in sync, this is particularly
305	important to remember beforehand if your source tree is on
306	a ccd device.  Consider making a copy of the old ccdconfig
307	into /boot/kernel.good or wherever you keep your backup
308	kernel.
309
31020030605:
311	There was a small window in which sed(1) was broken.  If you
312	happen to have sed(1) installed during that window, which is
313	evidenced by an inability to build world with the failure
314	given below, you need to manually build and install sed(1)
315	(and only sed(1)) before doing anything else. This is a one-
316	time snafu. Typical failure mode:
317
318	In file included from /usr/src/contrib/binutils/bfd/targets.c:1092:
319	targmatch.h:7:1: null character(s) ignored
320	targmatch.h:12:1: null character(s) ignored
321	targmatch.h:16:1: null character(s) ignored
322		:
323
324	The window of "sed(1)-uction" is from Wed Jun 4 15:31:55 2003 UTC
325	to Thu Jun 5 12:10:19 2003 UTC (from rev 1.30 to rev 1.31 of
326	usr.bin/sed/process.c).
327
32820030505:
329	Kerberos 5 (Heimdal) is now built by default. Setting
330	MAKE_KERBEROS5 no longer has any effect. If you do NOT
331	want the "base" Kerberos 5, you need to set NO_KERBEROS.
332
33320030502:
334	groff has been updated.  If you try to do a buildworld and
335	get an infinite loop in troff, update to May 4th or newer.  If you
336	have a newer kernel than userland, you may need to set the OSRELDATE
337	to 500110 in your environment before starting a buildworld.
338
33920030501:
340	The old rc system has been removed.  Please report any problems
341	to freebsd-rc@yahoogroups.com, and/or freebsd-current@freebsd.org.
342	Your personal versions of these files will not be removed, so you can
343	continue to use them. However, you should take great care when updating,
344	especially when using mergemaster, since the compatibility code that
345	utilizes these old scripts has also been removed.
346
34720030423:
348	A bug has been fixed in /dev/devctl which would cause devd
349	to hang on boot, were it not for a workaround in devd.  The
350	work around in devd will be removed around 20030507.  You
351	have until then to upgrade your kernel before updating
352	userland.  In general, you should have a userland and
353	kernel that's in sync with each other.  However, given the
354	effects of this bug (hang on boot when starting devd), some
355	allowances are made.
356
35720030329:
358	Alphas with libc from between 20030312 and 20030329 exhibit
359	floating point exceptions (FPEs), most notably in awk(1)
360	while upgrading the system through a buildworld.
361
362	So, to successfully upgrade your Alpha, you must either
363	downgrade your libc.so to a pre-20030312 version, or update
364	/usr/share/mk/bsd.cpu.mk to revision 1.26 which adds -mieee
365	to CFLAGS, then forcibly rebuild and install libc:
366
367	cd /usr/src/lib/libc && \
368	    make cleandir && make obj && \
369	    make -DNOMAN -DNOPROFILE all && \
370	    make -DNOMAN -DNOPROFILE install
371
37220030208:
373	sendmail 8.12.7 has been imported.  It has one important
374	change for IPv6 users.  The default submit.mc now uses
375	'[127.0.0.1]' instead of 'localhost' meaning only IPv4 is
376	used to connect to the MTA.  Users on IPv6-only machines
377	will need to edit /etc/mail/submit.mc appropriately.
378
37920030128:
380	NODEVFS option has been removed and DEVFS thereby made standard.
381	This makes all references to MAKEDEV obsolete, and they should
382	be removed when convenient.
383
38420030126:
385	The name of the device for the ofw console has changed, sparc64 users
386	must run mergemaster to update their installed /etc/ttys.
387
38820030125:
389	The scheduler framework has grown a second scheduler and consequently
390	you must specify one and only one scheduler in your kernel config.
391	The cvs config files have been updated to use the old scheduler
392	which may be selected via 'options SCHED_4BSD'.  If you would like
393	to try the new, much more experimental, scheduler please try
394	'options SCHED_ULE' and contribute to the arch@ discussion.
395
39620030115:
397	A new version of the wi driver has been imported into the tree.
398	One now must have device wlan in the config file for it to operate
399	properly.
400
401	In addition, there have been some changes to how wi devices are
402	configured for point to point links to bring it more in line
403	with the former way of doing things, as well as compatibility
404	with NetBSD.
405
40620021222:
407 	For a period after the GCC 3.2.1 import (from 12/04 to 12/22), GCC
408 	used an incompatible form of ABI for returning structures and unions
409 	which FreeBSD's GCC maintainers were not aware of relative to previous
410 	versions of FreeBSD.  We have gone back to the ABI for now, and any
411 	code compiled which is required to interoperate with other code (not
412 	built at the same time) returning structs or unions should be 
413	rebuilt.
414
41520021216:
416	A name change in /etc/netconfig has been reverted to stay
417	compatible with suns TIRPC and also with NetBSD. You need
418	to run mergemaster after make world. A new libc does still work
419	with an outdated /etc/netconfig for some time, but you'll get
420	a warning. This warning will be removed in 20030301.
421
42220021202:
423	The recent binutils upgrade marks a kernel flag day on
424	sparc64: modules built with the old binutils will not work
425	with new kernels and vice versa. Mismatches will result in
426	panics.  Make sure your kernel and modules are in sync.
427
42820021029:
429	The value of IPPROTO_DIVERT has changed.  Make sure to keep
430	your kernel, netstat, natd and any third-party DIVERT
431	consumers in sync.
432
43320021024:
434	Old, compatibility slices have been removed in GEOM kernels.
435	This means that you will have to update your /etc/fstab to
436	not use disk devices of the form /dev/ad0a.  Instead, you
437	now must specify /dev/ad0s1a, or whatever slice your FreeBSD
438	partition really is on.  The old device names have gone
439	away, so if you use them anywhere else, you must also adjust
440	those uses.  (This doesn't affect the disks formatted in
441	the ``dangerously-dedicated'' mode.)
442
44320021023:
444	Alphas with kernels from between 20020830 and 20021023 and/or
445	rtld (ld-elf.so.1) older than 20021023 may experience problems
446	with groff while doing a buildworld (kernel: "out of memory",
447	fixed in rev 1.129 of kern/imgact_elf.c; rtld: "too few PT_LOAD
448	segments", fixed in rev 1.8 of libexec/rtld-elf/map_object.c).
449
450	So, to successfully upgrade your Alpha, you must either
451	upgrade your kernel and rtld first (which might be a bit
452	tricky), or avoid running the bootstrapped groff during the
453	"transitional" buildworld.  To avoid running groff during the
454	transitional upgrade run make buildworld with -DNOMAN,
455	-DNO_SHAREDOCS, and -DNO_LPR.
456
45720020831:
458	gcc has been upgraded to 3.2.  It is not all binary compatible
459	with earlier versions of gcc for c++ programs.  All c++
460	programs and libraries need to be recompiled.
461
462	Also, if you encounter g++ issues, rm /usr/include/g++/* before
463	doing an installworld to make sure that stale files are removed.
464
46520020827:
466	Our /etc/termcap now has all the entries from the XFree86 xterm
467	almost unchanged. This means xterm now supports color by default.
468	If you used TERM=xterm-color in the past you now should use
469	TERM=xterm. (xterm-color will lead to benign warnings).
470
47120020815:
472	A "bug" in gcc(1) that was hiding warning in system headers was
473	fixed.  It's probably time to add -DNO_WERROR to your make line
474	again.
475
47620020729:
477	COPY is being deprecated.  The 20010530 change was reverted, as
478	it causes far more pain than was expected, and to always compare
479	before installing, please use INSTALL="install -C" again.  The
480	-C option is now silently ignored when used with the -d option.
481
48220020702:
483	Problems with libc_r clients like KDE and GNOME have been resolved.
484	There are still some minor problems with some signals but the 
485	system is stable enough for general use again. SMP is less so than UP
486	but each can successfully complete multiple buildworlds.
487	Libkvm needs to be recompiled due to KSE.
488
48920020701:
490	Now would be a bad time to upgrade.  Something in or near the
491	KSE commit totally broke programs using libc_r like KDE and
492	GNOME.
493
49420020511:
495	The k5su utility installed as part of Kerberos 5 is no longer
496	installed with the set-user-ID bit set by default.  Add
497	ENABLE_SUID_K5SU=yes to /etc/make.conf to have it installed
498	with the set-user-ID bit set.
499
50020020510:
501	Gcc 3.1 debugging format (cc -g) has changed from STABS to DWARF2.
502	Unfortunately our native GDB (at version 4.18) does not understand
503	the DWARF2 debugging format.  Thus you must use `gcc -gstabs+' to
504	generated debugging information for our native GDB.
505
50620020510:
507	Due to the way CVS works, it may not properly update src/contrib/gcc
508	to the 3.1 sources.  The easiest fix is to `rm -rf' src/contrib/gcc
509	and then do a cvs update.
510
51120020421:
512	When exec'ing set[ug]id executables, the kernel now ensures that the
513	stdio file descriptors (0..2) are open.  See FreeBSD-SA-02:23.stdio.
514
51520020404:
516	New sendmail startup scripts have been installed to make it
517	easier to use alternative MTAs with FreeBSD.  Setting the rc.conf
518	variable sendmail_enable to "NO" no longer prevents any sendmail
519	daemons from starting.  Instead, either set sendmail_enable to
520	"NONE" or change mta_start_script to a script for starting
521	an alternative MTA.  Setting mta_start_script to "" will
522	also prevent any MTA from being started at boot.
523
52420020403:
525	UCONSOLE is no longer a valid kernel option.
526
52720020315:
528	FreeBSD 5.0 DP-1 was basically branched today.
529
53020020225:
531	Warnings are now errors in the kernel.  Unless you are a developer,
532	you should add -DNO_WERROR to your make line.
533
53420020217:
535	sendmail 8.12.2 has been imported.  The sendmail binary is no
536	longer a set-user-ID root binary and the infrastructure to support
537	command line mail submission has changed.  Be sure to run
538	mergemaster (especially for updating /etc/rc, /etc/defaults/rc.conf,
539	and /etc/mail) and read /etc/mail/README for more details.
540
541	Due to the import of sendmail 8.12.2, a new user and group are
542	required in order for sendmail to run as a set-group-ID
543	binary.  A 'make installworld' will use the new user and group
544	to set the owner and group of /var/spool/clientmqueue and will
545	fail if the new user and group do not exist.  The 'smmsp' user
546	and group must be merged from src/etc/group and
547	src/etc/master.passwd before using 'make installworld'.
548	'mergemaster -p' will do this.  You may need to install
549	mergemaster before this will work if you are updating from a
550	very old version of current.  The updating recipe has changed
551	as of this date.
552
55320020112:
554	The preferred configuration method for PAM is now /etc/pam.d/
555	rather than /etc/pam.conf.  If you have an unmodified
556	pam.conf, just delete it after your next mergemaster run.  If
557	you have local modifications, you can use
558	/usr/src/etc/pam.d/convert.pl to incorporate them into your
559	/etc/pam.d.
560
561	Please see the following url for more details:
562http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<xzp6667fyoa.fsf@flood.ping.uio.no>
56320011229:
564	If anyone here is already using the new rc.conf(5) variable
565	networkfs_types, please note that it has changed
566http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<9744.1009655556@axl.seasidesoftware.co.za>
567
56820011220:
569	sys/i4b/driver/i4b_ispppsubr.c has been retired.  This file
570	started out its life in the ISDN4BSD project as an offspring
571	from sys/net/if_spppsubr.c, which eventually got a life of its
572	own.  All the accumulated features and bugfixes of the i4b
573	version have now been merged back into the base system's
574	version now.  The only user-visible change resulting from this
575	is that i4b's sppp(4) interfaces are to be managed with
576	spppcontrol(8) again, since ispppcontrol(8) has been retired
577	as well.  (There has never been rc file support for
578	ispppcontrol in -current, but only in -stable.  That will be
579	reverted by the time the changes are MFCed.)
580
58120011215:
582	The fdc(4) driver has been updated and now automatically
583	recognizes media in `standard' formats (like 1440 KB and
584	720 KB for a 3.5" high-density drive) when accessing the
585	default device node (e. g. /dev/fd0).  The old variety of
586	floppy device nodes /dev/fd*.* is no longer present by
587	default, devices can be created (in DEVFS) on demand.  They
588	will need to be customized then for `odd' densities using
589	fdcontrol(8).
590
59120011209:
592	The bugs in procfs' debugging support code have been fixed,
593	and truss(1) now works again.
594
59520011207:
596	Daily security checks have been split out to use the periodic(8)
597	scripts.  Some change in configuration may be necessary.  Please
598	see 
599http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<20011207155805.R8975@blossom.cjclark.org>
600	for details.
601
60220011204:
603	sos added VCD/SVCD support to ata driver and that needs the
604	kernel and burncd to be in sync.
605
60620011203:
607	The procfs pseudo-filesystem has now been converted to use the
608	pseudofs framework.  If you have 'options PROCFS' in your
609	kernel config, you'll need to add 'options PSEUDOFS' if it's
610	not there already.
611
612	This change temporarily breaks truss(1); use ktrace(1) instead
613	until the issue has been resolved.
614
61520011202:
616	A security hole in OpenSSH involving `UseLogin yes' has been
617	patched.
618
61920011126:
620	You need to remove /usr/obj/.../usr.bin/tip before rebuilding
621	after this date.  You need to do this only once.
622
62320011103:
624	Most of the awk issues have been resolved.  Some rough
625	edges may be left, but for the most part things should be
626	back to "normal." For CURRENT's usual definition of "normal."
627
62820011030:
629	Awk has been upgraded to the one true awk from bell labs.  Expect
630	choppy waves in the upgrade process.
631
63220011030:
633	The asr driver problem has been resolved.
634
63520011027:
636	Due to changes in other parts of the system, the asr driver
637	now causes the system to panic on boot.  Do not use it pending
638	correction.  Comment it out of any kernel config file that you
639	try to use from this date forward.
640
64120011025:
642	When crossbuilding, use TARGET=xxx where you used to use
643	MACHINE=xxx.  You don't need to set TARGET_ARCH and TARGET,
644	unless you are changing both of them.  To cross build pc98 on
645	an alpha, for example, you need to set TARGET=pc98 and
646	TARGET_ARCH=i386.
647
64820011001:
649	The kernel interface that burncd depends on has changed.
650	You must recompile both the kernel and userland applications
651	at the same time.
652
65320010929:
654	When crossbuilding, please set TARGET_ARCH rather than
655	MACHINE_ARCH to indicate the target.  In the future, one will
656	set TARGET_MACHINE where you set MACHINE now.  At the moment,
657	setting MACHINE alone for same MACHINE_ARCH machines works
658	(eg, you can build pc98 on an i386 machine and vice versa).
659
66020010927:
661	Some weird problems result from using ACPI on some machines.
662	To disable ACPI you can add
663		hint.acpi.0.disabled="1"
664	to /boot/loader.conf (or by putting set X=Y at the boot
665	loader "ok" prompt).
666
667	Alternatively, you can remove it from /boot/kernel/acpi.ko
668	or use the MODULES_OVERRIDE function in your kernel config
669	file and not list acpi in that list.
670
67120010924:
672	The buildworld has been fixed.  You may need to install
673	the 4.x compatibility libraries for some old binaries
674	to work.  Add COMPAT4X=true to your /etc/make.conf to
675	get them installed on every installworld, or execute the
676	following to get them installed only once:
677		cd src/lib/compat/compat4x.<arch>
678		make all install
679	You will see ``__stdoutp undefined'' until you do this.
680
68120010919:
682	There's a bug in the world build process.  The cross-tools
683	are build with the NEW headers, but the OLD libc.a.  This
684	leads to all kinds of problems with the new libc.  A temporary
685	workaround is to add
686		CFLAGS="-O -pipe -D_OLD_STDIO"
687	before building world when upgrading from 4.x to current.  This
688	can be removed afterwards.
689
690	A proper fix to the buildworld target is needed.
691
69220010918:
693	Peter has committed his new kthread nfs client/server code.
694	NFS may be unstable after this date.
695
69620010912:
697	KSE has hit the tree.  Lots of things are now different in
698	the kernel.  While a few problems were introduced in the
699	initial commit, most of the major ones have been found and
700	corrected.
701
70220010901:
703	In OLDCARD, CardBus bridges appear to be stable.  The work
704	arounds described in the 20010604 entry are now no longer
705	necessary and will be ignored.  Most insert/remove problems
706	have been rectified around this date.
707
70820010823:
709 	named now runs as user bind and group bind rather than as 
710 	root.  If named_enable is set to YES in /etc/rc.conf, ensure 
711 	that user bind is available in /etc/passwd (using vipw(8)) 
712 	and that group bind is available in /etc/group.  Also make 
713 	sure that user or group bind has read (and not write) 
714 	permission for your name server configuration and that it 
715 	has read and write permission for your slave zone files and 
716 	directory.
717 
718 	If you wish to continue to run named as root (a less secure 
719 	alternative), add a line to /etc/rc.conf saying
720 
721 		named_flags=
722
72320010709:
724	The PAM libraries have had an API upgrade that is beyond
725	the ability of the shared library major number to handle.
726	It is manifested by PAM-using ports dumping core. The
727	solution is to rebuild those ports.
728
72920010628:
730	The kernel compile module has moved from src/sys/compile/FOO
731	to src/sys/${MACHINE}/compile/FOO.
732
73320010625:
734	The pccard modem issue from 20010613 has been corrected.
735	OLDCARD support is still a little weak in -current.  slot 1 is
736	known not to work on some TI based cardbus bridges.  Some
737	cardbus bridges do not properly detect insert/removal events.
738	IRQ configuration needs more safety belts.
739
74020010617:
741	Softupdates problems have been corrected.
742
74320010614:
744	Peter ripped out the linkerset support.  You must, as always,
745	rerun config after you cvsup if you are using the traditional
746	kernel building methods.
747
74820010613:
749	pccard modems may not work with current after 20010604 date.  Some
750	do, others result in panics.  *MAKE*SURE* that you update your
751	config and /etc/rc.conf ala the 20010604 entry, or you will have
752	problems (this issue will be fixed, it just hasn't been yet).
753
75420010613:
755	SOFTUPDATES seem to be broken since the middle of May or so.  Do not
756	use them in current.  You can disable softupdates on all mounted
757	partitions, or remove SOFTUPDATES the kernel config file.
758
75920010612:
760	After Peter's commits to the hints code, people have been noticing
761	that certain devices are attached (or try to) twice.  This is due
762	to having both static hints as well as a /boot/device.hints.  To
763	work around this issue, please use only one or the other mechanism
764	until this bug is fixed.
765
766	Please note that a feature of config is that if you have config
767	file FOO and FOO.hints, it automatically adds FOO.hints to the
768	hints.c file, whether you want it to or not.
769
77020010610:
771	Locale names have changed to match other systems better.
772
77320010604:
774	pccard support for pci cards has been committed.  You must change
775	your /etc/pccard.conf irq lines.  It must match the irq used by
776	pcic device.  Interrupt storms may result if you fail to do this.
777	Interrupt storms look a lot like a hang.
778
779	You must also install a new pccardd, otherwise you will get an
780	interrupt storm at card reset time (just after it tells you what
781	it is).
782
783	pccardd_flags="-I" is necessary for the time being.  It tells pccardd
784	not to ask the kernel if the interrupt is really free or not before
785	using it.  You can either change the /etc/pccard.conf irq lines to
786	match pcic, or add "-i X" to the pccardd_flags.
787
78820010530:
789	INSTALL=install -C is being deprecated.  If you want to do this,
790	use COPY=-C instead.  The former method will be supported for only
791	a limited time.  If you see
792
793install: warning: the -d and -C options may not be specified together
794
795	in your makeworld, then you need to migrate towards using
796	COPY=-C.
797
79820010525:
799	It appears that vm is now stable enough to use again.  However,
800	there may be other problems, so caution is still urged.  alpha
801	definitely is in bad shape.
802
80320010521:
804	Minor repo damage has happened.  This may cause problems
805	with cvsup of ports.  If you get errors, please see
806	http://www.FreeBSD.org/cgi/query-pr.cgi?pr=27495
807	at the bottom for details on a workaround.  The error message
808	is
809Updater failed: Cannot delete "/usr/ports/www/jakarta-tomcat/files": Directory not empty
810
81120010520:
812	Vm and/or swapping are busted on -current.  Please be patient.
813
81420010519:
815	pccard has had much reorganizational work done to it over
816	the past few days.  Everything should still work, but if
817	not, please contact imp@freebsd.org.
818
81920010517:
820	ata ioctl changed.  Make sure to recompile both kernel and
821	userland at the same time.
822
82320010517:
824	New ncurses imported.
825
82620010512:
827	DEVFS is now opt out, not opt in.  Barring major problems, this
828	will be the only way to go starting July 1.
829
83020010504:
831	OpenSSH has been updated to 2.9.  Some defaults are different,
832	including RhostsRSAAuthentication, which changes from yes to no.
833
83420010502:
835	Perl breakage in 20010501 was corrected at 14:18:33 PDT.
836
83720010501:
838	Building perl was broken at 02:25:25 PDT.
839
84020010430:
841	The bug in 20010429 was corrected at 07:35:37 PDT.  It is safe to
842	go back in the water.
843
84420010429:
845	A bad bug was committed at 04:48:42 PDT.  Don't use kernels after
846	this date, but before the correction date.
847
84820010423:
849	old fsck and new kernel interactions appear to have been fixed.
850
85120010411:
852	fsck and the kernel were changed to handle some optimizations
853	to directory layout.  This breaks backward compatibility.
854	Update only if you understand that you must not use the old
855	fsck with the new kernel ever.
856
85720010330:
858	fsck has changed the meaning of the pass column in /etc/fstab.
859	Please see the cvs commit to fsck.8 or the fsck.8 man page for
860	details.  It is unclear if changes to /etc/fstab are necessary.
861
86220010319:
863	portmap had changed name to rpcbind for maximum POLA in your
864	current world.  /etc/hosts.{allow,deny} needs changes.  nfs and
865	other rpc based programs that rely on portmapper will not work
866	without updates to /etc/hosts.{allow,deny} and /etc/netconfig.
867
86820010315:
869	ata subsystem changes.  ATA_ENABLE_ATAPI_DMA, ATA_ENABLE_WC
870	and ATA_ENABLE_TAGS are no longer kernel options.  They have
871	been replaced by tunables.  See ata.4 for details.
872
87320010312:
874	The fxp driver was converted to use miibus.  If you compile
875	fxp into your kernel statically, you will need to add miibus.
876
87720010312:
878	The wi device now defaults to BSS (infrastructure) mode
879	instead of ad-hoc.
880
88120010310:
882	/dev/urandom should be a symbolic link to /dev/random now.
883	Users of current not using DEVFS need to run MAKEDEV std.
884	ssh might not work if you don't.
885
88620010303:
887	The ed driver has been updated.  It now allows mii attachments,
888	which means that you must include the miibus in your kernel if
889	you use the ed driver.
890
89120010220:
892	The problems with libc have been corrected.  It is now mostly
893	safe to go back into the water.
894
89520010211:
896	The size of FILE was changed.  This breaks upgrading.  If
897	you must upgrade, be prepared for pain.  It also breaks almost
898	all binaries that you've compiled on -current.  You are warned
899	that before upgrading would be a good time to do a level 0
900	dump of your system.  No, really, I mean it this time.
901
902	To get to the new system, you'll need to use the following
903	workaround.  Hopefully this can be sorted out so that we
904	don't have to move this to the updating section.
905
906	To get around the installworld problem, do:
907		# cd /usr/src/usr.bin/sed
908		# make install
909		# cd /usr/src
910		# make installworld
911	If that doesn't work, then try:
912		# make -k installworld
913		# make installworld
914
91520010207:
916	DEVFS is now the default.  If you use vinum, make sure that you
917	do not include devfs in your kernel as problems result.
918
91920010205:
920	FFS_ROOT and CD9660_ROOT have been removed or deprecated.
921	Remove them from your config.
922
92320010122:
924	****************************** WARNING ******************************
925			buildkernel has been changed slightly
926	****************************** WARNING ******************************
927	KERNCONF replaces the variable KERNEL for buildkernel.  You
928	should update your scripts and make.conf accordingly.
929
93020010119:
931	config has changed to allow DEV_FOO as a replacement for NFOO.
932	This requires a new config to build correctly.
933
93420010116:
935	The kernel option I386_CPU is now mutually exclusive with the
936	other cpu types. If you have an i386 system, be sure that it
937	only had this line.  Remove it for all other configurations.
938
93920010110:
940	Changes to the kernel require it and burncd be in sync.
941
94220010102:
943	Everyone who has hw.sndunit set to something in
944	/etc/sysctl.conf, it is now hw.snd.unit.
945
94620010101:
947	ex and vi were broken by some changes to sys/queue.h.  If you
948	have a bad vi, you will see make buildworld fail with a core
949	dump while building termcap.  You can work around this problem
950	by adding -k to your make buildworld.  This will cause the
951	build to complete and install a new vi.  Once that's done, you
952	can rebuild again without the -k to pick up anything that
953	might have been ignored by the -k option.
954
955	Others have suggested that you can just rebuild libc if your
956	vi/ex is dynamically linked, but I've not received any reports
957	of this working.
958
95920001228:
960	There have been some changes to libcrypt in -current.  The
961	libscrypt/libdescrypt symlink silliness is gone and the installed
962	libcrypt is fully functional.  Be aware of this.
963
96420001218:
965	Linksys Fast Ethernet PCCARD cards supported by the ed driver
966	now require the addition of flag 0x80000 to their config line
967	in pccard.conf(5).  This flag is not optional.  These Linksys
968	cards will not be recognized without it.
969
97020001205:
971	Important new FreeBSD-version stuff: PAM support has been worked
972	in, partially from the "Unix" OpenSSH version.  This requires
973	adding the following in pam.conf:
974  
975	sshd    auth    sufficient      pam_skey.so
976	sshd    auth    required        pam_unix.so         try_first_pass
977	sshd    session required        pam_permit.so
978
97920001031:
980	cvs updated to 1.11.
981
98220001020:
983	The random device needs more entropy, so you need to make sure
984	that you've run mergemaster to get a /etc/rc which will seed
985	/dev/random.  If you don't and the system hangs after ldconfig,
986	then banging on the keyboard randomly until it unhangs is one
987	workaround.
988
98920001010:
990	****************************** WARNING ******************************
991				Sendmail has been updated.
992	****************************** WARNING ******************************
993	o mail.local(8) is no longer installed as a set-user-id binary.
994	o sendmail(8) is now built with STARTTLS support unless NO_OPENSSL
995	  is set.
996	o The default /etc/mail/sendmail.cf disables the SMTP EXPN and VRFY
997	  commands.
998	o Now using sendmail's version of vacation(1).
999	o The sendmail cf building tools (contrib/sendmail/cf) are installed
1000	  in /usr/share/sendmail/cf.
1001	o sendmail.cw changed to local-host-names
1002
1003	More details can be found at
1004		http://people.freebsd.org/~imp/UPDATING/sendmail-20001010
1005
100620001009:
1007	The ports tree's new layout is in place.  Be sure to update
1008	your entire ports tree, or you will have problems.
1009
101020001006:
1011	The perl build procedure no longer installs miniperl, nor uses
1012	the installed miniperl.  It is recommended that you delete
1013	/usr/bin/miniperl.
1014
101520001005:
1016	This weekend the ports tree will be updated to a new layout.
1017	It will be in an inconsistent state until noted in the UPDATING
1018	file, or with asami-san's message to the relevant mailing
1019	lists.  With this new layout, you'll need to update the whole
1020	tree for anything to work.
1021
102220000928:
1023	There was a change in the passwd format.  Need more information.
1024
102520000916:
1026	/boot/kernel/kernel.ko -> /boot/kernel/kernel change has taken
1027	place.  Please update boot loader (not the boot blocks) at the
1028	same time as your kernel.
1029
103020000914:
1031	The new pmtimer device is necessary for laptops.  Failure to
1032	include the device will cause suspended laptops losing time
1033	when they resume.  Include
1034		device		pmtimer
1035	in your config file and
1036		hint.pmtimer.0.at="isa"
1037	to your /boot/device.hints file.
1038
103920000911:
1040	The random device has been turned into a (pseudo-)device,
1041	rather than an option. The supplied kernel config files have
1042	been updated. You will need to do something similar in your
1043	own kernel config file.
1044	Remove:
1045		options		RANDOMDEV
1046	Add:
1047		device		random
1048	If you prefer to load the loadable module, you need to do
1049	nothing.
1050
105120000909:
1052	The random device module has been renamed from randomdev.ko to
1053	random.ko. You will need to edit your /boot/loader.conf to
1054	reflect this if you load this module at boot time.
1055	The line should read:
1056		random_load="YES"
1057
105820000907:
1059	The SMPNG commit has happened.  It should work, but if it
1060	doesn't, fallback to the PRE_SMPNG CVS tag.  There are likely
1061	to be a variety of minor issues.  Please see 20000905 to make
1062	sure you don't have model loading problems which might at
1063	first blush appear related to SMP.
1064
106520000906:
1066	nsswitch has been imported from NetBSD.  Among other things,
1067	this means that /etc/host.conf is no longer used.  See
1068	nsswitch.conf(5) instead.  Note that at boot time rc.network
1069	will attempt to produce a new nsswitch.conf file for you if you
1070	don't have one, and you have host.conf.
1071
107220000905:
1073	The ucred structure changed size.  This breaks the interface
1074	that mountd uses.  Trying to use an older mountd with a newer
1075	kernel guarantees a panic.  This means that you need to use
1076	kernels newer than today only with matching mountd, but you
1077	needed to do that anyway with the boot loader changes.
1078
107920000905:
1080	The boot loader has been updated.  The new default kernel is
1081	now /boot/kernel/kernel.ko.  The new default module location
1082	is /boot/kernel.
1083
1084	You *MUST* upgrade your boot loader and kernel at the same time.
1085	The easiest way to do this is to do the buildworld/buildkernel/
1086	installkernel/installworld dance.
1087
1088	Furthermore, you are urged to delete your old /modules directory
1089	before booting the new kernel, since kldload will find stale
1090	modules in that directory instead of finding them in the correct
1091	path, /boot/kernel.  The most common complaint that this cures
1092	is that the linux module crashes your machine after the update.
1093
1094	if [ ! -d /boot/kernel.old ]; then
1095		mv /modules.old /boot/kernel.old
1096		chflags noschg /kernel.old
1097		mv /kernel.old /boot/kernel.old/kernel.ko
1098		chflags schg /boot/kernel.old/kernel.ko
1099	fi
1100
110120000904:
1102	A new issue with the sendmail upgrade has come to light.
1103	/etc/aliases has moved to /etc/mail/aliases.  Mergemaster will 
1104	incorrectly install the default aliases in /etc/mail rather than
1105	move the old one from /etc.  So you'll need to manually move the
1106	file, create a symbolic link, remove the old /etc/aliases.db and
1107	run newaliases.  For safety sake, you should stop sendmail
1108	while doing this and run the upgrade when locally sourced email
1109	is not likely to be generated.
1110
111120000825:
1112	/boot/device.hints is now required for installkernel to
1113	succeed.  You should copy GENERIC.hints for your architecture
1114	into /boot/device.hints.  If and only if you compile hints
1115	into your kernel, then this file may be empty.  Please note,
1116	if you have an empty or missing /boot/device.hints file and
1117	you neglected to compile hints into your kernel, no boot
1118	messages will appear after the boot loader tries to start the
1119	kernel.
1120
112120000821:
1122	If you do NOT have ``options RANDOMDEV'' in your kernel and
1123	you DO want the random device then add randomdev_load="YES" to
1124	/boot/loader.conf.
1125
112620000812:
1127	suidperl is now always built and installed on the system, but
1128	with permissions of 511.  If you have applications that use
1129	this program, you are now required to add ENABLE_SUIDPERL=true
1130	to /etc/make.conf.  If you forget to do this,
1131		chmod 4511 /usr/bin/suidperl
1132	will fix this until the next build.
1133
113420000812:
1135	sendmail has been updated from 8.9.3 to 8.11.0.  Some of the more
1136	visible changes that may immediately affect your configuration
1137	include:
1138	- New default file locations from src/contrib/sendmail/cf/README
1139	- newaliases limited to root and trusted users
1140	- MSA port (587) turned on by default
1141	- New queue file naming system so can't go from 8.11 -> 8.9
1142	- FEATURE(`rbl') renamed to FEATURE(`dnsbl')
1143	- FEATURE(`nullclient') is more full featured
1144	- FEATURE(`nouucp') requires an argument: `reject' or `nospecial'
1145	- mail.local FreeBSD-only -b option changed to -B
1146	- See src/contrib/sendmail/RELEASE_NOTES for more info
1147
114820000810:
1149	suidperl (aka sperl) is no longer build by default.  You must
1150	specifically define BUILD_SUIDPERL to "true" for it to be build.
1151	Furthermore, we recommend that you remove /usr/bin/sperl* and
1152	/usr/bin/suidperl files from your system unless you have a
1153	specific use for it.
1154
115520000729:
1156	Networking defaults have been tightened.  Anybody upgrading
1157	/etc/defaults/rc.conf needs to add the following lines to
1158	/etc/rc.conf if they want to have the same setup
1159	afterwards (unless the variables already are set, of course):
1160		# Enable network daemons for user convenience.
1161		inetd_enable="YES"
1162		portmap_enable="YES"
1163		sendmail_enable="YES"
1164
116520000728:
1166	If you have null_load="YES" in your /boot/loader.conf, you
1167	will need to change that to nullfs_load="YES".
1168
116920000728:
1170	The "installkernel" target has changed slightly. Now even if
1171	you override KERNEL e.g. 'make installkernel KERNEL=MYKERNEL'
1172	it will install the MYKERNEL file (built with the buildkernel
1173	target) as /kernel rather than /MYKERNEL. Those who have
1174	updated their /boot/loader.conf files to point to /MYKERNEL
1175	should remove that entry or perform manual rename of /kernel
1176	to /MYKERNEL.
1177
117820000711:
1179	If you use CVSUP or CTM to get CVS trees, AND you used to get 
1180	the old crypto files from internat.freebsd.org AND you check
1181	out files from the CVS tree with the cvs command, please read
1182		http://people.freebsd.org/~imp/internat.txt
1183	for details on potential problems that you might have and how
1184	to get around them.
1185
1186	If you are merely a mirror, or don't answer yes to each of the
1187	clauses above, you needn't worry.
1188
118920000711:
1190	/etc/security has been updated to print the inode number of
1191	setuid programs that have changed.  You will see a large spike
1192	in the number of changed programs the first time when you run
1193	mergemaster to get a new /etc/security.
1194
119520000710:
1196	/dev/random now has good entropy collection (from the keyboard
1197	and sysmouse drivers). Please ensure that either `options
1198	RANDOMDEV' is present in your kernel config file or that
1199	`randomdev_load="YES"' is in your /boot/loader.conf. If you do
1200	not have the /dev/random driver, OpenSSL (and consequently
1201	lots of crypto tools (like SSH)) will fail with strange
1202	errors. (see below, 20000624).
1203
1204	FreeBSD-current is safe again to run Crypto.
1205
120620000709:
1207	phk made the malloc default options AJ.  This may slow things
1208	down and uncover other latent bugs in the code.  If you need to
1209	run at full speed, you can disable this by doing the following:
1210		ln -s aj /etc/malloc.conf
1211
121220000706:
1213	libftpio's version was accidentally bumped a few days ago.  This
1214	has been corrected.  You may need to remove /usr/lib/libftpio.so.6
1215	before doing your next buildworld/installworld pair.  It certainly
1216	won't hurt to remove it before the update procedure.  It will
1217	break fetch until a new one is built, but ftp can be used in the
1218	interim if needed.
1219
122020000705:
1221	The crypto packages have changed for the cvsup.  This has been done
1222	in a backward compatible way, but the old packages will go away at
1223	some point in the future.  Look at /usr/share/examples/cvsup for
1224	details.
1225
122620000704:
1227	With the new sys/modules/sound/drivers/*, you will need to
1228	set SYSDIR until you do an installworld after July 7th.
1229
123020000704:
1231	rc.shutdown and rc will now call the rc.d scripts with start
1232	or stop.  This may cause some harmless warnings from older
1233	rc.d scripts that haven't been updated.
1234
123520000630:
1236	The libfetch based version of fetch has gone into the tree.
1237	Minor problems may result on some of the less popular sites,
1238	which should be reported to des@freebsd.org.
1239
124020000625:
1241	From approximately this date forward, one must have the crypto
1242	system installed in order to build the system and kernel.
1243	While not technically strictly true, one should treat it as
1244	required and grab the crypto bits.  If you are grabbing CVS
1245	trees, src-all and cvs-crypto should be treated as if they
1246	were required.  You should check with the latest collections
1247	to make sure that these haven't changed.
1248
124920000624:
1250	Mark Murray just committed the first parts of a cleanup of
1251	/dev/zero, et al.  This is also cleaning up /dev/random.
1252	The entropy is disconnected, so DO NOT USE VERSIONS OF FREEBSD
1253	-CURRENT FROM THIS POINT to 2000710 for cryptographic services
1254	until Mark can merge in the fixes to this work in progress.
1255	openssh and openssl should not be used to generate keys from this
1256	date to the completion of the work.
1257
1258	If you must operate at this reduced level of security, add '
1259	options RANDOMDEV' to your kernel or modload the randomdev
1260	module.  You may also need to copy a new MAKEDEV to /dev and
1261	recreate the random and urandom devices.
1262
126320000622:
1264	The license on the softupdates is now a standard 2 clause
1265	BSD license.  You may need to remove your symbolic links
1266	that used to be required when updating.
1267
126820000621:
1269	Scott Flatman <sf@aracnet.com> sent in a decent write-up on
1270	the config file update procedure.
1271		http://people.freebsd.org/~imp/config-upd.html
1272	NOTE: LINT is gone.  It has been replaced with NOTES.  NOTES
1273	isn't buildable.  However, you can generate a LINT file:
1274		cd /sys/<ARCH>/conf && make LINT
1275
127620000620:
1277	Binutils 2.10 have hit the tree, or will shortly.  As soon
1278	as they do, the problem noted in 20000522 will be resolved and
1279	that workaround will no longer be required.
1280
128120000615:
1282	phk removed the compatibility creation of wd devices in the
1283	ad driver.  If you haven't done so already, you must update
1284	your fstab, etc to use the ad devices instead of the wd
1285	devices.
1286
1287	In addition, you'll need to update your boot blocks to a
1288	more modern version, if you haven't already done so.  Modern
1289	here means 4.0 release or newer (although older releases
1290	may work).
1291
129220000612:
1293	Peter took an axe to config(8).  Be sure that you read his mail
1294	on the topic before even thinking about updating.  You will
1295	need to create a /boot/device.hints or add a hints directive
1296	to your config file to compile them in statically.  The format
1297	of the config file has changed as well.  Please see GENERIC or
1298	NEWCARD for examples of the new format.
1299
1300	Indirectly, this also breaks USERCONFIG.  Unless a newer entry
1301	says that it has been fixed, assume that must use the hints mechanism
1302	in the loader if you need to use a machine with very old ISA cards
1303	in it.
1304
130520000522:
1306	A new set of binutils went into the tree today.  Anybody
1307	building a kernel after this point is advised that they need
1308	to rebuild their binutils (or better yet do a
1309	buildworld/installworld) before building a new kernel.
1310
1311	Due to bugs in binutils, using malloc options (eg /etc/malloc.conf
1312	or MALLOC_OPTIONS env var) J will cause ld to dump core.  It
1313	is recommended that you don't set this option until the problem
1314	is resolved.
1315
131620000513:
1317	The ethernet drivers were all updated to clean up the BPF handling.
1318
131920000510:
1320	The problems with boot blocks on the alphas have been corrected.
1321	This will require some care in updating alphas.  A new libstand
1322	is requires for the boot blocks to build properly.
1323
132420000503:
1325	Recompile all kld modules.  Proper version dependency info
1326	is now available.
1327
132820000502:
1329	Modules have been disconnected from the buildworld tree and 
1330	connected to the kernel building instead.
1331
133220000427:
1333	You may need to build gperf
1334		cd /usr/src/gnu/usr.bin/gperf && make depend all install
1335	when upgrading from 4.0 -> current.  The build system now uses
1336	an option only in -current.
1337
133820000417:
1339	The method that we brand ELF binaries has changed to be more
1340	acceptable to the binutils maintainers.  You will need to
1341	rebrand your ELF binaries that aren't native.  One problem
1342	binary is the Linux ldconfig.  After your make world, but
1343	before you reboot, you'll need to issue:
1344		brandelf -t Linux /compat/linux/sbin/ldconfig
1345	if you have Linux compatibility enabled on your machine.
1346
134720000320:
1348	If you have really bad/marginal IDE drives, you may find they
1349	don't work well.  Use pio mode instead.  The easiest way to
1350	cope if you have a problem combination is to add:
1351		/sbin/sysctl hw.ata.ata_dma=0
1352	to the start of /etc/rc.conf.
1353
135420000319:
1355	The ISA and PCI compatibility shims have been connected to the
1356	options COMPAT_OLDISA and COMPAT_OLDPCI.  If you are using old
1357	style PCI or ISA drivers (i.e. tx, voxware, etc.) you must
1358	include the appropriate option in your kernel config.  Drivers
1359	using the shims should be updated or they won't ship with
1360	5.0-RELEASE, targeted for 2001.
1361
136220000318:
1363	We've entered the traditional post release dumping party.
1364	Large kernel changes are being committed and are in the
1365	works.  It is important to keep the systems' klds and kernel
1366	in sync as kernel interfaces and structures are changing.
1367	Before reporting kernel panics, make sure that all modules
1368	that you are loading are up to date.
1369
137020000315:
1371	If you are upgrading from an older version of FreeBSD, you
1372	need to update your boot blocks as well.  'disklabel -B ad0'
1373	will do the trick.  This isn't critical until you remove your
1374	wd device entries in /dev, at which point your system will not
1375	boot.
1376
137720000315:
1378	4.0 RELEASE shipped.  Please see the 4.0 UPDATING file for how
1379	to upgrade to 4.0 from 3.x.
1380
1381COMMON ITEMS:
1382
1383	General Notes
1384	-------------
1385	Avoid using make -j when upgrading.  From time to time in the
1386	past there have been problems using -j with buildworld and/or
1387	installworld.  This is especially true when upgrading between
1388	"distant" versions (eg one that cross a major release boundary
1389	or several minor releases, or when several months have passed
1390	on the -current branch).
1391
1392	Sometimes, obscure build problems are the result of environment
1393	poisoning.  This can happen because the make utility reads its
1394	environment when searching for values for global variables.
1395	To run your build attempts in an "environmental clean room",
1396	prefix all make commands with 'env -i '.  See the env(1) manual
1397	page for more details.
1398
1399	To build a kernel
1400	-----------------
1401	If you are updating from a prior version of FreeBSD (even one just
1402	a few days old), you should follow this procedure. With a
1403	/usr/obj tree with a fresh buildworld,
1404	make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1405	make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1406
1407	To just build a kernel when you know that it won't mess you up
1408	--------------------------------------------------------------
1409	This assumes you are already running a 5.X system.  Replace
1410	${arch} with the architecture of your machine (e.g. "i386",
1411	"alpha", "amd64", "ia64", "pc98", "sparc64", etc).
1412
1413	cd src/sys/${arch}/conf
1414	config KERNEL_NAME_HERE
1415	cd ../compile/KERNEL_NAME_HERE
1416	make depend
1417	make
1418	make install	
1419
1420	If this fails, go to the "To build a kernel" section.
1421
1422	To rebuild everything and install it on the current system.
1423	-----------------------------------------------------------
1424	# Note: sometimes if you are running current you gotta do more than
1425	# is listed here if you are upgrading from a really old current.
1426
1427	<make sure you have good level 0 dumps>
1428	<maybe fix /etc/fstab>				[7]
1429	make buildworld
1430	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1431	make installkernel KERNCONF=YOUR_KERNEL_HERE
1432							[1]
1433	<reboot in single user>				[3]
1434	/etc/rc.d/preseedrandom				[10]
1435	mergemaster -p					[5]
1436	make installworld
1437	mergemaster					[4]
1438	<reboot>
1439
1440
1441	To cross-install current onto a separate partition
1442	--------------------------------------------------
1443	# In this approach we use a separate partition to hold
1444	# current's root, 'usr', and 'var' directories.   A partition
1445	# holding "/", "/usr" and "/var" should be about 2GB in
1446	# size.
1447
1448	<make sure you have good level 0 dumps>
1449	<boot into -stable>
1450	make buildworld
1451	<maybe newfs current's root partition>
1452	<mount current's root partition on directory ${CURRENT_ROOT}>
1453	make installworld DESTDIR=${CURRENT_ROOT}
1454	make buildkernel KERNCONF=YOUR_KERNEL_HERE
1455	cp /usr/src/sys/${ARCH}/conf/GENERIC.hints \
1456		${CURRENT_ROOT}/boot/device.hints	# as needed
1457	make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1458	cd /usr/src/etc; make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1459	cp /etc/fstab ${CURRENT_ROOT}/etc/fstab 		   # if newfs'd
1460	<edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1461	<reboot into current>
1462	<do a "native" rebuild/install as described in the previous section>
1463	<maybe install compatibility libraries from /usr/src/lib/compat>
1464 	<reboot>	
1465
1466
1467	To upgrade in-place from 4.x-stable to current 
1468	----------------------------------------------
1469	# 5.x uses more space than 4.x.  Also, the location of kernel
1470	# modules has changed.  If you are installing 5.0 onto a 4.x
1471	# system, you'll need about 30MB of free disk space on your /
1472	# partition.  If you have less than this, you may encounter difficult
1473	# to back out of problems with this procedure.  If /tmp is on
1474	# the / partition, you may want to completely remove all its content
1475	# before upgrading, as this can be a common source of shortage of
1476	# space on /.
1477	
1478	<make sure you have good level 0 dumps>
1479	<maybe fix /etc/fstab>				[7]
1480	make buildworld					[9]
1481	make buildkernel KERNCONF=YOUR_KERNEL_HERE	[8]
1482	cp src/sys/${MACHINE}/conf/GENERIC.hints /boot/device.hints [2]
1483	make installkernel KERNCONF=YOUR_KERNEL_HERE
1484	cd src/sys/boot ; make install			[6]
1485							[1]
1486	<reboot in single user>				[3]
1487	/etc/rc.d/preseedrandom				[10]
1488	mergemaster -p					[5]
1489	rm -rf /usr/include/g++
1490	make installworld
1491	mergemaster					[4]
1492	<reboot>
1493
1494	Make sure that you've read the UPDATING file to understand the
1495	tweaks to various things you need.  At this point in the life
1496	cycle of current, things change often and you are on your own
1497	to cope.  The defaults can also change, so please read ALL of
1498	the UPDATING entries.
1499
1500	Also, if you are tracking -current, you must be subscribed to
1501	freebsd-current@freebsd.org.  Make sure that before you update
1502	your sources that you have read and understood all the recent
1503	messages there.  If in doubt, please track -stable which has
1504	much fewer pitfalls.
1505
1506	[1] If you have third party modules, such as vmware, you
1507	should disable them at this point so they don't crash your
1508	system on reboot.
1509
1510	[2] If you have legacy ISA devices, you may need to create
1511	your own device.hints to reflect your unique hardware
1512	configuration.
1513
1514	[3] From the bootblocks, boot -s, and then do
1515		fsck -p
1516		mount -u /
1517		mount -a
1518		cd /usr/src
1519		adjkerntz -i		# if CMOS is wall time
1520	Also, when doing a major release upgrade, it is required that
1521	you boot into single user mode to do the installworld.
1522	For the 4.x -> 5.0 upgrade, you will also see many messages about
1523	needing to recompile your userland.  These are harmless and can
1524	be ignored while you proceed to the next step.
1525
1526	[4] Note: This step is non-optional.  Failure to do this step
1527	can result in a significant reduction in the functionality of the
1528	system.  Attempting to do it by hand is not recommended and those
1529	that pursue this avenue should read this file carefully, as well
1530	as the archives of freebsd-current and freebsd-hackers mailing lists
1531	for potential gotchas.
1532
1533	[5] Usually this step is a noop.  However, from time to time
1534	you may need to do this if you get unknown user in the following
1535	step.  It never hurts to do it all the time.  You may need to
1536	install a new mergemaster (cd src/usr.sbin/mergemaster && make
1537	install) after the buildworld before this step if you last updated
1538	from current before 20020224 or from -stable before 20020408.
1539
1540	[6] 4.x boot loader can be used to boot a 5.x system, however
1541	it is difficult to do that at best.  If you wish to try, then
1542	you should interrupt the boot and at the ok prompt type:
1543		ok unload
1544		ok boot /boot/kernel/kernel
1545	If this fails to work, you must install a new boot loader as
1546	described here.
1547
1548	[7] Before you upgrade, please make sure that you are not using
1549	compatibility slices.  These are device names of the form, on i386
1550	and other architectures that use MBR slicing, /dev/ad0a without the
1551	actual slice name.  Chances are excellent that these will break.
1552	You generally must update these entries to use the post FreeBSD
1553	2.x form of /dev/ad0s1a.
1554
1555	[8] In order to have a kernel that can run the 4.x binaries
1556	needed to do an installworld, you must include the COMPAT_FREEBSD4
1557	option in your kernel.  Failure to do so may leave you with a system
1558	that is hard to boot to recover.
1559
1560	[9] When checking out sources, you must include the -P flag to have
1561	cvs prune empty directories.
1562
1563	[10] In order to create temporary files, /dev/random must be
1564	initialized by feeding data into it.  /etc/rc.d/preseedrandom
1565	takes care of this.
1566FORMAT:
1567
1568This file contains a list, in reverse chronological order, of major
1569breakages in tracking -current.  Not all things will be listed here,
1570and it only starts on March 15, 2000.  Updating files can found in
1571previous releases if your system is older than this.
1572
1573Copyright information:
1574
1575Copyright 1998, 2002 M. Warner Losh.  All Rights Reserved.
1576
1577Redistribution, publication, translation and use, with or without
1578modification, in full or in part, in any form or format of this
1579document are permitted without further permission from the author.
1580
1581THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1582IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1583WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1584DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1585INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1586(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1587SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1588HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1589STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1590IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1591POSSIBILITY OF SUCH DAMAGE.
1592
1593If you find this document useful, and you want to, you may buy the
1594author a beer.
1595
1596Contact Warner Losh if you have any questions about your use of
1597this document.
1598
1599$FreeBSD: head/UPDATING 128485 2004-04-20 15:49:31Z cperciva $
1600