Home | History | Annotate | Download | only in f2fs-tools
      1 The tools for F2FS are covered by GNU Public License version 2.
      2 Exceptionally, the following files are also covered by the GNU Lesser General
      3 Public License Version 2.1 as the dual licenses.
      4 - include/f2fs_fs.h
      5 - lib/libf2fs.c
      6 - lib/libf2fs_io.c
      7 - mkfs/f2fs_format.c
      8 - mkfs/f2fs_format_main.c
      9 - mkfs/f2fs_format_utils.c
     10 - mkfs/f2fs_format_utils.h
     11 
     12 ================================================================================
     13 Copyright (c) 2012 Samsung Electronics Co., Ltd.
     14              http://www.samsung.com/
     15 
     16 This program is free software; you can redistribute it and/or modify
     17 it under the terms of the GNU General Public License version 2 as
     18 published by the Free Software Foundation.
     19 
     20 ================================================================================
     21 		    GNU GENERAL PUBLIC LICENSE
     22 		       Version 2, June 1991
     23 
     24  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
     25      51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
     26  Everyone is permitted to copy and distribute verbatim copies
     27  of this license document, but changing it is not allowed.
     28 
     29 			    Preamble
     30 
     31   The licenses for most software are designed to take away your
     32 freedom to share and change it.  By contrast, the GNU General Public
     33 License is intended to guarantee your freedom to share and change free
     34 software--to make sure the software is free for all its users.  This
     35 General Public License applies to most of the Free Software
     36 Foundation's software and to any other program whose authors commit to
     37 using it.  (Some other Free Software Foundation software is covered by
     38 the GNU Library General Public License instead.)  You can apply it to
     39 your programs, too.
     40 
     41   When we speak of free software, we are referring to freedom, not
     42 price.  Our General Public Licenses are designed to make sure that you
     43 have the freedom to distribute copies of free software (and charge for
     44 this service if you wish), that you receive source code or can get it
     45 if you want it, that you can change the software or use pieces of it
     46 in new free programs; and that you know you can do these things.
     47 
     48   To protect your rights, we need to make restrictions that forbid
     49 anyone to deny you these rights or to ask you to surrender the rights.
     50 These restrictions translate to certain responsibilities for you if you
     51 distribute copies of the software, or if you modify it.
     52 
     53   For example, if you distribute copies of such a program, whether
     54 gratis or for a fee, you must give the recipients all the rights that
     55 you have.  You must make sure that they, too, receive or can get the
     56 source code.  And you must show them these terms so they know their
     57 rights.
     58 
     59   We protect your rights with two steps: (1) copyright the software, and
     60 (2) offer you this license which gives you legal permission to copy,
     61 distribute and/or modify the software.
     62 
     63   Also, for each author's protection and ours, we want to make certain
     64 that everyone understands that there is no warranty for this free
     65 software.  If the software is modified by someone else and passed on, we
     66 want its recipients to know that what they have is not the original, so
     67 that any problems introduced by others will not reflect on the original
     68 authors' reputations.
     69 
     70   Finally, any free program is threatened constantly by software
     71 patents.  We wish to avoid the danger that redistributors of a free
     72 program will individually obtain patent licenses, in effect making the
     73 program proprietary.  To prevent this, we have made it clear that any
     74 patent must be licensed for everyone's free use or not licensed at all.
     75 
     76   The precise terms and conditions for copying, distribution and
     77 modification follow.
     78 
     79 		    GNU GENERAL PUBLIC LICENSE
     80    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
     81 
     82   0. This License applies to any program or other work which contains
     83 a notice placed by the copyright holder saying it may be distributed
     84 under the terms of this General Public License.  The "Program", below,
     85 refers to any such program or work, and a "work based on the Program"
     86 means either the Program or any derivative work under copyright law:
     87 that is to say, a work containing the Program or a portion of it,
     88 either verbatim or with modifications and/or translated into another
     89 language.  (Hereinafter, translation is included without limitation in
     90 the term "modification".)  Each licensee is addressed as "you".
     91 
     92 Activities other than copying, distribution and modification are not
     93 covered by this License; they are outside its scope.  The act of
     94 running the Program is not restricted, and the output from the Program
     95 is covered only if its contents constitute a work based on the
     96 Program (independent of having been made by running the Program).
     97 Whether that is true depends on what the Program does.
     98 
     99   1. You may copy and distribute verbatim copies of the Program's
    100 source code as you receive it, in any medium, provided that you
    101 conspicuously and appropriately publish on each copy an appropriate
    102 copyright notice and disclaimer of warranty; keep intact all the
    103 notices that refer to this License and to the absence of any warranty;
    104 and give any other recipients of the Program a copy of this License
    105 along with the Program.
    106 
    107 You may charge a fee for the physical act of transferring a copy, and
    108 you may at your option offer warranty protection in exchange for a fee.
    109 
    110   2. You may modify your copy or copies of the Program or any portion
    111 of it, thus forming a work based on the Program, and copy and
    112 distribute such modifications or work under the terms of Section 1
    113 above, provided that you also meet all of these conditions:
    114 
    115     a) You must cause the modified files to carry prominent notices
    116     stating that you changed the files and the date of any change.
    117 
    118     b) You must cause any work that you distribute or publish, that in
    119     whole or in part contains or is derived from the Program or any
    120     part thereof, to be licensed as a whole at no charge to all third
    121     parties under the terms of this License.
    122 
    123     c) If the modified program normally reads commands interactively
    124     when run, you must cause it, when started running for such
    125     interactive use in the most ordinary way, to print or display an
    126     announcement including an appropriate copyright notice and a
    127     notice that there is no warranty (or else, saying that you provide
    128     a warranty) and that users may redistribute the program under
    129     these conditions, and telling the user how to view a copy of this
    130     License.  (Exception: if the Program itself is interactive but
    131     does not normally print such an announcement, your work based on
    132     the Program is not required to print an announcement.)
    133 
    134 These requirements apply to the modified work as a whole.  If
    135 identifiable sections of that work are not derived from the Program,
    136 and can be reasonably considered independent and separate works in
    137 themselves, then this License, and its terms, do not apply to those
    138 sections when you distribute them as separate works.  But when you
    139 distribute the same sections as part of a whole which is a work based
    140 on the Program, the distribution of the whole must be on the terms of
    141 this License, whose permissions for other licensees extend to the
    142 entire whole, and thus to each and every part regardless of who wrote it.
    143 
    144 Thus, it is not the intent of this section to claim rights or contest
    145 your rights to work written entirely by you; rather, the intent is to
    146 exercise the right to control the distribution of derivative or
    147 collective works based on the Program.
    148 
    149 In addition, mere aggregation of another work not based on the Program
    150 with the Program (or with a work based on the Program) on a volume of
    151 a storage or distribution medium does not bring the other work under
    152 the scope of this License.
    153 
    154   3. You may copy and distribute the Program (or a work based on it,
    155 under Section 2) in object code or executable form under the terms of
    156 Sections 1 and 2 above provided that you also do one of the following:
    157 
    158     a) Accompany it with the complete corresponding machine-readable
    159     source code, which must be distributed under the terms of Sections
    160     1 and 2 above on a medium customarily used for software interchange; or,
    161 
    162     b) Accompany it with a written offer, valid for at least three
    163     years, to give any third party, for a charge no more than your
    164     cost of physically performing source distribution, a complete
    165     machine-readable copy of the corresponding source code, to be
    166     distributed under the terms of Sections 1 and 2 above on a medium
    167     customarily used for software interchange; or,
    168 
    169     c) Accompany it with the information you received as to the offer
    170     to distribute corresponding source code.  (This alternative is
    171     allowed only for noncommercial distribution and only if you
    172     received the program in object code or executable form with such
    173     an offer, in accord with Subsection b above.)
    174 
    175 The source code for a work means the preferred form of the work for
    176 making modifications to it.  For an executable work, complete source
    177 code means all the source code for all modules it contains, plus any
    178 associated interface definition files, plus the scripts used to
    179 control compilation and installation of the executable.  However, as a
    180 special exception, the source code distributed need not include
    181 anything that is normally distributed (in either source or binary
    182 form) with the major components (compiler, kernel, and so on) of the
    183 operating system on which the executable runs, unless that component
    184 itself accompanies the executable.
    185 
    186 If distribution of executable or object code is made by offering
    187 access to copy from a designated place, then offering equivalent
    188 access to copy the source code from the same place counts as
    189 distribution of the source code, even though third parties are not
    190 compelled to copy the source along with the object code.
    191 
    192   4. You may not copy, modify, sublicense, or distribute the Program
    193 except as expressly provided under this License.  Any attempt
    194 otherwise to copy, modify, sublicense or distribute the Program is
    195 void, and will automatically terminate your rights under this License.
    196 However, parties who have received copies, or rights, from you under
    197 this License will not have their licenses terminated so long as such
    198 parties remain in full compliance.
    199 
    200   5. You are not required to accept this License, since you have not
    201 signed it.  However, nothing else grants you permission to modify or
    202 distribute the Program or its derivative works.  These actions are
    203 prohibited by law if you do not accept this License.  Therefore, by
    204 modifying or distributing the Program (or any work based on the
    205 Program), you indicate your acceptance of this License to do so, and
    206 all its terms and conditions for copying, distributing or modifying
    207 the Program or works based on it.
    208 
    209   6. Each time you redistribute the Program (or any work based on the
    210 Program), the recipient automatically receives a license from the
    211 original licensor to copy, distribute or modify the Program subject to
    212 these terms and conditions.  You may not impose any further
    213 restrictions on the recipients' exercise of the rights granted herein.
    214 You are not responsible for enforcing compliance by third parties to
    215 this License.
    216 
    217   7. If, as a consequence of a court judgment or allegation of patent
    218 infringement or for any other reason (not limited to patent issues),
    219 conditions are imposed on you (whether by court order, agreement or
    220 otherwise) that contradict the conditions of this License, they do not
    221 excuse you from the conditions of this License.  If you cannot
    222 distribute so as to satisfy simultaneously your obligations under this
    223 License and any other pertinent obligations, then as a consequence you
    224 may not distribute the Program at all.  For example, if a patent
    225 license would not permit royalty-free redistribution of the Program by
    226 all those who receive copies directly or indirectly through you, then
    227 the only way you could satisfy both it and this License would be to
    228 refrain entirely from distribution of the Program.
    229 
    230 If any portion of this section is held invalid or unenforceable under
    231 any particular circumstance, the balance of the section is intended to
    232 apply and the section as a whole is intended to apply in other
    233 circumstances.
    234 
    235 It is not the purpose of this section to induce you to infringe any
    236 patents or other property right claims or to contest validity of any
    237 such claims; this section has the sole purpose of protecting the
    238 integrity of the free software distribution system, which is
    239 implemented by public license practices.  Many people have made
    240 generous contributions to the wide range of software distributed
    241 through that system in reliance on consistent application of that
    242 system; it is up to the author/donor to decide if he or she is willing
    243 to distribute software through any other system and a licensee cannot
    244 impose that choice.
    245 
    246 This section is intended to make thoroughly clear what is believed to
    247 be a consequence of the rest of this License.
    248 
    249   8. If the distribution and/or use of the Program is restricted in
    250 certain countries either by patents or by copyrighted interfaces, the
    251 original copyright holder who places the Program under this License
    252 may add an explicit geographical distribution limitation excluding
    253 those countries, so that distribution is permitted only in or among
    254 countries not thus excluded.  In such case, this License incorporates
    255 the limitation as if written in the body of this License.
    256 
    257   9. The Free Software Foundation may publish revised and/or new versions
    258 of the General Public License from time to time.  Such new versions will
    259 be similar in spirit to the present version, but may differ in detail to
    260 address new problems or concerns.
    261 
    262 Each version is given a distinguishing version number.  If the Program
    263 specifies a version number of this License which applies to it and "any
    264 later version", you have the option of following the terms and conditions
    265 either of that version or of any later version published by the Free
    266 Software Foundation.  If the Program does not specify a version number of
    267 this License, you may choose any version ever published by the Free Software
    268 Foundation.
    269 
    270   10. If you wish to incorporate parts of the Program into other free
    271 programs whose distribution conditions are different, write to the author
    272 to ask for permission.  For software which is copyrighted by the Free
    273 Software Foundation, write to the Free Software Foundation; we sometimes
    274 make exceptions for this.  Our decision will be guided by the two goals
    275 of preserving the free status of all derivatives of our free software and
    276 of promoting the sharing and reuse of software generally.
    277 
    278 			    NO WARRANTY
    279 
    280   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
    281 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
    282 OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
    283 PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
    284 OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    285 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
    286 TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
    287 PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
    288 REPAIR OR CORRECTION.
    289 
    290   12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
    291 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
    292 REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
    293 INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
    294 OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
    295 TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
    296 YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
    297 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
    298 POSSIBILITY OF SUCH DAMAGES.
    299 
    300 		     END OF TERMS AND CONDITIONS
    301 
    302 	    How to Apply These Terms to Your New Programs
    303 
    304   If you develop a new program, and you want it to be of the greatest
    305 possible use to the public, the best way to achieve this is to make it
    306 free software which everyone can redistribute and change under these terms.
    307 
    308   To do so, attach the following notices to the program.  It is safest
    309 to attach them to the start of each source file to most effectively
    310 convey the exclusion of warranty; and each file should have at least
    311 the "copyright" line and a pointer to where the full notice is found.
    312 
    313     <one line to give the program's name and a brief idea of what it does.>
    314     Copyright (C) <year>  <name of author>
    315 
    316     This program is free software; you can redistribute it and/or modify
    317     it under the terms of the GNU General Public License as published by
    318     the Free Software Foundation; either version 2 of the License, or
    319     (at your option) any later version.
    320 
    321     This program is distributed in the hope that it will be useful,
    322     but WITHOUT ANY WARRANTY; without even the implied warranty of
    323     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    324     GNU General Public License for more details.
    325 
    326     You should have received a copy of the GNU General Public License
    327     along with this program; if not, write to the Free Software
    328     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    329 
    330 
    331 Also add information on how to contact you by electronic and paper mail.
    332 
    333 If the program is interactive, make it output a short notice like this
    334 when it starts in an interactive mode:
    335 
    336     Gnomovision version 69, Copyright (C) year  name of author
    337     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    338     This is free software, and you are welcome to redistribute it
    339     under certain conditions; type `show c' for details.
    340 
    341 The hypothetical commands `show w' and `show c' should show the appropriate
    342 parts of the General Public License.  Of course, the commands you use may
    343 be called something other than `show w' and `show c'; they could even be
    344 mouse-clicks or menu items--whatever suits your program.
    345 
    346 You should also get your employer (if you work as a programmer) or your
    347 school, if any, to sign a "copyright disclaimer" for the program, if
    348 necessary.  Here is a sample; alter the names:
    349 
    350   Yoyodyne, Inc., hereby disclaims all copyright interest in the program
    351   `Gnomovision' (which makes passes at compilers) written by James Hacker.
    352 
    353   <signature of Ty Coon>, 1 April 1989
    354   Ty Coon, President of Vice
    355 
    356 This General Public License does not permit incorporating your program into
    357 proprietary programs.  If your program is a subroutine library, you may
    358 consider it more useful to permit linking proprietary applications with the
    359 library.  If this is what you want to do, use the GNU Library General
    360 Public License instead of this License.
    361 
    362 ================================================================================
    363                   GNU LESSER GENERAL PUBLIC LICENSE
    364                        Version 2.1, February 1999
    365 
    366  Copyright (C) 1991, 1999 Free Software Foundation, Inc.
    367  51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    368  Everyone is permitted to copy and distribute verbatim copies
    369  of this license document, but changing it is not allowed.
    370 
    371 [This is the first released version of the Lesser GPL.  It also counts
    372  as the successor of the GNU Library Public License, version 2, hence
    373  the version number 2.1.]
    374 
    375                             Preamble
    376 
    377   The licenses for most software are designed to take away your
    378 freedom to share and change it.  By contrast, the GNU General Public
    379 Licenses are intended to guarantee your freedom to share and change
    380 free software--to make sure the software is free for all its users.
    381 
    382   This license, the Lesser General Public License, applies to some
    383 specially designated software packages--typically libraries--of the
    384 Free Software Foundation and other authors who decide to use it.  You
    385 can use it too, but we suggest you first think carefully about whether
    386 this license or the ordinary General Public License is the better
    387 strategy to use in any particular case, based on the explanations below.
    388 
    389   When we speak of free software, we are referring to freedom of use,
    390 not price.  Our General Public Licenses are designed to make sure that
    391 you have the freedom to distribute copies of free software (and charge
    392 for this service if you wish); that you receive source code or can get
    393 it if you want it; that you can change the software and use pieces of
    394 it in new free programs; and that you are informed that you can do
    395 these things.
    396 
    397   To protect your rights, we need to make restrictions that forbid
    398 distributors to deny you these rights or to ask you to surrender these
    399 rights.  These restrictions translate to certain responsibilities for
    400 you if you distribute copies of the library or if you modify it.
    401 
    402   For example, if you distribute copies of the library, whether gratis
    403 or for a fee, you must give the recipients all the rights that we gave
    404 you.  You must make sure that they, too, receive or can get the source
    405 code.  If you link other code with the library, you must provide
    406 complete object files to the recipients, so that they can relink them
    407 with the library after making changes to the library and recompiling
    408 it.  And you must show them these terms so they know their rights.
    409 
    410   We protect your rights with a two-step method: (1) we copyright the
    411 library, and (2) we offer you this license, which gives you legal
    412 permission to copy, distribute and/or modify the library.
    413 
    414   To protect each distributor, we want to make it very clear that
    415 there is no warranty for the free library.  Also, if the library is
    416 modified by someone else and passed on, the recipients should know
    417 that what they have is not the original version, so that the original
    418 author's reputation will not be affected by problems that might be
    419 introduced by others.
    420 
    422   Finally, software patents pose a constant threat to the existence of
    423 any free program.  We wish to make sure that a company cannot
    424 effectively restrict the users of a free program by obtaining a
    425 restrictive license from a patent holder.  Therefore, we insist that
    426 any patent license obtained for a version of the library must be
    427 consistent with the full freedom of use specified in this license.
    428 
    429   Most GNU software, including some libraries, is covered by the
    430 ordinary GNU General Public License.  This license, the GNU Lesser
    431 General Public License, applies to certain designated libraries, and
    432 is quite different from the ordinary General Public License.  We use
    433 this license for certain libraries in order to permit linking those
    434 libraries into non-free programs.
    435 
    436   When a program is linked with a library, whether statically or using
    437 a shared library, the combination of the two is legally speaking a
    438 combined work, a derivative of the original library.  The ordinary
    439 General Public License therefore permits such linking only if the
    440 entire combination fits its criteria of freedom.  The Lesser General
    441 Public License permits more lax criteria for linking other code with
    442 the library.
    443 
    444   We call this license the "Lesser" General Public License because it
    445 does Less to protect the user's freedom than the ordinary General
    446 Public License.  It also provides other free software developers Less
    447 of an advantage over competing non-free programs.  These disadvantages
    448 are the reason we use the ordinary General Public License for many
    449 libraries.  However, the Lesser license provides advantages in certain
    450 special circumstances.
    451 
    452   For example, on rare occasions, there may be a special need to
    453 encourage the widest possible use of a certain library, so that it becomes
    454 a de-facto standard.  To achieve this, non-free programs must be
    455 allowed to use the library.  A more frequent case is that a free
    456 library does the same job as widely used non-free libraries.  In this
    457 case, there is little to gain by limiting the free library to free
    458 software only, so we use the Lesser General Public License.
    459 
    460   In other cases, permission to use a particular library in non-free
    461 programs enables a greater number of people to use a large body of
    462 free software.  For example, permission to use the GNU C Library in
    463 non-free programs enables many more people to use the whole GNU
    464 operating system, as well as its variant, the GNU/Linux operating
    465 system.
    466 
    467   Although the Lesser General Public License is Less protective of the
    468 users' freedom, it does ensure that the user of a program that is
    469 linked with the Library has the freedom and the wherewithal to run
    470 that program using a modified version of the Library.
    471 
    472   The precise terms and conditions for copying, distribution and
    473 modification follow.  Pay close attention to the difference between a
    474 "work based on the library" and a "work that uses the library".  The
    475 former contains code derived from the library, whereas the latter must
    476 be combined with the library in order to run.
    477 
    479                   GNU LESSER GENERAL PUBLIC LICENSE
    480    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    481 
    482   0. This License Agreement applies to any software library or other
    483 program which contains a notice placed by the copyright holder or
    484 other authorized party saying it may be distributed under the terms of
    485 this Lesser General Public License (also called "this License").
    486 Each licensee is addressed as "you".
    487 
    488   A "library" means a collection of software functions and/or data
    489 prepared so as to be conveniently linked with application programs
    490 (which use some of those functions and data) to form executables.
    491 
    492   The "Library", below, refers to any such software library or work
    493 which has been distributed under these terms.  A "work based on the
    494 Library" means either the Library or any derivative work under
    495 copyright law: that is to say, a work containing the Library or a
    496 portion of it, either verbatim or with modifications and/or translated
    497 straightforwardly into another language.  (Hereinafter, translation is
    498 included without limitation in the term "modification".)
    499 
    500   "Source code" for a work means the preferred form of the work for
    501 making modifications to it.  For a library, complete source code means
    502 all the source code for all modules it contains, plus any associated
    503 interface definition files, plus the scripts used to control compilation
    504 and installation of the library.
    505 
    506   Activities other than copying, distribution and modification are not
    507 covered by this License; they are outside its scope.  The act of
    508 running a program using the Library is not restricted, and output from
    509 such a program is covered only if its contents constitute a work based
    510 on the Library (independent of the use of the Library in a tool for
    511 writing it).  Whether that is true depends on what the Library does
    512 and what the program that uses the Library does.
    513 
    514   1. You may copy and distribute verbatim copies of the Library's
    515 complete source code as you receive it, in any medium, provided that
    516 you conspicuously and appropriately publish on each copy an
    517 appropriate copyright notice and disclaimer of warranty; keep intact
    518 all the notices that refer to this License and to the absence of any
    519 warranty; and distribute a copy of this License along with the
    520 Library.
    521 
    522   You may charge a fee for the physical act of transferring a copy,
    523 and you may at your option offer warranty protection in exchange for a
    524 fee.
    525 
    527   2. You may modify your copy or copies of the Library or any portion
    528 of it, thus forming a work based on the Library, and copy and
    529 distribute such modifications or work under the terms of Section 1
    530 above, provided that you also meet all of these conditions:
    531 
    532     a) The modified work must itself be a software library.
    533 
    534     b) You must cause the files modified to carry prominent notices
    535     stating that you changed the files and the date of any change.
    536 
    537     c) You must cause the whole of the work to be licensed at no
    538     charge to all third parties under the terms of this License.
    539 
    540     d) If a facility in the modified Library refers to a function or a
    541     table of data to be supplied by an application program that uses
    542     the facility, other than as an argument passed when the facility
    543     is invoked, then you must make a good faith effort to ensure that,
    544     in the event an application does not supply such function or
    545     table, the facility still operates, and performs whatever part of
    546     its purpose remains meaningful.
    547 
    548     (For example, a function in a library to compute square roots has
    549     a purpose that is entirely well-defined independent of the
    550     application.  Therefore, Subsection 2d requires that any
    551     application-supplied function or table used by this function must
    552     be optional: if the application does not supply it, the square
    553     root function must still compute square roots.)
    554 
    555 These requirements apply to the modified work as a whole.  If
    556 identifiable sections of that work are not derived from the Library,
    557 and can be reasonably considered independent and separate works in
    558 themselves, then this License, and its terms, do not apply to those
    559 sections when you distribute them as separate works.  But when you
    560 distribute the same sections as part of a whole which is a work based
    561 on the Library, the distribution of the whole must be on the terms of
    562 this License, whose permissions for other licensees extend to the
    563 entire whole, and thus to each and every part regardless of who wrote
    564 it.
    565 
    566 Thus, it is not the intent of this section to claim rights or contest
    567 your rights to work written entirely by you; rather, the intent is to
    568 exercise the right to control the distribution of derivative or
    569 collective works based on the Library.
    570 
    571 In addition, mere aggregation of another work not based on the Library
    572 with the Library (or with a work based on the Library) on a volume of
    573 a storage or distribution medium does not bring the other work under
    574 the scope of this License.
    575 
    576   3. You may opt to apply the terms of the ordinary GNU General Public
    577 License instead of this License to a given copy of the Library.  To do
    578 this, you must alter all the notices that refer to this License, so
    579 that they refer to the ordinary GNU General Public License, version 2,
    580 instead of to this License.  (If a newer version than version 2 of the
    581 ordinary GNU General Public License has appeared, then you can specify
    582 that version instead if you wish.)  Do not make any other change in
    583 these notices.
    584 
    586   Once this change is made in a given copy, it is irreversible for
    587 that copy, so the ordinary GNU General Public License applies to all
    588 subsequent copies and derivative works made from that copy.
    589 
    590   This option is useful when you wish to copy part of the code of
    591 the Library into a program that is not a library.
    592 
    593   4. You may copy and distribute the Library (or a portion or
    594 derivative of it, under Section 2) in object code or executable form
    595 under the terms of Sections 1 and 2 above provided that you accompany
    596 it with the complete corresponding machine-readable source code, which
    597 must be distributed under the terms of Sections 1 and 2 above on a
    598 medium customarily used for software interchange.
    599 
    600   If distribution of object code is made by offering access to copy
    601 from a designated place, then offering equivalent access to copy the
    602 source code from the same place satisfies the requirement to
    603 distribute the source code, even though third parties are not
    604 compelled to copy the source along with the object code.
    605 
    606   5. A program that contains no derivative of any portion of the
    607 Library, but is designed to work with the Library by being compiled or
    608 linked with it, is called a "work that uses the Library".  Such a
    609 work, in isolation, is not a derivative work of the Library, and
    610 therefore falls outside the scope of this License.
    611 
    612   However, linking a "work that uses the Library" with the Library
    613 creates an executable that is a derivative of the Library (because it
    614 contains portions of the Library), rather than a "work that uses the
    615 library".  The executable is therefore covered by this License.
    616 Section 6 states terms for distribution of such executables.
    617 
    618   When a "work that uses the Library" uses material from a header file
    619 that is part of the Library, the object code for the work may be a
    620 derivative work of the Library even though the source code is not.
    621 Whether this is true is especially significant if the work can be
    622 linked without the Library, or if the work is itself a library.  The
    623 threshold for this to be true is not precisely defined by law.
    624 
    625   If such an object file uses only numerical parameters, data
    626 structure layouts and accessors, and small macros and small inline
    627 functions (ten lines or less in length), then the use of the object
    628 file is unrestricted, regardless of whether it is legally a derivative
    629 work.  (Executables containing this object code plus portions of the
    630 Library will still fall under Section 6.)
    631 
    632   Otherwise, if the work is a derivative of the Library, you may
    633 distribute the object code for the work under the terms of Section 6.
    634 Any executables containing that work also fall under Section 6,
    635 whether or not they are linked directly with the Library itself.
    636 
    638   6. As an exception to the Sections above, you may also combine or
    639 link a "work that uses the Library" with the Library to produce a
    640 work containing portions of the Library, and distribute that work
    641 under terms of your choice, provided that the terms permit
    642 modification of the work for the customer's own use and reverse
    643 engineering for debugging such modifications.
    644 
    645   You must give prominent notice with each copy of the work that the
    646 Library is used in it and that the Library and its use are covered by
    647 this License.  You must supply a copy of this License.  If the work
    648 during execution displays copyright notices, you must include the
    649 copyright notice for the Library among them, as well as a reference
    650 directing the user to the copy of this License.  Also, you must do one
    651 of these things:
    652 
    653     a) Accompany the work with the complete corresponding
    654     machine-readable source code for the Library including whatever
    655     changes were used in the work (which must be distributed under
    656     Sections 1 and 2 above); and, if the work is an executable linked
    657     with the Library, with the complete machine-readable "work that
    658     uses the Library", as object code and/or source code, so that the
    659     user can modify the Library and then relink to produce a modified
    660     executable containing the modified Library.  (It is understood
    661     that the user who changes the contents of definitions files in the
    662     Library will not necessarily be able to recompile the application
    663     to use the modified definitions.)
    664 
    665     b) Use a suitable shared library mechanism for linking with the
    666     Library.  A suitable mechanism is one that (1) uses at run time a
    667     copy of the library already present on the user's computer system,
    668     rather than copying library functions into the executable, and (2)
    669     will operate properly with a modified version of the library, if
    670     the user installs one, as long as the modified version is
    671     interface-compatible with the version that the work was made with.
    672 
    673     c) Accompany the work with a written offer, valid for at
    674     least three years, to give the same user the materials
    675     specified in Subsection 6a, above, for a charge no more
    676     than the cost of performing this distribution.
    677 
    678     d) If distribution of the work is made by offering access to copy
    679     from a designated place, offer equivalent access to copy the above
    680     specified materials from the same place.
    681 
    682     e) Verify that the user has already received a copy of these
    683     materials or that you have already sent this user a copy.
    684 
    685   For an executable, the required form of the "work that uses the
    686 Library" must include any data and utility programs needed for
    687 reproducing the executable from it.  However, as a special exception,
    688 the materials to be distributed need not include anything that is
    689 normally distributed (in either source or binary form) with the major
    690 components (compiler, kernel, and so on) of the operating system on
    691 which the executable runs, unless that component itself accompanies
    692 the executable.
    693 
    694   It may happen that this requirement contradicts the license
    695 restrictions of other proprietary libraries that do not normally
    696 accompany the operating system.  Such a contradiction means you cannot
    697 use both them and the Library together in an executable that you
    698 distribute.
    699 
    701   7. You may place library facilities that are a work based on the
    702 Library side-by-side in a single library together with other library
    703 facilities not covered by this License, and distribute such a combined
    704 library, provided that the separate distribution of the work based on
    705 the Library and of the other library facilities is otherwise
    706 permitted, and provided that you do these two things:
    707 
    708     a) Accompany the combined library with a copy of the same work
    709     based on the Library, uncombined with any other library
    710     facilities.  This must be distributed under the terms of the
    711     Sections above.
    712 
    713     b) Give prominent notice with the combined library of the fact
    714     that part of it is a work based on the Library, and explaining
    715     where to find the accompanying uncombined form of the same work.
    716 
    717   8. You may not copy, modify, sublicense, link with, or distribute
    718 the Library except as expressly provided under this License.  Any
    719 attempt otherwise to copy, modify, sublicense, link with, or
    720 distribute the Library is void, and will automatically terminate your
    721 rights under this License.  However, parties who have received copies,
    722 or rights, from you under this License will not have their licenses
    723 terminated so long as such parties remain in full compliance.
    724 
    725   9. You are not required to accept this License, since you have not
    726 signed it.  However, nothing else grants you permission to modify or
    727 distribute the Library or its derivative works.  These actions are
    728 prohibited by law if you do not accept this License.  Therefore, by
    729 modifying or distributing the Library (or any work based on the
    730 Library), you indicate your acceptance of this License to do so, and
    731 all its terms and conditions for copying, distributing or modifying
    732 the Library or works based on it.
    733 
    734   10. Each time you redistribute the Library (or any work based on the
    735 Library), the recipient automatically receives a license from the
    736 original licensor to copy, distribute, link with or modify the Library
    737 subject to these terms and conditions.  You may not impose any further
    738 restrictions on the recipients' exercise of the rights granted herein.
    739 You are not responsible for enforcing compliance by third parties with
    740 this License.
    741 
    743   11. If, as a consequence of a court judgment or allegation of patent
    744 infringement or for any other reason (not limited to patent issues),
    745 conditions are imposed on you (whether by court order, agreement or
    746 otherwise) that contradict the conditions of this License, they do not
    747 excuse you from the conditions of this License.  If you cannot
    748 distribute so as to satisfy simultaneously your obligations under this
    749 License and any other pertinent obligations, then as a consequence you
    750 may not distribute the Library at all.  For example, if a patent
    751 license would not permit royalty-free redistribution of the Library by
    752 all those who receive copies directly or indirectly through you, then
    753 the only way you could satisfy both it and this License would be to
    754 refrain entirely from distribution of the Library.
    755 
    756 If any portion of this section is held invalid or unenforceable under any
    757 particular circumstance, the balance of the section is intended to apply,
    758 and the section as a whole is intended to apply in other circumstances.
    759 
    760 It is not the purpose of this section to induce you to infringe any
    761 patents or other property right claims or to contest validity of any
    762 such claims; this section has the sole purpose of protecting the
    763 integrity of the free software distribution system which is
    764 implemented by public license practices.  Many people have made
    765 generous contributions to the wide range of software distributed
    766 through that system in reliance on consistent application of that
    767 system; it is up to the author/donor to decide if he or she is willing
    768 to distribute software through any other system and a licensee cannot
    769 impose that choice.
    770 
    771 This section is intended to make thoroughly clear what is believed to
    772 be a consequence of the rest of this License.
    773 
    774   12. If the distribution and/or use of the Library is restricted in
    775 certain countries either by patents or by copyrighted interfaces, the
    776 original copyright holder who places the Library under this License may add
    777 an explicit geographical distribution limitation excluding those countries,
    778 so that distribution is permitted only in or among countries not thus
    779 excluded.  In such case, this License incorporates the limitation as if
    780 written in the body of this License.
    781 
    782   13. The Free Software Foundation may publish revised and/or new
    783 versions of the Lesser General Public License from time to time.
    784 Such new versions will be similar in spirit to the present version,
    785 but may differ in detail to address new problems or concerns.
    786 
    787 Each version is given a distinguishing version number.  If the Library
    788 specifies a version number of this License which applies to it and
    789 "any later version", you have the option of following the terms and
    790 conditions either of that version or of any later version published by
    791 the Free Software Foundation.  If the Library does not specify a
    792 license version number, you may choose any version ever published by
    793 the Free Software Foundation.
    794 
    796   14. If you wish to incorporate parts of the Library into other free
    797 programs whose distribution conditions are incompatible with these,
    798 write to the author to ask for permission.  For software which is
    799 copyrighted by the Free Software Foundation, write to the Free
    800 Software Foundation; we sometimes make exceptions for this.  Our
    801 decision will be guided by the two goals of preserving the free status
    802 of all derivatives of our free software and of promoting the sharing
    803 and reuse of software generally.
    804 
    805                             NO WARRANTY
    806 
    807   15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
    808 WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
    809 EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
    810 OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
    811 KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
    812 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    813 PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
    814 LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
    815 THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
    816 
    817   16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
    818 WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
    819 AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
    820 FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
    821 CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
    822 LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
    823 RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
    824 FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
    825 SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
    826 DAMAGES.
    827 
    828                      END OF TERMS AND CONDITIONS
    829 
    831            How to Apply These Terms to Your New Libraries
    832 
    833   If you develop a new library, and you want it to be of the greatest
    834 possible use to the public, we recommend making it free software that
    835 everyone can redistribute and change.  You can do so by permitting
    836 redistribution under these terms (or, alternatively, under the terms of the
    837 ordinary General Public License).
    838 
    839   To apply these terms, attach the following notices to the library.  It is
    840 safest to attach them to the start of each source file to most effectively
    841 convey the exclusion of warranty; and each file should have at least the
    842 "copyright" line and a pointer to where the full notice is found.
    843 
    844     <one line to give the library's name and a brief idea of what it does.>
    845     Copyright (C) <year>  <name of author>
    846 
    847     This library is free software; you can redistribute it and/or
    848     modify it under the terms of the GNU Lesser General Public
    849     License as published by the Free Software Foundation; either
    850     version 2.1 of the License, or (at your option) any later version.
    851 
    852     This library is distributed in the hope that it will be useful,
    853     but WITHOUT ANY WARRANTY; without even the implied warranty of
    854     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    855     Lesser General Public License for more details.
    856 
    857     You should have received a copy of the GNU Lesser General Public
    858     License along with this library; if not, write to the Free Software
    859     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    860 
    861 Also add information on how to contact you by electronic and paper mail.
    862 
    863 You should also get your employer (if you work as a programmer) or your
    864 school, if any, to sign a "copyright disclaimer" for the library, if
    865 necessary.  Here is a sample; alter the names:
    866 
    867   Yoyodyne, Inc., hereby disclaims all copyright interest in the
    868   library `Frob' (a library for tweaking knobs) written by James Random Hacker.
    869 
    870   <signature of Ty Coon>, 1 April 1990
    871   Ty Coon, President of Vice
    872 
    873 That's all there is to it!
    874