]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - UPDATING
Add note: cvs checkout -P needed for fresh tree.
[FreeBSD/FreeBSD.git] / UPDATING
1 Updating Information for FreeBSD current users
2
3 This file is maintained and copyrighted by M. Warner Losh
4 <imp@village.org>.  See end of file for further details.  For commonly
5 done items, please see the COMMON ITEMS: section later in the file.
6
7 NOTE TO PEOPLE WHO THINK THAT 5.0-CURRENT IS SLOW:
8         FreeBSD 5.0-CURRENT 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
20 20021024:
21         Old, compatibility slices have been removed in GEOM kernels.  This
22         means that you will have to update your /etc/fstab to not use
23         disk devices of the form /dev/ad0a.  Instead, you now must
24         specify /dev/ad0s1a, or whatever slice your FreeBSD partition
25         really is on.  The old device names have gone away, so if you
26         use them anywhere else, you must also adjust those uses.
27
28 20021023:
29         Alphas with kernels from between 20020830 and 20021023 and/or
30         rtld (ld-elf.so.1) older than 20021023 may experience problems
31         with groff while doing a buildworld (kernel: "out of memory",
32         fixed in rev 1.129 of kern/imgact_elf.c; rtld: "too few PT_LOAD
33         segments", fixed in rev 1.8 of libexec/rtld-elf/map_object.c).
34
35         So, to successfully upgrade your Alpha, you must either
36         upgrade your kernel and rtld first (which might be a bit
37         tricky), or avoid running the bootstrapped groff during the
38         "transitional" buildworld.  To avoid running groff during the
39         transitional upgrade run make buildworld with -DNOMAN,
40         -DNO_SHAREDOCS, and -DNO_LPR.
41
42 20020831:
43         gcc has been upgraded to 3.2.  It is not all binary compatible
44         with earlier versions of gcc for c++ programs.  All c++
45         programs and libraries need to be recompiled.
46
47         Also, if you encounter g++ issues, rm /usr/include/g++/* before
48         doing an installworld to make sure that stale files are removed.
49
50 20020827:
51         Our /etc/termcap now has all the entries from the XFree86 xterm
52         almost unchanged. This means xterm now supports color by default.
53         If you used TERM=xterm-color in the past you now should use
54         TERM=xterm. (xterm-color will lead to benign warnings).
55
56 20020815:
57         A "bug" in gcc(1) that was hiding warning in system headers was
58         fixed.  It's probably time to add -DNO_WERROR to your make line
59         again.
60
61 20020729:
62         COPY is being deprecated.  The 20010530 change was reverted, as
63         it causes far more pain than was expected, and to always compare
64         before installing, please use INSTALL="install -C" again.  The
65         -C option is now silently ignored when used with the -d option.
66
67 20020702:
68         Problems with libc_r clients like KDE and GNOME have been resolved.
69         There are still some minor problems with some signals but the 
70         system is stable enough for general use again. SMP is less so than UP
71         but each can successfully complete multiple buildworlds.
72         Libkvm needs to be recompiled due to KSE.
73
74 20020701:
75         Now would be a bad time to upgrade.  Something in or near the
76         KSE commit totally broke programs using libc_r like KDE and
77         GNOME.
78
79 20020511:
80         The k5su utility installed as part of Kerberos 5 is no longer
81         installed with the set-user-ID bit set by default.  Add
82         ENABLE_SUID_K5SU=yes to /etc/make.conf to have it installed
83         with the set-user-ID bit set.
84
85 20020510:
86         Gcc 3.1 debugging format (cc -g) has changed from STABS to DWARF2.
87         Unfortunately our native GDB (at version 4.18) does not understand
88         the DWARF2 debugging format.  Thus you must use `gcc -gstabs+' to
89         generated debugging information for our native GDB.
90
91 20020510:
92         Due to the way CVS works, it may not properly update src/contrib/gcc
93         to the 3.1 sources.  The easiest fix is to `rm -rf' src/contrib/gcc
94         and then do a cvs update.
95
96 20020421:
97         When exec'ing set[ug]id executables, the kernel now ensures that the
98         stdio file descriptors (0..2) are open.  See FreeBSD-SA-02:23.stdio.
99
100 20020404:
101         New sendmail startup scripts have been installed to make it
102         easier to use alternative MTAs with FreeBSD.  Setting the rc.conf
103         variable sendmail_enable to "NO" no longer prevents any sendmail
104         daemons from starting.  Instead, either set sendmail_enable to
105         "NONE" or change mta_start_script to a script for starting
106         an alternative MTA.  Setting mta_start_script to "" will
107         also prevent any MTA from being started at boot.
108
109 20020403:
110         UCONSOLE is no longer a valid kernel option.
111
112 20020315:
113         FreeBSD 5.0 DP-1 was basically branched today.
114
115 20020225:
116         Warnings are now errors in the kernel.  Unless you are a developer,
117         you should add -DNO_WERROR to your make line.
118
119 20020217:
120         sendmail 8.12.2 has been imported.  The sendmail binary is no
121         longer a set-user-ID root binary and the infrastructure to support
122         command line mail submission has changed.  Be sure to run
123         mergemaster (especially for updating /etc/rc, /etc/defaults/rc.conf,
124         and /etc/mail) and read /etc/mail/README for more details.
125
126         Due to the import of sendmail 8.12.2, a new user and group are
127         required in order for sendmail to run as a set-group-ID
128         binary.  A 'make installworld' will use the new user and group
129         to set the owner and group of /var/spool/clientmqueue and will
130         fail if the new user and group do not exist.  The 'smmsp' user
131         and group must be merged from src/etc/group and
132         src/etc/master.passwd before using 'make installworld'.
133         'mergemaster -p' will do this.  You may need to install
134         mergemaster before this will work if you are updating from a
135         very old version of current.  The updating recipe has changed
136         as of this date.
137
138 20020112:
139         The preferred configuration method for PAM is now /etc/pam.d/
140         rather than /etc/pam.conf.  If you have an unmodified
141         pam.conf, just delete it after your next mergemaster run.  If
142         you have local modifications, you can use
143         /usr/src/etc/pam.d/convert.pl to incorporate them into your
144         /etc/pam.d.
145
146         Please see the following url for more details:
147 http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<xzp6667fyoa.fsf@flood.ping.uio.no>
148 20011229:
149         If anyone here is already using the new rc.conf(5) variable
150         networkfs_types, please note that it has changed
151 http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<9744.1009655556@axl.seasidesoftware.co.za>
152
153 20011220:
154         sys/i4b/driver/i4b_ispppsubr.c has been retired.  This file
155         started out its life in the ISDN4BSD project as an offspring
156         from sys/net/if_spppsubr.c, which eventually got a life of its
157         own.  All the accumulated features and bugfixes of the i4b
158         version have now been merged back into the base system's
159         version now.  The only user-visible change resulting from this
160         is that i4b's sppp(4) interfaces are to be managed with
161         spppcontrol(8) again, since ispppcontrol(8) has been retired
162         as well.  (There has never been rc file support for
163         ispppcontrol in -current, but only in -stable.  That will be
164         reverted by the time the changes are MFCed.)
165
166 20011215:
167         The fdc(4) driver has been updated and now automatically
168         recognizes media in `standard' formats (like 1440 KB and
169         720 KB for a 3.5" high-density drive) when accessing the
170         default device node (e. g. /dev/fd0).  The old variety of
171         floppy device nodes /dev/fd*.* is no longer present by
172         default, devices can be created (in DEVFS) on demand.  They
173         will need to be customized then for `odd' densities using
174         fdcontrol(8).
175
176 20011209:
177         The bugs in procfs' debugging support code have been fixed,
178         and truss(1) now works again.
179
180 20011207:
181         Daily security checks have been split out to use the periodic(8)
182         scripts.  Some change in configuration may be necessary.  Please
183         see 
184 http://www.freebsd.org/cgi/mid.cgi?db=mid&id=<20011207155805.R8975@blossom.cjclark.org>
185         for details.
186
187 20011204:
188         sos added VCD/SVCD support to ata driver and that needs the
189         kernel and burncd to be in sync.
190
191 20011203:
192         The procfs pseudo-filesystem has now been converted to use the
193         pseudofs framework.  If you have 'options PROCFS' in your
194         kernel config, you'll need to add 'options PSEUDOFS' if it's
195         not there already.
196
197         This change temporarily breaks truss(1); use ktrace(1) instead
198         until the issue has been resolved.
199
200 20011202:
201         A security hole in OpenSSH involving `UseLogin yes' has been
202         patched.
203
204 20011126:
205         You need to remove /usr/obj/.../usr.bin/tip before rebuilding
206         after this date.  You need to do this only once.
207
208 20011103:
209         Most of the awk issues have been resolved.  Some rough
210         edges may be left, but for the most part things should be
211         back to "normal." For CURRENT's usual definition of "normal."
212
213 20011030:
214         Awk has been upgraded to the one true awk from bell labs.  Expect
215         choppy waves in the upgrade process.
216
217 20011030:
218         The asr driver problem has been resolved.
219
220 20011027:
221         Due to changes in other parts of the system, the asr driver
222         now causes the system to panic on boot.  Do not use it pending
223         correction.  Comment it out of any kernel config file that you
224         try to use from this date forward.
225
226 20011025:
227         When crossbuilding, use TARGET=xxx where you used to use
228         MACHINE=xxx.  You don't need to set TARGET_ARCH and TARGET,
229         unless you are changing both of them.  To cross build pc98 on
230         an alpha, for example, you need to set TARGET=pc98 and
231         TARGET_ARCH=i386.
232
233 20011001:
234         The kernel interface that burncd depends on has changed.
235         You must recompile both the kernel and userland applications
236         at the same time.
237
238 20010929:
239         When crossbuilding, please set TARGET_ARCH rather than
240         MACHINE_ARCH to indicate the target.  In the future, one will
241         set TARGET_MACHINE where you set MACHINE now.  At the moment,
242         setting MACHINE alone for same MACHINE_ARCH machines works
243         (eg, you can build pc98 on a i386 machine and vice versa).
244
245 20010927:
246         Some weird problems result from using ACPI on some machines.
247         To disable ACPI you can add
248                 hint.acpi.0.disable="1"
249         to /boot/loader.conf (or by putting set X=Y at the boot
250         loader "ok" prompt).
251
252         Alternatively, you can remove it from /boot/kernel/acpi.ko
253         or use the MODULES_OVERRIDE function in your kernel config
254         file and not list acpi in that list.
255
256 20010924:
257         The buildworld has been fixed.  You may need to install
258         the 4.x compatibility libraries for some old binaries
259         to work.  Add COMPAT4X=true to your /etc/make.conf to
260         get them installed on every installworld, or execute the
261         following to get them installed only once:
262                 cd src/lib/compat/compat4x.<arch>
263                 make all install
264         You will see ``__stdoutp undefined'' until you do this.
265
266 20010919:
267         There's a bug in the world build process.  The cross-tools
268         are build with the NEW headers, but the OLD libc.a.  This
269         leads to all kinds of problems with the new libc.  A temporary
270         workaround is to add
271                 CFLAGS="-O -pipe -D_OLD_STDIO"
272         before building world when upgrading from 4.x to current.  This
273         can be removed afterwards.
274
275         A proper fix to the buildworld target is needed.
276
277 20010918:
278         Peter has committed his new kthread nfs client/server code.
279         NFS may be unstable after this date.
280
281 20010912:
282         KSE has hit the tree.  Lots of things are now different in
283         the kernel.  While a few problems were introduced in the
284         initial commit, most of the major ones have been found and
285         corrected.
286
287 20010901:
288         In OLDCARD, CardBus bridges appear to be stable.  The work
289         arounds described in the 20010604 entry are now no longer
290         necessary and will be ignored.  Most insert/remove problems
291         have been rectified around this date.
292
293 20010823:
294         named now runs as user bind and group bind rather than as 
295         root.  If named_enable is set to YES in /etc/rc.conf, ensure 
296         that user bind is available in /etc/passwd (using vipw(8)) 
297         and that group bind is available in /etc/group.  Also make 
298         sure that user or group bind has read (and not write) 
299         permission for your name server configuration and that it 
300         has read and write permission for your slave zone files and 
301         directory.
302  
303         If you wish to continue to run named as root (a less secure 
304         alternative), add a line to /etc/rc.conf saying
305  
306                 named_flags=
307
308 20010709:
309         The PAM libraries have had an API upgrade that is beyond
310         the ability of the shared library major number to handle.
311         It is manifested by PAM-using ports dumping core. The
312         solution is to rebuild those ports.
313
314 20010628:
315         The kernel compile module has moved from src/sys/compile/FOO
316         to src/sys/${MACHINE}/compile/FOO.
317
318 20010625:
319         The pccard modem issue from 20010613 has been corrected.
320         OLDCARD support is still a little weak in -current.  slot 1 is
321         known not to work on some TI based cardbus bridges.  Some
322         cardbus bridges do not properly detect insert/removal events.
323         IRQ configuration needs more safety belts.
324
325 20010617:
326         Softupdates problems have been corrected.
327
328 20010614:
329         Peter ripped out the linkerset support.  You must, as always,
330         rerun config after you cvsup if you are using the traditional
331         kernel building methods.
332
333 20010613:
334         pccard modems may not work with current after 20010604 date.  Some
335         do, others result in panics.  *MAKE*SURE* that you update your
336         config and /etc/rc.conf ala the 20010604 entry, or you will have
337         problems (this issue will be fixed, it just hasn't been yet).
338
339 20010613:
340         SOFTUPDATES seem to be broken since the middle of May or so.  Do not
341         use them in current.  You can disable softupdates on all mounted
342         partitions, or remove SOFTUPDATES the kernel config file.
343
344 20010612:
345         After Peter's commits to the hints code, people have been noticing
346         that certain devices are attached (or try to) twice.  This is due
347         to having both static hints as well as a /boot/device.hints.  To
348         work around this issue, please use only one or the other mechanism
349         until this bug is fixed.
350
351         Please note that a feature of config is that if you have config
352         file FOO and FOO.hints, it automatically adds FOO.hints to the
353         hints.c file, wheather you want it to or not.
354
355 20010610:
356         Locale names have changed to match other systems better.
357
358 20010604:
359         pccard support for pci cards has been committed.  You must change
360         your /etc/pccard.conf irq lines.  It must match the irq used by
361         pcic device.  Interrupt storms may result if you fail to do this.
362         Interrupt storms look a lot like a hang.
363
364         You must also install a new pccardd, otherwise you will get an
365         interrupt storm at card reset time (just after it tells you what
366         it is).
367
368         pccardd_flags="-I" is necessary for the time being.  It tells pccardd
369         not to ask the kernel if the interrupt is really free or not before
370         using it.  You can either change the /etc/pccard.conf irq lines to
371         match pcic, or add "-i X" to the pccardd_flags.
372
373 20010530:
374         INSTALL=install -C is being deprecated.  If you want to do this,
375         use COPY=-C instead.  The former method will be supported for only
376         a limited time.  If you see
377
378 install: warning: the -d and -C options may not be specified together
379
380         in your makeworld, then you need to migrate towards using
381         COPY=-C.
382
383 20010525:
384         It appears that vm is now stable enough to use again.  However,
385         there may be other problems, so caution is still urged.  alpha
386         definitely is in bad shape.
387
388 20010521:
389         Minor repo damange has happened.  This may cause problems
390         with cvsup of ports.  If you get errors, please see
391         http://www.FreeBSD.org/cgi/query-pr.cgi?pr=27495
392         at the bottom for details on a workaround.  The error message
393         is
394 Updater failed: Cannot delete "/usr/ports/www/jakarta-tomcat/files": Directory not empty
395
396 20010520:
397         Vm and/or swapping are busted on -current.  Please be patient.
398
399 20010519:
400         pccard has had much reorganizational work done to it over
401         the past few days.  Everything should still work, but if
402         not, please contact imp@freebsd.org.
403
404 20010517:
405         ata ioctl changed.  Make sure to recompile both kernel and
406         userland at the same time.
407
408 20010517:
409         New ncurses imported.
410
411 20010512:
412         DEVFS is now opt out, not opt in.  Barring major problems, this
413         will be the only way to go starting July 1.
414
415 20010504:
416         OpenSSH has been updated to 2.9.  Some defaults are different,
417         including RhostsRSAAuthentication, which changes from yes to no.
418
419 20010502:
420         Perl breakage in 20010501 was corrected at 14:18:33 PDT.
421
422 20010501:
423         Building perl was broken at 02:25:25 PDT.
424
425 20010430:
426         The bug in 20010429 was corrected at 07:35:37 PDT.  It is safe to
427         go back in the water.
428
429 20010429:
430         A bad bug was committed at 04:48:42 PDT.  Don't use kernels after
431         this date, but before the correction date.
432
433 20010423:
434         old fsck and new kernel interactions appear to have been fixed.
435
436 20010411:
437         fsck and the kernel were changed to handle some optimizations
438         to directory layout.  This breaks backward compatibility.
439         Update only if you understand that you must not use the old
440         fsck with the new kernel ever.
441
442 20010330:
443         fsck has changed the meaning of the pass column in /etc/fstab.
444         Please see the cvs commit to fsck.8 or the fsck.8 man page for
445         details.  It is unclear if changes to /etc/fstab are necessary.
446
447 20010319:
448         portmap had changed name to rpcbind for maximum POLA in your
449         current world.  /etc/hosts.{allow,deny} needs changes.  nfs and
450         other rpc based programs that rely on portmapper will not work
451         without updates to /etc/hosts.{allow,deny} and /etc/netconfig.
452
453 20010315:
454         ata subsystem changes.  ATA_ENABLE_ATAPI_DMA, ATA_ENABLE_WC
455         and ATA_ENABEL_TAGS are no longer kernel options.  They have
456         been replaced by tunables.  See ata.4 for details.
457
458 20010312:
459         The fxp driver was converted to use miibus.  If you compile
460         fxp into your kernel statically, you will need to add miibus.
461
462 20010312:
463         The wi device now defaults to BSS (infrastructure) mode
464         instead of ad-hoc.
465
466 20010310:
467         /dev/urandom should be a symbolic link to /dev/random now.
468         Users of current not using DEVFS need to run MAKEDEV std.
469         ssh might not work if you don't.
470
471 20010303:
472         The ed driver has been updated.  It now allows mii attachments,
473         which means that you must include the miibus in your kernel if
474         you use the ed driver.
475
476 20010220:
477         The problems with libc have been corrected.  It is now mostly
478         safe to go back into the water.
479
480 20010211:
481         The size of FILE was changed.  This breaks upgrading.  If
482         you must upgrade, be prepared for pain.  It also breaks almost
483         all binaries that you've compiled on -current.  You are warned
484         that before upgrading would be a good time to do a level 0
485         dump of your system.  No, really, I mean it this time.
486
487         To get to the new system, you'll need to use the following
488         workaround.  Hopefully this can be sorted out so that we
489         don't have to move this to the updating section.
490
491         To get around the installworld problem, do:
492                 # cd /usr/src/usr.bin/sed
493                 # make install
494                 # cd /usr/src
495                 # make installworld
496         If that doesn't work, then try:
497                 # make -k installworld
498                 # make installworld
499
500 20010207:
501         DEVFS is now the default.  If you use vinum, make sure that you
502         do not include devfs in your kernel as problems result.
503
504 20010205:
505         FFS_ROOT and CD9660_ROOT have been removed or deprecated.
506         Remove them from your config.
507
508 20010122:
509         ****************************** WARNING ******************************
510                         buildkernel has been changed slightly
511         ****************************** WARNING ******************************
512         KERNCONF replaces the variable KERNEL for buildkernel.  You
513         should update your scripts and make.conf accordingly.
514
515 20010119:
516         config has changed to allow DEV_FOO as a replacement for NFOO.
517         This requires a new config to build correctly.
518
519 20010116:
520         The kerrnel option I386_CPU is now mutually exclusive with the
521         other cpu types. If you have an i386 system, be sure that it
522         only had this line.  Remove it for all other configurations.
523
524 20010110:
525         Changes to the kernel require it and burncd be in sync.
526
527 20010102:
528         Everyone who has hw.sndunit set to something in
529         /etc/sysctl.conf, it is now hw.snd.unit.
530
531 20010101:
532         ex and vi were broken by some changes to sys/queue.h.  If you
533         have a bad vi, you will see make buildworld fail with a core
534         dump while building termcap.  You can work around this problem
535         by adding -k to your make buildworld.  This will cause the
536         build to complete and install a new vi.  Once that's done, you
537         can rebuild again without the -k to pick up anything that
538         might have been ignored by the -k option.
539
540         Others have suggested that you can just rebuild libc if your
541         vi/ex is dynamically linked, but I've not received any reports
542         of this working.
543
544 20001228:
545         There have been some changes to libcrypt in -current.  The
546         libscrypt/libdescrypt symlink sillyness is gone and the installed
547         libcrypt is fully functional.  Be aware of this.
548
549 20001218:
550         Linksys Fast Ethernet PCCARD cards supported by the ed driver
551         now require the addition of flag 0x80000 to their config line
552         in pccard.conf(5).  This flag is not optional.  These Linksys
553         cards will not be recognized without it.
554
555 20001205:
556         Important new FreeBSD-version stuff: PAM support has been worked
557         in, partially from the "Unix" OpenSSH version.  This requires
558         adding the following in pam.conf:
559   
560         sshd    auth    sufficient      pam_skey.so
561         sshd    auth    required        pam_unix.so         try_first_pass
562         sshd    session required        pam_permit.so
563
564 20001031:
565         cvs updated to 1.11.
566
567 20001020:
568         The random device needs more entropy, so you need to make sure
569         that you've run mergemaster to get a /etc/rc which will seed
570         /dev/random.  If you don't and the system hangs after ldconfig,
571         then banging on the keyboard randomly until it unhangs is one
572         workaround.
573
574 20001010:
575         ****************************** WARNING ******************************
576                                 Sendmail has been updated.
577         ****************************** WARNING ******************************
578         o mail.local(8) is no longer installed as a set-user-id binary.
579         o sendmail(8) is now built with STARTTLS support unless NO_OPENSSL
580           is set.
581         o The default /etc/mail/sendmail.cf disables the SMTP EXPN and VRFY
582           commands.
583         o Now using sendmail's version of vacation(1).
584         o The sendmail cf building tools (contrib/sendmail/cf) are installed
585           in /usr/share/sendmail/cf.
586         o sendmail.cw changed to local-host-names
587
588         More details can be found at
589                 http://people.freebsd.org/~imp/UPDATING/sendmail-20001010
590
591 20001009:
592         The ports tree's new layout is in place.  Be sure to update
593         your entire ports tree, or you will have problems.
594
595 20001006:
596         The perl build procedure no longer installs miniperl, nor uses
597         the installed miniperl.  It is recommended that you delete
598         /usr/bin/miniperl.
599
600 20001005:
601         This weekend the ports tree will be updated to a new layout.
602         It will be in an inconsistent state until noted in the UPDATING
603         file, or with asami-san's message to the relevant mailing
604         lists.  With this new layout, you'll need to update the whole
605         tree for anything to work.
606
607 20000928:
608         There was a change in the passwd format.  Need more information.
609
610 20000916:
611         /boot/kernel/kernel.ko -> /boot/kernel/kernel change has taken
612         place.  Please update boot loader (not the boot blocks) at the
613         same time as your kernel.
614
615 20000914:
616         The new pmtimer device is necessary for laptops.  Failure to
617         include the device will cause suspended laptops losing time
618         when they resume.  Include
619                 device          pmtimer
620         in your config file and
621                 hint.pmtimer.0.at="isa"
622         to your /boot/device.hints file.
623
624 20000911:
625         The random device has been turned into a (pseudo-)device,
626         rather than an option. The supplied kernel config files have
627         been updated. You will need to do something similar in your
628         own kernel config file.
629         Remove:
630                 options         RANDOMDEV
631         Add:
632                 device          random
633         If you prefer to load the loadable module, you need to do
634         nothing.
635
636 20000909:
637         The random device module has been renamed from randomdev.ko to
638         random.ko. You will need to edit your /boot/loader.conf to
639         reflect this if you load this module at boot time.
640         The line should read:
641                 random_load="YES"
642
643 20000907:
644         The SMPNG commit has happened.  It should work, but if it
645         doesn't, fallback to the PRE_SMPNG CVS tag.  There are likely
646         to be a variety of minor issues.  Please see 20000905 to make
647         sure you don't have model loading problems which might at
648         first blush appear related to SMP.
649
650 20000906:
651         nsswitch has been imported from NetBSD.  Among other things,
652         this means that /etc/host.conf is no longer used.  See
653         nsswitch.conf(5) instead.  Note that at boot time rc.network
654         will attempt to produce a new nsswitch.conf file for you if you
655         don't have one, and you have host.conf.
656
657 20000905:
658         The ucred structure changed size.  This breaks the interface
659         that mountd uses.  Trying to use an older mountd with a newer
660         kernel guarantees a panic.  This means that you need to use
661         kernels newer than today only with matching mountd, but you
662         needed to do that anyway with the boot loader changes.
663
664 20000905:
665         The boot loader has been updated.  The new default kernel is
666         now /boot/kernel/kernel.ko.  The new default module location
667         is /boot/kernel.
668
669         You *MUST* upgrade your boot loader and kernel at the same time.
670         The easiest way to do this is to do the buildworld/buildkernel/
671         installkernel/installworld dance.
672
673         Furthermore, you are urged to delete your old /modules directory
674         before booting the new kernel, since kldload will find stale
675         modules in that directory instead of finding them in the correct
676         path, /boot/kernel.  The most common complaint that this cures
677         is that the linux module crashes your machine after the update.
678
679         if [ ! -d /boot/kernel.old ]; then
680                 mv /modules.old /boot/kernel.old
681                 chflags noschg /kernel.old
682                 mv /kernel.old /boot/kernel.old/kernel.ko
683                 chflags schg /boot/kernel.old/kernel.ko
684         fi
685
686 20000904:
687         A new issue with the sendmail upgrade has come to light.
688         /etc/aliases has moved to /etc/mail/aliases.  Mergemaster will 
689         incorrectly install the default aliases in /etc/mail rather than
690         move the old one from /etc.  So you'll need to manually move the
691         file, create a symbolic link, remove the old /etc/aliases.db and
692         run newaliases.  For safety sake, you should stop sendmail
693         while doing this and run the upgrade when locally sourced email
694         is not likely to be generated.
695
696 20000825:
697         /boot/device.hints is now required for installkernel to
698         succeed.  You should copy GENERIC.hints for your architecture
699         into /boot/device.hints.  If and only if you compile hints
700         into your kernel, then this file may be empty.  Please note,
701         if you have an empty or missing /boot/device.hints file and
702         you neglected to compile hints into your kernel, no boot
703         messages will appear after the boot loader tries to start the
704         kernel.
705
706 20000821:
707         If you do NOT have ``options RANDOMDEV'' in your kernel and
708         you DO want the random device then add randomdev_load="YES" to
709         /boot/loader.conf.
710
711 20000812:
712         suidperl is now always built and installed on the system, but
713         with permissions of 511.  If you have applications that use
714         this program, you are now required to add ENABLE_SUIDPERL=true
715         to /etc/make.conf.  If you forget to do this,
716                 chmod 4511 /usr/bin/suidperl
717         will fix this until the next build.
718
719 20000812:
720         sendmail has been updated from 8.9.3 to 8.11.0.  Some of the more
721         visible changes that may immediately affect your configuration
722         include:
723         - New default file locations from src/contrib/sendmail/cf/README
724         - newaliases limited to root and trusted users
725         - MSA port (587) turned on by default
726         - New queue file naming system so can't go from 8.11 -> 8.9
727         - FEATURE(`rbl') renamed to FEATURE(`dnsbl')
728         - FEATURE(`nullclient') is more full featured
729         - FEATURE(`nouucp') requires an argument: `reject' or `nospecial'
730         - mail.local FreeBSD-only -b option changed to -B
731         - See src/contrib/sendmail/RELEASE_NOTES for more info
732
733 20000810:
734         suidperl (aka sperl) is no longer build by default.  You must
735         specifically define BUILD_SUIDPERL to "true" for it to be build.
736         Furthermore, we recommend that you remove /usr/bin/sperl* and
737         /usr/bin/suidperl files from your system unless you have a
738         specific use for it.
739
740 20000729:
741         Networking defaults have been tightened.  Anybody upgrading
742         /etc/defaults/rc.conf needs to add the following lines to
743         /etc/rc.conf if they want to have the same setup
744         afterwards (unless the variables already are set, of course):
745                 # Enable network daemons for user convenience.
746                 inetd_enable="YES"
747                 portmap_enable="YES"
748                 sendmail_enable="YES"
749
750 20000728:
751         If you have null_load="YES" in your /boot/loader.conf, you
752         will need to change that to nullfs_load="YES".
753
754 20000728:
755         The "installkernel" target has changed slightly. Now even if
756         you override KERNEL e.g. 'make installkernel KERNEL=MYKERNEL'
757         it will install the MYKERNEL file (built with the buildkernel
758         target) as /kernel rather than /MYKERNEL. Those who have
759         updated their /boot/loader.conf files to point to /MYKERNEL
760         should remove that entry or perform manual rename of /kernel
761         to /MYKERNEL.
762
763 20000711:
764         If you use CVSUP or CTM to get CVS trees, AND you used to get 
765         the old crypto files from internat.freebsd.org AND you check
766         out files from the CVS tree with the cvs command, please read
767                 http://people.freebsd.org/~imp/internat.txt
768         for details on potential problems that you might have and how
769         to get around them.
770
771         If you are merely a mirror, or don't answer yes to each of the
772         clauses above, you needn't worry.
773
774 20000711:
775         /etc/security has been updated to print the inode number of
776         setuid programs that have changed.  You will see a large spike
777         in the number of changed programs the first time when you run
778         mergemaster to get a new /etc/security.
779
780 20000710:
781         /dev/random now has good entropy collection (from the keyboard
782         and sysmouse drivers). Please ensure that either `options
783         RANDOMDEV' is present in your kernel config file or that
784         `randomdev_load="YES"' is in your /boot/loader.conf. If you do
785         not have the /dev/random driver, OpenSSL (and consequently
786         lots of crypto tools (like SSH)) will fail with strange
787         errors. (see below, 20000624).
788
789         FreeBSD-current is safe again to run Crypto.
790
791 20000709:
792         phk made the malloc default options AJ.  This may slow things
793         down and uncover other latent bugs in the code.  If you need to
794         run at full speed, you can disable this by doing the following:
795                 ln -s aj /etc/malloc.conf
796
797 20000706:
798         libftpio's version was accidentally bumped a few days ago.  This
799         has been corrected.  You may need to remove /usr/lib/libftpio.so.6
800         before doing your next buildworld/installworld pair.  It certainly
801         won't hurt to remove it before the update procedure.  It will
802         break fetch until a new one is built, but ftp can be used in the
803         interim if needed.
804
805 20000705:
806         The crypto packages have changed for the cvsup.  This has been done
807         in a backward compatible way, but the old packages will go away at
808         some point in the future.  Look at /usr/share/examples/cvsup for
809         details.
810
811 20000704:
812         With the new sys/modules/sound/drivers/*, you will need to
813         set SYSDIR until you do an installworld after July 7th.
814
815 20000704:
816         rc.shutdown and rc will now call the rc.d scripts with start
817         or stop.  This may cause some harmless warnings from older
818         rc.d scripts that haven't been updated.
819
820 20000630:
821         The libfetch based version of fetch has gone into the tree.
822         Minor problems may result on some of the less popular sites,
823         which should be reported to des@freebsd.org.
824
825 20000625:
826         From approximately this date forward, one must have the crypto
827         system installed in order to build the system and kernel.
828         While not technically strictly true, one should treat it as
829         required and grab the crypto bits.  If you are grabbing CVS
830         trees, src-all and cvs-crypto should be treated as if they
831         were required.  You should check with the latest collections
832         to make sure that these haven't changed.
833
834 20000624:
835         Mark Murray just committed the first parts of a cleanup of
836         /dev/zero, et al.  This is also cleaning up /dev/random.
837         The entropy is disconnected, so DO NOT USE VERSIONS OF FREEBSD
838         -CURRENT FROM THIS POINT to 2000710 for cryptographic services
839         until Mark can merge in the fixes to this work in progress.
840         openssh and openssl should not be used to generate keys from this
841         date to the completion of the work.
842
843         If you must operate at this reduced level of security, add '
844         options RANDOMDEV' to your kernel or modload the randomdev
845         module.  You may also need to copy a new MAKEDEV to /dev and
846         recreate the random and urandom devices.
847
848 20000622:
849         The license on the softupdates is now a standard 2 clause
850         BSD license.  You may need to remove your symbolic links
851         that used to be required when updating.
852
853 20000621:
854         Scott Flatman <sf@aracnet.com> sent in a decent write-up on
855         the config file update procedure.
856                 http://people.freebsd.org/~imp/config-upd.html
857         NOTE: LINT is gone.  It has been replaced with NOTES.  NOTES
858         isn't buildable.  However, you can generate a LINT file.
859
860 20000620:
861         Binutils 2.10 have hit the tree, or will shortly.  As soon
862         as they do, the problem noted in 20000522 will be resolved and
863         that workaround will no longer be required.
864
865 20000615:
866         phk removed the compatibility creation of wd devices in the
867         ad driver.  If you haven't done so already, you must update
868         your fstab, etc to use the ad devices instead of the wd
869         devices.
870
871         In addition, you'll need to update your boot blocks to a
872         more modern version, if you haven't already done so.  Modern
873         here means 4.0 release or newer (although older releases
874         may work).
875
876 20000612:
877         Peter took an axe to config(8).  Be sure that you read his mail
878         on the topic before even thinking about updating.  You will
879         need to create a /boot/device.hints or add a hints directive
880         to your config file to compile them in statically.  The format
881         of the config file has changed as well.  Please see GENERIC or
882         NEWCARD for examples of the new format.
883
884         Indirectly, this also breaks USERCONFIG.  Unless a newer entry
885         says that it has been fixed, assume that must use the hints mechanism
886         in the loader if you need to use a machine with very old ISA cards
887         in it.
888
889 20000522:
890         A new set of binutils went into the tree today.  Anybody
891         building a kernel after this point is advised that they need
892         to rebuild their binutils (or better yet do a
893         buildworld/installworld) before building a new kernel.
894
895         Due to bugs in binutils, using malloc options (eg /etc/malloc.conf
896         or MALLOC_OPTIONS env var) J will cause ld to dump core.  It
897         is recommended that you don't set this option until the problem
898         is resolved.
899
900 20000513:
901         The ethernet drivers were all updated to clean up the BPF handling.
902
903 20000510:
904         The problems with boot blocks on the alphas have been corrected.
905         This will require some care in updating alphas.  A new libstand
906         is requires for the boot blocks to build properly.
907
908 20000503:
909         Recompile all kld modules.  Proper version dependency info
910         is now available.
911
912 20000502:
913         Modules have been disconnected from the buildworld tree and 
914         connected to the kernel building instead.
915
916 20000427:
917         You may need to build gperf
918                 cd /usr/src/gnu/usr.bin/gperf && make depend all install
919         when upgrading from 4.0 -> current.  The build system now uses
920         an option only in -current.
921
922 20000417:
923         The method that we brand ELF binaries has changed to be more
924         acceptable to the binutils maintainers.  You will need to
925         rebrand your ELF binaries that aren't native.  One problem
926         binary is the Linux ldconfig.  After your make world, but
927         before you reboot, you'll need to issue:
928                 brandelf -t Linux /compat/linux/sbin/ldconfig
929         if you have Linux compatibility enabled on your machine.
930
931 20000320:
932         If you have really bad/marginal IDE drives, you may find they
933         don't work well.  Use pio mode instead.  The easiest way to
934         cope if you have a problem combination is to add:
935                 /sbin/sysctl hw.ata.ata_dma=0
936         to the start of /etc/rc.conf.
937
938 20000319:
939         The ISA and PCI compatibility shims have been connected to the
940         options COMPAT_OLDISA and COMPAT_OLDPCI.  If you are using old
941         style PCI or ISA drivers (i.e. tx, voxware, etc.) you must
942         include the appropriate option in your kernel config.  Drivers
943         using the shims should be updated or they won't ship with
944         5.0-RELEASE, targeted for 2001.
945
946 20000318:
947         We've entered the traditional post release dumping party.
948         Large kernel changes are being committed and are in the
949         works.  It is important to keep the systems' klds and kernel
950         in sync as kernel interfaces and structures are changing.
951         Before reporting kernel panics, make sure that all modules
952         that you are loading are up to date.
953
954 20000315:
955         If you are upgrading from an older version of FreeBSD, you
956         need to update your boot blocks as well.  'disklabel -B ad0'
957         will do the trick.  This isn't critical until you remove your
958         wd device entries in /dev, at which point your system will not
959         boot.
960
961 20000315:
962         4.0 RELEASE shipped.  Please see the 4.0 UPDATING file for how
963         to upgrade to 4.0 from 3.x.
964
965 COMMON ITEMS:
966
967         General Notes
968         -------------
969         Avoid using make -j when upgrading.  From time to time in the
970         past there have been problems using -j with buildworld and/or
971         installworld.  This is especially true when upgrading between
972         "distant" versions (eg one that cross a major release boundary
973         or several minor releases, or when several months have passed
974         on the -current branch).
975
976         Sometimes, obscure build problems are the result of environment
977         poisoning.  This can happen because the make utility reads its
978         environment when searching for values for global variables.
979         To run your build attempts in an "environmental clean room",
980         prefix all make commands with 'env -i '.  See the env(1) manual
981         page for more details.
982
983         To build a kernel
984         -----------------
985         If you are updating from a prior version of FreeBSD (even one just
986         a few days old), you should follow this procedure. With a
987         /usr/obj tree with a fresh buildworld,
988         make buildkernel KERNCONF=YOUR_KERNEL_HERE
989         make installkernel KERNCONF=YOUR_KERNEL_HERE
990
991         To just build a kernel when you know that it won't mess you up
992         --------------------------------------------------------------
993         cd src/sys/{i386,alpha}/conf
994         config KERNEL_NAME_HERE
995         cd ../../compile/KERNEL_NAME_HERE
996         make depend
997         make
998         make install    
999
1000         If this fails, go to the "To build a kernel" section.
1001
1002         To rebuild everything and install it on the current system.
1003         -----------------------------------------------------------
1004         # Note: sometimes if you are running current you gotta do more than
1005         # is listed here if you are upgrading from a really old current.
1006
1007         <make sure you have good level 0 dumps>
1008         <maybe fix /etc/fstab>                          [7]
1009         make buildworld
1010         make buildkernel KERNCONF=YOUR_KERNEL_HERE
1011         make installkernel KERNCONF=YOUR_KERNEL_HERE
1012                                                         [1]
1013         <reboot in single user>                         [3]
1014         mergemaster -p                                  [5]
1015         make installworld
1016         mergemaster                                     [4]
1017         <reboot>
1018
1019
1020         To upgrade from 4.x-stable to current
1021         -------------------------------------
1022         # 5.x uses more space than 4.x.  Also, the location of kernel
1023         # modules has changed.  If you are installing 5.0 onto a 4.x
1024         # system, you'll need about 30MB of free disk space on your /
1025         # partition.  If you have less than this, you may encounter difficult
1026         # to back out of problems with this proceedure.  If /tmp is on
1027         # the / partition, you may want to completely remove all its content
1028         # before upgrading, as this can be a common source of shortage of
1029         # space on /.
1030         
1031         <make sure you have good level 0 dumps>
1032         <maybe fix /etc/fstab>                          [7]
1033         make buildworld                                 [9]
1034         make buildkernel KERNCONF=YOUR_KERNEL_HERE      [8]
1035         cp src/sys/${MACHINE}/conf/GENERIC.hints /boot/device.hints [2]
1036         make installkernel KERNCONF=YOUR_KERNEL_HERE
1037         cd src/sys/boot ; make install                  [6]
1038                                                         [1]
1039         <reboot in single user>                         [3]
1040         mergemaster -p                                  [5]
1041         rm -rf /usr/include/g++
1042         make installworld
1043         mergemaster                                     [4]
1044         <reboot>
1045
1046         Make sure that you've read the UPDATING file to understand the
1047         tweaks to various things you need.  At this point in the life
1048         cycle of current, things change often and you are on your own
1049         to cope.  The defaults can also change, so please read ALL of
1050         the UPDATING entries.
1051
1052         Also, if you are tracking -current, you must be subscribed to
1053         freebsd-current@freebsd.org.  Make sure that before you update
1054         your sources that you have read and understood all the recent
1055         messages there.  If in doubt, please track -stable which has
1056         much fewer pitfalls.
1057
1058         [1] If you have third party modules, such as vmware, you
1059         should disable them at this point so they don't crash your
1060         system on reboot.
1061
1062         [2] If you have legacy ISA devices, you may need to create
1063         your own device.hints to reflect your unique hardware
1064         configuration.
1065
1066         [3] From the bootblocks, boot -s, and then do
1067                 fsck -p
1068                 mount -u /
1069                 mount -a
1070                 cd /usr/src
1071                 adjkerntz -i            # if CMOS is wall time
1072         Also, when doing a major release upgrade, it is required that
1073         you boot into single user mode to do the installworld.
1074         For the 4.x -> 5.0 upgrade, you will also see many messages about
1075         needing to recompile your userland.  These are harmless and can
1076         be ignored while you proceed to the next step.
1077
1078         [4] Note: This step is non-optional.  Failure to do this step
1079         can result in a significant reduction in the functionality of the
1080         system.  Attempting to do it by hand is not recommended and those
1081         that pursue this avenue should read this file carefully, as well
1082         as the archives of freebsd-current and freebsd-hackers mailing lists
1083         for potential gotchas.
1084
1085         [5] Usually this step is a noop.  However, from time to time
1086         you may need to do this if you get unknown user in the following
1087         step.  It never hurts to do it all the time.  You may need to
1088         install a new mergemaster (cd src/usr.sbin/mergemaster && make
1089         install) after the buildworld before this step if you last updated
1090         from current before 20020224 or from -stable before 20020408.
1091
1092         [6] 4.x boot blocks can be used to boot a 5.x system, however
1093         it is difficult to do that at best.  If you are concerned
1094         about being able to boot 4.x if the reboot to single user
1095         fails, then you should do something like
1096                 mv /boot /boot-4x
1097                 mkdir /boot
1098         before this step.  You may be able to then boot the 4.x boot
1099         blocks if you catch boot2, and enter /boot-4x/loader rather than
1100         /boot/loader.  However, this step hasn't been torture tested.
1101
1102         [7] Before you upgrade, please make sure that you are not using
1103         compatibility slices.  These are device names of the form, on i386
1104         and other architectures that use MBR slicing, /dev/ad0a without the
1105         actual slice name.  Chances are excellent that these will break.
1106         You generally must update these entries to use the post FreeBSD
1107         2.x form of /dev/ad0s1a.
1108
1109         [8] In order to have a kernel that can run the 4.x binaries
1110         needed to do an installworld, you must include the COMPAT_FREEBSD4
1111         option in your kernel.  Failure to do so may leave you with a system
1112         that is hard to boot to recover.
1113
1114         [9] When checking out sources, you must include the -P flag to have
1115         cvs prune empty directories.
1116 FORMAT:
1117
1118 This file contains a list, in reverse chronological order, of major
1119 breakages in tracking -current.  Not all things will be listed here,
1120 and it only starts on March 15, 2000.  Updating files can found in
1121 previous releases if your system is older than this.
1122
1123 Copyright information:
1124
1125 Copyright 1998, 2002 M. Warner Losh.  All Rights Reserved.
1126
1127 Redistribution, publication, translation and use, with or without
1128 modification, in full or in part, in any form or format of this
1129 document are permitted without further permission from the author.
1130
1131 THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1132 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1133 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1134 DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1135 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1136 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1137 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1138 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1139 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1140 IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1141 POSSIBILITY OF SUCH DAMAGE.
1142
1143 If you find this document useful, and you want to, you may buy the
1144 author a beer.
1145
1146 Contact Warner Losh if you have any questions about your use of
1147 this document.
1148
1149 $FreeBSD$