]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - UPDATING
This commit was generated by cvs2svn to compensate for changes in r161537,
[FreeBSD/FreeBSD.git] / UPDATING
1 Updating Information for FreeBSD current users
2
3 This file is maintained and copyrighted by M. Warner Losh
4 <imp@village.org>.  See end of file for further details.  For commonly
5 done items, please see the COMMON ITEMS: section later in the file.
6
7 Items affecting the ports and packages system can be found in
8 /usr/ports/UPDATING.  Please read that file before running
9 portupgrade.
10
11 NOTE TO PEOPLE WHO THINK THAT FreeBSD 7.x IS SLOW:
12         FreeBSD 7.x has many debugging features turned on, in
13         both the kernel and userland.  These features attempt to detect
14         incorrect use of system primitives, and encourage loud failure
15         through extra sanity checking and fail stop semantics.  They
16         also substantially impact system performance.  If you want to
17         do performance measurement, benchmarking, and optimization,
18         you'll want to turn them off.  This includes various WITNESS-
19         related kernel options, INVARIANTS, malloc debugging flags
20         in userland, and various verbose features in the kernel.  Many
21         developers choose to disable these features on build machines
22         to maximize performance.
23
24 20060816:
25         The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour
26         for IP_FIREWALL_FORWARD is now as it was before when it was first
27         committed and for years after. The behaviour is now ON.
28
29 20060725:
30         enigma(1)/crypt(1) utility has been changed on 64 bit architectures.
31         Now it can decrypt files created from different architectures.
32         Unfortunately, it is no longer able to decrypt a cipher text
33         generated with an older version on 64 bit architectures.
34         If you have such a file, you need old utility to decrypt it.
35
36 20060709:
37         The interface version of the i4b kernel part has changed. So
38         after updating the kernel sources and compiling a new kernel,
39         the i4b user space tools in "/usr/src/usr.sbin/i4b" must also
40         be rebuilt, and vice versa.
41  
42 20060627:
43         The XBOX kernel now defaults to the nfe(4) driver instead of
44         the nve(4) driver. Please update your configuration
45         accordingly.
46
47 20060511:
48         The machdep.* sysctls and the adjkerntz utility have been
49         modified a bit.  The new adjkerntz utility uses the new
50         sysctl names and sysctlbyname() calls, so it may be impossible
51         to run an old /sbin/adjkerntz utility in single-user mode
52         with a new kernel.  Replace the `adjkerntz -i' step before
53         `make installworld' with:
54
55             /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i
56
57         and proceed as usual with the rest of the installworld-stage
58         steps.  Otherwise, you risk installing binaries with their
59         timestamp set several hours in the future, especially if
60         you are running with local time set to GMT+X hours.
61
62 20060412:
63         The ip6fw utility has been removed.  The behavior provided by
64         ip6fw has been in ipfw2 for a good while and the rc.d scripts
65         have been updated to deal with it.  There are some rules that
66         might not migrate cleanly.  Use rc.firewall6 as a template to
67         rewrite rules.
68
69 20060428:
70         The puc(4) driver has been overhauled. The ebus(4) and sbus(4)
71         attachments have been removed. Make sure to configure scc(4)
72         on sparc64. Note also that by default puc(4) will use uart(4)
73         and not sio(4) for serial ports because interrupt handling has
74         been optimized for multi-port serial cards and only uart(4)
75         implements the interface to support it.
76
77 20060330:
78         The scc(4) driver replaces puc(4) for Serial Communications
79         Controllers (SCCs) like the Siemens SAB82532 and the Zilog
80         Z8530. On sparc64, it is advised to add scc(4) to the kernel
81         configuration to make sure that the serial ports remain
82         functional.
83
84 20060317:
85         Most world/kernel related NO_* build options changed names.
86         New knobs have common prefixes WITHOUT_*/WITH_* (modelled
87         after FreeBSD ports) and should be set in /etc/src.conf
88         (the src.conf(5) manpage is provided).  Full backwards
89         compatibility is maintained for the time being though it's
90         highly recommended to start moving old options out of the
91         system-wide /etc/make.conf file into the new /etc/src.conf
92         while also properly renaming them.  More conversions will
93         likely follow.  Posting to current@:
94
95         http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html
96
97 20060305:
98         The NETSMBCRYPTO kernel option has been retired because its
99         functionality is always included in NETSMB and smbfs.ko now.
100
101 20060303:
102         The TDFX_LINUX kernel option was retired and replaced by the
103         tdfx_linux device.  The latter can be loaded as the 3dfx_linux.ko
104         kernel module.  Loading it alone should suffice to get 3dfx support
105         for Linux apps because it will pull in 3dfx.ko and linux.ko through
106         its dependencies.
107
108 20060204:
109         The 'audit' group was added to support the new auditing functionality
110         in the base system.  Be sure to follow the directions for updating,
111         including the requirement to run mergemaster -p.
112
113 20060201:
114         The kernel ABI to file system modules was changed on i386.
115         Please make sure that your kernel and modules are in sync.
116         
117 20060118:
118         This actually occured some time ago, but installing the kernel
119         now also installs a bunch of symbol files for the kernel modules.
120         This increases the size of /boot/kernel to about 67Mbytes. You
121         will need twice this if you will eventually back this up to kernel.old
122         on your next install.
123         If you have a shortage of room in your root partition, you should add
124         -DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes"
125         to your /etc/make.conf.
126
127 20060113:
128         libc's malloc implementation has been replaced.  This change has the
129         potential to uncover application bugs that previously went unnoticed.
130         See the malloc(3) manual page for more details.
131
132 20060112:
133         The generic netgraph(4) cookie has been changed. If you upgrade
134         kernel passing this point, you also need to upgrade userland
135         and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4.
136
137 20060106:
138         si(4)'s device files now contain the unit number.
139         Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f].
140
141 20060106:
142         The kernel ABI was mostly destroyed due to a change in the size
143         of struct lock_object which is nested in other structures such
144         as mutexes which are nested in all sorts of other structures.
145         Make sure your kernel and modules are in sync.
146
147 20051231:
148         The page coloring algorithm in the VM subsystem was converted
149         from tuning with kernel options to autotuning. Please remove
150         any PQ_* option except PQ_NOOPT from your kernel config.
151
152 20051211:
153         The net80211-related tools in the tools/tools/ath directory
154         have been moved to tools/tools/net80211 and renamed with a
155         "wlan" prefix.  Scripts that use them should be adjusted
156         accordingly.
157
158 20051202:
159         Scripts in the local_startup directories (as defined in
160         /etc/defaults/rc.conf) that have the new rc.d semantics will
161         now be run as part of the base system rcorder. If there are
162         errors or problems with one of these local scripts, it could
163         cause boot problems. If you encounter such problems, boot in
164         single user mode, remove that script from the */rc.d directory.
165         Please report the problem to the port's maintainer, and the
166         freebsd-ports@freebsd.org mailing list.
167
168 20051129:
169         The nodev mount option was deprecated in RELENG_6 (where it
170         was a no-op), and is now unsupported.  If you have nodev or dev listed
171         in /etc/fstab, remove it, otherwise it will result in a mount error.
172
173 20051129:
174         ABI between ipfw(4) and ipfw(8) has been changed. You need
175         to rebuild ipfw(8) when rebuilding kernel.
176
177 20051108:
178         rp(4)'s device files now contain the unit number.
179         Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f].
180
181 20051029:
182         /etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp.
183         Its /etc/rc.conf.d configuration file has been `ppp' from
184         the beginning, and hence there is no need to touch it.
185
186 20051014:
187         Now most modules get their build-time options from the kernel
188         configuration file.  A few modules still have fixed options
189         due to their non-conformant implementation, but they will be
190         corrected eventually.  You may need to review the options of
191         the modules in use, explicitly specify the non-default options
192         in the kernel configuration file, and rebuild the kernel and
193         modules afterwards.
194
195 20051001:
196         kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8)
197         to turn polling(4) on your interfaces.
198
199 20050927:
200         The old bridge(4) implementation was retired.  The new
201         if_bridge(4) serves as a full functional replacement.
202
203 20050722:
204         The ai_addrlen of a struct addrinfo was changed to a socklen_t
205         to conform to POSIX-2001.  This change broke an ABI
206         compatibility on 64 bit architecture.  You have to recompile
207         userland programs that use getaddrinfo(3) on 64 bit
208         architecture.
209
210 20050711:
211         RELENG_6 branched here.
212
213 20050629:
214         The pccard_ifconfig rc.conf variable has been removed and a new
215         variable, ifconfig_DEFAULT has been introduced.  Unlike
216         pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that
217         do not have ifconfig_ifn entries rather than just those in
218         removable_interfaces.
219
220 20050616:
221         Some previous versions of PAM have permitted the use of
222         non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring
223         to third party PAM modules in /usr/local/lib.  A change has been
224         made to require the use of absolute paths in order to avoid
225         ambiguity and dependence on library path configuration, which may
226         affect existing configurations.
227
228 20050610:
229         Major changes to network interface API.  All drivers must be
230         recompiled.  Drivers not in the base system will need to be
231         updated to the new APIs.
232
233 20050609:
234         Changes were made to kinfo_proc in sys/user.h.  Please recompile
235         userland, or commands like `fstat', `pkill', `ps', `top' and `w'
236         will not behave correctly.
237
238         The API and ABI for hwpmc(4) have changed with the addition
239         of sampling support.  Please recompile lib/libpmc(3) and
240         usr.sbin/{pmcstat,pmccontrol}.
241
242 20050606:
243         The OpenBSD dhclient was imported in place of the ISC dhclient
244         and the network interface configuration scripts were updated
245         accordingly.  If you use DHCP to configure your interfaces, you
246         must now run devd.  Also, DNS updating was lost so you will need
247         to find a workaround if you use this feature.
248
249         The '_dhcp' user was added to support the OpenBSD dhclient.  Be
250         sure to run mergemaster -p (like you are supposed to do every time
251         anyway).
252
253 20050605:
254         if_bridge was added to the tree. This has changed struct ifnet.
255         Please recompile userland and all network related modules.
256
257 20050603:
258         The n_net of a struct netent was changed to an uint32_t, and
259         1st argument of getnetbyaddr() was changed to an uint32_t, to
260         conform to POSIX-2001.  These changes broke an ABI
261         compatibility on 64 bit architecture.  With these changes,
262         shlib major of libpcap was bumped.  You have to recompile
263         userland programs that use getnetbyaddr(3), getnetbyname(3),
264         getnetent(3) and/or libpcap on 64 bit architecture.
265
266 20050528:
267         Kernel parsing of extra options on '#!' first lines of shell
268         scripts has changed.  Lines with multiple options likely will
269         fail after this date.  For full details, please see
270                 http://people.freebsd.org/~gad/Updating-20050528.txt
271
272 20050503:
273         The packet filter (pf) code has been updated to OpenBSD 3.7
274         Please note the changed anchor syntax and the fact that
275         authpf(8) now needs a mounted fdescfs(5) to function.
276
277 20050415:
278         The NO_MIXED_MODE kernel option has been removed from the i386
279         amd64 platforms as its use has been superceded by the new local
280         APIC timer code.  Any kernel config files containing this option
281         should be updated.
282
283 20050227:
284         The on-disk format of LC_CTYPE files was changed to be machine
285         independent.  Please make sure NOT to use NO_CLEAN buildworld
286         when crossing this point. Crossing this point also requires
287         recompile or reinstall of all locale depended packages.
288
289 20050225:
290         The ifi_epoch member of struct if_data has been changed to
291         contain the uptime at which the interface was created or the
292         statistics zeroed rather then the wall clock time because
293         wallclock time may go backwards.  This should have no impact
294         unless an snmp implementation is using this value (I know of
295         none at this point.)
296
297 20050224:
298         The acpi_perf and acpi_throttle drivers are now part of the
299         acpi(4) main module.  They are no longer built separately.
300
301 20050223:
302         The layout of struct image_params has changed. You have to
303         recompile all compatibility modules (linux, svr4, etc) for use
304         with the new kernel.
305
306 20050223:
307         The p4tcc driver has been merged into cpufreq(4).  This makes
308         "options CPU_ENABLE_TCC" obsolete.  Please load cpufreq.ko or
309         compile in "device cpufreq" to restore this functionality.
310
311 20050220:
312         The responsibility of recomputing the file system summary of
313         a SoftUpdates-enabled dirty volume has been transferred to the
314         background fsck.  A rebuild of fsck(8) utility is recommended
315         if you have updated the kernel.
316
317         To get the old behavior (recompute file system summary at mount
318         time), you can set vfs.ffs.compute_summary_at_mount=1 before
319         mounting the new volume.
320
321 20050206:
322         The cpufreq import is complete.  As part of this, the sysctls for
323         acpi(4) throttling have been removed.  The power_profile script
324         has been updated, so you can use performance/economy_cpu_freq in
325         rc.conf(5) to set AC on/offline cpu frequencies.
326
327 20050206:
328         NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko)
329         requires recompiling libnetgraph and userland netgraph utilities.
330
331 20050114:
332         Support for abbreviated forms of a number of ipfw options is
333         now deprecated.  Warnings are printed to stderr indicating the
334         correct full form when a match occurs.  Some abbreviations may
335         be supported at a later date based on user feedback.  To be
336         considered for support, abbreviations must be in use prior to
337         this commit and unlikely to be confused with current key words.
338
339 20041221:
340         By a popular demand, a lot of NOFOO options were renamed
341         to NO_FOO (see bsd.compat.mk for a full list).  The old
342         spellings are still supported, but will cause annoying
343         warnings on stderr.  Make sure you upgrade properly (see
344         the COMMON ITEMS: section later in this file).
345
346 20041219:
347         Auto-loading of ancillary wlan modules such as wlan_wep has
348         been temporarily disabled; you need to statically configure
349         the modules you need into your kernel or explicitly load them
350         prior to use.  Specifically, if you intend to use WEP encryption
351         with an 802.11 device load/configure wlan_wep; if you want to
352         use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp,
353         and wlan_xauth as required.
354
355 20041213:
356         The behaviour of ppp(8) has changed slightly.  If lqr is enabled
357         (``enable lqr''), older versions would revert to LCP ECHO mode on
358         negotiation failure.  Now, ``enable echo'' is required for this
359         behaviour.  The ppp version number has been bumped to 3.4.2 to
360         reflect the change.
361
362 20041201:
363         The wlan support has been updated to split the crypto support
364         into separate modules.  For static WEP you must configure the
365         wlan_wep module in your system or build and install the module
366         in place where it can be loaded (the kernel will auto-load
367         the module when a wep key is configured).
368
369 20041201:
370         The ath driver has been updated to split the tx rate control
371         algorithm into a separate module.  You need to include either
372         ath_rate_onoe or ath_rate_amrr when configuring the kernel.
373
374 20041116:
375         Support for systems with an 80386 CPU has been removed.  Please
376         use FreeBSD 5.x or earlier on systems with an 80386.
377
378 20041110:
379         We have had a hack which would mount the root filesystem
380         R/W if the device were named 'md*'.  As part of the vnode
381         work I'm doing I have had to remove this hack.  People
382         building systems which use preloaded MD root filesystems
383         may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in
384         their /etc/rc scripts.
385
386 20041104:
387         FreeBSD 5.3 shipped here.
388
389 20041102:
390         The size of struct tcpcb has changed again due to the removal
391         of RFC1644 T/TCP.  You have to recompile userland programs that
392         read kmem for tcp sockets directly (netstat, sockstat, etc.)
393
394 20041022:
395         The size of struct tcpcb has changed.  You have to recompile
396         userland programs that read kmem for tcp sockets directly
397         (netstat, sockstat, etc.)
398
399 20041016:
400         RELENG_5 branched here.  For older entries, please see updating
401         in the RELENG_5 branch.
402
403 COMMON ITEMS:
404
405         General Notes
406         -------------
407         Avoid using make -j when upgrading.  From time to time in the
408         past there have been problems using -j with buildworld and/or
409         installworld.  This is especially true when upgrading between
410         "distant" versions (eg one that cross a major release boundary
411         or several minor releases, or when several months have passed
412         on the -current branch).
413
414         Sometimes, obscure build problems are the result of environment
415         poisoning.  This can happen because the make utility reads its
416         environment when searching for values for global variables.
417         To run your build attempts in an "environmental clean room",
418         prefix all make commands with 'env -i '.  See the env(1) manual
419         page for more details.
420
421         When upgrading from one major version to another it is generally
422         best to upgrade to the latest code in the currently installed branch
423         first, then do an upgrade to the new branch. This is the best-tested
424         upgrade path, and has the highest probability of being successful.
425         Please try this approach before reporting problems with a major
426         version upgrade.
427
428         To build a kernel
429         -----------------
430         If you are updating from a prior version of FreeBSD (even one just
431         a few days old), you should follow this procedure.  It is the most
432         failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
433
434         make kernel-toolchain
435         make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
436         make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
437
438         To test a kernel once
439         ---------------------
440         If you just want to boot a kernel once (because you are not sure
441         if it works, or if you want to boot a known bad kernel to provide
442         debugging information) run
443         make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
444         nextboot -k testkernel
445
446         To just build a kernel when you know that it won't mess you up
447         --------------------------------------------------------------
448         This assumes you are already running a 5.X system.  Replace
449         ${arch} with the architecture of your machine (e.g. "i386",
450         "alpha", "amd64", "ia64", "pc98", "sparc64", etc).
451
452         cd src/sys/${arch}/conf
453         config KERNEL_NAME_HERE
454         cd ../compile/KERNEL_NAME_HERE
455         make depend
456         make
457         make install
458
459         If this fails, go to the "To build a kernel" section.
460
461         To rebuild everything and install it on the current system.
462         -----------------------------------------------------------
463         # Note: sometimes if you are running current you gotta do more than
464         # is listed here if you are upgrading from a really old current.
465
466         <make sure you have good level 0 dumps>
467         make buildworld
468         make kernel KERNCONF=YOUR_KERNEL_HERE
469                                                         [1]
470         <reboot in single user>                         [3]
471         mergemaster -p                                  [5]
472         make installworld
473         make delete-old
474         mergemaster                                     [4]
475         <reboot>
476
477
478         To cross-install current onto a separate partition
479         --------------------------------------------------
480         # In this approach we use a separate partition to hold
481         # current's root, 'usr', and 'var' directories.   A partition
482         # holding "/", "/usr" and "/var" should be about 2GB in
483         # size.
484
485         <make sure you have good level 0 dumps>
486         <boot into -stable>
487         make buildworld
488         make buildkernel KERNCONF=YOUR_KERNEL_HERE
489         <maybe newfs current's root partition>
490         <mount current's root partition on directory ${CURRENT_ROOT}>
491         make installworld DESTDIR=${CURRENT_ROOT}
492         make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
493         make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
494         cp /etc/fstab ${CURRENT_ROOT}/etc/fstab                    # if newfs'd
495         <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
496         <reboot into current>
497         <do a "native" rebuild/install as described in the previous section>
498         <maybe install compatibility libraries from src/lib/compat>
499         <reboot>
500
501
502         To upgrade in-place from 5.x-stable to current
503         ----------------------------------------------
504         <make sure you have good level 0 dumps>
505         make buildworld                                 [9]
506         make kernel KERNCONF=YOUR_KERNEL_HERE           [8]
507                                                         [1]
508         <reboot in single user>                         [3]
509         mergemaster -p                                  [5]
510         make installworld
511         make delete-old
512         mergemaster -i                                  [4]
513         <reboot>
514
515         Make sure that you've read the UPDATING file to understand the
516         tweaks to various things you need.  At this point in the life
517         cycle of current, things change often and you are on your own
518         to cope.  The defaults can also change, so please read ALL of
519         the UPDATING entries.
520
521         Also, if you are tracking -current, you must be subscribed to
522         freebsd-current@freebsd.org.  Make sure that before you update
523         your sources that you have read and understood all the recent
524         messages there.  If in doubt, please track -stable which has
525         much fewer pitfalls.
526
527         [1] If you have third party modules, such as vmware, you
528         should disable them at this point so they don't crash your
529         system on reboot.
530
531         [3] From the bootblocks, boot -s, and then do
532                 fsck -p
533                 mount -u /
534                 mount -a
535                 cd src
536                 adjkerntz -i            # if CMOS is wall time
537         Also, when doing a major release upgrade, it is required that
538         you boot into single user mode to do the installworld.
539
540         [4] Note: This step is non-optional.  Failure to do this step
541         can result in a significant reduction in the functionality of the
542         system.  Attempting to do it by hand is not recommended and those
543         that pursue this avenue should read this file carefully, as well
544         as the archives of freebsd-current and freebsd-hackers mailing lists
545         for potential gotchas.
546
547         [5] Usually this step is a noop.  However, from time to time
548         you may need to do this if you get unknown user in the following
549         step.  It never hurts to do it all the time.  You may need to
550         install a new mergemaster (cd src/usr.sbin/mergemaster && make
551         install) after the buildworld before this step if you last updated
552         from current before 20020224 or from -stable before 20020408.
553
554         [8] In order to have a kernel that can run the 4.x binaries
555         needed to do an installworld, you must include the COMPAT_FREEBSD4
556         option in your kernel.  Failure to do so may leave you with a system
557         that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5
558         is required to run the 5.x binaries on more recent kernels.
559
560         Make sure that you merge any new devices from GENERIC since the
561         last time you updated your kernel config file.
562
563         [9] When checking out sources, you must include the -P flag to have
564         cvs prune empty directories.
565
566         If CPUTYPE is defined in your /etc/make.conf, make sure to use the
567         "?=" instead of the "=" assignment operator, so that buildworld can
568         override the CPUTYPE if it needs to.
569
570         MAKEOBJDIRPREFIX must be defined in an environment variable, and
571         not on the command line, or in /etc/make.conf.  buildworld will
572         warn if it is improperly defined.
573 FORMAT:
574
575 This file contains a list, in reverse chronological order, of major
576 breakages in tracking -current.  Not all things will be listed here,
577 and it only starts on October 16, 2004.  Updating files can found in
578 previous releases if your system is older than this.
579
580 Copyright information:
581
582 Copyright 1998-2005 M. Warner Losh.  All Rights Reserved.
583
584 Redistribution, publication, translation and use, with or without
585 modification, in full or in part, in any form or format of this
586 document are permitted without further permission from the author.
587
588 THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
589 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
590 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
591 DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
592 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
593 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
594 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
595 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
596 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
597 IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
598 POSSIBILITY OF SUCH DAMAGE.
599
600 If you find this document useful, and you want to, you may buy the
601 author a beer.
602
603 Contact Warner Losh if you have any questions about your use of
604 this document.
605
606 $FreeBSD$