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