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