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