1 Updating Information for FreeBSD current users
3 This file is maintained and copyrighted by M. Warner Losh
4 <imp@village.org>. Please send new entries directly to him. See end
5 of file for further details. For commonly done items, please see the
6 COMMON ITEMS: section later in the file.
8 This is for the 4.3 release branch. All entries since 4.3 are an
9 itemized list of commits to this branch, numbered from the beginning.
10 By this count, we're at 4.3.0p9
13 The PAM libraries have had an API upgrade that is beyond
14 the ability of the shared library major number to handle.
15 It is manifested by PAM-using ports dumping core. The
16 solution is to rebuild those ports.
19 The kernel compile module has moved from src/sys/compile/FOO
20 to src/sys/${MACHINE}/compile/FOO.
23 The pccard modem issue has been corrected. OLDCARD support is
24 still a little weak in -current. slot 1 is known not to work
25 on some TI based cardbus bridges. Some cardbus bridges do not
26 properly detect insert/removal events. IRQ configuration needs
30 Softupdates problems have been corrected.
33 Peter ripped out the linkerset support. You must, as always,
34 rerun config after you cvsup if you are using the traditional
35 kernel building methods.
38 pccard modems may not work with current after 20010604 date. Some
39 do, others result in panics. *MAKE*SURE* that you update your
40 config and /etc/rc.conf ala the 20010604 entry, or you will have
41 problems (this issue will be fixed, it just hasn't been yet).
44 SOFTUPDATES seem to be broken since the middle of May or so. Do not
45 use them in current. You can disable softupdates on all mounted
46 partitions, or remove SOFTUPDATES the kernel config file.
49 After Peter's commits to the hints code, people have been noticing
50 that certain devices are attached (or try to) twice. This is due
51 to having both static hints as well as a /boot/device.hints. To
52 work around this issue, please use only one or the other mechanism
53 until this bug is fixed.
55 Please note that a feature of config is that if you have config
56 file FOO and FOO.hints, it automatically adds FOO.hints to the
57 hints.c file, wheather you want it to or not.
60 Locale names have changed to match other systems better.
63 pccard support for pci cards has been committed. You must change
64 your /etc/pccard.conf irq lines. It must match the irq used by
65 pcic device. Interrupt storms may result if you fail to do this.
66 Interrupt storms look a lot like a hang.
68 You must also install a new pccardd, otherwise you will get an
69 interrupt storm at card reset time (just after it tells you what
72 pccardd_flags="-I" is necessary for the time being. It tells pccardd
73 not to ask the kernel if the interrupt is really free or not before
74 using it. You can either change the /etc/pccard.conf irq lines to
75 match pcic, or add "-i X" to the pccardd_flags.
78 INSTALL=install -C is being deprecated. If you want to do this,
79 use COPY=-C instead. The former method will be supported for only
80 a limited time. If you see
82 install: warning: the -d and -C options may not be specified together
84 in your makeworld, then you need to migrate towards using
88 It appears that vm is now stable enough to use again. However,
89 there may be other problems, so caution is still urged. alpha
90 definitely is in bad shape.
93 Minor repo damanged has happened. This may cause problems
94 with cvsup of ports. If you get errors, please see
95 http://www.FreeBSD.org/cgi/query-pr.cgi?pr=27495
96 at the bottom for details on a workaround. The error message
98 Updater failed: Cannot delete "/usr/ports/www/jakarta-tomcat/files": Directory not empty
101 Vm and/or swapping are busted on -current. Please be patient.
104 pccard has had much reorganizational work done to it over
105 the past few days. Everything should still work, but if
106 not, please contact imp@freebsd.org.
109 ata ioctl changed. Make sure to recompile both kernel and
110 userland at the same time.
113 New ncurses imported.
116 DEVFS is now opt out, not opt in. Barring major problems, this
117 will be the only way to go starting July 1.
120 Perl breakage in 20010501 was corrected at 14:18:33 PDT.
123 Building perl was broken at 02:25:25 PDT.
126 The bug in 20010429 was corrected at 07:35:37 PDT. It is safe to
127 go back in the water.
130 A bad bug was committed at 04:48:42 PDT. Don't use kernels after
131 this date, but before the correction date.
134 old fsck and new kernel interactions appear to have been fixed.
137 fsck and the kernel were changed to handle some optimizations
138 to directory layout. This breaks backward compatibility.
139 Update only if you understand that you must not use the old
140 fsck with the new kernel ever.
143 fsck has changed the meaning of the pass column in /etc/fstab.
144 Please see the cvs commit to fsck.8 or the fsck.8 man page for
145 details. It is unclear if changes to /etc/fstab are necessary.
148 portmap had changed name to rpcbind for maximum POLA in your
149 current world. /etc/hosts.{allow,deny} needs changes. nfs and
150 other rpc based programs that rely on portmapper will not work
151 without updates to /etc/hosts.{allow,deny} and /etc/netconfig.
154 ata subsystem changes. ATA_ENABLE_ATAPI_DMA, ATA_ENABLE_WC
155 and ATA_ENABEL_TAGS are no longer kernel options. They have
156 been replaced by tunables. See ata.4 for details.
159 The fxp driver was converted to use miibus. If you compile
160 fxp into your kernel statically, you will need to add miibus.
163 The wi device now defaults to BSS (infrastructure) mode
167 /dev/urandom should be a symbolic link to /dev/random now.
168 Users of current not using DEVFS need to run MAKEDEV std.
169 ssh might not work if you don't.
172 The ed driver has been updated. It now allows mii attachments,
173 which means that you must include the miibus in your kernel if
174 you use the ed driver.
177 The problems with libc have been corrected. It is now mostly
178 safe to go back into the water.
181 The size of FILE was changed. This breaks upgrading. If
182 you must upgrade, be prepared for pain. It also breaks almost
183 all binaries that you've compiled on -current. You are warned
184 that before upgrading would be a good time to do a level 0
185 dump of your system. No, really, I mean it this time.
187 To get to the new system, you'll need to use the following
188 workaround. Hopefully this can be sorted out so that we
189 don't have to move this to the updating section.
191 To get around the installworld problem, do:
192 # cd /usr/src/usr.bin/sed
196 If that doesn't work, then try:
197 # make -k installworld
201 DEVFS is now the default. If you use vinum, make sure that you
202 do not include devfs in your kernel as problems result.
205 FFS_ROOT and CD9660_ROOT have been removed or deprecated.
206 Remove them from your config.
209 ****************************** WARNING ******************************
210 buildkernel has been changed slightly
211 ****************************** WARNING ******************************
212 KERNCONF replaces the variable KERNEL for buildkernel. You
213 should update your scripts and make.conf accordingly.
216 config has changed to allow DEV_FOO as a replacement for NFOO.
217 This requires a new config to build correctly.
220 The kerrnel option I386_CPU is now mutually exclusive with the
221 other cpu types. If you have an i386 system, be sure that it
222 only had this line. Remove it for all other configurations.
225 Changes to the kernel require it and burncd be in sync.
228 Everyone who has hw.sndunit set to something in
229 /etc/sysctl.conf, it is now hw.snd.unit.
232 ex and vi were broken by some changes to sys/queue.h. If you
233 have a bad vi, you will see make buildworld fail with a core
234 dump while building termcap. You can work around this problem
235 by adding -k to your make buildworld. This will cause the
236 build to complete and install a new vi. Once that's done, you
237 can rebuild again without the -k to pick up anything that
238 might have been ignored by the -k option.
240 Others have suggested that you can just rebuild libc if your
241 vi/ex is dynamically linked, but I've not received any reports
245 There have been some changes to libcrypt in -current. The
246 libscrypt/libdescrypt symlink sillyness is gone and the installed
247 libcrypt is fully functional. Be aware of this.
250 Linksys Fast Ethernet PCCARD cards supported by the ed driver
251 now require the addition of flag 0x80000 to their config line
252 in pccard.conf(5). This flag is not optional. These Linksys
253 cards will not be recognized without it.
256 Important new FreeBSD-version stuff: PAM support has been worked
257 in, partially from the "Unix" OpenSSH version. This requires
258 adding the following in pam.conf:
260 sshd auth sufficient pam_skey.so
261 sshd auth required pam_unix.so try_first_pass
262 sshd session required pam_permit.so
268 The random device needs more entropy, so you need to make sure
269 that you've run mergemaster to get a /etc/rc which will seed
270 /dev/random. If you don't and the system hangs after ldconfig,
271 then banging on the keyboard randomly until it unhangs is one
275 ****************************** WARNING ******************************
276 Sendmail has been updated.
277 ****************************** WARNING ******************************
278 o mail.local(8) is no longer installed as a set-user-id binary.
279 o sendmail(8) is now built with STARTTLS support unless NO_OPENSSL
281 o The default /etc/mail/sendmail.cf disables the SMTP EXPN and VRFY
283 o Now using sendmail's version of vacation(1).
284 o The sendmail cf building tools (contrib/sendmail/cf) are installed
285 in /usr/share/sendmail/cf.
286 o sendmail.cw changed to local-host-names
288 More details can be found at
289 http://people.freebsd.org/~imp/UPDATING/sendmail-20001010
292 The ports tree's new layout is in place. Be sure to update
293 your entire ports tree, or you will have problems.
296 The perl build procedure no longer installs miniperl, nor uses
297 the installed miniperl. It is recommended that you delete
301 This weekend the ports tree will be updated to a new layout.
302 It will be in an inconsistent state until noted in the UPDATING
303 file, or with asami-san's message to the relevant mailing
304 lists. With this new layout, you'll need to update the whole
305 tree for anything to work.
308 There was a change in the passwd format. Need more information.
311 /boot/kernel/kernel.ko -> /boot/kernel/kernel change has taken
312 place. Please update boot loader (not the boot blocks) at the
313 same time as your kernel.
316 The new pmtimer device is necessary for laptops. Failure to
317 include the device will cause suspended laptops losing time
318 when they resume. Include
320 in your config file and
321 hint.pmtimer.0.at="isa"
322 to your /boot/device.hints file.
325 The random device has been turned into a (pseudo-)device,
326 rather than an option. The supplied kernel config files have
327 been updated. You will need to do something similar in your
328 own kernel config file.
333 If you prefer to load the loadable module, you need to do
337 The random device module has been renamed from randomdev.ko to
338 random.ko. You will need to edit your /boot/loader.conf to
339 reflect this if you load this module at boot time.
340 The line should read:
344 The SMPNG commit has happened. It should work, but if it
345 doesn't, fallback to the PRE_SMPNG CVS tag. There are likely
346 to be a variety of minor issues. Please see 20000905 to make
347 sure you don't have model loading problems which might at
348 first blush appear related to SMP.
351 nsswitch has been imported from NetBSD. Among other things,
352 this means that /etc/host.conf is no longer used. See
353 nsswitch.conf(5) instead. Note that at boot time rc.network
354 will attempt to produce a new nsswitch.conf file for you if you
355 don't have one, and you have host.conf.
358 The ucred structure changed size. This breaks the interface
359 that mountd uses. Trying to use an older mountd with a newer
360 kernel guarantees a panic. This means that you need to use
361 kernels newer than today only with matching mountd, but you
362 needed to do that anyway with the boot loader changes.
365 The boot loader has been updated. The new default kernel is
366 now /boot/kernel/kernel.ko. The new default module location
369 You *MUST* upgrade your boot loader and kernel at the same time.
370 The easiest way to do this is to do the buildworld/buildkernel/
371 installkernel/installworld dance.
373 Furthermore, you are urged to delete your old /modules directory
374 before booting the new kernel, since kldload will find stale
375 modules in that directory instead of finding them in the correct
376 path, /boot/kernel. The most common complaint that this cures
377 is that the linux module crashes your machine after the update.
379 if [ ! -d /boot/kernel.old ]; then
380 mv /modules.old /boot/kernel.old
381 chflags noschg /kernel.old
382 mv /kernel.old /boot/kernel.old/kernel.ko
383 chflags schg /boot/kernel.old/kernel.ko
387 A new issue with the sendmail upgrade has come to light.
388 /etc/aliases has moved to /etc/mail/aliases. Mergemaster will
389 incorrectly install the default aliases in /etc/mail rather than
390 move the old one from /etc. So you'll need to manually move the
391 file, create a symbolic link, remove the old /etc/aliases.db and
392 run newaliases. For safety sake, you should stop sendmail
393 while doing this and run the upgrade when locally sourced email
394 is not likely to be generated.
397 /boot/device.hints is now required for installkernel to
398 succeed. You should copy GENERIC.hints for your architecture
399 into /boot/device.hints. If and only if you compile hints
400 into your kernel, then this file may be empty. Please note,
401 if you have an empty or missing /boot/device.hints file and
402 you neglected to compile hints into your kernel, no boot
403 messages will appear after the boot loader tries to start the
407 If you do NOT have ``options RANDOMDEV'' in your kernel and
408 you DO want the random device then add randomdev_load="YES" to
412 suidperl is now always built and installed on the system, but
413 with permissions of 511. If you have applications that use
414 this program, you are now required to add ENABLE_SUIDPERL=true
415 to /etc/make.conf. If you forget to do this,
416 chmod 4511 /usr/bin/suidperl
417 will fix this until the next build.
420 sendmail has been updated from 8.9.3 to 8.11.0. Some of the more
421 visible changes that may immediately affect your configuration
423 - New default file locations from src/contrib/sendmail/cf/README
424 - newaliases limited to root and trusted users
425 - MSA port (587) turned on by default
426 - New queue file naming system so can't go from 8.11 -> 8.9
427 - FEATURE(`rbl') renamed to FEATURE(`dnsbl')
428 - FEATURE(`nullclient') is more full featured
429 - FEATURE(`nouucp') requires an argument: `reject' or `nospecial'
430 - mail.local FreeBSD-only -b option changed to -B
431 - See src/contrib/sendmail/RELEASE_NOTES for more info
434 suidperl (aka sperl) is no longer build by default. You must
435 specifically define BUILD_SUIDPERL to "true" for it to be build.
436 Furthermore, we recommend that you remove /usr/bin/sperl* and
437 /usr/bin/suidperl files from your system unless you have a
441 Networking defaults have been tightened. Anybody upgrading
442 /etc/defaults/rc.conf needs to add the following lines to
443 /etc/rc.conf if they want to have the same setup
444 afterwards (unless the variables already are set, of course):
445 # Enable network daemons for user convenience.
448 sendmail_enable="YES"
451 If you have null_load="YES" in your /boot/loader.conf, you
452 will need to change that to nullfs_load="YES".
455 The "installkernel" target has changed slightly. Now even if
456 you override KERNEL e.g. 'make installkernel KERNEL=MYKERNEL'
457 it will install the MYKERNEL file (built with the buildkernel
458 target) as /kernel rather than /MYKERNEL. Those who have
459 updated their /boot/loader.conf files to point to /MYKERNEL
460 should remove that entry or perform manual rename of /kernel
464 If you use CVSUP or CTM to get CVS trees, AND you used to get
465 the old crypto files from internat.freebsd.org AND you check
466 out files from the CVS tree with the cvs command, please read
467 http://people.freebsd.org/~imp/internat.txt
468 for details on potential problems that you might have and how
471 If you are merely a mirror, or don't answer yes to each of the
472 clauses above, you needn't worry.
475 /etc/security has been updated to print the inode number of
476 setuid programs that have changed. You will see a large spike
477 in the number of changed programs the first time when you run
478 mergemaster to get a new /etc/security.
481 /dev/random now has good entropy collection (from the keyboard
482 and sysmouse drivers). Please ensure that either `options
483 RANDOMDEV' is present in your kernel config file or that
484 `randomdev_load="YES"' is in your /boot/loader.conf. If you do
485 not have the /dev/random driver, OpenSSL (and consequently
486 lots of crypto tools (like SSH)) will fail with strange
487 errors. (see below, 20000624).
489 FreeBSD-current is safe again to run Crypto.
492 phk made the malloc default options AJ. This may slow things
493 down and uncover other latent bugs in the code. If you need to
494 run at full speed, you can disable this by doing the following:
495 ln -s aj /etc/malloc.conf
498 libftpio's version was accidentally bumped a few days ago. This
499 has been corrected. You may need to remove /usr/lib/libftpio.so.6
500 before doing your next buildworld/installworld pair. It certainly
501 won't hurt to remove it before the update procedure. It will
502 break fetch until a new one is built, but ftp can be used in the
506 The crypto packages have changed for the cvsup. This has been done
507 in a backward compatible way, but the old packages will go away at
508 some point in the future. Look at /usr/share/examples/cvsup for
512 With the new sys/modules/sound/drivers/*, you will need to
513 set SYSDIR until you do an installworld after July 7th.
516 rc.shutdown and rc will now call the rc.d scripts with start
517 or stop. This may cause some harmless warnings from older
518 rc.d scripts that haven't been updated.
521 The libfetch based version of fetch has gone into the tree.
522 Minor problems may result on some of the less popular sites,
523 which should be reported to des@freebsd.org.
526 From approximately this date forward, one must have the crypto
527 system installed in order to build the system and kernel.
528 While not technically strictly true, one should treat it as
529 required and grab the crypto bits. If you are grabbing CVS
530 trees, src-all and cvs-crypto should be treated as if they
531 were required. You should check with the latest collections
532 to make sure that these haven't changed.
535 Mark Murray just committed the first parts of a cleanup of
536 /dev/zero, et al. This is also cleaning up /dev/random.
537 The entropy is disconnected, so DO NOT USE VERSIONS OF FREEBSD
538 -CURRENT FROM THIS POINT FORWARD for cryptographic services
539 until Mark can merge in the fixes to this work in progress.
540 openssh and openssl should not be used to generate keys from this
541 date to the completion of the work.
543 If you must operate at this reduced level of security, add '
544 options RANDOMDEV' to your kernel or modload the randomdev
545 module. You may also need to copy a new MAKEDEV to /dev and
546 recreate the random and urandom devices.
549 The license on the softupdates is now a standard 2 clause
550 BSD license. You may need to remove your symbolic links
551 that used to be required when updating.
554 Scott Flatman <sf@aracnet.com> sent in a decent write-up on
555 the config file update procedure.
556 http://people.freebsd.org/~imp/config-upd.html
557 NOTE: LINT is gone. It has been replaced with NOTES. NOTES
558 isn't buildable. However, you can generate a LINT file.
561 Binutils 2.10 have hit the tree, or will shortly. As soon
562 as they do, the problem noted in 20000522 will be resolved and
563 that workaround will no longer be required.
566 phk removed the compatibility creation of wd devices in the
567 ad driver. If you haven't done so already, you must update
568 your fstab, etc to use the ad devices instead of the wd
571 In addition, you'll need to update your boot blocks to a
572 more modern version, if you haven't already done so. Modern
573 here means 4.0 release or newer (although older releases
577 Peter took an axe to config(8). Be sure that you read his mail
578 on the topic before even thinking about updating. You will
579 need to create a /boot/device.hints or add a hints directive
580 to your config file to compile them in statically. The format
581 of the config file has changed as well. Please see GENERIC or
582 NEWCARD for examples of the new format.
585 A new set of binutils went into the tree today. Anybody
586 building a kernel after this point is advised that they need
587 to rebuild their binutils (or better yet do a
588 buildworld/installworld) before building a new kernel.
590 Due to bugs in binutils, using malloc options (eg /etc/malloc.conf
591 or MALLOC_OPTIONS env var) J will cause ld to dump core. It
592 is recommended that you don't set this option until the problem
596 The ethernet drivers were all updated to clean up the BPF handling.
599 The problems with boot blocks on the alphas have been corrected.
600 This will require some care in updating alphas. A new libstand
601 is requires for the boot blocks to build properly.
604 Recompile all kld modules. Proper version dependency info
608 Modules have been disconnected from the buildworld tree and
609 connected to the kernel building instead.
612 You may need to build gperf
613 cd /usr/src/gnu/usr.bin/gperf && make depend all install
614 when upgrading from 4.0 -> current. The build system now uses
615 an option only in -current.
618 The method that we brand ELF binaries has changed to be more
619 acceptable to the binutils maintainers. You will need to
620 rebrand your ELF binaries that aren't native. One problem
621 binary is the Linux ldconfig. After your make world, but
622 before you reboot, you'll need to issue:
623 brandelf -t Linux /compat/linux/sbin/ldconfig
624 if you have Linux compatibility enabled on your machine.
627 If you have really bad/marginal IDE drives, you may find they
628 don't work well. Use pio mode instead. The easiest way to
629 cope if you have a problem combination is to add:
630 /sbin/sysctl -w hw.atamodes=pio,pio,pio,pio
631 to the start of /etc/rc.conf.
634 The ISA and PCI compatibility shims have been connected to the
635 options COMPAT_OLDISA and COMPAT_OLDPCI. If you are using old
636 style PCI or ISA drivers (i.e. tx, voxware, etc.) you must
637 include the appropriate option in your kernel config. Drivers
638 using the shims should be updated or they won't ship with
639 5.0-RELEASE, targeted for 2001.
642 We've entered the traditional post release dumping party.
643 Large kernel changes are being committed and are in the
644 works. It is important to keep the systems' klds and kernel
645 in sync as kernel interfaces and structures are changing.
646 Before reporting kernel panics, make sure that all modules
647 that you are loading are up to date.
650 If you are upgrading from an older version of FreeBSD, you
651 need to update your boot blocks as well. 'disklabel -B ad0'
652 will do the trick. This isn't critical until you remove your
653 wd device entries in /dev, at which point your system will not
657 4.0 RELEASE shipped. Please see the 4.0 UPDATING file for how
658 to upgrade to 4.0 from 3.x.
664 Avoid using make -j when upgrading. From time to time in the
665 past there have been problems using -j with buildworld and/or
666 installworld. This is especially true when upgrading between
667 "distant" versions (eg one that cross a major release boundary
668 or several minor releases, or when several months have passed
669 on the -current branch).
673 If you are updating from a prior version of FreeBSD (even one just
674 a few days old), you should follow this procedure. With a
675 /usr/obj tree with a fresh buildworld,
676 make buildkernel KERNCONF=YOUR_KERNEL_HERE
677 make installkernel KERNCONF=YOUR_KERNEL_HERE
679 To just build a kernel when you know that it won't mess you up
680 --------------------------------------------------------------
681 cd src/sys/{i386,alpha}/conf
682 config KERNEL_NAME_HERE [1]
683 cd ../../compile/KERNEL_NAME_HERE
688 [1] If in doubt, -r might help here.
690 If this fails, go to the "To build a kernel" section.
692 To rebuild everything and install it on the current system.
693 -----------------------------------------------------------
695 Build a new kernel, see above.
697 To upgrade from 4.x-stable to current
698 -------------------------------------
700 make buildkernel KERNCONF=YOUR_KERNEL_HERE
701 cp src/sys/${MACHINE_ARCH}/conf/GENERIC.hints /boot/device.hints [2]
702 make installkernel KERNCONF=YOUR_KERNEL_HERE
703 reboot in single user [3]
709 Make sure that you've read the UPDATING file to understand the
710 tweaks to various things you need. At this point in the life
711 cycle of current, things change often and you are on your own
712 to cope. The defaults can also change, so please read ALL of
713 the UPDATING entries.
715 Also, if you are tracking -current, you must be subscribed to
716 freebsd-current@freebsd.org. Make sure that before you update
717 your sources that you have read and understood all the recent
718 messages there. If in doubt, please track -stable which has
721 [1] If you have third party modules, such as vmware, you
722 should disable them at this point so they don't crash your
725 [2] If you have legacy ISA devices, you may need to create
726 your own device.hints to reflect your unique hardware
729 [3] From the bootblocks, boot -s, and then do
734 adjkerntz -i # if COMS is wall time
736 [4] Note: This step is non-optional. Failure to do this step
737 can result in a significant reduction in the functionality of the
738 system. Attempting to do it by hand is not recommended and those
739 that pursue this avenue should read this file carefully, as well
740 as the archives of freebsd-current and freebsd-hackers mailing lists
741 for potential gotchas.
745 This file contains a list, in reverse chronological order, of major
746 breakages in tracking -current. Not all things will be listed here,
747 and it only starts on March 15, 2000. Updating files can found in
748 previous releases if your system is older than this.
750 Please filter your entries through Warner Losh (imp@village.org) so
751 that the style, formatting, etc of this file can be maintained.
753 Copyright information:
755 Copyright 1998, 2001 M. Warner Losh. All Rights Reserved.
757 Redistribution, translation and use, with or without modification, in
758 full or in part, are permitted provided that the above copyright
761 THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
762 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
763 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
764 DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
765 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
766 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
767 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
768 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
769 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
770 IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
771 POSSIBILITY OF SUCH DAMAGE.
773 If you find this document useful, and you want to, you may buy the