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