1 Eclipse Public License - v 1.0
3 THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
7 a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
8 b) in the case of each subsequent Contributor:
9 i) changes to the Program, and
10 ii) additions to the Program;
11 where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
12 "Contributor" means any person or entity that distributes the Program.
13 "Licensed Patents" mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
14 "Program" means the Contributions distributed in accordance with this Agreement.
15 "Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
18 a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
19 b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
20 c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
21 d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
24 A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
25 a) it complies with the terms and conditions of this Agreement; and
26 b) its license agreement:
27 i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
28 ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
29 iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
30 iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
31 When the Program is made available in source code form:
32 a) it must be made available under this Agreement; and
33 b) a copy of this Agreement must be included with each copy of the Program.
34 Contributors may not remove or alter any copyright notices contained within the Program.
35 Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
37 4. COMMERCIAL DISTRIBUTION
38 Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
39 For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
42 EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
44 6. DISCLAIMER OF LIABILITY
45 EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
48 If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
49 If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
50 All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
51 Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
52 This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.
54 =============================================================================================================
56 The Independent JPEG Group's JPEG software
57 ==========================================
59 README for release 6b of 27-Mar-1998
60 ====================================
62 This distribution contains the sixth public release of the Independent JPEG
63 Group's free JPEG software. You are welcome to redistribute this software and
64 to use it for any purpose, subject to the conditions under LEGAL ISSUES, below.
66 Serious users of this software (particularly those incorporating it into
67 larger programs) should contact IJG at jpeg-info@uunet.uu.net to be added to
68 our electronic mailing list. Mailing list members are notified of updates
69 and have a chance to participate in technical discussions, etc.
71 This software is the work of Tom Lane, Philip Gladstone, Jim Boucher,
72 Lee Crocker, Julian Minguillon, Luis Ortiz, George Phillips, Davide Rossi,
73 Guido Vollbeding, Ge' Weijers, and other members of the Independent JPEG
76 IJG is not affiliated with the official ISO JPEG standards committee.
82 This file contains the following sections:
84 OVERVIEW General description of JPEG and the IJG software.
85 LEGAL ISSUES Copyright, lack of warranty, terms of distribution.
86 REFERENCES Where to learn more about JPEG.
87 ARCHIVE LOCATIONS Where to find newer versions of this software.
88 RELATED SOFTWARE Other stuff you should get.
89 FILE FORMAT WARS Software *not* to get.
90 TO DO Plans for future IJG releases.
92 Other documentation files in the distribution are:
95 install.doc How to configure and install the IJG software.
96 usage.doc Usage instructions for cjpeg, djpeg, jpegtran,
97 rdjpgcom, and wrjpgcom.
98 *.1 Unix-style man pages for programs (same info as usage.doc).
99 wizard.doc Advanced usage instructions for JPEG wizards only.
100 change.log Version-to-version change highlights.
101 Programmer and internal documentation:
102 libjpeg.doc How to use the JPEG library in your own programs.
103 example.c Sample code for calling the JPEG library.
104 structure.doc Overview of the JPEG library's internal structure.
105 filelist.doc Road map of IJG files.
106 coderules.doc Coding style rules --- please read if you contribute code.
108 Please read at least the files install.doc and usage.doc. Useful information
109 can also be found in the JPEG FAQ (Frequently Asked Questions) article. See
110 ARCHIVE LOCATIONS below to find out where to obtain the FAQ article.
112 If you want to understand how the JPEG code works, we suggest reading one or
113 more of the REFERENCES, then looking at the documentation files (in roughly
114 the order listed) before diving into the code.
120 This package contains C software to implement JPEG image compression and
121 decompression. JPEG (pronounced "jay-peg") is a standardized compression
122 method for full-color and gray-scale images. JPEG is intended for compressing
123 "real-world" scenes; line drawings, cartoons and other non-realistic images
124 are not its strong suit. JPEG is lossy, meaning that the output image is not
125 exactly identical to the input image. Hence you must not use JPEG if you
126 have to have identical output bits. However, on typical photographic images,
127 very good compression levels can be obtained with no visible change, and
128 remarkably high compression levels are possible if you can tolerate a
129 low-quality image. For more details, see the references, or just experiment
130 with various compression settings.
132 This software implements JPEG baseline, extended-sequential, and progressive
133 compression processes. Provision is made for supporting all variants of these
134 processes, although some uncommon parameter settings aren't implemented yet.
135 For legal reasons, we are not distributing code for the arithmetic-coding
136 variants of JPEG; see LEGAL ISSUES. We have made no provision for supporting
137 the hierarchical or lossless processes defined in the standard.
139 We provide a set of library routines for reading and writing JPEG image files,
140 plus two sample applications "cjpeg" and "djpeg", which use the library to
141 perform conversion between JPEG and some other popular image file formats.
142 The library is intended to be reused in other applications.
144 In order to support file conversion and viewing software, we have included
145 considerable functionality beyond the bare JPEG coding/decoding capability;
146 for example, the color quantization modules are not strictly part of JPEG
147 decoding, but they are essential for output to colormapped file formats or
148 colormapped displays. These extra functions can be compiled out of the
149 library if not required for a particular application. We have also included
150 "jpegtran", a utility for lossless transcoding between different JPEG
151 processes, and "rdjpgcom" and "wrjpgcom", two simple applications for
152 inserting and extracting textual comments in JFIF files.
154 The emphasis in designing this software has been on achieving portability and
155 flexibility, while also making it fast enough to be useful. In particular,
156 the software is not intended to be read as a tutorial on JPEG. (See the
157 REFERENCES section for introductory material.) Rather, it is intended to
158 be reliable, portable, industrial-strength code. We do not claim to have
159 achieved that goal in every aspect of the software, but we strive for it.
161 We welcome the use of this software as a component of commercial products.
162 No royalty is required, but we do ask for an acknowledgement in product
163 documentation, as described under LEGAL ISSUES.
171 1. We don't promise that this software works. (But if you find any bugs,
173 2. You can use this software for whatever you want. You don't have to pay us.
174 3. You may not pretend that you wrote this software. If you use it in a
175 program, you must acknowledge somewhere in your documentation that
176 you've used the IJG code.
180 The authors make NO WARRANTY or representation, either express or implied,
181 with respect to this software, its quality, accuracy, merchantability, or
182 fitness for a particular purpose. This software is provided "AS IS", and you,
183 its user, assume the entire risk as to its quality and accuracy.
185 This software is copyright (C) 1991-1998, Thomas G. Lane.
186 All Rights Reserved except as specified below.
188 Permission is hereby granted to use, copy, modify, and distribute this
189 software (or portions thereof) for any purpose, without fee, subject to these
191 (1) If any part of the source code for this software is distributed, then this
192 README file must be included, with this copyright and no-warranty notice
193 unaltered; and any additions, deletions, or changes to the original files
194 must be clearly indicated in accompanying documentation.
195 (2) If only executable code is distributed, then the accompanying
196 documentation must state that "this software is based in part on the work of
197 the Independent JPEG Group".
198 (3) Permission for use of this software is granted only if the user accepts
199 full responsibility for any undesirable consequences; the authors accept
200 NO LIABILITY for damages of any kind.
202 These conditions apply to any software derived from or based on the IJG code,
203 not just to the unmodified library. If you use our work, you ought to
206 Permission is NOT granted for the use of any IJG author's name or company name
207 in advertising or publicity relating to this software or products derived from
208 it. This software may be referred to only as "the Independent JPEG Group's
211 We specifically permit and encourage the use of this software as the basis of
212 commercial products, provided that all warranty or liability claims are
213 assumed by the product vendor.
216 ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,
217 sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.
218 ansi2knr.c is NOT covered by the above copyright and conditions, but instead
219 by the usual distribution terms of the Free Software Foundation; principally,
220 that you must include source code if you redistribute it. (See the file
221 ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part
222 of any program generated from the IJG code, this does not limit you more than
223 the foregoing paragraphs do.
225 The Unix configuration script "configure" was produced with GNU Autoconf.
226 It is copyright by the Free Software Foundation but is freely distributable.
227 The same holds for its supporting scripts (config.guess, config.sub,
228 ltconfig, ltmain.sh). Another support script, install-sh, is copyright
229 by M.I.T. but is also freely distributable.
231 It appears that the arithmetic coding option of the JPEG spec is covered by
232 patents owned by IBM, AT&T, and Mitsubishi. Hence arithmetic coding cannot
233 legally be used without obtaining one or more licenses. For this reason,
234 support for arithmetic coding has been removed from the free JPEG software.
235 (Since arithmetic coding provides only a marginal gain over the unpatented
236 Huffman mode, it is unlikely that very many implementations will support it.)
237 So far as we are aware, there are no patent restrictions on the remaining
240 The IJG distribution formerly included code to read and write GIF files.
241 To avoid entanglement with the Unisys LZW patent, GIF reading support has
242 been removed altogether, and the GIF writer has been simplified to produce
243 "uncompressed GIFs". This technique does not use the LZW algorithm; the
244 resulting GIF files are larger than usual, but are readable by all standard
247 We are required to state that
248 "The Graphics Interchange Format(c) is the Copyright property of
249 CompuServe Incorporated. GIF(sm) is a Service Mark property of
250 CompuServe Incorporated."
256 We highly recommend reading one or more of these references before trying to
257 understand the innards of the JPEG software.
259 The best short technical introduction to the JPEG compression algorithm is
260 Wallace, Gregory K. "The JPEG Still Picture Compression Standard",
261 Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44.
262 (Adjacent articles in that issue discuss MPEG motion picture compression,
263 applications of JPEG, and related topics.) If you don't have the CACM issue
264 handy, a PostScript file containing a revised version of Wallace's article is
265 available at ftp://ftp.uu.net/graphics/jpeg/wallace.ps.gz. The file (actually
266 a preprint for an article that appeared in IEEE Trans. Consumer Electronics)
267 omits the sample images that appeared in CACM, but it includes corrections
268 and some added material. Note: the Wallace article is copyright ACM and IEEE,
269 and it may not be used for commercial purposes.
271 A somewhat less technical, more leisurely introduction to JPEG can be found in
272 "The Data Compression Book" by Mark Nelson and Jean-loup Gailly, published by
273 M&T Books (New York), 2nd ed. 1996, ISBN 1-55851-434-1. This book provides
274 good explanations and example C code for a multitude of compression methods
275 including JPEG. It is an excellent source if you are comfortable reading C
276 code but don't know much about data compression in general. The book's JPEG
277 sample code is far from industrial-strength, but when you are ready to look
278 at a full implementation, you've got one here...
280 The best full description of JPEG is the textbook "JPEG Still Image Data
281 Compression Standard" by William B. Pennebaker and Joan L. Mitchell, published
282 by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1. Price US$59.95, 638 pp.
283 The book includes the complete text of the ISO JPEG standards (DIS 10918-1
284 and draft DIS 10918-2). This is by far the most complete exposition of JPEG
285 in existence, and we highly recommend it.
287 The JPEG standard itself is not available electronically; you must order a
288 paper copy through ISO or ITU. (Unless you feel a need to own a certified
289 official copy, we recommend buying the Pennebaker and Mitchell book instead;
290 it's much cheaper and includes a great deal of useful explanatory material.)
291 In the USA, copies of the standard may be ordered from ANSI Sales at (212)
292 642-4900, or from Global Engineering Documents at (800) 854-7179. (ANSI
293 doesn't take credit card orders, but Global does.) It's not cheap: as of
294 1992, ANSI was charging $95 for Part 1 and $47 for Part 2, plus 7%
295 shipping/handling. The standard is divided into two parts, Part 1 being the
296 actual specification, while Part 2 covers compliance testing methods. Part 1
297 is titled "Digital Compression and Coding of Continuous-tone Still Images,
298 Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS
299 10918-1, ITU-T T.81. Part 2 is titled "Digital Compression and Coding of
300 Continuous-tone Still Images, Part 2: Compliance testing" and has document
301 numbers ISO/IEC IS 10918-2, ITU-T T.83.
303 Some extensions to the original JPEG standard are defined in JPEG Part 3,
304 a newer ISO standard numbered ISO/IEC IS 10918-3 and ITU-T T.84. IJG
305 currently does not support any Part 3 extensions.
307 The JPEG standard does not specify all details of an interchangeable file
308 format. For the omitted details we follow the "JFIF" conventions, revision
309 1.02. A copy of the JFIF spec is available from:
310 Literature Department
311 C-Cube Microsystems, Inc.
314 phone (408) 944-6300, fax (408) 944-6314
315 A PostScript version of this document is available by FTP at
316 ftp://ftp.uu.net/graphics/jpeg/jfif.ps.gz. There is also a plain text
317 version at ftp://ftp.uu.net/graphics/jpeg/jfif.txt.gz, but it is missing
320 The TIFF 6.0 file format specification can be obtained by FTP from
321 ftp://ftp.sgi.com/graphics/tiff/TIFF6.ps.gz. The JPEG incorporation scheme
322 found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems.
323 IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6).
324 Instead, we recommend the JPEG design proposed by TIFF Technical Note #2
325 (Compression tag 7). Copies of this Note can be obtained from ftp.sgi.com or
326 from ftp://ftp.uu.net/graphics/jpeg/. It is expected that the next revision
327 of the TIFF spec will replace the 6.0 JPEG design with the Note's design.
328 Although IJG's own code does not support TIFF/JPEG, the free libtiff library
329 uses our library to implement TIFF/JPEG per the Note. libtiff is available
330 from ftp://ftp.sgi.com/graphics/tiff/.
336 The "official" archive site for this software is ftp.uu.net (Internet
337 address 192.48.96.9). The most recent released version can always be found
338 there in directory graphics/jpeg. This particular version will be archived
339 as ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz. If you don't have
340 direct Internet access, UUNET's archives are also available via UUCP; contact
341 help@uunet.uu.net for information on retrieving files that way.
343 Numerous Internet sites maintain copies of the UUNET files. However, only
344 ftp.uu.net is guaranteed to have the latest official version.
346 You can also obtain this software in DOS-compatible "zip" archive format from
347 the SimTel archives (ftp://ftp.simtel.net/pub/simtelnet/msdos/graphics/), or
348 on CompuServe in the Graphics Support forum (GO CIS:GRAPHSUP), library 12
349 "JPEG Tools". Again, these versions may sometimes lag behind the ftp.uu.net
352 The JPEG FAQ (Frequently Asked Questions) article is a useful source of
353 general information about JPEG. It is updated constantly and therefore is
354 not included in this distribution. The FAQ is posted every two weeks to
355 Usenet newsgroups comp.graphics.misc, news.answers, and other groups.
356 It is available on the World Wide Web at http://www.faqs.org/faqs/jpeg-faq/
357 and other news.answers archive sites, including the official news.answers
358 archive at rtfm.mit.edu: ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/.
359 If you don't have Web or FTP access, send e-mail to mail-server@rtfm.mit.edu
361 send usenet/news.answers/jpeg-faq/part1
362 send usenet/news.answers/jpeg-faq/part2
368 Numerous viewing and image manipulation programs now support JPEG. (Quite a
369 few of them use this library to do so.) The JPEG FAQ described above lists
370 some of the more popular free and shareware viewers, and tells where to
371 obtain them on Internet.
373 If you are on a Unix machine, we highly recommend Jef Poskanzer's free
374 PBMPLUS software, which provides many useful operations on PPM-format image
375 files. In particular, it can convert PPM images to and from a wide range of
376 other formats, thus making cjpeg/djpeg considerably more useful. The latest
377 version is distributed by the NetPBM group, and is available from numerous
378 sites, notably ftp://wuarchive.wustl.edu/graphics/graphics/packages/NetPBM/.
379 Unfortunately PBMPLUS/NETPBM is not nearly as portable as the IJG software is;
380 you are likely to have difficulty making it work on any non-Unix machine.
382 A different free JPEG implementation, written by the PVRG group at Stanford,
383 is available from ftp://havefun.stanford.edu/pub/jpeg/. This program
384 is designed for research and experimentation rather than production use;
385 it is slower, harder to use, and less portable than the IJG code, but it
386 is easier to read and modify. Also, the PVRG code supports lossless JPEG,
387 which we do not. (On the other hand, it doesn't do progressive JPEG.)
393 Some JPEG programs produce files that are not compatible with our library.
394 The root of the problem is that the ISO JPEG committee failed to specify a
395 concrete file format. Some vendors "filled in the blanks" on their own,
396 creating proprietary formats that no one else could read. (For example, none
397 of the early commercial JPEG implementations for the Macintosh were able to
398 exchange compressed files.)
400 The file format we have adopted is called JFIF (see REFERENCES). This format
401 has been agreed to by a number of major commercial JPEG vendors, and it has
402 become the de facto standard. JFIF is a minimal or "low end" representation.
403 We recommend the use of TIFF/JPEG (TIFF revision 6.0 as modified by TIFF
404 Technical Note #2) for "high end" applications that need to record a lot of
405 additional data about an image. TIFF/JPEG is fairly new and not yet widely
406 supported, unfortunately.
408 The upcoming JPEG Part 3 standard defines a file format called SPIFF.
409 SPIFF is interoperable with JFIF, in the sense that most JFIF decoders should
410 be able to read the most common variant of SPIFF. SPIFF has some technical
411 advantages over JFIF, but its major claim to fame is simply that it is an
412 official standard rather than an informal one. At this point it is unclear
413 whether SPIFF will supersede JFIF or whether JFIF will remain the de-facto
414 standard. IJG intends to support SPIFF once the standard is frozen, but we
415 have not decided whether it should become our default output format or not.
416 (In any case, our decoder will remain capable of reading JFIF indefinitely.)
418 Various proprietary file formats incorporating JPEG compression also exist.
419 We have little or no sympathy for the existence of these formats. Indeed,
420 one of the original reasons for developing this free software was to help
421 force convergence on common, open format standards for JPEG files. Don't
422 use a proprietary file format!
428 The major thrust for v7 will probably be improvement of visual quality.
429 The current method for scaling the quantization tables is known not to be
430 very good at low Q values. We also intend to investigate block boundary
431 smoothing, "poor man's variable quantization", and other means of improving
432 quality-vs-file-size performance without sacrificing compatibility.
434 In future versions, we are considering supporting some of the upcoming JPEG
435 Part 3 extensions --- principally, variable quantization and the SPIFF file
438 As always, speeding things up is of great interest.
440 Please send bug reports, offers of help, etc. to jpeg-info@uunet.uu.net.
442 =============================================================================================================
443 GNU LESSER GENERAL PUBLIC LICENSE
444 Version 2.1, February 1999
446 Copyright (C) 1991, 1999 Free Software Foundation, Inc.
447 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
448 Everyone is permitted to copy and distribute verbatim copies
449 of this license document, but changing it is not allowed.
451 [This is the first released version of the Lesser GPL. It also counts
452 as the successor of the GNU Library Public License, version 2, hence
453 the version number 2.1.]
457 The licenses for most software are designed to take away your
458 freedom to share and change it. By contrast, the GNU General Public
459 Licenses are intended to guarantee your freedom to share and change
460 free software--to make sure the software is free for all its users.
462 This license, the Lesser General Public License, applies to some
463 specially designated software packages--typically libraries--of the
464 Free Software Foundation and other authors who decide to use it. You
465 can use it too, but we suggest you first think carefully about whether
466 this license or the ordinary General Public License is the better
467 strategy to use in any particular case, based on the explanations below.
469 When we speak of free software, we are referring to freedom of use,
470 not price. Our General Public Licenses are designed to make sure that
471 you have the freedom to distribute copies of free software (and charge
472 for this service if you wish); that you receive source code or can get
473 it if you want it; that you can change the software and use pieces of
474 it in new free programs; and that you are informed that you can do
477 To protect your rights, we need to make restrictions that forbid
478 distributors to deny you these rights or to ask you to surrender these
479 rights. These restrictions translate to certain responsibilities for
480 you if you distribute copies of the library or if you modify it.
482 For example, if you distribute copies of the library, whether gratis
483 or for a fee, you must give the recipients all the rights that we gave
484 you. You must make sure that they, too, receive or can get the source
485 code. If you link other code with the library, you must provide
486 complete object files to the recipients, so that they can relink them
487 with the library after making changes to the library and recompiling
488 it. And you must show them these terms so they know their rights.
490 We protect your rights with a two-step method: (1) we copyright the
491 library, and (2) we offer you this license, which gives you legal
492 permission to copy, distribute and/or modify the library.
494 To protect each distributor, we want to make it very clear that
495 there is no warranty for the free library. Also, if the library is
496 modified by someone else and passed on, the recipients should know
497 that what they have is not the original version, so that the original
498 author's reputation will not be affected by problems that might be
499 introduced by others.
501 Finally, software patents pose a constant threat to the existence of
502 any free program. We wish to make sure that a company cannot
503 effectively restrict the users of a free program by obtaining a
504 restrictive license from a patent holder. Therefore, we insist that
505 any patent license obtained for a version of the library must be
506 consistent with the full freedom of use specified in this license.
508 Most GNU software, including some libraries, is covered by the
509 ordinary GNU General Public License. This license, the GNU Lesser
510 General Public License, applies to certain designated libraries, and
511 is quite different from the ordinary General Public License. We use
512 this license for certain libraries in order to permit linking those
513 libraries into non-free programs.
515 When a program is linked with a library, whether statically or using
516 a shared library, the combination of the two is legally speaking a
517 combined work, a derivative of the original library. The ordinary
518 General Public License therefore permits such linking only if the
519 entire combination fits its criteria of freedom. The Lesser General
520 Public License permits more lax criteria for linking other code with
523 We call this license the "Lesser" General Public License because it
524 does Less to protect the user's freedom than the ordinary General
525 Public License. It also provides other free software developers Less
526 of an advantage over competing non-free programs. These disadvantages
527 are the reason we use the ordinary General Public License for many
528 libraries. However, the Lesser license provides advantages in certain
529 special circumstances.
531 For example, on rare occasions, there may be a special need to
532 encourage the widest possible use of a certain library, so that it becomes
533 a de-facto standard. To achieve this, non-free programs must be
534 allowed to use the library. A more frequent case is that a free
535 library does the same job as widely used non-free libraries. In this
536 case, there is little to gain by limiting the free library to free
537 software only, so we use the Lesser General Public License.
539 In other cases, permission to use a particular library in non-free
540 programs enables a greater number of people to use a large body of
541 free software. For example, permission to use the GNU C Library in
542 non-free programs enables many more people to use the whole GNU
543 operating system, as well as its variant, the GNU/Linux operating
546 Although the Lesser General Public License is Less protective of the
547 users' freedom, it does ensure that the user of a program that is
548 linked with the Library has the freedom and the wherewithal to run
549 that program using a modified version of the Library.
551 The precise terms and conditions for copying, distribution and
552 modification follow. Pay close attention to the difference between a
553 "work based on the library" and a "work that uses the library". The
554 former contains code derived from the library, whereas the latter must
555 be combined with the library in order to run.
557 GNU LESSER GENERAL PUBLIC LICENSE
558 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
560 0. This License Agreement applies to any software library or other
561 program which contains a notice placed by the copyright holder or
562 other authorized party saying it may be distributed under the terms of
563 this Lesser General Public License (also called "this License").
564 Each licensee is addressed as "you".
566 A "library" means a collection of software functions and/or data
567 prepared so as to be conveniently linked with application programs
568 (which use some of those functions and data) to form executables.
570 The "Library", below, refers to any such software library or work
571 which has been distributed under these terms. A "work based on the
572 Library" means either the Library or any derivative work under
573 copyright law: that is to say, a work containing the Library or a
574 portion of it, either verbatim or with modifications and/or translated
575 straightforwardly into another language. (Hereinafter, translation is
576 included without limitation in the term "modification".)
578 "Source code" for a work means the preferred form of the work for
579 making modifications to it. For a library, complete source code means
580 all the source code for all modules it contains, plus any associated
581 interface definition files, plus the scripts used to control compilation
582 and installation of the library.
584 Activities other than copying, distribution and modification are not
585 covered by this License; they are outside its scope. The act of
586 running a program using the Library is not restricted, and output from
587 such a program is covered only if its contents constitute a work based
588 on the Library (independent of the use of the Library in a tool for
589 writing it). Whether that is true depends on what the Library does
590 and what the program that uses the Library does.
592 1. You may copy and distribute verbatim copies of the Library's
593 complete source code as you receive it, in any medium, provided that
594 you conspicuously and appropriately publish on each copy an
595 appropriate copyright notice and disclaimer of warranty; keep intact
596 all the notices that refer to this License and to the absence of any
597 warranty; and distribute a copy of this License along with the
600 You may charge a fee for the physical act of transferring a copy,
601 and you may at your option offer warranty protection in exchange for a
604 2. You may modify your copy or copies of the Library or any portion
605 of it, thus forming a work based on the Library, and copy and
606 distribute such modifications or work under the terms of Section 1
607 above, provided that you also meet all of these conditions:
609 a) The modified work must itself be a software library.
611 b) You must cause the files modified to carry prominent notices
612 stating that you changed the files and the date of any change.
614 c) You must cause the whole of the work to be licensed at no
615 charge to all third parties under the terms of this License.
617 d) If a facility in the modified Library refers to a function or a
618 table of data to be supplied by an application program that uses
619 the facility, other than as an argument passed when the facility
620 is invoked, then you must make a good faith effort to ensure that,
621 in the event an application does not supply such function or
622 table, the facility still operates, and performs whatever part of
623 its purpose remains meaningful.
625 (For example, a function in a library to compute square roots has
626 a purpose that is entirely well-defined independent of the
627 application. Therefore, Subsection 2d requires that any
628 application-supplied function or table used by this function must
629 be optional: if the application does not supply it, the square
630 root function must still compute square roots.)
632 These requirements apply to the modified work as a whole. If
633 identifiable sections of that work are not derived from the Library,
634 and can be reasonably considered independent and separate works in
635 themselves, then this License, and its terms, do not apply to those
636 sections when you distribute them as separate works. But when you
637 distribute the same sections as part of a whole which is a work based
638 on the Library, the distribution of the whole must be on the terms of
639 this License, whose permissions for other licensees extend to the
640 entire whole, and thus to each and every part regardless of who wrote
643 Thus, it is not the intent of this section to claim rights or contest
644 your rights to work written entirely by you; rather, the intent is to
645 exercise the right to control the distribution of derivative or
646 collective works based on the Library.
648 In addition, mere aggregation of another work not based on the Library
649 with the Library (or with a work based on the Library) on a volume of
650 a storage or distribution medium does not bring the other work under
651 the scope of this License.
653 3. You may opt to apply the terms of the ordinary GNU General Public
654 License instead of this License to a given copy of the Library. To do
655 this, you must alter all the notices that refer to this License, so
656 that they refer to the ordinary GNU General Public License, version 2,
657 instead of to this License. (If a newer version than version 2 of the
658 ordinary GNU General Public License has appeared, then you can specify
659 that version instead if you wish.) Do not make any other change in
662 Once this change is made in a given copy, it is irreversible for
663 that copy, so the ordinary GNU General Public License applies to all
664 subsequent copies and derivative works made from that copy.
666 This option is useful when you wish to copy part of the code of
667 the Library into a program that is not a library.
669 4. You may copy and distribute the Library (or a portion or
670 derivative of it, under Section 2) in object code or executable form
671 under the terms of Sections 1 and 2 above provided that you accompany
672 it with the complete corresponding machine-readable source code, which
673 must be distributed under the terms of Sections 1 and 2 above on a
674 medium customarily used for software interchange.
676 If distribution of object code is made by offering access to copy
677 from a designated place, then offering equivalent access to copy the
678 source code from the same place satisfies the requirement to
679 distribute the source code, even though third parties are not
680 compelled to copy the source along with the object code.
682 5. A program that contains no derivative of any portion of the
683 Library, but is designed to work with the Library by being compiled or
684 linked with it, is called a "work that uses the Library". Such a
685 work, in isolation, is not a derivative work of the Library, and
686 therefore falls outside the scope of this License.
688 However, linking a "work that uses the Library" with the Library
689 creates an executable that is a derivative of the Library (because it
690 contains portions of the Library), rather than a "work that uses the
691 library". The executable is therefore covered by this License.
692 Section 6 states terms for distribution of such executables.
694 When a "work that uses the Library" uses material from a header file
695 that is part of the Library, the object code for the work may be a
696 derivative work of the Library even though the source code is not.
697 Whether this is true is especially significant if the work can be
698 linked without the Library, or if the work is itself a library. The
699 threshold for this to be true is not precisely defined by law.
701 If such an object file uses only numerical parameters, data
702 structure layouts and accessors, and small macros and small inline
703 functions (ten lines or less in length), then the use of the object
704 file is unrestricted, regardless of whether it is legally a derivative
705 work. (Executables containing this object code plus portions of the
706 Library will still fall under Section 6.)
708 Otherwise, if the work is a derivative of the Library, you may
709 distribute the object code for the work under the terms of Section 6.
710 Any executables containing that work also fall under Section 6,
711 whether or not they are linked directly with the Library itself.
713 6. As an exception to the Sections above, you may also combine or
714 link a "work that uses the Library" with the Library to produce a
715 work containing portions of the Library, and distribute that work
716 under terms of your choice, provided that the terms permit
717 modification of the work for the customer's own use and reverse
718 engineering for debugging such modifications.
720 You must give prominent notice with each copy of the work that the
721 Library is used in it and that the Library and its use are covered by
722 this License. You must supply a copy of this License. If the work
723 during execution displays copyright notices, you must include the
724 copyright notice for the Library among them, as well as a reference
725 directing the user to the copy of this License. Also, you must do one
728 a) Accompany the work with the complete corresponding
729 machine-readable source code for the Library including whatever
730 changes were used in the work (which must be distributed under
731 Sections 1 and 2 above); and, if the work is an executable linked
732 with the Library, with the complete machine-readable "work that
733 uses the Library", as object code and/or source code, so that the
734 user can modify the Library and then relink to produce a modified
735 executable containing the modified Library. (It is understood
736 that the user who changes the contents of definitions files in the
737 Library will not necessarily be able to recompile the application
738 to use the modified definitions.)
740 b) Use a suitable shared library mechanism for linking with the
741 Library. A suitable mechanism is one that (1) uses at run time a
742 copy of the library already present on the user's computer system,
743 rather than copying library functions into the executable, and (2)
744 will operate properly with a modified version of the library, if
745 the user installs one, as long as the modified version is
746 interface-compatible with the version that the work was made with.
748 c) Accompany the work with a written offer, valid for at
749 least three years, to give the same user the materials
750 specified in Subsection 6a, above, for a charge no more
751 than the cost of performing this distribution.
753 d) If distribution of the work is made by offering access to copy
754 from a designated place, offer equivalent access to copy the above
755 specified materials from the same place.
757 e) Verify that the user has already received a copy of these
758 materials or that you have already sent this user a copy.
760 For an executable, the required form of the "work that uses the
761 Library" must include any data and utility programs needed for
762 reproducing the executable from it. However, as a special exception,
763 the materials to be distributed need not include anything that is
764 normally distributed (in either source or binary form) with the major
765 components (compiler, kernel, and so on) of the operating system on
766 which the executable runs, unless that component itself accompanies
769 It may happen that this requirement contradicts the license
770 restrictions of other proprietary libraries that do not normally
771 accompany the operating system. Such a contradiction means you cannot
772 use both them and the Library together in an executable that you
775 7. You may place library facilities that are a work based on the
776 Library side-by-side in a single library together with other library
777 facilities not covered by this License, and distribute such a combined
778 library, provided that the separate distribution of the work based on
779 the Library and of the other library facilities is otherwise
780 permitted, and provided that you do these two things:
782 a) Accompany the combined library with a copy of the same work
783 based on the Library, uncombined with any other library
784 facilities. This must be distributed under the terms of the
787 b) Give prominent notice with the combined library of the fact
788 that part of it is a work based on the Library, and explaining
789 where to find the accompanying uncombined form of the same work.
791 8. You may not copy, modify, sublicense, link with, or distribute
792 the Library except as expressly provided under this License. Any
793 attempt otherwise to copy, modify, sublicense, link with, or
794 distribute the Library is void, and will automatically terminate your
795 rights under this License. However, parties who have received copies,
796 or rights, from you under this License will not have their licenses
797 terminated so long as such parties remain in full compliance.
799 9. You are not required to accept this License, since you have not
800 signed it. However, nothing else grants you permission to modify or
801 distribute the Library or its derivative works. These actions are
802 prohibited by law if you do not accept this License. Therefore, by
803 modifying or distributing the Library (or any work based on the
804 Library), you indicate your acceptance of this License to do so, and
805 all its terms and conditions for copying, distributing or modifying
806 the Library or works based on it.
808 10. Each time you redistribute the Library (or any work based on the
809 Library), the recipient automatically receives a license from the
810 original licensor to copy, distribute, link with or modify the Library
811 subject to these terms and conditions. You may not impose any further
812 restrictions on the recipients' exercise of the rights granted herein.
813 You are not responsible for enforcing compliance by third parties with
816 11. If, as a consequence of a court judgment or allegation of patent
817 infringement or for any other reason (not limited to patent issues),
818 conditions are imposed on you (whether by court order, agreement or
819 otherwise) that contradict the conditions of this License, they do not
820 excuse you from the conditions of this License. If you cannot
821 distribute so as to satisfy simultaneously your obligations under this
822 License and any other pertinent obligations, then as a consequence you
823 may not distribute the Library at all. For example, if a patent
824 license would not permit royalty-free redistribution of the Library by
825 all those who receive copies directly or indirectly through you, then
826 the only way you could satisfy both it and this License would be to
827 refrain entirely from distribution of the Library.
829 If any portion of this section is held invalid or unenforceable under any
830 particular circumstance, the balance of the section is intended to apply,
831 and the section as a whole is intended to apply in other circumstances.
833 It is not the purpose of this section to induce you to infringe any
834 patents or other property right claims or to contest validity of any
835 such claims; this section has the sole purpose of protecting the
836 integrity of the free software distribution system which is
837 implemented by public license practices. Many people have made
838 generous contributions to the wide range of software distributed
839 through that system in reliance on consistent application of that
840 system; it is up to the author/donor to decide if he or she is willing
841 to distribute software through any other system and a licensee cannot
844 This section is intended to make thoroughly clear what is believed to
845 be a consequence of the rest of this License.
847 12. If the distribution and/or use of the Library is restricted in
848 certain countries either by patents or by copyrighted interfaces, the
849 original copyright holder who places the Library under this License may add
850 an explicit geographical distribution limitation excluding those countries,
851 so that distribution is permitted only in or among countries not thus
852 excluded. In such case, this License incorporates the limitation as if
853 written in the body of this License.
855 13. The Free Software Foundation may publish revised and/or new
856 versions of the Lesser General Public License from time to time.
857 Such new versions will be similar in spirit to the present version,
858 but may differ in detail to address new problems or concerns.
860 Each version is given a distinguishing version number. If the Library
861 specifies a version number of this License which applies to it and
862 "any later version", you have the option of following the terms and
863 conditions either of that version or of any later version published by
864 the Free Software Foundation. If the Library does not specify a
865 license version number, you may choose any version ever published by
866 the Free Software Foundation.
868 14. If you wish to incorporate parts of the Library into other free
869 programs whose distribution conditions are incompatible with these,
870 write to the author to ask for permission. For software which is
871 copyrighted by the Free Software Foundation, write to the Free
872 Software Foundation; we sometimes make exceptions for this. Our
873 decision will be guided by the two goals of preserving the free status
874 of all derivatives of our free software and of promoting the sharing
875 and reuse of software generally.
879 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
880 WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
881 EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
882 OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
883 KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
884 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
885 PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
886 LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
887 THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
889 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
890 WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
891 AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
892 FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
893 CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
894 LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
895 RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
896 FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
897 SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
900 END OF TERMS AND CONDITIONS
902 How to Apply These Terms to Your New Libraries
904 If you develop a new library, and you want it to be of the greatest
905 possible use to the public, we recommend making it free software that
906 everyone can redistribute and change. You can do so by permitting
907 redistribution under these terms (or, alternatively, under the terms of the
908 ordinary General Public License).
910 To apply these terms, attach the following notices to the library. It is
911 safest to attach them to the start of each source file to most effectively
912 convey the exclusion of warranty; and each file should have at least the
913 "copyright" line and a pointer to where the full notice is found.
915 <one line to give the library's name and a brief idea of what it does.>
916 Copyright (C) <year> <name of author>
918 This library is free software; you can redistribute it and/or
919 modify it under the terms of the GNU Lesser General Public
920 License as published by the Free Software Foundation; either
921 version 2.1 of the License, or (at your option) any later version.
923 This library is distributed in the hope that it will be useful,
924 but WITHOUT ANY WARRANTY; without even the implied warranty of
925 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
926 Lesser General Public License for more details.
928 You should have received a copy of the GNU Lesser General Public
929 License along with this library; if not, write to the Free Software
930 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
932 Also add information on how to contact you by electronic and paper mail.
934 You should also get your employer (if you work as a programmer) or your
935 school, if any, to sign a "copyright disclaimer" for the library, if
936 necessary. Here is a sample; alter the names:
938 Yoyodyne, Inc., hereby disclaims all copyright interest in the
939 library `Frob' (a library for tweaking knobs) written by James Random Hacker.
941 <signature of Ty Coon>, 1 April 1990
942 Ty Coon, President of Vice
944 That's all there is to it!
946 =============================================================================================================
947 MOZILLA PUBLIC LICENSE
954 1.0.1. "Commercial Use" means distribution or otherwise making the
955 Covered Code available to a third party.
957 1.1. "Contributor" means each entity that creates or contributes to
958 the creation of Modifications.
960 1.2. "Contributor Version" means the combination of the Original
961 Code, prior Modifications used by a Contributor, and the Modifications
962 made by that particular Contributor.
964 1.3. "Covered Code" means the Original Code or Modifications or the
965 combination of the Original Code and Modifications, in each case
966 including portions thereof.
968 1.4. "Electronic Distribution Mechanism" means a mechanism generally
969 accepted in the software development community for the electronic
972 1.5. "Executable" means Covered Code in any form other than Source
975 1.6. "Initial Developer" means the individual or entity identified
976 as the Initial Developer in the Source Code notice required by Exhibit
979 1.7. "Larger Work" means a work which combines Covered Code or
980 portions thereof with code not governed by the terms of this License.
982 1.8. "License" means this document.
984 1.8.1. "Licensable" means having the right to grant, to the maximum
985 extent possible, whether at the time of the initial grant or
986 subsequently acquired, any and all of the rights conveyed herein.
988 1.9. "Modifications" means any addition to or deletion from the
989 substance or structure of either the Original Code or any previous
990 Modifications. When Covered Code is released as a series of files, a
992 A. Any addition to or deletion from the contents of a file
993 containing Original Code or previous Modifications.
995 B. Any new file that contains any part of the Original Code or
996 previous Modifications.
998 1.10. "Original Code" means Source Code of computer software code
999 which is described in the Source Code notice required by Exhibit A as
1000 Original Code, and which, at the time of its release under this
1001 License is not already Covered Code governed by this License.
1003 1.10.1. "Patent Claims" means any patent claim(s), now owned or
1004 hereafter acquired, including without limitation, method, process,
1005 and apparatus claims, in any patent Licensable by grantor.
1007 1.11. "Source Code" means the preferred form of the Covered Code for
1008 making modifications to it, including all modules it contains, plus
1009 any associated interface definition files, scripts used to control
1010 compilation and installation of an Executable, or source code
1011 differential comparisons against either the Original Code or another
1012 well known, available Covered Code of the Contributor's choice. The
1013 Source Code can be in a compressed or archival form, provided the
1014 appropriate decompression or de-archiving software is widely available
1017 1.12. "You" (or "Your") means an individual or a legal entity
1018 exercising rights under, and complying with all of the terms of, this
1019 License or a future version of this License issued under Section 6.1.
1020 For legal entities, "You" includes any entity which controls, is
1021 controlled by, or is under common control with You. For purposes of
1022 this definition, "control" means (a) the power, direct or indirect,
1023 to cause the direction or management of such entity, whether by
1024 contract or otherwise, or (b) ownership of more than fifty percent
1025 (50%) of the outstanding shares or beneficial ownership of such
1028 2. Source Code License.
1030 2.1. The Initial Developer Grant.
1031 The Initial Developer hereby grants You a world-wide, royalty-free,
1032 non-exclusive license, subject to third party intellectual property
1034 (a) under intellectual property rights (other than patent or
1035 trademark) Licensable by Initial Developer to use, reproduce,
1036 modify, display, perform, sublicense and distribute the Original
1037 Code (or portions thereof) with or without Modifications, and/or
1038 as part of a Larger Work; and
1040 (b) under Patents Claims infringed by the making, using or
1041 selling of Original Code, to make, have made, use, practice,
1042 sell, and offer for sale, and/or otherwise dispose of the
1043 Original Code (or portions thereof).
1045 (c) the licenses granted in this Section 2.1(a) and (b) are
1046 effective on the date Initial Developer first distributes
1047 Original Code under the terms of this License.
1049 (d) Notwithstanding Section 2.1(b) above, no patent license is
1050 granted: 1) for code that You delete from the Original Code; 2)
1051 separate from the Original Code; or 3) for infringements caused
1052 by: i) the modification of the Original Code or ii) the
1053 combination of the Original Code with other software or devices.
1055 2.2. Contributor Grant.
1056 Subject to third party intellectual property claims, each Contributor
1057 hereby grants You a world-wide, royalty-free, non-exclusive license
1059 (a) under intellectual property rights (other than patent or
1060 trademark) Licensable by Contributor, to use, reproduce, modify,
1061 display, perform, sublicense and distribute the Modifications
1062 created by such Contributor (or portions thereof) either on an
1063 unmodified basis, with other Modifications, as Covered Code
1064 and/or as part of a Larger Work; and
1066 (b) under Patent Claims infringed by the making, using, or
1067 selling of Modifications made by that Contributor either alone
1068 and/or in combination with its Contributor Version (or portions
1069 of such combination), to make, use, sell, offer for sale, have
1070 made, and/or otherwise dispose of: 1) Modifications made by that
1071 Contributor (or portions thereof); and 2) the combination of
1072 Modifications made by that Contributor with its Contributor
1073 Version (or portions of such combination).
1075 (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
1076 effective on the date Contributor first makes Commercial Use of
1079 (d) Notwithstanding Section 2.2(b) above, no patent license is
1080 granted: 1) for any code that Contributor has deleted from the
1081 Contributor Version; 2) separate from the Contributor Version;
1082 3) for infringements caused by: i) third party modifications of
1083 Contributor Version or ii) the combination of Modifications made
1084 by that Contributor with other software (except as part of the
1085 Contributor Version) or other devices; or 4) under Patent Claims
1086 infringed by Covered Code in the absence of Modifications made by
1089 3. Distribution Obligations.
1091 3.1. Application of License.
1092 The Modifications which You create or to which You contribute are
1093 governed by the terms of this License, including without limitation
1094 Section 2.2. The Source Code version of Covered Code may be
1095 distributed only under the terms of this License or a future version
1096 of this License released under Section 6.1, and You must include a
1097 copy of this License with every copy of the Source Code You
1098 distribute. You may not offer or impose any terms on any Source Code
1099 version that alters or restricts the applicable version of this
1100 License or the recipients' rights hereunder. However, You may include
1101 an additional document offering the additional rights described in
1104 3.2. Availability of Source Code.
1105 Any Modification which You create or to which You contribute must be
1106 made available in Source Code form under the terms of this License
1107 either on the same media as an Executable version or via an accepted
1108 Electronic Distribution Mechanism to anyone to whom you made an
1109 Executable version available; and if made available via Electronic
1110 Distribution Mechanism, must remain available for at least twelve (12)
1111 months after the date it initially became available, or at least six
1112 (6) months after a subsequent version of that particular Modification
1113 has been made available to such recipients. You are responsible for
1114 ensuring that the Source Code version remains available even if the
1115 Electronic Distribution Mechanism is maintained by a third party.
1117 3.3. Description of Modifications.
1118 You must cause all Covered Code to which You contribute to contain a
1119 file documenting the changes You made to create that Covered Code and
1120 the date of any change. You must include a prominent statement that
1121 the Modification is derived, directly or indirectly, from Original
1122 Code provided by the Initial Developer and including the name of the
1123 Initial Developer in (a) the Source Code, and (b) in any notice in an
1124 Executable version or related documentation in which You describe the
1125 origin or ownership of the Covered Code.
1127 3.4. Intellectual Property Matters
1128 (a) Third Party Claims.
1129 If Contributor has knowledge that a license under a third party's
1130 intellectual property rights is required to exercise the rights
1131 granted by such Contributor under Sections 2.1 or 2.2,
1132 Contributor must include a text file with the Source Code
1133 distribution titled "LEGAL" which describes the claim and the
1134 party making the claim in sufficient detail that a recipient will
1135 know whom to contact. If Contributor obtains such knowledge after
1136 the Modification is made available as described in Section 3.2,
1137 Contributor shall promptly modify the LEGAL file in all copies
1138 Contributor makes available thereafter and shall take other steps
1139 (such as notifying appropriate mailing lists or newsgroups)
1140 reasonably calculated to inform those who received the Covered
1141 Code that new knowledge has been obtained.
1143 (b) Contributor APIs.
1144 If Contributor's Modifications include an application programming
1145 interface and Contributor has knowledge of patent licenses which
1146 are reasonably necessary to implement that API, Contributor must
1147 also include this information in the LEGAL file.
1149 (c) Representations.
1150 Contributor represents that, except as disclosed pursuant to
1151 Section 3.4(a) above, Contributor believes that Contributor's
1152 Modifications are Contributor's original creation(s) and/or
1153 Contributor has sufficient rights to grant the rights conveyed by
1156 3.5. Required Notices.
1157 You must duplicate the notice in Exhibit A in each file of the Source
1158 Code. If it is not possible to put such notice in a particular Source
1159 Code file due to its structure, then You must include such notice in a
1160 location (such as a relevant directory) where a user would be likely
1161 to look for such a notice. If You created one or more Modification(s)
1162 You may add your name as a Contributor to the notice described in
1163 Exhibit A. You must also duplicate this License in any documentation
1164 for the Source Code where You describe recipients' rights or ownership
1165 rights relating to Covered Code. You may choose to offer, and to
1166 charge a fee for, warranty, support, indemnity or liability
1167 obligations to one or more recipients of Covered Code. However, You
1168 may do so only on Your own behalf, and not on behalf of the Initial
1169 Developer or any Contributor. You must make it absolutely clear than
1170 any such warranty, support, indemnity or liability obligation is
1171 offered by You alone, and You hereby agree to indemnify the Initial
1172 Developer and every Contributor for any liability incurred by the
1173 Initial Developer or such Contributor as a result of warranty,
1174 support, indemnity or liability terms You offer.
1176 3.6. Distribution of Executable Versions.
1177 You may distribute Covered Code in Executable form only if the
1178 requirements of Section 3.1-3.5 have been met for that Covered Code,
1179 and if You include a notice stating that the Source Code version of
1180 the Covered Code is available under the terms of this License,
1181 including a description of how and where You have fulfilled the
1182 obligations of Section 3.2. The notice must be conspicuously included
1183 in any notice in an Executable version, related documentation or
1184 collateral in which You describe recipients' rights relating to the
1185 Covered Code. You may distribute the Executable version of Covered
1186 Code or ownership rights under a license of Your choice, which may
1187 contain terms different from this License, provided that You are in
1188 compliance with the terms of this License and that the license for the
1189 Executable version does not attempt to limit or alter the recipient's
1190 rights in the Source Code version from the rights set forth in this
1191 License. If You distribute the Executable version under a different
1192 license You must make it absolutely clear that any terms which differ
1193 from this License are offered by You alone, not by the Initial
1194 Developer or any Contributor. You hereby agree to indemnify the
1195 Initial Developer and every Contributor for any liability incurred by
1196 the Initial Developer or such Contributor as a result of any such
1200 You may create a Larger Work by combining Covered Code with other code
1201 not governed by the terms of this License and distribute the Larger
1202 Work as a single product. In such a case, You must make sure the
1203 requirements of this License are fulfilled for the Covered Code.
1205 4. Inability to Comply Due to Statute or Regulation.
1207 If it is impossible for You to comply with any of the terms of this
1208 License with respect to some or all of the Covered Code due to
1209 statute, judicial order, or regulation then You must: (a) comply with
1210 the terms of this License to the maximum extent possible; and (b)
1211 describe the limitations and the code they affect. Such description
1212 must be included in the LEGAL file described in Section 3.4 and must
1213 be included with all distributions of the Source Code. Except to the
1214 extent prohibited by statute or regulation, such description must be
1215 sufficiently detailed for a recipient of ordinary skill to be able to
1218 5. Application of this License.
1220 This License applies to code to which the Initial Developer has
1221 attached the notice in Exhibit A and to related Covered Code.
1223 6. Versions of the License.
1226 Netscape Communications Corporation ("Netscape") may publish revised
1227 and/or new versions of the License from time to time. Each version
1228 will be given a distinguishing version number.
1230 6.2. Effect of New Versions.
1231 Once Covered Code has been published under a particular version of the
1232 License, You may always continue to use it under the terms of that
1233 version. You may also choose to use such Covered Code under the terms
1234 of any subsequent version of the License published by Netscape. No one
1235 other than Netscape has the right to modify the terms applicable to
1236 Covered Code created under this License.
1238 6.3. Derivative Works.
1239 If You create or use a modified version of this License (which you may
1240 only do in order to apply it to code which is not already Covered Code
1241 governed by this License), You must (a) rename Your license so that
1242 the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
1243 "MPL", "NPL" or any confusingly similar phrase do not appear in your
1244 license (except to note that your license differs from this License)
1245 and (b) otherwise make it clear that Your version of the license
1246 contains terms which differ from the Mozilla Public License and
1247 Netscape Public License. (Filling in the name of the Initial
1248 Developer, Original Code or Contributor in the notice described in
1249 Exhibit A shall not of themselves be deemed to be modifications of
1252 7. DISCLAIMER OF WARRANTY.
1254 COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
1255 WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
1256 WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
1257 DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
1258 THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
1259 IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
1260 YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
1261 COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
1262 OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
1263 ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
1267 8.1. This License and the rights granted hereunder will terminate
1268 automatically if You fail to comply with terms herein and fail to cure
1269 such breach within 30 days of becoming aware of the breach. All
1270 sublicenses to the Covered Code which are properly granted shall
1271 survive any termination of this License. Provisions which, by their
1272 nature, must remain in effect beyond the termination of this License
1275 8.2. If You initiate litigation by asserting a patent infringement
1276 claim (excluding declatory judgment actions) against Initial Developer
1277 or a Contributor (the Initial Developer or Contributor against whom
1278 You file such action is referred to as "Participant") alleging that:
1280 (a) such Participant's Contributor Version directly or indirectly
1281 infringes any patent, then any and all rights granted by such
1282 Participant to You under Sections 2.1 and/or 2.2 of this License
1283 shall, upon 60 days notice from Participant terminate prospectively,
1284 unless if within 60 days after receipt of notice You either: (i)
1285 agree in writing to pay Participant a mutually agreeable reasonable
1286 royalty for Your past and future use of Modifications made by such
1287 Participant, or (ii) withdraw Your litigation claim with respect to
1288 the Contributor Version against such Participant. If within 60 days
1289 of notice, a reasonable royalty and payment arrangement are not
1290 mutually agreed upon in writing by the parties or the litigation claim
1291 is not withdrawn, the rights granted by Participant to You under
1292 Sections 2.1 and/or 2.2 automatically terminate at the expiration of
1293 the 60 day notice period specified above.
1295 (b) any software, hardware, or device, other than such Participant's
1296 Contributor Version, directly or indirectly infringes any patent, then
1297 any rights granted to You by such Participant under Sections 2.1(b)
1298 and 2.2(b) are revoked effective as of the date You first made, used,
1299 sold, distributed, or had made, Modifications made by that
1302 8.3. If You assert a patent infringement claim against Participant
1303 alleging that such Participant's Contributor Version directly or
1304 indirectly infringes any patent where such claim is resolved (such as
1305 by license or settlement) prior to the initiation of patent
1306 infringement litigation, then the reasonable value of the licenses
1307 granted by such Participant under Sections 2.1 or 2.2 shall be taken
1308 into account in determining the amount or value of any payment or
1311 8.4. In the event of termination under Sections 8.1 or 8.2 above,
1312 all end user license agreements (excluding distributors and resellers)
1313 which have been validly granted by You or any distributor hereunder
1314 prior to termination shall survive termination.
1316 9. LIMITATION OF LIABILITY.
1318 UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
1319 (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
1320 DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
1321 OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
1322 ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
1323 CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
1324 WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
1325 COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
1326 INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
1327 LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
1328 RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
1329 PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
1330 EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
1331 THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
1333 10. U.S. GOVERNMENT END USERS.
1335 The Covered Code is a "commercial item," as that term is defined in
1336 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
1337 software" and "commercial computer software documentation," as such
1338 terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
1339 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
1340 all U.S. Government End Users acquire Covered Code with only those
1341 rights set forth herein.
1345 This License represents the complete agreement concerning subject
1346 matter hereof. If any provision of this License is held to be
1347 unenforceable, such provision shall be reformed only to the extent
1348 necessary to make it enforceable. This License shall be governed by
1349 California law provisions (except to the extent applicable law, if
1350 any, provides otherwise), excluding its conflict-of-law provisions.
1351 With respect to disputes in which at least one party is a citizen of,
1352 or an entity chartered or registered to do business in the United
1353 States of America, any litigation relating to this License shall be
1354 subject to the jurisdiction of the Federal Courts of the Northern
1355 District of California, with venue lying in Santa Clara County,
1356 California, with the losing party responsible for costs, including
1357 without limitation, court costs and reasonable attorneys' fees and
1358 expenses. The application of the United Nations Convention on
1359 Contracts for the International Sale of Goods is expressly excluded.
1360 Any law or regulation which provides that the language of a contract
1361 shall be construed against the drafter shall not apply to this
1364 12. RESPONSIBILITY FOR CLAIMS.
1366 As between Initial Developer and the Contributors, each party is
1367 responsible for claims and damages arising, directly or indirectly,
1368 out of its utilization of rights under this License and You agree to
1369 work with Initial Developer and Contributors to distribute such
1370 responsibility on an equitable basis. Nothing herein is intended or
1371 shall be deemed to constitute any admission of liability.
1373 13. MULTIPLE-LICENSED CODE.
1375 Initial Developer may designate portions of the Covered Code as
1376 "Multiple-Licensed". "Multiple-Licensed" means that the Initial
1377 Developer permits you to utilize portions of the Covered Code under
1378 Your choice of the NPL or the alternative licenses, if any, specified
1379 by the Initial Developer in the file described in Exhibit A.
1381 EXHIBIT A -Mozilla Public License.
1383 ``The contents of this file are subject to the Mozilla Public License
1384 Version 1.1 (the "License"); you may not use this file except in
1385 compliance with the License. You may obtain a copy of the License at
1386 http://www.mozilla.org/MPL/
1388 Software distributed under the License is distributed on an "AS IS"
1389 basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
1390 License for the specific language governing rights and limitations
1393 The Original Code is ______________________________________.
1395 The Initial Developer of the Original Code is ________________________.
1396 Portions created by ______________________ are Copyright (C) ______
1397 _______________________. All Rights Reserved.
1399 Contributor(s): ______________________________________.
1401 Alternatively, the contents of this file may be used under the terms
1402 of the _____ license (the "[___] License"), in which case the
1403 provisions of [______] License are applicable instead of those
1404 above. If you wish to allow use of your version of this file only
1405 under the terms of the [____] License and not to allow others to use
1406 your version of this file under the MPL, indicate your decision by
1407 deleting the provisions above and replace them with the notice and
1408 other provisions required by the [___] License. If you do not delete
1409 the provisions above, a recipient may use your version of this file
1410 under either the MPL or the [___] License."
1412 [NOTE: The text of this Exhibit A may differ slightly from the text of
1413 the notices in the Source Code files of the Original Code. You should
1414 use the text of this Exhibit A rather than the text found in the
1415 Original Code Source Code for Your Modifications.]