]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/blob - UPDATING
Fix a bug that allows NFS clients to issue READDIR on files.
[FreeBSD/stable/8.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.
10
11 NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.x IS SLOW ON IA64 OR SUN4V:
12         For ia64 the INVARIANTS and INVARIANT_SUPPORT kernel options
13         were left in the GENERIC kernel because the kernel does not
14         work properly without them.  For sun4v all of the normal kernel
15         debugging tools present in HEAD were left in place because
16         sun4v support still needs work to become production ready.
17
18 20130429:
19         Fix a bug that allows NFS clients to issue READDIR on files.
20
21 20130225:
22         A new compression method (lz4) has been merged.  Please refer to
23         zpool-features(7) for more information.
24
25         Please refer to the "ZFS notes" section of this file for information
26         on upgrading boot ZFS pools.
27
28 20121130:
29         A new version of ZFS (pool version 5000) has been merged to 8-STABLE.
30         Starting with this version the old system of ZFS pool versioning
31         is superseded by "feature flags". This concept enables forward
32         compatibility against certain future changes in functionality of ZFS
33         pools. The first two read-only compatible "feature flags" for ZFS
34         pools are "com.delphix:async_destroy" and "com.delphix:empty_bpobj".
35         For more information read the new zpool-features(7) manual page.
36         Please refer to the "ZFS notes" section of this file for information
37         on upgrading boot ZFS pools.
38
39 20121018:
40         WITH_CTF can now be specified in src.conf (not recommended, there
41         are some problems with static executables), make.conf (would also
42         affect ports which do not use GNU make and do not override the
43         compile targets) or in the kernel config (via "makeoptions
44         WITH_CTF=yes").
45         When WITH_CTF was specified there before this was silently ignored,
46         so make sure that WITH_CTF is not used in places which could lead
47         to unwanted behavior.
48
49 20120913:
50         The random(4) support for the VIA hardware random number
51         generator (`PADLOCK') is no longer enabled unconditionally.
52         Add the PADLOCK_RNG option in the custom kernel config if
53         needed.  The GENERIC kernels on i386 and amd64 do include the
54         option, so the change only affects the custom kernel
55         configurations.
56
57 20120727:
58         The sparc64 ZFS loader has been changed to no longer try to auto-
59         detect ZFS providers based on diskN aliases but now requires these
60         to be explicitly listed in the OFW boot-device environment variable.
61
62 20120411:
63         8.3-RELEASE.
64
65 20120106:
66         A new VOP_ADVISE() was added to support posix_fadvise(2).  All
67         filesystem modules must be recompiled.
68
69 20111116:
70         A new VOP_ALLOCATE() was added to support posix_fallocate(2).  All
71         filesystem modules must be recompiled.
72
73 20111101:
74         The broken amd(4) driver has been replaced with esp(4) in the amd64,
75         i386 and pc98 GENERIC kernel configuration files.
76
77 20110606:
78         A new version of ZFS (version 28) has been merged.
79         This version does not depend on a python library and the
80         sysutils/py-zfs port is not used anymore.
81         For upgrading your boot pool, please read "ZFS notes"
82         in the COMMON ITEMS: section later in this file.
83
84 20110428:
85         IPsec's HMAC_SHA256-512 support has been fixed to be RFC4868
86         compliant, and will now use half of hash for authentication.
87         This will break interoperability with all stacks (including all
88         older FreeBSD versions) who implement
89         draft-ietf-ipsec-ciph-sha-256-00 (they use 96 bits of hash for
90         authentication).
91         The only workaround with such peers is to use another HMAC
92         algorithm for IPsec ("phase 2") authentication.
93
94 20110221:
95         8.2-RELEASE.
96
97 20101126:
98         New version of minidump format for amd64 architecture was
99         introduced in r215872.  To analyze vmcore files produced by
100         kernels at or after this version you will need updated userland,
101         libkvm actually, that is able to handle the new version.
102
103 20101022:
104         A workaround for a fixed ld bug has been removed in kernel code,
105         so make sure that your system ld is built from sources after
106         revision 211583 from 2010-08-21 (r210245 from 2010-07-19 if
107         building stable/8 kernel on head, r211584 from 2010-08-21 for
108         stable/7).  A symptom of incorrect ld version is
109         different addresses for set_pcpu section and __start_set_pcpu
110         symbol in kernel and/or modules.
111
112 20100915:
113         A new version of ZFS (version 15) has been merged.
114         This version uses a python library for the following subcommands:
115         zfs allow, zfs unallow, zfs groupspace, zfs userspace.
116         For full functionality of these commands the following port must
117         be installed: sysutils/py-zfs
118
119 20100720:
120         8.1-RELEASE.
121
122 20100502:
123         The config(8) command has been updated to maintain compatibility
124         with config files from 8.0-RELEASE.  You will need a new version
125         of config to build kernels (this version can be used from 8.0-RELEASE
126         forward).  The buildworld target will generate it, so following
127         the instructions in this file for updating will work glitch-free.
128         Merely doing a make buildkernel without first doing a make buildworld
129         (or kernel-toolchain), or attempting to build a kernel using
130         traidtional methods will generate a config version warning, indicating
131         you should update.
132
133 20100408:
134         The rc.firewall and rc.firewall6 were unified, and
135         rc.firewall6 and rc.d/ip6fw were removed.
136         According to the removal of rc.d/ip6fw, ipv6_firewall_* rc
137         variables are obsoleted.  Instead, the following new rc
138         variables are added to rc.d/ipfw:
139
140                 firewall_client_net_ipv6, firewall_simple_iif_ipv6,
141                 firewall_simple_inet_ipv6, firewall_simple_oif_ipv6,
142                 firewall_simple_onet_ipv6
143
144         The meanings correspond to the relevant IPv4 variables.
145
146 20100417:
147         COMPAT_IA32 has been added as an alias for COMPAT_FREEBSD32.  A new
148         version of config(8) is required.  The error message when you hit this
149         condition is confusing (COMPAT_FREEBSD32 duplicate option), when it
150         should really say "your config is too old to compile this new kernel."
151
152 20100406:
153         The kernel option COMPAT_IA32 has been replaced with COMPAT_FREEBSD32
154         to allow 32-bit compatibility on non-x86 platforms. All kernel
155         configurations on amd64 and ia64 platforms using these options must
156         be modified accordingly.
157
158 20100125:
159         Introduce the kernel thread "deadlock resolver" (which can be enabled
160         via the DEADLKRES option, see NOTES for more details) and the
161         sleepq_type() function for sleepqueues.
162
163 20091125:
164         8.0-RELEASE.
165
166 20090929:
167         802.11s D3.03 support was committed. This is incompatible with
168         the previous code, which was based on D3.0.
169
170 20090915:
171         ZFS snapshots are now mounted with MNT_IGNORE flag. Use -v option for
172         mount(8) and -a option for df(1) to see them.
173
174 20090813:
175         Remove the option STOP_NMI.  The default action is now to use NMI
176         only for KDB via the newly introduced function stop_cpus_hard()
177         and maintain stop_cpus() to just use a normal IPI_STOP on ia32
178         and amd64.
179
180 20090803:
181         RELENG_8 branched.
182
183 20090719:
184         Bump the shared library version numbers for all libraries that
185         do not use symbol versioning as part of the 8.0-RELEASE cycle.
186         Bump __FreeBSD_version to 800105.
187
188 20090714:
189         Due to changes in the implementation of virtual network stack
190         support, all network-related kernel modules must be recompiled.
191         As this change breaks the ABI, bump __FreeBSD_version to 800104.
192
193 20090713:
194         The TOE interface to the TCP syncache has been modified to remove struct
195         tcpopt (<netinet/tcp_var.h>) from the ABI of the network stack.  The
196         cxgb driver is the only TOE consumer affected by this change, and needs
197         to be recompiled along with the kernel. As this change breaks the ABI,
198         bump __FreeBSD_version to 800103.
199
200 20090712:
201         Padding has been added to struct tcpcb, sackhint and tcpstat in
202         <netinet/tcp_var.h> to facilitate future MFCs and bug fixes whilst
203         maintainig the ABI. However, this change breaks the ABI, so bump
204         __FreeBSD_version to 800102. User space tools that rely on the size of
205         any of these structs (e.g. sockstat) need to be recompiled.
206
207 20090630:
208         The NFS_LEGACYRPC option has been removed along with the old
209         kernel RPC implementation that this option selected. Kernel
210         configurations may need to be adjusted.
211
212 20090629:
213         The network interface device nodes at /dev/net/<interface> have
214         been removed.  All ioctl operations can be performed the normal
215         way using routing sockets.  The kqueue functionality can
216         generally be replaced with routing sockets.
217
218 20090628:
219         The documentation from the FreeBSD Documentation Project
220         (Handbook, FAQ, etc.) is now installed via packages by
221         sysinstall(8) and under the /usr/local/share/doc/freebsd
222         directory instead of /usr/share/doc.
223
224 20090624:
225         The ABI of various structures related to the SYSV IPC API have
226         been changed.  As a result, the COMPAT_FREEBSD[456] and COMPAT_43
227         kernel options now all require COMPAT_FREEBSD7.
228         Bump __FreeBSD_version to 800100.
229
230 20090622:
231         Layout of struct vnet has changed as routing related variables
232         were moved to their own Vimage module. Modules need to be
233         recompiled.  Bump __FreeBSD_version to 800099.
234
235 20090619:
236         NGROUPS_MAX and NGROUPS have been increased from 16 to 1023
237         and 1024 respectively.  As long as no more than 16 groups per
238         process are used, no changes should be visible.  When more
239         than 16 groups are used, old binaries may fail if they call
240         getgroups() or getgrouplist() with statically sized storage.
241         Recompiling will work around this, but applications should be
242         modified to use dynamically allocated storage for group arrays
243         as POSIX.1-2008 does not cap an implementation's number of
244         supported groups at NGROUPS_MAX+1 as previous versions did.
245
246         NFS and portalfs mounts may also be affected as the list of
247         groups is truncated to 16.  Users of NFS who use more than 16
248         groups, should take care that negative group permissions are not
249         used on the exported file systems as they will not be reliable
250         unless a GSSAPI based authentication method is used.
251
252 20090616:
253         The compiling option ADAPTIVE_LOCKMGRS has been introduced.
254         This option compiles in the support for adaptive spinning for lockmgrs
255         which want to enable it.  The lockinit() function now accepts the
256         flag LK_ADAPTIVE in order to make the lock object subject to
257         adaptive spinning when both held in write and read mode.
258
259 20090613:
260         The layout of the structure returned by IEEE80211_IOC_STA_INFO
261         has changed.  User applications that use this ioctl need to be
262         rebuilt.
263
264 20090611:
265         The layout of struct thread has changed.  Kernel and modules
266         need to be rebuilt.
267
268 20090608:
269         The layout of structs ifnet, domain, protosw and vnet_net has
270         changed.  Kernel modules need to be rebuilt.
271         Bump __FreeBSD_version to 800097.
272
273 20090602:
274         window(1) has been removed from the base system. It can now be
275         installed from ports. The port is called misc/window.
276
277 20090601:
278         The way we are storing and accessing `routing table' entries
279         has changed. Programs reading the FIB, like netstat, need to
280         be re-compiled.
281
282 20090601:
283         A new netisr implementation has been added for FreeBSD 8.  Network
284         file system modules, such as igmp, ipdivert, and others, should be
285         rebuilt.
286         Bump __FreeBSD_version to 800096.
287
288 20090530:
289         Remove the tunable/sysctl debug.mpsafevfs as its initial purpose
290         is no more valid.
291
292 20090530:
293         Add VOP_ACCESSX(9).  File system modules need to be rebuilt.
294         Bump __FreeBSD_version to 800094.
295
296 20090529:
297         Add mnt_xflag field to 'struct mount'.  File system modules
298         need to be rebuilt.
299         Bump __FreeBSD_version to 800093.
300
301 20090528:
302         The compiling option ADAPTIVE_SX has been retired while it has been
303         introduced the option NO_ADAPTIVE_SX which handles the reversed logic.
304         The KPI for sx_init_flags() changes as accepting flags:
305         SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag
306         has been introduced in order to handle the reversed logic.
307         Bump __FreeBSD_version to 800092.
308
309 20090527:
310         Add support for hierarchical jails.  Remove global securelevel.
311         Bump __FreeBSD_version to 800091.
312
313 20090523:
314         The layout of struct vnet_net has changed, therefore modules
315         need to be rebuilt.
316         Bump __FreeBSD_version to 800090.
317
318 20090523:
319         The newly imported zic(8) produces a new format in the
320         output. Please run tzsetup(8) to install the newly created
321         data to /etc/localtime.
322
323 20090520:
324         The sysctl tree for the usb stack has renamed from hw.usb2.* to
325         hw.usb.* and is now consistent again with previous releases.
326
327 20090520:
328         802.11 monitor mode support was revised and driver api's
329         were changed.  Drivers dependent on net80211 now support
330         DLT_IEEE802_11_RADIO instead of DLT_IEEE802_11.  No
331         user-visible data structures were changed but applications
332         that use DLT_IEEE802_11 may require changes.
333         Bump __FreeBSD_version to 800088.
334
335 20090430:
336         The layout of the following structs has changed: sysctl_oid,
337         socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet,
338         vnet_inet6 and vnet_ipfw.  Most modules need to be rebuild or
339         panics may be experienced.  World rebuild is required for
340         correctly checking networking state from userland.
341         Bump __FreeBSD_version to 800085.
342
343 20090429:
344         MLDv2 and Source-Specific Multicast (SSM) have been merged
345         to the IPv6 stack. VIMAGE hooks are in but not yet used.
346         The implementation of SSM within FreeBSD's IPv6 stack closely
347         follows the IPv4 implementation.
348
349         For kernel developers:
350
351         * The most important changes are that the ip6_output() and
352           ip6_input() paths no longer take the IN6_MULTI_LOCK,
353           and this lock has been downgraded to a non-recursive mutex.
354
355         * As with the changes to the IPv4 stack to support SSM, filtering
356           of inbound multicast traffic must now be performed by transport
357           protocols within the IPv6 stack. This does not apply to TCP and
358           SCTP, however, it does apply to UDP in IPv6 and raw IPv6.
359
360         * The KPIs used by IPv6 multicast are similar to those used by
361           the IPv4 stack, with the following differences:
362            * im6o_mc_filter() is analogous to imo_multicast_filter().
363            * The legacy KAME entry points in6_joingroup and in6_leavegroup()
364              are shimmed to in6_mc_join() and in6_mc_leave() respectively.
365            * IN6_LOOKUP_MULTI() has been deprecated and removed.
366            * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs
367              for MLDv1 have an additional 'timer' argument which is used to
368              jitter the initial membership report for the solicited-node
369              multicast membership on-link.
370            * This is not strictly needed for MLDv2, which already jitters
371              its report transmissions.  However, the 'timer' argument is
372              preserved in case MLDv1 is active on the interface.
373
374         * The KAME linked-list based IPv6 membership implementation has
375           been refactored to use a vector similar to that used by the IPv4
376           stack.
377           Code which maintains a list of its own multicast memberships
378           internally, e.g. carp, has been updated to reflect the new
379           semantics.
380
381         * There is a known Lock Order Reversal (LOR) due to in6_setscope()
382           acquiring the IF_AFDATA_LOCK and being called within ip6_output().
383           Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an
384           implementation constraint which needs to be addressed in HEAD.
385
386         For application developers:
387
388         * The changes are broadly similar to those made for the IPv4
389           stack.
390
391         * The use of IPv4 and IPv6 multicast socket options on the same
392           socket, using mapped addresses, HAS NOT been tested or supported.
393
394         * There are a number of issues with the implementation of various
395           IPv6 multicast APIs which need to be resolved in the API surface
396           before the implementation is fully compatible with KAME userland
397           use, and these are mostly to do with interface index treatment.
398
399         * The literature available discusses the use of either the delta / ASM
400           API with setsockopt(2)/getsockopt(2), or the full-state / ASM API
401           using setsourcefilter(3)/getsourcefilter(3). For more information
402           please refer to RFC 3768, 'Socket Interface Extensions for
403           Multicast Source Filters'.
404
405         * Applications which use the published RFC 3678 APIs should be fine.
406
407         For systems administrators:
408
409         * The mtest(8) utility has been refactored to support IPv6, in
410           addition to IPv4. Interface addresses are no longer accepted
411           as arguments, their names must be used instead. The utility
412           will map the interface name to its first IPv4 address as
413           returned by getifaddrs(3).
414
415         * The ifmcstat(8) utility has also been updated to print the MLDv2
416           endpoint state and source filter lists via sysctl(3).
417
418         * The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable
419           loopback of IPv6 multicast datagrams by default; it defaults to 1
420           to preserve the existing behaviour. Disabling multicast loopback is
421           recommended for optimal system performance.
422
423         * The IPv6 MROUTING code has been changed to examine this sysctl
424           instead of attempting to perform a group lookup before looping
425           back forwarded datagrams.
426
427         Bump __FreeBSD_version to 800084.
428
429 20090422:
430         Implement low-level Bluetooth HCI API.
431         Bump __FreeBSD_version to 800083.
432
433 20090419:
434         The layout of struct malloc_type, used by modules to register new
435         memory allocation types, has changed.  Most modules will need to
436         be rebuilt or panics may be experienced.
437         Bump __FreeBSD_version to 800081.
438
439 20090415:
440         Anticipate overflowing inp_flags - add inp_flags2.
441         This changes most offsets in inpcb, so checking v4 connection
442         state will require a world rebuild.
443         Bump __FreeBSD_version to 800080.
444
445 20090415:
446         Add an llentry to struct route and struct route_in6. Modules
447         embedding a struct route will need to be recompiled.
448         Bump __FreeBSD_version to 800079.
449
450 20090414:
451         The size of rt_metrics_lite and by extension rtentry has changed.
452         Networking administration apps will need to be recompiled.
453         The route command now supports show as an alias for get, weighting
454         of routes, sticky and nostick flags to alter the behavior of stateful
455         load balancing.
456         Bump __FreeBSD_version to 800078.
457
458 20090408:
459         Do not use Giant for kbdmux(4) locking. This is wrong and
460         apparently causing more problems than it solves. This will
461         re-open the issue where interrupt handlers may race with
462         kbdmux(4) in polling mode. Typical symptoms include (but
463         not limited to) duplicated and/or missing characters when
464         low level console functions (such as gets) are used while
465         interrupts are enabled (for example geli password prompt,
466         mountroot prompt etc.). Disabling kbdmux(4) may help.
467
468 20090407:
469         The size of structs vnet_net, vnet_inet and vnet_ipfw has changed;
470         kernel modules referencing any of the above need to be recompiled.
471         Bump __FreeBSD_version to 800075.
472
473 20090320:
474         GEOM_PART has become the default partition slicer for storage devices,
475         replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It
476         introduces some changes:
477
478         MSDOS/EBR: the devices created from MSDOS extended partition entries
479         (EBR) can be named differently than with GEOM_MBR and are now symlinks
480         to devices with offset-based names. fstabs may need to be modified.
481
482         BSD: the "geometry does not match label" warning is harmless in most
483         cases but it points to problems in file system misalignment with
484         disk geometry. The "c" partition is now implicit, covers the whole
485         top-level drive and cannot be (mis)used by users.
486
487         General: Kernel dumps are now not allowed to be written to devices
488         whose partition types indicate they are meant to be used for file
489         systems (or, in case of MSDOS partitions, as something else than
490         the "386BSD" type).
491
492         Most of these changes date approximately from 200812.
493
494 20090319:
495         The uscanner(4) driver has been removed from the kernel. This follows
496         Linux removing theirs in 2.6 and making libusb the default interface
497         (supported by sane).
498
499 20090319:
500         The multicast forwarding code has been cleaned up. netstat(1)
501         only relies on KVM now for printing bandwidth upcall meters.
502         The IPv4 and IPv6 modules are split into ip_mroute_mod and
503         ip6_mroute_mod respectively. The config(5) options for statically
504         compiling this code remain the same, i.e. 'options MROUTING'.
505
506 20090315:
507         Support for the IFF_NEEDSGIANT network interface flag has been
508         removed, which means that non-MPSAFE network device drivers are no
509         longer supported.  In particular, if_ar, if_sr, and network device
510         drivers from the old (legacy) USB stack can no longer be built or
511         used.
512
513 20090313:
514         POSIX.1 Native Language Support (NLS) has been enabled in libc and
515         a bunch of new language catalog files have also been added.
516         This means that some common libc messages are now localized and
517         they depend on the LC_MESSAGES environmental variable.
518
519 20090313:
520         The k8temp(4) driver has been renamed to amdtemp(4) since
521         support for K10 and K11 CPU families was added.
522
523 20090309:
524         IGMPv3 and Source-Specific Multicast (SSM) have been merged
525         to the IPv4 stack. VIMAGE hooks are in but not yet used.
526
527         For kernel developers, the most important changes are that the
528         ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(),
529         and this lock has been downgraded to a non-recursive mutex.
530
531         Transport protocols (UDP, Raw IP) are now responsible for filtering
532         inbound multicast traffic according to group membership and source
533         filters. The imo_multicast_filter() KPI exists for this purpose.
534         Transports which do not use multicast (SCTP, TCP) already reject
535         multicast by default. Forwarding and receive performance may improve
536         as a mutex acquisition is no longer needed in the ip_input()
537         low-level input path.  in_addmulti() and in_delmulti() are shimmed
538         to new KPIs which exist to support SSM in-kernel.
539
540         For application developers, it is recommended that loopback of
541         multicast datagrams be disabled for best performance, as this
542         will still cause the lock to be taken for each looped-back
543         datagram transmission. The net.inet.ip.mcast.loop sysctl may
544         be tuned to 0 to disable loopback by default; it defaults to 1
545         to preserve the existing behaviour.
546
547         For systems administrators, to obtain best performance with
548         multicast reception and multiple groups, it is always recommended
549         that a card with a suitably precise hash filter is used. Hash
550         collisions will still result in the lock being taken within the
551         transport protocol input path to check group membership.
552
553         If deploying FreeBSD in an environment with IGMP snooping switches,
554         it is recommended that the net.inet.igmp.sendlocal sysctl remain
555         enabled; this forces 224.0.0.0/24 group membership to be announced
556         via IGMP.
557
558         The size of 'struct igmpstat' has changed; netstat needs to be
559         recompiled to reflect this.
560         Bump __FreeBSD_version to 800070.
561
562 20090309:
563         libusb20.so.1 is now installed as libusb.so.1 and the ports system
564         updated to use it. This requires a buildworld/installworld in order to
565         update the library and dependencies (usbconfig, etc). Its advisable to
566         rebuild all ports which uses libusb. More specific directions are given
567         in the ports collection UPDATING file. Any /etc/libmap.conf entries for
568         libusb are no longer required and can be removed.
569
570 20090302:
571         A workaround is committed to allow the creation of System V shared
572         memory segment of size > 2 GB on the 64-bit architectures.
573         Due to a limitation of the existing ABI, the shm_segsz member
574         of the struct shmid_ds, returned by shmctl(IPC_STAT) call is
575         wrong for large segments. Note that limits must be explicitly
576         raised to allow such segments to be created.
577
578 20090301:
579         The layout of struct ifnet has changed, requiring a rebuild of all
580         network device driver modules.
581
582 20090227:
583         The /dev handling for the new USB stack has changed, a
584         buildworld/installworld is required for libusb20.
585
586 20090223:
587         The new USB2 stack has now been permanently moved in and all kernel and
588         module names reverted to their previous values (eg, usb, ehci, ohci,
589         ums, ...).  The old usb stack can be compiled in by prefixing the name
590         with the letter 'o', the old usb modules have been removed.
591         Updating entry 20090216 for xorg and 20090215 for libmap may still
592         apply.
593
594 20090217:
595         The rc.conf(5) option if_up_delay has been renamed to
596         defaultroute_delay to better reflect its purpose. If you have
597         customized this setting in /etc/rc.conf you need to update it to
598         use the new name.
599
600 20090216:
601         xorg 7.4 wants to configure its input devices via hald which does not
602         yet work with USB2. If the keyboard/mouse does not work in xorg then
603         add
604                 Option "AllowEmptyInput" "off"
605         to your ServerLayout section.  This will cause X to use the configured
606         kbd and mouse sections from your xorg.conf.
607
608 20090215:
609         The GENERIC kernels for all architectures now default to the new USB2
610         stack. No kernel config options or code have been removed so if a
611         problem arises please report it and optionally revert to the old USB
612         stack. If you are loading USB kernel modules or have a custom kernel
613         that includes GENERIC then ensure that usb names are also changed over,
614         eg uftdi -> usb2_serial_ftdi.
615
616         Older programs linked against the ports libusb 0.1 need to be
617         redirected to the new stack's libusb20.  /etc/libmap.conf can
618         be used for this:
619                 # Map old usb library to new one for usb2 stack
620                 libusb-0.1.so.8 libusb20.so.1
621
622 20090209:
623         All USB ethernet devices now attach as interfaces under the name ueN
624         (eg. ue0). This is to provide a predictable name as vendors often
625         change usb chipsets in a product without notice.
626
627 20090203:
628         The ichsmb(4) driver has been changed to require SMBus slave
629         addresses be left-justified (xxxxxxx0b) rather than right-justified.
630         All of the other SMBus controller drivers require left-justified
631         slave addresses, so this change makes all the drivers provide the
632         same interface.
633
634 20090201:
635         INET6 statistics (struct ip6stat) was updated.
636         netstat(1) needs to be recompiled.
637
638 20090119:
639         NTFS has been removed from GENERIC kernel on amd64 to match
640         GENERIC on i386. Should not cause any issues since mount_ntfs(8)
641         will load ntfs.ko module automatically when NTFS support is
642         actually needed, unless ntfs.ko is not installed or security
643         level prohibits loading kernel modules. If either is the case,
644         "options NTFS" has to be added into kernel config.
645
646 20090115:
647         TCP Appropriate Byte Counting (RFC 3465) support added to kernel.
648         New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to
649         800061. User space tools that rely on the size of struct tcpcb in
650         tcp_var.h (e.g. sockstat) need to be recompiled.
651
652 20081225:
653         ng_tty(4) module updated to match the new TTY subsystem.
654         Due to API change, user-level applications must be updated.
655         New API support added to mpd5 CVS and expected to be present
656         in next mpd5.3 release.
657
658 20081219:
659         With __FreeBSD_version 800060 the makefs tool is part of
660         the base system (it was a port).
661
662 20081216:
663         The afdata and ifnet locks have been changed from mutexes to
664         rwlocks, network modules will need to be re-compiled.
665
666 20081214:
667         __FreeBSD_version 800059 incorporates the new arp-v2 rewrite.
668         RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated.
669         The new code reduced struct rtentry{} by 16 bytes on 32-bit
670         architecture and 40 bytes on 64-bit architecture. The userland
671         applications "arp" and "ndp" have been updated accordingly.
672         The output from "netstat -r" shows only routing entries and
673         none of the L2 information.
674
675 20081130:
676         __FreeBSD_version 800057 marks the switchover from the
677         binary ath hal to source code. Users must add the line:
678
679         options AH_SUPPORT_AR5416
680
681         to their kernel config files when specifying:
682
683         device  ath_hal
684
685         The ath_hal module no longer exists; the code is now compiled
686         together with the driver in the ath module.  It is now
687         possible to tailor chip support (i.e. reduce the set of chips
688         and thereby the code size); consult ath_hal(4) for details.
689
690 20081121:
691         __FreeBSD_version 800054 adds memory barriers to
692         <machine/atomic.h>, new interfaces to ifnet to facilitate
693         multiple hardware transmit queues for cards that support
694         them, and a lock-less ring-buffer implementation to
695         enable drivers to more efficiently manage queueing of
696         packets.
697
698 20081117:
699         A new version of ZFS (version 13) has been merged to -HEAD.
700         This version has zpool attribute "listsnapshots" off by
701         default, which means "zfs list" does not show snapshots,
702         and is the same as Solaris behavior.
703
704 20081028:
705         dummynet(4) ABI has changed. ipfw(8) needs to be recompiled.
706
707 20081009:
708         The uhci, ohci, ehci and slhci USB Host controller drivers have
709         been put into separate modules. If you load the usb module
710         separately through loader.conf you will need to load the
711         appropriate *hci module as well. E.g. for a UHCI-based USB 2.0
712         controller add the following to loader.conf:
713
714                 uhci_load="YES"
715                 ehci_load="YES"
716
717 20081009:
718         The ABI used by the PMC toolset has changed.  Please keep
719         userland (libpmc(3)) and the kernel module (hwpmc(4)) in
720         sync.
721
722 20081009:
723         atapci kernel module now includes only generic PCI ATA
724         driver. AHCI driver moved to ataahci kernel module.
725         All vendor-specific code moved into separate kernel modules:
726         ataacard, ataacerlabs, ataadaptec, ataamd, ataati, atacenatek,
727         atacypress, atacyrix, atahighpoint, ataintel, ataite, atajmicron,
728         atamarvell, atamicron, atanational, atanetcell, atanvidia,
729         atapromise, ataserverworks, atasiliconimage, atasis, atavia
730
731 20080820:
732         The TTY subsystem of the kernel has been replaced by a new
733         implementation, which provides better scalability and an
734         improved driver model. Most common drivers have been migrated to
735         the new TTY subsystem, while others have not. The following
736         drivers have not yet been ported to the new TTY layer:
737
738         PCI/ISA:
739                 cy, digi, rc, rp, sio
740
741         USB:
742                 ubser, ucycom
743
744         Line disciplines:
745                 ng_h4, ng_tty, ppp, sl, snp
746
747         Adding these drivers to your kernel configuration file shall
748         cause compilation to fail.
749
750 20080818:
751         ntpd has been upgraded to 4.2.4p5.
752
753 20080801:
754         OpenSSH has been upgraded to 5.1p1.
755
756         For many years, FreeBSD's version of OpenSSH preferred DSA
757         over RSA for host and user authentication keys.  With this
758         upgrade, we've switched to the vendor's default of RSA over
759         DSA.  This may cause upgraded clients to warn about unknown
760         host keys even for previously known hosts.  Users should
761         follow the usual procedure for verifying host keys before
762         accepting the RSA key.
763
764         This can be circumvented by setting the "HostKeyAlgorithms"
765         option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh
766         command line.
767
768         Please note that the sequence of keys offered for
769         authentication has been changed as well.  You may want to
770         specify IdentityFile in a different order to revert this
771         behavior.
772
773 20080713:
774         The sio(4) driver has been removed from the i386 and amd64
775         kernel configuration files. This means uart(4) is now the
776         default serial port driver on those platforms as well.
777
778         To prevent collisions with the sio(4) driver, the uart(4) driver
779         uses different names for its device nodes. This means the
780         onboard serial port will now most likely be called "ttyu0"
781         instead of "ttyd0". You may need to reconfigure applications to
782         use the new device names.
783
784         When using the serial port as a boot console, be sure to update
785         /boot/device.hints and /etc/ttys before booting the new kernel.
786         If you forget to do so, you can still manually specify the hints
787         at the loader prompt:
788
789                 set hint.uart.0.at="isa"
790                 set hint.uart.0.port="0x3F8"
791                 set hint.uart.0.flags="0x10"
792                 set hint.uart.0.irq="4"
793                 boot -s
794
795 20080609:
796         The gpt(8) utility has been removed. Use gpart(8) to partition
797         disks instead.
798
799 20080603:
800         The version that Linuxulator emulates was changed from 2.4.2
801         to 2.6.16. If you experience any problems with Linux binaries
802         please try to set sysctl compat.linux.osrelease to 2.4.2 and
803         if it fixes the problem contact emulation mailing list.
804
805 20080525:
806         ISDN4BSD (I4B) was removed from the src tree. You may need to
807         update a your kernel configuration and remove relevant entries.
808
809 20080509:
810         I have checked in code to support multiple routing tables.
811         See the man pages setfib(1) and setfib(2).
812         This is a hopefully backwards compatible version,
813         but to make use of it you need to compile your kernel
814         with options ROUTETABLES=2 (or more up to 16).
815
816 20080420:
817         The 802.11 wireless support was redone to enable multi-bss
818         operation on devices that are capable.  The underlying device
819         is no longer used directly but instead wlanX devices are
820         cloned with ifconfig.  This requires changes to rc.conf files.
821         For example, change:
822                 ifconfig_ath0="WPA DHCP"
823         to
824                 wlans_ath0=wlan0
825                 ifconfig_wlan0="WPA DHCP"
826         see rc.conf(5) for more details.  In addition, mergemaster of
827         /etc/rc.d is highly recommended.  Simultaneous update of userland
828         and kernel wouldn't hurt either.
829
830         As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta
831         modules were merged into the base wlan module.  All references
832         to these modules (e.g. in kernel config files) must be removed.
833
834 20080408:
835         psm(4) has gained write(2) support in native operation level.
836         Arbitrary commands can be written to /dev/psm%d and status can
837         be read back from it.  Therefore, an application is responsible
838         for status validation and error recovery.  It is a no-op in
839         other operation levels.
840
841 20080312:
842         Support for KSE threading has been removed from the kernel.  To
843         run legacy applications linked against KSE libmap.conf may
844         be used.  The following libmap.conf may be used to ensure
845         compatibility with any prior release:
846
847         libpthread.so.1 libthr.so.1
848         libpthread.so.2 libthr.so.2
849         libkse.so.3 libthr.so.3
850
851 20080301:
852         The layout of struct vmspace has changed. This affects libkvm
853         and any executables that link against libkvm and use the
854         kvm_getprocs() function. In particular, but not exclusively,
855         it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1).
856         The effects are minimal, but it's advisable to upgrade world
857         nonetheless.
858
859 20080229:
860         The latest em driver no longer has support in it for the
861         82575 adapter, this is now moved to the igb driver. The
862         split was done to make new features that are incompatible
863         with older hardware easier to do.
864
865 20080220:
866         The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4),
867         likewise the kernel option is now GEOM_LINUX_LVM.
868
869 20080211:
870         The default NFS mount mode has changed from UDP to TCP for
871         increased reliability.  If you rely on (insecurely) NFS
872         mounting across a firewall you may need to update your
873         firewall rules.
874
875 20080208:
876         Belatedly note the addition of m_collapse for compacting
877         mbuf chains.
878
879 20080126:
880         The fts(3) structures have been changed to use adequate
881         integer types for their members and so to be able to cope
882         with huge file trees.  The old fts(3) ABI is preserved
883         through symbol versioning in libc, so third-party binaries
884         using fts(3) should still work, although they will not take
885         advantage of the extended types.  At the same time, some
886         third-party software might fail to build after this change
887         due to unportable assumptions made in its source code about
888         fts(3) structure members.  Such software should be fixed
889         by its vendor or, in the worst case, in the ports tree.
890         FreeBSD_version 800015 marks this change for the unlikely
891         case that a portable fix is impossible.
892
893 20080123:
894         To upgrade to -current after this date, you must be running
895         FreeBSD not older than 6.0-RELEASE.  Upgrading to -current
896         from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems.
897
898 20071128:
899         The ADAPTIVE_GIANT kernel option has been retired because its
900         functionality is the default now.
901
902 20071118:
903         The AT keyboard emulation of sunkbd(4) has been turned on
904         by default. In order to make the special symbols of the Sun
905         keyboards driven by sunkbd(4) work under X these now have
906         to be configured the same way as Sun USB keyboards driven
907         by ukbd(4) (which also does AT keyboard emulation), f.e.:
908
909         Option  "XkbLayout" "us"
910         Option  "XkbRules" "xorg"
911         Option  "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us"
912
913 20071024:
914         It has been decided that it is desirable to provide ABI
915         backwards compatibility to the FreeBSD 4/5/6 versions of the
916         PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was
917         broken with the introduction of PCI domain support (see the
918         20070930 entry). Unfortunately, this required the ABI of
919         PCIOCGETCONF to be broken again in order to be able to
920         provide backwards compatibility to the old version of that
921         IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled
922         again. As for prominent ports this affects neither pciutils
923         nor xorg-server this time, the hal port needs to be rebuilt
924         however.
925
926 20071020:
927         The misnamed kthread_create() and friends have been renamed
928         to kproc_create() etc. Many of the callers already
929         used kproc_start()..
930         I will return kthread_create() and friends in a while
931         with implementations that actually create threads, not procs.
932         Renaming corresponds with version 800002.
933
934 20071010:
935         RELENG_7 branched.
936
937 20071009:
938         Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and
939         WITHOUT_LIBTHR are set.
940
941 20070930:
942         The PCI code has been made aware of PCI domains. This means that
943         the location strings as used by pciconf(8) etc are now in the
944         following format: pci<domain>:<bus>:<device>[:<function>]. It
945         also means that consumers of <sys/pciio.h> potentially need to
946         be recompiled; this includes the hal and xorg-server ports.
947
948 20070928:
949         The caching daemon (cached) was renamed to nscd. nscd.conf
950         configuration file should be used instead of cached.conf and
951         nscd_enable, nscd_pidfile and nscd_flags options should be used
952         instead of cached_enable, cached_pidfile and cached_flags in
953         rc.conf.
954
955 20070921:
956         The getfacl(1) utility now prints owning user and group name
957         instead of owning uid and gid in the three line comment header.
958         This is the same behavior as getfacl(1) on Solaris and Linux.
959
960 20070704:
961         The new IPsec code is now compiled in using the IPSEC option.  The
962         IPSEC option now requires "device crypto" be defined in your kernel
963         configuration.  The FAST_IPSEC kernel option is now deprecated.
964
965 20070702:
966         The packet filter (pf) code has been updated to OpenBSD 4.1 Please
967         note the changed syntax - keep state is now on by default.  Also
968         note the fact that ftp-proxy(8) has been changed from bottom up and
969         has been moved from libexec to usr/sbin.  Changes in the ALTQ
970         handling also affect users of IPFW's ALTQ capabilities.
971
972 20070701:
973         Remove KAME IPsec in favor of FAST_IPSEC, which is now the
974         only IPsec supported by FreeBSD.  The new IPsec stack
975         supports both IPv4 and IPv6. The kernel option will change
976         after the code changes have settled in.  For now the kernel
977         option IPSEC is deprecated and FAST_IPSEC is the only option, that
978         will change after some settling time.
979
980 20070701:
981         The wicontrol(8) utility has been removed from the base system. wi(4)
982         cards should be configured using ifconfig(8), see the man page for more
983         information.
984
985 20070612:
986         The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver
987         instead of the nve(4) driver. Please update your configuration
988         accordingly.
989
990 20070612:
991         By default, /etc/rc.d/sendmail no longer rebuilds the aliases
992         database if it is missing or older than the aliases file.  If
993         desired, set the new rc.conf option sendmail_rebuild_aliases
994         to "YES" to restore that functionality.
995
996 20070612:
997         The IPv4 multicast socket code has been considerably modified, and
998         moved to the file sys/netinet/in_mcast.c. Initial support for the
999         RFC 3678 Source-Specific Multicast Socket API has been added to
1000         the IPv4 network stack.
1001
1002         Strict multicast and broadcast reception is now the default for
1003         UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable
1004         has now been removed.
1005
1006         The RFC 1724 hack for interface selection has been removed; the use
1007         of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has
1008         been added to replace it. Consumers such as routed will soon be
1009         updated to reflect this.
1010
1011         These changes affect users who are running routed(8) or rdisc(8)
1012         from the FreeBSD base system on point-to-point or unnumbered
1013         interfaces.
1014
1015 20070610:
1016         The net80211 layer has changed significantly and all wireless
1017         drivers that depend on it need to be recompiled.  Further these
1018         changes require that any program that interacts with the wireless
1019         support in the kernel be recompiled; this includes: ifconfig,
1020         wpa_supplicant, hostapd, and wlanstats.  Users must also, for
1021         the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules
1022         if they use modules for wireless support.  These modules implement
1023         scanning support for station and ap modes, respectively.  Failure
1024         to load the appropriate module before marking a wireless interface
1025         up will result in a message to the console and the device not
1026         operating properly.
1027
1028 20070610:
1029         The pam_nologin(8) module ceases to provide an authentication
1030         function and starts providing an account management function.
1031         Consequent changes to /etc/pam.d should be brought in using
1032         mergemaster(8).  Third-party files in /usr/local/etc/pam.d may
1033         need manual editing as follows.  Locate this line (or similar):
1034
1035                 auth    required        pam_nologin.so  no_warn
1036
1037         and change it according to this example:
1038
1039                 account required        pam_nologin.so  no_warn
1040
1041         That is, the first word needs to be changed from "auth" to
1042         "account".  The new line can be moved to the account section
1043         within the file for clarity.  Not updating pam.conf(5) files
1044         will result in nologin(5) ignored by the respective services.
1045
1046 20070529:
1047         The ether_ioctl() function has been synchronized with ioctl(2)
1048         and ifnet.if_ioctl.  Due to that, the size of one of its arguments
1049         has changed on 64-bit architectures.  All kernel modules using
1050         ether_ioctl() need to be rebuilt on such architectures.
1051
1052 20070516:
1053         Improved INCLUDE_CONFIG_FILE support has been introduced to the
1054         config(8) utility. In order to take advantage of this new
1055         functionality, you are expected to recompile and install
1056         src/usr.sbin/config. If you don't rebuild config(8), and your
1057         kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel
1058         build will be broken because of a missing "kernconfstring"
1059         symbol.
1060
1061 20070513:
1062         Symbol versioning is enabled by default.  To disable it, use
1063         option WITHOUT_SYMVER.  It is not advisable to attempt to
1064         disable symbol versioning once it is enabled; your installworld
1065         will break because a symbol version-less libc will get installed
1066         before the install tools.  As a result, the old install tools,
1067         which previously had symbol dependencies to FBSD_1.0, will fail
1068         because the freshly installed libc will not have them.
1069
1070         The default threading library (providing "libpthread") has been
1071         changed to libthr.  If you wish to have libkse as your default,
1072         use option DEFAULT_THREAD_LIB=libkse for the buildworld.
1073
1074 20070423:
1075         The ABI breakage in sendmail(8)'s libmilter has been repaired
1076         so it is no longer necessary to recompile mail filters (aka,
1077         milters).  If you recompiled mail filters after the 20070408
1078         note, it is not necessary to recompile them again.
1079
1080 20070417:
1081         The new trunk(4) driver has been renamed to lagg(4) as it better
1082         reflects its purpose. ifconfig will need to be recompiled.
1083
1084 20070408:
1085         sendmail(8) has been updated to version 8.14.1.  Mail filters
1086         (aka, milters) compiled against the libmilter included in the
1087         base operating system should be recompiled.
1088
1089 20070302:
1090         Firmwares for ipw(4) and iwi(4) are now included in the base tree.
1091         In order to use them one must agree to the respective LICENSE in
1092         share/doc/legal and define legal.intel_<name>.license_ack=1 via
1093         loader.conf(5) or kenv(1).  Make sure to deinstall the now
1094         deprecated modules from the respective firmware ports.
1095
1096 20070228:
1097         The name resolution/mapping functions addr2ascii(3) and ascii2addr(3)
1098         were removed from FreeBSD's libc. These originally came from INRIA
1099         IPv6. Nothing in FreeBSD ever used them. They may be regarded as
1100         deprecated in previous releases.
1101         The AF_LINK support for getnameinfo(3) was merged from NetBSD to
1102         replace it as a more portable (and re-entrant) API.
1103
1104 20070224:
1105         To support interrupt filtering a modification to the newbus API
1106         has occurred, ABI was broken and __FreeBSD_version was bumped
1107         to 700031. Please make sure that your kernel and modules are in
1108         sync. For more info:
1109         http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941
1110
1111 20070224:
1112         The IPv6 multicast forwarding code may now be loaded into GENERIC
1113         kernels by loading the ip_mroute.ko module. This is built into the
1114         module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are
1115         set; see src.conf(5) for more information.
1116
1117 20070214:
1118         The output of netstat -r has changed. Without -n, we now only
1119         print a "network name" without the prefix length if the network
1120         address and mask exactly match a Class A/B/C network, and an entry
1121         exists in the nsswitch "networks" map.
1122         With -n, we print the full unabbreviated CIDR network prefix in
1123         the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default".
1124         This change is in preparation for changes such as equal-cost
1125         multipath, and to more generally assist operational deployment
1126         of FreeBSD as a modern IPv4 router.
1127
1128 20070210:
1129         PIM has been turned on by default in the IPv4 multicast
1130         routing code. The kernel option 'PIM' has now been removed.
1131         PIM is now built by default if option 'MROUTING' is specified.
1132         It may now be loaded into GENERIC kernels by loading the
1133         ip_mroute.ko module.
1134
1135 20070207:
1136         Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing
1137         has been removed. Its functionality may be achieved by explicitly
1138         configuring gif(4) interfaces and using the 'phyint' keyword in
1139         mrouted.conf.
1140         XORP does not support source-routed IPv4 multicast tunnels nor the
1141         integrated IPIP tunneling, therefore it is not affected by this
1142         change. The __FreeBSD_version macro has been bumped to 700030.
1143
1144 20061221:
1145         Support for PCI Message Signalled Interrupts has been
1146         re-enabled in the bge driver, only for those chips which are
1147         believed to support it properly.  If there are any problems,
1148         MSI can be disabled completely by setting the
1149         'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0
1150         in the loader.
1151
1152 20061214:
1153         Support for PCI Message Signalled Interrupts has been
1154         disabled again in the bge driver.  Many revisions of the
1155         hardware fail to support it properly.  Support can be
1156         re-enabled by removing the #define of BGE_DISABLE_MSI in
1157         "src/sys/dev/bge/if_bge.c".
1158
1159 20061214:
1160         Support for PCI Message Signalled Interrupts has been added
1161         to the bge driver.  If there are any problems, MSI can be
1162         disabled completely by setting the 'hw.pci.enable_msi' and
1163         'hw.pci.enable_msix' tunables to 0 in the loader.
1164
1165 20061205:
1166         The removal of several facets of the experimental Threading
1167         system from the kernel means that the proc and thread structures
1168         have changed quite a bit. I suggest all kernel modules that might
1169         reference these structures be recompiled.. Especially the
1170         linux module.
1171
1172 20061126:
1173         Sound infrastructure has been updated with various fixes and
1174         improvements. Most of the changes are pretty much transparent,
1175         with exceptions of followings:
1176         1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been
1177            moved to their own dev sysctl nodes, for example:
1178                 hw.snd.pcm0.vchans -> dev.pcm.0.vchans
1179         2) /dev/dspr%d.%d has been deprecated. Each channel now has its
1180            own chardev in the form of "dsp%d.<function>%d", where <function>
1181            is p = playback, r = record and v = virtual, respectively. Users
1182            are encouraged to use these devs instead of (old) "/dev/dsp%d.%d".
1183            This does not affect those who are using "/dev/dsp".
1184
1185 20061122:
1186         geom(4)'s gmirror(8) class metadata structure has been
1187         rev'd from v3 to v4. If you update across this point and
1188         your metadata is converted for you, you will not be easily
1189         able to downgrade since the /boot/kernel.old/geom_mirror.ko
1190         kernel module will be unable to read the v4 metadata.  You
1191         can resolve this by doing from the loader(8) prompt:
1192
1193                 set vfs.root.mountfrom="ufs:/dev/XXX"
1194
1195         where XXX is the root slice of one of the disks that composed
1196         the mirror (i.e.: /dev/ad0s1a). You can then rebuild
1197         the array the same way you built it originally.
1198
1199 20061122:
1200         The following binaries have been disconnected from the build:
1201         mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs,
1202         and mount_std.  The functionality of these programs has been
1203         moved into the mount program.  For example, to mount a devfs
1204         filesystem, instead of using mount_devfs, use: "mount -t devfs".
1205         This does not affect entries in /etc/fstab, since entries in
1206         /etc/fstab are always processed with "mount -t fstype".
1207
1208 20061113:
1209         Support for PCI Message Signalled Interrupts on i386 and amd64
1210         has been added to the kernel and various drivers will soon be
1211         updated to use MSI when it is available.  If there are any problems,
1212         MSI can be disabled completely by setting the 'hw.pci.enable_msi'
1213         and 'hw.pci.enable_msix' tunables to 0 in the loader.
1214
1215 20061110:
1216         The MUTEX_PROFILING option has been renamed to LOCK_PROFILING.
1217         The lockmgr object layout has been changed as a result of having
1218         a lock_object embedded in it. As a consequence all file system
1219         kernel modules must be re-compiled. The mutex profiling man page
1220         has not yet been updated to reflect this change.
1221
1222 20061026:
1223         KSE in the kernel has now been made optional and turned on by
1224         default. Use 'nooption KSE' in your kernel config to turn it
1225         off. All kernel modules *must* be recompiled after this change.
1226         There-after, modules from a KSE kernel should be compatible with
1227         modules from a NOKSE kernel due to the temporary padding fields
1228         added to 'struct proc'.
1229
1230 20060929:
1231         mrouted and its utilities have been removed from the base system.
1232
1233 20060927:
1234         Some ioctl(2) command codes have changed.  Full backward ABI
1235         compatibility is provided if the "options COMPAT_FREEBSD6" is
1236         present in the kernel configuration file.  Make sure to add
1237         this option to your kernel config file, or recompile X.Org
1238         and the rest of ports; otherwise they may refuse to work.
1239
1240 20060924:
1241         tcpslice has been removed from the base system.
1242
1243 20060913:
1244         The sizes of struct tcpcb (and struct xtcpcb) have changed due to
1245         the rewrite of TCP syncookies.  Tools like netstat, sockstat, and
1246         systat needs to be rebuilt.
1247
1248 20060903:
1249         libpcap updated to v0.9.4 and tcpdump to v3.9.4
1250
1251 20060816:
1252         The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour
1253         for IPFIREWALL_FORWARD is now as it was before when it was first
1254         committed and for years after. The behaviour is now ON.
1255
1256 20060725:
1257         enigma(1)/crypt(1) utility has been changed on 64 bit architectures.
1258         Now it can decrypt files created from different architectures.
1259         Unfortunately, it is no longer able to decrypt a cipher text
1260         generated with an older version on 64 bit architectures.
1261         If you have such a file, you need old utility to decrypt it.
1262
1263 20060709:
1264         The interface version of the i4b kernel part has changed. So
1265         after updating the kernel sources and compiling a new kernel,
1266         the i4b user space tools in "/usr/src/usr.sbin/i4b" must also
1267         be rebuilt, and vice versa.
1268
1269 20060627:
1270         The XBOX kernel now defaults to the nfe(4) driver instead of
1271         the nve(4) driver. Please update your configuration
1272         accordingly.
1273
1274 20060514:
1275         The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx
1276         PCnet family of NICs has been removed. The new le(4) driver serves
1277         as an equivalent but cross-platform replacement with the pcn(4)
1278         driver still providing performance-optimized support for the subset
1279         of AMD Am79C971 PCnet-FAST and greater chips as before.
1280
1281 20060511:
1282         The machdep.* sysctls and the adjkerntz utility have been
1283         modified a bit.  The new adjkerntz utility uses the new
1284         sysctl names and sysctlbyname() calls, so it may be impossible
1285         to run an old /sbin/adjkerntz utility in single-user mode
1286         with a new kernel.  Replace the `adjkerntz -i' step before
1287         `make installworld' with:
1288
1289             /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i
1290
1291         and proceed as usual with the rest of the installworld-stage
1292         steps.  Otherwise, you risk installing binaries with their
1293         timestamp set several hours in the future, especially if
1294         you are running with local time set to GMT+X hours.
1295
1296 20060412:
1297         The ip6fw utility has been removed.  The behavior provided by
1298         ip6fw has been in ipfw2 for a good while and the rc.d scripts
1299         have been updated to deal with it.  There are some rules that
1300         might not migrate cleanly.  Use rc.firewall6 as a template to
1301         rewrite rules.
1302
1303 20060428:
1304         The puc(4) driver has been overhauled. The ebus(4) and sbus(4)
1305         attachments have been removed. Make sure to configure scc(4)
1306         on sparc64. Note also that by default puc(4) will use uart(4)
1307         and not sio(4) for serial ports because interrupt handling has
1308         been optimized for multi-port serial cards and only uart(4)
1309         implements the interface to support it.
1310
1311 20060330:
1312         The scc(4) driver replaces puc(4) for Serial Communications
1313         Controllers (SCCs) like the Siemens SAB82532 and the Zilog
1314         Z8530. On sparc64, it is advised to add scc(4) to the kernel
1315         configuration to make sure that the serial ports remain
1316         functional.
1317
1318 20060317:
1319         Most world/kernel related NO_* build options changed names.
1320         New knobs have common prefixes WITHOUT_*/WITH_* (modelled
1321         after FreeBSD ports) and should be set in /etc/src.conf
1322         (the src.conf(5) manpage is provided).  Full backwards
1323         compatibility is maintained for the time being though it's
1324         highly recommended to start moving old options out of the
1325         system-wide /etc/make.conf file into the new /etc/src.conf
1326         while also properly renaming them.  More conversions will
1327         likely follow.  Posting to current@:
1328
1329         http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html
1330
1331 20060305:
1332         The NETSMBCRYPTO kernel option has been retired because its
1333         functionality is always included in NETSMB and smbfs.ko now.
1334
1335 20060303:
1336         The TDFX_LINUX kernel option was retired and replaced by the
1337         tdfx_linux device.  The latter can be loaded as the 3dfx_linux.ko
1338         kernel module.  Loading it alone should suffice to get 3dfx support
1339         for Linux apps because it will pull in 3dfx.ko and linux.ko through
1340         its dependencies.
1341
1342 20060204:
1343         The 'audit' group was added to support the new auditing functionality
1344         in the base system.  Be sure to follow the directions for updating,
1345         including the requirement to run mergemaster -p.
1346
1347 20060201:
1348         The kernel ABI to file system modules was changed on i386.
1349         Please make sure that your kernel and modules are in sync.
1350
1351 20060118:
1352         This actually occured some time ago, but installing the kernel
1353         now also installs a bunch of symbol files for the kernel modules.
1354         This increases the size of /boot/kernel to about 67Mbytes. You
1355         will need twice this if you will eventually back this up to kernel.old
1356         on your next install.
1357         If you have a shortage of room in your root partition, you should add
1358         -DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes"
1359         to your /etc/make.conf.
1360
1361 20060113:
1362         libc's malloc implementation has been replaced.  This change has the
1363         potential to uncover application bugs that previously went unnoticed.
1364         See the malloc(3) manual page for more details.
1365
1366 20060112:
1367         The generic netgraph(4) cookie has been changed. If you upgrade
1368         kernel passing this point, you also need to upgrade userland
1369         and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4.
1370
1371 20060106:
1372         si(4)'s device files now contain the unit number.
1373         Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f].
1374
1375 20060106:
1376         The kernel ABI was mostly destroyed due to a change in the size
1377         of struct lock_object which is nested in other structures such
1378         as mutexes which are nested in all sorts of other structures.
1379         Make sure your kernel and modules are in sync.
1380
1381 20051231:
1382         The page coloring algorithm in the VM subsystem was converted
1383         from tuning with kernel options to autotuning. Please remove
1384         any PQ_* option except PQ_NOOPT from your kernel config.
1385
1386 20051211:
1387         The net80211-related tools in the tools/tools/ath directory
1388         have been moved to tools/tools/net80211 and renamed with a
1389         "wlan" prefix.  Scripts that use them should be adjusted
1390         accordingly.
1391
1392 20051202:
1393         Scripts in the local_startup directories (as defined in
1394         /etc/defaults/rc.conf) that have the new rc.d semantics will
1395         now be run as part of the base system rcorder. If there are
1396         errors or problems with one of these local scripts, it could
1397         cause boot problems. If you encounter such problems, boot in
1398         single user mode, remove that script from the */rc.d directory.
1399         Please report the problem to the port's maintainer, and the
1400         freebsd-ports@freebsd.org mailing list.
1401
1402 20051129:
1403         The nodev mount option was deprecated in RELENG_6 (where it
1404         was a no-op), and is now unsupported.  If you have nodev or dev listed
1405         in /etc/fstab, remove it, otherwise it will result in a mount error.
1406
1407 20051129:
1408         ABI between ipfw(4) and ipfw(8) has been changed. You need
1409         to rebuild ipfw(8) when rebuilding kernel.
1410
1411 20051108:
1412         rp(4)'s device files now contain the unit number.
1413         Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f].
1414
1415 20051029:
1416         /etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp.
1417         Its /etc/rc.conf.d configuration file has been `ppp' from
1418         the beginning, and hence there is no need to touch it.
1419
1420 20051014:
1421         Now most modules get their build-time options from the kernel
1422         configuration file.  A few modules still have fixed options
1423         due to their non-conformant implementation, but they will be
1424         corrected eventually.  You may need to review the options of
1425         the modules in use, explicitly specify the non-default options
1426         in the kernel configuration file, and rebuild the kernel and
1427         modules afterwards.
1428
1429 20051001:
1430         kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8)
1431         to turn polling(4) on your interfaces.
1432
1433 20050927:
1434         The old bridge(4) implementation was retired.  The new
1435         if_bridge(4) serves as a full functional replacement.
1436
1437 20050722:
1438         The ai_addrlen of a struct addrinfo was changed to a socklen_t
1439         to conform to POSIX-2001.  This change broke an ABI
1440         compatibility on 64 bit architecture.  You have to recompile
1441         userland programs that use getaddrinfo(3) on 64 bit
1442         architecture.
1443
1444 20050711:
1445         RELENG_6 branched here.
1446
1447 20050629:
1448         The pccard_ifconfig rc.conf variable has been removed and a new
1449         variable, ifconfig_DEFAULT has been introduced.  Unlike
1450         pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that
1451         do not have ifconfig_ifn entries rather than just those in
1452         removable_interfaces.
1453
1454 20050616:
1455         Some previous versions of PAM have permitted the use of
1456         non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring
1457         to third party PAM modules in /usr/local/lib.  A change has been
1458         made to require the use of absolute paths in order to avoid
1459         ambiguity and dependence on library path configuration, which may
1460         affect existing configurations.
1461
1462 20050610:
1463         Major changes to network interface API.  All drivers must be
1464         recompiled.  Drivers not in the base system will need to be
1465         updated to the new APIs.
1466
1467 20050609:
1468         Changes were made to kinfo_proc in sys/user.h.  Please recompile
1469         userland, or commands like `fstat', `pkill', `ps', `top' and `w'
1470         will not behave correctly.
1471
1472         The API and ABI for hwpmc(4) have changed with the addition
1473         of sampling support.  Please recompile lib/libpmc(3) and
1474         usr.sbin/{pmcstat,pmccontrol}.
1475
1476 20050606:
1477         The OpenBSD dhclient was imported in place of the ISC dhclient
1478         and the network interface configuration scripts were updated
1479         accordingly.  If you use DHCP to configure your interfaces, you
1480         must now run devd.  Also, DNS updating was lost so you will need
1481         to find a workaround if you use this feature.
1482
1483         The '_dhcp' user was added to support the OpenBSD dhclient.  Be
1484         sure to run mergemaster -p (like you are supposed to do every time
1485         anyway).
1486
1487 20050605:
1488         if_bridge was added to the tree. This has changed struct ifnet.
1489         Please recompile userland and all network related modules.
1490
1491 20050603:
1492         The n_net of a struct netent was changed to an uint32_t, and
1493         1st argument of getnetbyaddr() was changed to an uint32_t, to
1494         conform to POSIX-2001.  These changes broke an ABI
1495         compatibility on 64 bit architecture.  With these changes,
1496         shlib major of libpcap was bumped.  You have to recompile
1497         userland programs that use getnetbyaddr(3), getnetbyname(3),
1498         getnetent(3) and/or libpcap on 64 bit architecture.
1499
1500 20050528:
1501         Kernel parsing of extra options on '#!' first lines of shell
1502         scripts has changed.  Lines with multiple options likely will
1503         fail after this date.  For full details, please see
1504                 http://people.freebsd.org/~gad/Updating-20050528.txt
1505
1506 20050503:
1507         The packet filter (pf) code has been updated to OpenBSD 3.7
1508         Please note the changed anchor syntax and the fact that
1509         authpf(8) now needs a mounted fdescfs(5) to function.
1510
1511 20050415:
1512         The NO_MIXED_MODE kernel option has been removed from the i386
1513         amd64 platforms as its use has been superceded by the new local
1514         APIC timer code.  Any kernel config files containing this option
1515         should be updated.
1516
1517 20050227:
1518         The on-disk format of LC_CTYPE files was changed to be machine
1519         independent.  Please make sure NOT to use NO_CLEAN buildworld
1520         when crossing this point. Crossing this point also requires
1521         recompile or reinstall of all locale depended packages.
1522
1523 20050225:
1524         The ifi_epoch member of struct if_data has been changed to
1525         contain the uptime at which the interface was created or the
1526         statistics zeroed rather then the wall clock time because
1527         wallclock time may go backwards.  This should have no impact
1528         unless an snmp implementation is using this value (I know of
1529         none at this point.)
1530
1531 20050224:
1532         The acpi_perf and acpi_throttle drivers are now part of the
1533         acpi(4) main module.  They are no longer built separately.
1534
1535 20050223:
1536         The layout of struct image_params has changed. You have to
1537         recompile all compatibility modules (linux, svr4, etc) for use
1538         with the new kernel.
1539
1540 20050223:
1541         The p4tcc driver has been merged into cpufreq(4).  This makes
1542         "options CPU_ENABLE_TCC" obsolete.  Please load cpufreq.ko or
1543         compile in "device cpufreq" to restore this functionality.
1544
1545 20050220:
1546         The responsibility of recomputing the file system summary of
1547         a SoftUpdates-enabled dirty volume has been transferred to the
1548         background fsck.  A rebuild of fsck(8) utility is recommended
1549         if you have updated the kernel.
1550
1551         To get the old behavior (recompute file system summary at mount
1552         time), you can set vfs.ffs.compute_summary_at_mount=1 before
1553         mounting the new volume.
1554
1555 20050206:
1556         The cpufreq import is complete.  As part of this, the sysctls for
1557         acpi(4) throttling have been removed.  The power_profile script
1558         has been updated, so you can use performance/economy_cpu_freq in
1559         rc.conf(5) to set AC on/offline cpu frequencies.
1560
1561 20050206:
1562         NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko)
1563         requires recompiling libnetgraph and userland netgraph utilities.
1564
1565 20050114:
1566         Support for abbreviated forms of a number of ipfw options is
1567         now deprecated.  Warnings are printed to stderr indicating the
1568         correct full form when a match occurs.  Some abbreviations may
1569         be supported at a later date based on user feedback.  To be
1570         considered for support, abbreviations must be in use prior to
1571         this commit and unlikely to be confused with current key words.
1572
1573 20041221:
1574         By a popular demand, a lot of NOFOO options were renamed
1575         to NO_FOO (see bsd.compat.mk for a full list).  The old
1576         spellings are still supported, but will cause annoying
1577         warnings on stderr.  Make sure you upgrade properly (see
1578         the COMMON ITEMS: section later in this file).
1579
1580 20041219:
1581         Auto-loading of ancillary wlan modules such as wlan_wep has
1582         been temporarily disabled; you need to statically configure
1583         the modules you need into your kernel or explicitly load them
1584         prior to use.  Specifically, if you intend to use WEP encryption
1585         with an 802.11 device load/configure wlan_wep; if you want to
1586         use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp,
1587         and wlan_xauth as required.
1588
1589 20041213:
1590         The behaviour of ppp(8) has changed slightly.  If lqr is enabled
1591         (``enable lqr''), older versions would revert to LCP ECHO mode on
1592         negotiation failure.  Now, ``enable echo'' is required for this
1593         behaviour.  The ppp version number has been bumped to 3.4.2 to
1594         reflect the change.
1595
1596 20041201:
1597         The wlan support has been updated to split the crypto support
1598         into separate modules.  For static WEP you must configure the
1599         wlan_wep module in your system or build and install the module
1600         in place where it can be loaded (the kernel will auto-load
1601         the module when a wep key is configured).
1602
1603 20041201:
1604         The ath driver has been updated to split the tx rate control
1605         algorithm into a separate module.  You need to include either
1606         ath_rate_onoe or ath_rate_amrr when configuring the kernel.
1607
1608 20041116:
1609         Support for systems with an 80386 CPU has been removed.  Please
1610         use FreeBSD 5.x or earlier on systems with an 80386.
1611
1612 20041110:
1613         We have had a hack which would mount the root filesystem
1614         R/W if the device were named 'md*'.  As part of the vnode
1615         work I'm doing I have had to remove this hack.  People
1616         building systems which use preloaded MD root filesystems
1617         may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in
1618         their /etc/rc scripts.
1619
1620 20041104:
1621         FreeBSD 5.3 shipped here.
1622
1623 20041102:
1624         The size of struct tcpcb has changed again due to the removal
1625         of RFC1644 T/TCP.  You have to recompile userland programs that
1626         read kmem for tcp sockets directly (netstat, sockstat, etc.)
1627
1628 20041022:
1629         The size of struct tcpcb has changed.  You have to recompile
1630         userland programs that read kmem for tcp sockets directly
1631         (netstat, sockstat, etc.)
1632
1633 20041016:
1634         RELENG_5 branched here.  For older entries, please see updating
1635         in the RELENG_5 branch.
1636
1637 COMMON ITEMS:
1638
1639         General Notes
1640         -------------
1641         Avoid using make -j when upgrading.  From time to time in the
1642         past there have been problems using -j with buildworld and/or
1643         installworld.  This is especially true when upgrading between
1644         "distant" versions (eg one that cross a major release boundary
1645         or several minor releases, or when several months have passed
1646         on the -current branch).
1647
1648         Sometimes, obscure build problems are the result of environment
1649         poisoning.  This can happen because the make utility reads its
1650         environment when searching for values for global variables.
1651         To run your build attempts in an "environmental clean room",
1652         prefix all make commands with 'env -i '.  See the env(1) manual
1653         page for more details.
1654
1655         When upgrading from one major version to another it is generally
1656         best to upgrade to the latest code in the currently installed branch
1657         first, then do an upgrade to the new branch. This is the best-tested
1658         upgrade path, and has the highest probability of being successful.
1659         Please try this approach before reporting problems with a major
1660         version upgrade.
1661
1662         ZFS notes
1663         ---------
1664         When upgrading the boot ZFS pool to a new version, always follow
1665         these two steps:
1666
1667         1.) recompile and reinstall the ZFS boot loader and boot block
1668         (this is part of "make buildworld" and "make installworld")
1669
1670         2.) update the ZFS boot block on your boot drive
1671
1672         The following example updates the ZFS boot block on the first
1673         partition (freebsd-boot) of a GPT partitioned drive ad0:
1674         "gpart bootcode -p /boot/gptzfsboot -i 1 ad0"
1675
1676         Non-boot pools do not need these updates.
1677
1678         To build a kernel
1679         -----------------
1680         If you are updating from a prior version of FreeBSD (even one just
1681         a few days old), you should follow this procedure.  It is the most
1682         failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1683
1684         make kernel-toolchain
1685         make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1686         make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1687
1688         To test a kernel once
1689         ---------------------
1690         If you just want to boot a kernel once (because you are not sure
1691         if it works, or if you want to boot a known bad kernel to provide
1692         debugging information) run
1693         make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1694         nextboot -k testkernel
1695
1696         To just build a kernel when you know that it won't mess you up
1697         --------------------------------------------------------------
1698         This assumes you are already running a 5.X system.  Replace
1699         ${arch} with the architecture of your machine (e.g. "i386",
1700         "alpha", "amd64", "ia64", "pc98", "sparc64", etc).
1701
1702         cd src/sys/${arch}/conf
1703         config KERNEL_NAME_HERE
1704         cd ../compile/KERNEL_NAME_HERE
1705         make depend
1706         make
1707         make install
1708
1709         If this fails, go to the "To build a kernel" section.
1710
1711         To rebuild everything and install it on the current system.
1712         -----------------------------------------------------------
1713         # Note: sometimes if you are running current you gotta do more than
1714         # is listed here if you are upgrading from a really old current.
1715
1716         <make sure you have good level 0 dumps>
1717         make buildworld
1718         make kernel KERNCONF=YOUR_KERNEL_HERE
1719                                                         [1]
1720         <reboot in single user>                         [3]
1721         mergemaster -p                                  [5]
1722         make installworld
1723         mergemaster                                     [4]
1724         make delete-old                                 [6]
1725         <reboot>
1726
1727
1728         To cross-install current onto a separate partition
1729         --------------------------------------------------
1730         # In this approach we use a separate partition to hold
1731         # current's root, 'usr', and 'var' directories.   A partition
1732         # holding "/", "/usr" and "/var" should be about 2GB in
1733         # size.
1734
1735         <make sure you have good level 0 dumps>
1736         <boot into -stable>
1737         make buildworld
1738         make buildkernel KERNCONF=YOUR_KERNEL_HERE
1739         <maybe newfs current's root partition>
1740         <mount current's root partition on directory ${CURRENT_ROOT}>
1741         make installworld DESTDIR=${CURRENT_ROOT}
1742         make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1743         make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1744         cp /etc/fstab ${CURRENT_ROOT}/etc/fstab                    # if newfs'd
1745         <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1746         <reboot into current>
1747         <do a "native" rebuild/install as described in the previous section>
1748         <maybe install compatibility libraries from ports/misc/compat*>
1749         <reboot>
1750
1751
1752         To upgrade in-place from 5.x-stable to current
1753         ----------------------------------------------
1754         <make sure you have good level 0 dumps>
1755         make buildworld                                 [9]
1756         make kernel KERNCONF=YOUR_KERNEL_HERE           [8]
1757                                                         [1]
1758         <reboot in single user>                         [3]
1759         mergemaster -p                                  [5]
1760         make installworld
1761         mergemaster -i                                  [4]
1762         make delete-old                                 [6]
1763         <reboot>
1764
1765         Make sure that you've read the UPDATING file to understand the
1766         tweaks to various things you need.  At this point in the life
1767         cycle of current, things change often and you are on your own
1768         to cope.  The defaults can also change, so please read ALL of
1769         the UPDATING entries.
1770
1771         Also, if you are tracking -current, you must be subscribed to
1772         freebsd-current@freebsd.org.  Make sure that before you update
1773         your sources that you have read and understood all the recent
1774         messages there.  If in doubt, please track -stable which has
1775         much fewer pitfalls.
1776
1777         [1] If you have third party modules, such as vmware, you
1778         should disable them at this point so they don't crash your
1779         system on reboot.
1780
1781         [3] From the bootblocks, boot -s, and then do
1782                 fsck -p
1783                 mount -u /
1784                 mount -a
1785                 cd src
1786                 adjkerntz -i            # if CMOS is wall time
1787         Also, when doing a major release upgrade, it is required that
1788         you boot into single user mode to do the installworld.
1789
1790         [4] Note: This step is non-optional.  Failure to do this step
1791         can result in a significant reduction in the functionality of the
1792         system.  Attempting to do it by hand is not recommended and those
1793         that pursue this avenue should read this file carefully, as well
1794         as the archives of freebsd-current and freebsd-hackers mailing lists
1795         for potential gotchas.
1796
1797         [5] Usually this step is a noop.  However, from time to time
1798         you may need to do this if you get unknown user in the following
1799         step.  It never hurts to do it all the time.  You may need to
1800         install a new mergemaster (cd src/usr.sbin/mergemaster && make
1801         install) after the buildworld before this step if you last updated
1802         from current before 20020224 or from -stable before 20020408.
1803
1804         [6] This only deletes old files and directories. Old libraries
1805         can be deleted by "make delete-old-libs", but you have to make
1806         sure that no program is using those libraries anymore.
1807
1808         [8] In order to have a kernel that can run the 4.x binaries
1809         needed to do an installworld, you must include the COMPAT_FREEBSD4
1810         option in your kernel.  Failure to do so may leave you with a system
1811         that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5
1812         is required to run the 5.x binaries on more recent kernels.
1813
1814         Make sure that you merge any new devices from GENERIC since the
1815         last time you updated your kernel config file.
1816
1817         [9] When checking out sources, you must include the -P flag to have
1818         cvs prune empty directories.
1819
1820         If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1821         "?=" instead of the "=" assignment operator, so that buildworld can
1822         override the CPUTYPE if it needs to.
1823
1824         MAKEOBJDIRPREFIX must be defined in an environment variable, and
1825         not on the command line, or in /etc/make.conf.  buildworld will
1826         warn if it is improperly defined.
1827 FORMAT:
1828
1829 This file contains a list, in reverse chronological order, of major
1830 breakages in tracking -current.  It is not guaranteed to be a complete
1831 list of such breakages, and only contains entries since October 16, 2004.
1832 If you need to see UPDATING entries from before that date, you will need
1833 to fetch an UPDATING file from an older FreeBSD release.
1834
1835 Copyright information:
1836
1837 Copyright 1998-2005 M. Warner Losh.  All Rights Reserved.
1838
1839 Redistribution, publication, translation and use, with or without
1840 modification, in full or in part, in any form or format of this
1841 document are permitted without further permission from the author.
1842
1843 THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1844 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1845 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1846 DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1847 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1848 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1849 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1850 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1851 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1852 IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1853 POSSIBILITY OF SUCH DAMAGE.
1854
1855 If you find this document useful, and you want to, you may buy the
1856 author a beer.
1857
1858 Contact Warner Losh if you have any questions about your use of
1859 this document.
1860
1861 $FreeBSD$