xref: /freebsd/UPDATING (revision 8fa113e5fc65fe6abc757f0089f477a87ee4d185)
1Updating Information for FreeBSD current users
2
3This file is maintained and copyrighted by M. Warner Losh
4<imp@village.org>.  Please send new entries directly to him.  See end
5of file for further details.  For commonly done items, please see the
6COMMON ITEMS: section later in the file.
7
820011126:
9	You need to remove /usr/obj/.../usr.bin/tip before rebuilding
10	after this date.
11
1220011103:
13	Most of the awk issues have been resolved.  Some rough
14	edges may be left, but for the most part things should be
15	back to "normal." For CURRENT's usual definition of "normal."
16
1720011030:
18	Awk has been upgraded to the one true awk from bell labs.  Expect
19	choppy waves in the upgrade process.
20
2120011030:
22	The asr driver problem has been resolved.
23
2420011027:
25	Due to changes in other parts of the system, the asr driver
26	now causes the system to panic on boot.  Do not use it pending
27	correction.  Comment it out of any kernel config file that you
28	try to use from this date forward.
29
3020011025:
31	When crossbuilding, use TARGET=xxx where you used to use
32	MACHINE=xxx.  You don't need to set TARGET_ARCH and TARGET,
33	unless you are changing both of them.  To cross build pc98 on
34	an alpha, for example, you need to set TARGET=pc98 and
35	TARGET_ARCH=i386.
36
3720011001:
38	The kernel interface that burncd depends on has changed.
39	You must recompile both the kernel and userland applications
40	at the same time.
41
4220010929:
43	When crossbuilding, please set TARGET_ARCH rather than
44	MACHINE_ARCH to indicate the target.  In the future, one will
45	set TARGET_MACHINE where you set MACHINE now.  At the moment,
46	setting MACHINE alone for same MACHINE_ARCH machines works
47	(eg, you can build pc98 on a i386 machine and vice versa).
48
4920010927:
50	Some weird problems result from using ACPI on some machines.
51	To disable ACPI you can add
52		hint.acpi.0.disable="1"
53	to /boot/loader.conf (or by putting set X=Y at the boot
54	loader "ok" prompt).
55
56	Alternatively, you can remove it from /boot/kernel/acpi.ko
57	or use the MODULES_OVERRIDE function in your kernel config
58	file and not list acpi in that list.
59
6020010924:
61	The buildworld has been fixed.  You may need to install
62	the 4.x compatibility libraries for some old binaries
63	to work.
64		cd src/lib/compat/compat4x.i386
65		make all install
66
6720010919:
68	There's a bug in the world build process.  The cross-tools
69	are build with the NEW headers, but the OLD libc.a.  This
70	leads to all kinds of problems with the new libc.  A temporary
71	workaround is to add
72		CFLAGS="-O -pipe -D_OLD_STDIO"
73	before building world when upgrading from 4.x to current.  This
74	can be removed afterwards.
75
76	A proper fix to the buildworld target is needed.
77
7820010918:
79	Peter has committed his new kthread nfs client/server code.
80	NFS may be unstable after this date.
81
8220010912:
83	KSE has hit the tree.  Lots of things are now different in
84	the kernel.  While a few problems were introduced in the
85	initial commit, most of the major ones have been found and
86	corrected.
87
8820010901:
89	In OLDCARD, CardBus bridges appear to be stable.  The work
90	arounds described in the 20010604 entry are now no longer
91	necessary and will be ignored.  Most insert/remove problems
92	have been rectified around this date.
93
9420010823:
95 	named now runs as user bind and group bind rather than as
96 	root.  If named_enable is set to YES in /etc/rc.conf, ensure
97 	that user bind is available in /etc/passwd (using vipw(8))
98 	and that group bind is available in /etc/group.  Also make
99 	sure that user or group bind has read (and not write)
100 	permission for your name server configuration and that it
101 	has read and write permission for your slave zone files and
102 	directory.
103
104 	If you wish to continue to run named as root (a less secure
105 	alternative), add a line to /etc/rc.conf saying
106
107 		named_flags=
108
10920010709:
110	The PAM libraries have had an API upgrade that is beyond
111	the ability of the shared library major number to handle.
112	It is manifested by PAM-using ports dumping core. The
113	solution is to rebuild those ports.
114
11520010628:
116	The kernel compile module has moved from src/sys/compile/FOO
117	to src/sys/${MACHINE}/compile/FOO.
118
11920010625:
120	The pccard modem issue from 20010613 has been corrected.
121	OLDCARD support is still a little weak in -current.  slot 1 is
122	known not to work on some TI based cardbus bridges.  Some
123	cardbus bridges do not properly detect insert/removal events.
124	IRQ configuration needs more safety belts.
125
12620010617:
127	Softupdates problems have been corrected.
128
12920010614:
130	Peter ripped out the linkerset support.  You must, as always,
131	rerun config after you cvsup if you are using the traditional
132	kernel building methods.
133
13420010613:
135	pccard modems may not work with current after 20010604 date.  Some
136	do, others result in panics.  *MAKE*SURE* that you update your
137	config and /etc/rc.conf ala the 20010604 entry, or you will have
138	problems (this issue will be fixed, it just hasn't been yet).
139
14020010613:
141	SOFTUPDATES seem to be broken since the middle of May or so.  Do not
142	use them in current.  You can disable softupdates on all mounted
143	partitions, or remove SOFTUPDATES the kernel config file.
144
14520010612:
146	After Peter's commits to the hints code, people have been noticing
147	that certain devices are attached (or try to) twice.  This is due
148	to having both static hints as well as a /boot/device.hints.  To
149	work around this issue, please use only one or the other mechanism
150	until this bug is fixed.
151
152	Please note that a feature of config is that if you have config
153	file FOO and FOO.hints, it automatically adds FOO.hints to the
154	hints.c file, wheather you want it to or not.
155
15620010610:
157	Locale names have changed to match other systems better.
158
15920010604:
160	pccard support for pci cards has been committed.  You must change
161	your /etc/pccard.conf irq lines.  It must match the irq used by
162	pcic device.  Interrupt storms may result if you fail to do this.
163	Interrupt storms look a lot like a hang.
164
165	You must also install a new pccardd, otherwise you will get an
166	interrupt storm at card reset time (just after it tells you what
167	it is).
168
169	pccardd_flags="-I" is necessary for the time being.  It tells pccardd
170	not to ask the kernel if the interrupt is really free or not before
171	using it.  You can either change the /etc/pccard.conf irq lines to
172	match pcic, or add "-i X" to the pccardd_flags.
173
17420010530:
175	INSTALL=install -C is being deprecated.  If you want to do this,
176	use COPY=-C instead.  The former method will be supported for only
177	a limited time.  If you see
178
179install: warning: the -d and -C options may not be specified together
180
181	in your makeworld, then you need to migrate towards using
182	COPY=-C.
183
18420010525:
185	It appears that vm is now stable enough to use again.  However,
186	there may be other problems, so caution is still urged.  alpha
187	definitely is in bad shape.
188
18920010521:
190	Minor repo damange has happened.  This may cause problems
191	with cvsup of ports.  If you get errors, please see
192	http://www.FreeBSD.org/cgi/query-pr.cgi?pr=27495
193	at the bottom for details on a workaround.  The error message
194	is
195Updater failed: Cannot delete "/usr/ports/www/jakarta-tomcat/files": Directory not empty
196
19720010520:
198	Vm and/or swapping are busted on -current.  Please be patient.
199
20020010519:
201	pccard has had much reorganizational work done to it over
202	the past few days.  Everything should still work, but if
203	not, please contact imp@freebsd.org.
204
20520010517:
206	ata ioctl changed.  Make sure to recompile both kernel and
207	userland at the same time.
208
20920010517:
210	New ncurses imported.
211
21220010512:
213	DEVFS is now opt out, not opt in.  Barring major problems, this
214	will be the only way to go starting July 1.
215
21620010502:
217	Perl breakage in 20010501 was corrected at 14:18:33 PDT.
218
21920010501:
220	Building perl was broken at 02:25:25 PDT.
221
22220010430:
223	The bug in 20010429 was corrected at 07:35:37 PDT.  It is safe to
224	go back in the water.
225
22620010429:
227	A bad bug was committed at 04:48:42 PDT.  Don't use kernels after
228	this date, but before the correction date.
229
23020010423:
231	old fsck and new kernel interactions appear to have been fixed.
232
23320010411:
234	fsck and the kernel were changed to handle some optimizations
235	to directory layout.  This breaks backward compatibility.
236	Update only if you understand that you must not use the old
237	fsck with the new kernel ever.
238
23920010330:
240	fsck has changed the meaning of the pass column in /etc/fstab.
241	Please see the cvs commit to fsck.8 or the fsck.8 man page for
242	details.  It is unclear if changes to /etc/fstab are necessary.
243
24420010319:
245	portmap had changed name to rpcbind for maximum POLA in your
246	current world.  /etc/hosts.{allow,deny} needs changes.  nfs and
247	other rpc based programs that rely on portmapper will not work
248	without updates to /etc/hosts.{allow,deny} and /etc/netconfig.
249
25020010315:
251	ata subsystem changes.  ATA_ENABLE_ATAPI_DMA, ATA_ENABLE_WC
252	and ATA_ENABEL_TAGS are no longer kernel options.  They have
253	been replaced by tunables.  See ata.4 for details.
254
25520010312:
256	The fxp driver was converted to use miibus.  If you compile
257	fxp into your kernel statically, you will need to add miibus.
258
25920010312:
260	The wi device now defaults to BSS (infrastructure) mode
261	instead of ad-hoc.
262
26320010310:
264	/dev/urandom should be a symbolic link to /dev/random now.
265	Users of current not using DEVFS need to run MAKEDEV std.
266	ssh might not work if you don't.
267
26820010303:
269	The ed driver has been updated.  It now allows mii attachments,
270	which means that you must include the miibus in your kernel if
271	you use the ed driver.
272
27320010220:
274	The problems with libc have been corrected.  It is now mostly
275	safe to go back into the water.
276
27720010211:
278	The size of FILE was changed.  This breaks upgrading.  If
279	you must upgrade, be prepared for pain.  It also breaks almost
280	all binaries that you've compiled on -current.  You are warned
281	that before upgrading would be a good time to do a level 0
282	dump of your system.  No, really, I mean it this time.
283
284	To get to the new system, you'll need to use the following
285	workaround.  Hopefully this can be sorted out so that we
286	don't have to move this to the updating section.
287
288	To get around the installworld problem, do:
289		# cd /usr/src/usr.bin/sed
290		# make install
291		# cd /usr/src
292		# make installworld
293	If that doesn't work, then try:
294		# make -k installworld
295		# make installworld
296
29720010207:
298	DEVFS is now the default.  If you use vinum, make sure that you
299	do not include devfs in your kernel as problems result.
300
30120010205:
302	FFS_ROOT and CD9660_ROOT have been removed or deprecated.
303	Remove them from your config.
304
30520010122:
306	****************************** WARNING ******************************
307			buildkernel has been changed slightly
308	****************************** WARNING ******************************
309	KERNCONF replaces the variable KERNEL for buildkernel.  You
310	should update your scripts and make.conf accordingly.
311
31220010119:
313	config has changed to allow DEV_FOO as a replacement for NFOO.
314	This requires a new config to build correctly.
315
31620010116:
317	The kerrnel option I386_CPU is now mutually exclusive with the
318	other cpu types. If you have an i386 system, be sure that it
319	only had this line.  Remove it for all other configurations.
320
32120010110:
322	Changes to the kernel require it and burncd be in sync.
323
32420010102:
325	Everyone who has hw.sndunit set to something in
326	/etc/sysctl.conf, it is now hw.snd.unit.
327
32820010101:
329	ex and vi were broken by some changes to sys/queue.h.  If you
330	have a bad vi, you will see make buildworld fail with a core
331	dump while building termcap.  You can work around this problem
332	by adding -k to your make buildworld.  This will cause the
333	build to complete and install a new vi.  Once that's done, you
334	can rebuild again without the -k to pick up anything that
335	might have been ignored by the -k option.
336
337	Others have suggested that you can just rebuild libc if your
338	vi/ex is dynamically linked, but I've not received any reports
339	of this working.
340
34120001228:
342	There have been some changes to libcrypt in -current.  The
343	libscrypt/libdescrypt symlink sillyness is gone and the installed
344	libcrypt is fully functional.  Be aware of this.
345
34620001218:
347	Linksys Fast Ethernet PCCARD cards supported by the ed driver
348	now require the addition of flag 0x80000 to their config line
349	in pccard.conf(5).  This flag is not optional.  These Linksys
350	cards will not be recognized without it.
351
35220001205:
353	Important new FreeBSD-version stuff: PAM support has been worked
354	in, partially from the "Unix" OpenSSH version.  This requires
355	adding the following in pam.conf:
356
357	sshd    auth    sufficient      pam_skey.so
358	sshd    auth    required        pam_unix.so         try_first_pass
359	sshd    session required        pam_permit.so
360
36120001031:
362	cvs updated to 1.11.
363
36420001020:
365	The random device needs more entropy, so you need to make sure
366	that you've run mergemaster to get a /etc/rc which will seed
367	/dev/random.  If you don't and the system hangs after ldconfig,
368	then banging on the keyboard randomly until it unhangs is one
369	workaround.
370
37120001010:
372	****************************** WARNING ******************************
373				Sendmail has been updated.
374	****************************** WARNING ******************************
375	o mail.local(8) is no longer installed as a set-user-id binary.
376	o sendmail(8) is now built with STARTTLS support unless NO_OPENSSL
377	  is set.
378	o The default /etc/mail/sendmail.cf disables the SMTP EXPN and VRFY
379	  commands.
380	o Now using sendmail's version of vacation(1).
381	o The sendmail cf building tools (contrib/sendmail/cf) are installed
382	  in /usr/share/sendmail/cf.
383	o sendmail.cw changed to local-host-names
384
385	More details can be found at
386		http://people.freebsd.org/~imp/UPDATING/sendmail-20001010
387
38820001009:
389	The ports tree's new layout is in place.  Be sure to update
390	your entire ports tree, or you will have problems.
391
39220001006:
393	The perl build procedure no longer installs miniperl, nor uses
394	the installed miniperl.  It is recommended that you delete
395	/usr/bin/miniperl.
396
39720001005:
398	This weekend the ports tree will be updated to a new layout.
399	It will be in an inconsistent state until noted in the UPDATING
400	file, or with asami-san's message to the relevant mailing
401	lists.  With this new layout, you'll need to update the whole
402	tree for anything to work.
403
40420000928:
405	There was a change in the passwd format.  Need more information.
406
40720000916:
408	/boot/kernel/kernel.ko -> /boot/kernel/kernel change has taken
409	place.  Please update boot loader (not the boot blocks) at the
410	same time as your kernel.
411
41220000914:
413	The new pmtimer device is necessary for laptops.  Failure to
414	include the device will cause suspended laptops losing time
415	when they resume.  Include
416		device		pmtimer
417	in your config file and
418		hint.pmtimer.0.at="isa"
419	to your /boot/device.hints file.
420
42120000911:
422	The random device has been turned into a (pseudo-)device,
423	rather than an option. The supplied kernel config files have
424	been updated. You will need to do something similar in your
425	own kernel config file.
426	Remove:
427		options		RANDOMDEV
428	Add:
429		device		random
430	If you prefer to load the loadable module, you need to do
431	nothing.
432
43320000909:
434	The random device module has been renamed from randomdev.ko to
435	random.ko. You will need to edit your /boot/loader.conf to
436	reflect this if you load this module at boot time.
437	The line should read:
438		random_load="YES"
439
44020000907:
441	The SMPNG commit has happened.  It should work, but if it
442	doesn't, fallback to the PRE_SMPNG CVS tag.  There are likely
443	to be a variety of minor issues.  Please see 20000905 to make
444	sure you don't have model loading problems which might at
445	first blush appear related to SMP.
446
44720000906:
448	nsswitch has been imported from NetBSD.  Among other things,
449	this means that /etc/host.conf is no longer used.  See
450	nsswitch.conf(5) instead.  Note that at boot time rc.network
451	will attempt to produce a new nsswitch.conf file for you if you
452	don't have one, and you have host.conf.
453
45420000905:
455	The ucred structure changed size.  This breaks the interface
456	that mountd uses.  Trying to use an older mountd with a newer
457	kernel guarantees a panic.  This means that you need to use
458	kernels newer than today only with matching mountd, but you
459	needed to do that anyway with the boot loader changes.
460
46120000905:
462	The boot loader has been updated.  The new default kernel is
463	now /boot/kernel/kernel.ko.  The new default module location
464	is /boot/kernel.
465
466	You *MUST* upgrade your boot loader and kernel at the same time.
467	The easiest way to do this is to do the buildworld/buildkernel/
468	installkernel/installworld dance.
469
470	Furthermore, you are urged to delete your old /modules directory
471	before booting the new kernel, since kldload will find stale
472	modules in that directory instead of finding them in the correct
473	path, /boot/kernel.  The most common complaint that this cures
474	is that the linux module crashes your machine after the update.
475
476	if [ ! -d /boot/kernel.old ]; then
477		mv /modules.old /boot/kernel.old
478		chflags noschg /kernel.old
479		mv /kernel.old /boot/kernel.old/kernel.ko
480		chflags schg /boot/kernel.old/kernel.ko
481	fi
482
48320000904:
484	A new issue with the sendmail upgrade has come to light.
485	/etc/aliases has moved to /etc/mail/aliases.  Mergemaster will
486	incorrectly install the default aliases in /etc/mail rather than
487	move the old one from /etc.  So you'll need to manually move the
488	file, create a symbolic link, remove the old /etc/aliases.db and
489	run newaliases.  For safety sake, you should stop sendmail
490	while doing this and run the upgrade when locally sourced email
491	is not likely to be generated.
492
49320000825:
494	/boot/device.hints is now required for installkernel to
495	succeed.  You should copy GENERIC.hints for your architecture
496	into /boot/device.hints.  If and only if you compile hints
497	into your kernel, then this file may be empty.  Please note,
498	if you have an empty or missing /boot/device.hints file and
499	you neglected to compile hints into your kernel, no boot
500	messages will appear after the boot loader tries to start the
501	kernel.
502
50320000821:
504	If you do NOT have ``options RANDOMDEV'' in your kernel and
505	you DO want the random device then add randomdev_load="YES" to
506	/boot/loader.conf.
507
50820000812:
509	suidperl is now always built and installed on the system, but
510	with permissions of 511.  If you have applications that use
511	this program, you are now required to add ENABLE_SUIDPERL=true
512	to /etc/make.conf.  If you forget to do this,
513		chmod 4511 /usr/bin/suidperl
514	will fix this until the next build.
515
51620000812:
517	sendmail has been updated from 8.9.3 to 8.11.0.  Some of the more
518	visible changes that may immediately affect your configuration
519	include:
520	- New default file locations from src/contrib/sendmail/cf/README
521	- newaliases limited to root and trusted users
522	- MSA port (587) turned on by default
523	- New queue file naming system so can't go from 8.11 -> 8.9
524	- FEATURE(`rbl') renamed to FEATURE(`dnsbl')
525	- FEATURE(`nullclient') is more full featured
526	- FEATURE(`nouucp') requires an argument: `reject' or `nospecial'
527	- mail.local FreeBSD-only -b option changed to -B
528	- See src/contrib/sendmail/RELEASE_NOTES for more info
529
53020000810:
531	suidperl (aka sperl) is no longer build by default.  You must
532	specifically define BUILD_SUIDPERL to "true" for it to be build.
533	Furthermore, we recommend that you remove /usr/bin/sperl* and
534	/usr/bin/suidperl files from your system unless you have a
535	specific use for it.
536
53720000729:
538	Networking defaults have been tightened.  Anybody upgrading
539	/etc/defaults/rc.conf needs to add the following lines to
540	/etc/rc.conf if they want to have the same setup
541	afterwards (unless the variables already are set, of course):
542		# Enable network daemons for user convenience.
543		inetd_enable="YES"
544		portmap_enable="YES"
545		sendmail_enable="YES"
546
54720000728:
548	If you have null_load="YES" in your /boot/loader.conf, you
549	will need to change that to nullfs_load="YES".
550
55120000728:
552	The "installkernel" target has changed slightly. Now even if
553	you override KERNEL e.g. 'make installkernel KERNEL=MYKERNEL'
554	it will install the MYKERNEL file (built with the buildkernel
555	target) as /kernel rather than /MYKERNEL. Those who have
556	updated their /boot/loader.conf files to point to /MYKERNEL
557	should remove that entry or perform manual rename of /kernel
558	to /MYKERNEL.
559
56020000711:
561	If you use CVSUP or CTM to get CVS trees, AND you used to get
562	the old crypto files from internat.freebsd.org AND you check
563	out files from the CVS tree with the cvs command, please read
564		http://people.freebsd.org/~imp/internat.txt
565	for details on potential problems that you might have and how
566	to get around them.
567
568	If you are merely a mirror, or don't answer yes to each of the
569	clauses above, you needn't worry.
570
57120000711:
572	/etc/security has been updated to print the inode number of
573	setuid programs that have changed.  You will see a large spike
574	in the number of changed programs the first time when you run
575	mergemaster to get a new /etc/security.
576
57720000710:
578	/dev/random now has good entropy collection (from the keyboard
579	and sysmouse drivers). Please ensure that either `options
580	RANDOMDEV' is present in your kernel config file or that
581	`randomdev_load="YES"' is in your /boot/loader.conf. If you do
582	not have the /dev/random driver, OpenSSL (and consequently
583	lots of crypto tools (like SSH)) will fail with strange
584	errors. (see below, 20000624).
585
586	FreeBSD-current is safe again to run Crypto.
587
58820000709:
589	phk made the malloc default options AJ.  This may slow things
590	down and uncover other latent bugs in the code.  If you need to
591	run at full speed, you can disable this by doing the following:
592		ln -s aj /etc/malloc.conf
593
59420000706:
595	libftpio's version was accidentally bumped a few days ago.  This
596	has been corrected.  You may need to remove /usr/lib/libftpio.so.6
597	before doing your next buildworld/installworld pair.  It certainly
598	won't hurt to remove it before the update procedure.  It will
599	break fetch until a new one is built, but ftp can be used in the
600	interim if needed.
601
60220000705:
603	The crypto packages have changed for the cvsup.  This has been done
604	in a backward compatible way, but the old packages will go away at
605	some point in the future.  Look at /usr/share/examples/cvsup for
606	details.
607
60820000704:
609	With the new sys/modules/sound/drivers/*, you will need to
610	set SYSDIR until you do an installworld after July 7th.
611
61220000704:
613	rc.shutdown and rc will now call the rc.d scripts with start
614	or stop.  This may cause some harmless warnings from older
615	rc.d scripts that haven't been updated.
616
61720000630:
618	The libfetch based version of fetch has gone into the tree.
619	Minor problems may result on some of the less popular sites,
620	which should be reported to des@freebsd.org.
621
62220000625:
623	From approximately this date forward, one must have the crypto
624	system installed in order to build the system and kernel.
625	While not technically strictly true, one should treat it as
626	required and grab the crypto bits.  If you are grabbing CVS
627	trees, src-all and cvs-crypto should be treated as if they
628	were required.  You should check with the latest collections
629	to make sure that these haven't changed.
630
63120000624:
632	Mark Murray just committed the first parts of a cleanup of
633	/dev/zero, et al.  This is also cleaning up /dev/random.
634	The entropy is disconnected, so DO NOT USE VERSIONS OF FREEBSD
635	-CURRENT FROM THIS POINT FORWARD for cryptographic services
636	until Mark can merge in the fixes to this work in progress.
637	openssh and openssl should not be used to generate keys from this
638	date to the completion of the work.
639
640	If you must operate at this reduced level of security, add '
641	options RANDOMDEV' to your kernel or modload the randomdev
642	module.  You may also need to copy a new MAKEDEV to /dev and
643	recreate the random and urandom devices.
644
64520000622:
646	The license on the softupdates is now a standard 2 clause
647	BSD license.  You may need to remove your symbolic links
648	that used to be required when updating.
649
65020000621:
651	Scott Flatman <sf@aracnet.com> sent in a decent write-up on
652	the config file update procedure.
653		http://people.freebsd.org/~imp/config-upd.html
654	NOTE: LINT is gone.  It has been replaced with NOTES.  NOTES
655	isn't buildable.  However, you can generate a LINT file.
656
65720000620:
658	Binutils 2.10 have hit the tree, or will shortly.  As soon
659	as they do, the problem noted in 20000522 will be resolved and
660	that workaround will no longer be required.
661
66220000615:
663	phk removed the compatibility creation of wd devices in the
664	ad driver.  If you haven't done so already, you must update
665	your fstab, etc to use the ad devices instead of the wd
666	devices.
667
668	In addition, you'll need to update your boot blocks to a
669	more modern version, if you haven't already done so.  Modern
670	here means 4.0 release or newer (although older releases
671	may work).
672
67320000612:
674	Peter took an axe to config(8).  Be sure that you read his mail
675	on the topic before even thinking about updating.  You will
676	need to create a /boot/device.hints or add a hints directive
677	to your config file to compile them in statically.  The format
678	of the config file has changed as well.  Please see GENERIC or
679	NEWCARD for examples of the new format.
680
68120000522:
682	A new set of binutils went into the tree today.  Anybody
683	building a kernel after this point is advised that they need
684	to rebuild their binutils (or better yet do a
685	buildworld/installworld) before building a new kernel.
686
687	Due to bugs in binutils, using malloc options (eg /etc/malloc.conf
688	or MALLOC_OPTIONS env var) J will cause ld to dump core.  It
689	is recommended that you don't set this option until the problem
690	is resolved.
691
69220000513:
693	The ethernet drivers were all updated to clean up the BPF handling.
694
69520000510:
696	The problems with boot blocks on the alphas have been corrected.
697	This will require some care in updating alphas.  A new libstand
698	is requires for the boot blocks to build properly.
699
70020000503:
701	Recompile all kld modules.  Proper version dependency info
702	is now available.
703
70420000502:
705	Modules have been disconnected from the buildworld tree and
706	connected to the kernel building instead.
707
70820000427:
709	You may need to build gperf
710		cd /usr/src/gnu/usr.bin/gperf && make depend all install
711	when upgrading from 4.0 -> current.  The build system now uses
712	an option only in -current.
713
71420000417:
715	The method that we brand ELF binaries has changed to be more
716	acceptable to the binutils maintainers.  You will need to
717	rebrand your ELF binaries that aren't native.  One problem
718	binary is the Linux ldconfig.  After your make world, but
719	before you reboot, you'll need to issue:
720		brandelf -t Linux /compat/linux/sbin/ldconfig
721	if you have Linux compatibility enabled on your machine.
722
72320000320:
724	If you have really bad/marginal IDE drives, you may find they
725	don't work well.  Use pio mode instead.  The easiest way to
726	cope if you have a problem combination is to add:
727		/sbin/sysctl -w hw.atamodes=pio,pio,pio,pio
728	to the start of /etc/rc.conf.
729
73020000319:
731	The ISA and PCI compatibility shims have been connected to the
732	options COMPAT_OLDISA and COMPAT_OLDPCI.  If you are using old
733	style PCI or ISA drivers (i.e. tx, voxware, etc.) you must
734	include the appropriate option in your kernel config.  Drivers
735	using the shims should be updated or they won't ship with
736	5.0-RELEASE, targeted for 2001.
737
73820000318:
739	We've entered the traditional post release dumping party.
740	Large kernel changes are being committed and are in the
741	works.  It is important to keep the systems' klds and kernel
742	in sync as kernel interfaces and structures are changing.
743	Before reporting kernel panics, make sure that all modules
744	that you are loading are up to date.
745
74620000315:
747	If you are upgrading from an older version of FreeBSD, you
748	need to update your boot blocks as well.  'disklabel -B ad0'
749	will do the trick.  This isn't critical until you remove your
750	wd device entries in /dev, at which point your system will not
751	boot.
752
75320000315:
754	4.0 RELEASE shipped.  Please see the 4.0 UPDATING file for how
755	to upgrade to 4.0 from 3.x.
756
757COMMON ITEMS:
758
759	General Notes
760	-------------
761	Avoid using make -j when upgrading.  From time to time in the
762	past there have been problems using -j with buildworld and/or
763	installworld.  This is especially true when upgrading between
764	"distant" versions (eg one that cross a major release boundary
765	or several minor releases, or when several months have passed
766	on the -current branch).
767
768	To build a kernel
769	-----------------
770	If you are updating from a prior version of FreeBSD (even one just
771	a few days old), you should follow this procedure. With a
772	/usr/obj tree with a fresh buildworld,
773	make buildkernel KERNCONF=YOUR_KERNEL_HERE
774	make installkernel KERNCONF=YOUR_KERNEL_HERE
775
776	To just build a kernel when you know that it won't mess you up
777	--------------------------------------------------------------
778	cd src/sys/{i386,alpha}/conf
779	config KERNEL_NAME_HERE			[1]
780	cd ../../compile/KERNEL_NAME_HERE
781	make depend
782	make
783	make install
784
785	[1] If in doubt, -r might help here.
786
787	If this fails, go to the "To build a kernel" section.
788
789	To rebuild everything and install it on the current system.
790	-----------------------------------------------------------
791	make world
792	Build a new kernel, see above.
793
794	To upgrade from 4.x-stable to current
795	-------------------------------------
796	make buildworld
797	make buildkernel KERNCONF=YOUR_KERNEL_HERE
798	cp src/sys/${MACHINE_ARCH}/conf/GENERIC.hints /boot/device.hints [2]
799	make installkernel KERNCONF=YOUR_KERNEL_HERE
800	reboot in single user [3]
801	make installworld
802	mergemaster		[4]
803	[1]
804	<reboot>
805
806	Make sure that you've read the UPDATING file to understand the
807	tweaks to various things you need.  At this point in the life
808	cycle of current, things change often and you are on your own
809	to cope.  The defaults can also change, so please read ALL of
810	the UPDATING entries.
811
812	Also, if you are tracking -current, you must be subscribed to
813	freebsd-current@freebsd.org.  Make sure that before you update
814	your sources that you have read and understood all the recent
815	messages there.  If in doubt, please track -stable which has
816	much fewer pitfalls.
817
818	[1] If you have third party modules, such as vmware, you
819	should disable them at this point so they don't crash your
820	system on reboot.
821
822	[2] If you have legacy ISA devices, you may need to create
823	your own device.hints to reflect your unique hardware
824	configuration.
825
826	[3] From the bootblocks, boot -s, and then do
827		fsck -p
828		mount -u /
829		mount -a
830		cd /usr/src
831		adjkerntz -i		# if COMS is wall time
832
833	[4] Note: This step is non-optional.  Failure to do this step
834	can result in a significant reduction in the functionality of the
835	system.  Attempting to do it by hand is not recommended and those
836	that pursue this avenue should read this file carefully, as well
837	as the archives of freebsd-current and freebsd-hackers mailing lists
838	for potential gotchas.
839
840FORMAT:
841
842This file contains a list, in reverse chronological order, of major
843breakages in tracking -current.  Not all things will be listed here,
844and it only starts on March 15, 2000.  Updating files can found in
845previous releases if your system is older than this.
846
847Please filter your entries through Warner Losh (imp@village.org) so
848that the style, formatting, etc of this file can be maintained.
849
850Copyright information:
851
852Copyright 1998, 2001 M. Warner Losh.  All Rights Reserved.
853
854Redistribution, publication, translation and use, with or without
855modification, in full or in part, in any form or format of this
856document are permitted.
857
858THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
859IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
860WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
861DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
862INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
863(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
864SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
865HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
866STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
867IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
868POSSIBILITY OF SUCH DAMAGE.
869
870If you find this document useful, and you want to, you may buy the
871author a beer.
872
873Contact Warner Losh if you have any questions about your use of
874this document.
875
876$FreeBSD$
877