| FOX Library License [Remove Frame]

FOX basically follows the standard GNU Lesser General Public License (LGPL). Because of repeated questions on this topic, it has become apparent that many people still had a number of uncertainties about licensing issues.

Also, a number of stipulations in the GNU Lesser Public License statement have evidently been an impediment to truely wide-spread adoption of the FOX Library.

Thus, the intent of the License Addendum has been to provide clarification of a number of obscure issues in the GNU Lesser General Public License, and to relax a few of its stipulations with an eye to solving a couple of practical issues.

Below follows the GNU Lesser Public License, followed by the FOX Library License addendum.

Finally, detailed rationale behind the License Addendum is presented.

    		   GNU LESSER GENERAL PUBLIC LICENSE
                           Version 3, 29 June 2007

     Copyright (C) 2007 Free Software Foundation, Inc.
     Everyone is permitted to copy and distribute verbatim copies
     of this license document, but changing it is not allowed.

      This version of the GNU Lesser General Public License incorporates
    the terms and conditions of version 3 of the GNU General Public
    License, supplemented by the additional permissions listed below.

      0. Additional Definitions.

      As used herein, "this License" refers to version 3 of the GNU Lesser
    General Public License, and the "GNU GPL" refers to version 3 of the GNU
    General Public License.

      "The Library" refers to a covered work governed by this License,
    other than an Application or a Combined Work as defined below.

      An "Application" is any work that makes use of an interface provided
    by the Library, but which is not otherwise based on the Library.
    Defining a subclass of a class defined by the Library is deemed a mode
    of using an interface provided by the Library.

      A "Combined Work" is a work produced by combining or linking an
    Application with the Library.  The particular version of the Library
    with which the Combined Work was made is also called the "Linked
    Version".

      The "Minimal Corresponding Source" for a Combined Work means the
    Corresponding Source for the Combined Work, excluding any source code
    for portions of the Combined Work that, considered in isolation, are
    based on the Application, and not on the Linked Version.

      The "Corresponding Application Code" for a Combined Work means the
    object code and/or source code for the Application, including any data
    and utility programs needed for reproducing the Combined Work from the
    Application, but excluding the System Libraries of the Combined Work.

      1. Exception to Section 3 of the GNU GPL.

      You may convey a covered work under sections 3 and 4 of this License
    without being bound by section 3 of the GNU GPL.

      2. Conveying Modified Versions.

      If you modify a copy of the Library, and, in your modifications, a
    facility refers to a function or data to be supplied by an Application
    that uses the facility (other than as an argument passed when the
    facility is invoked), then you may convey a copy of the modified
    version:

       a) under this License, provided that you make a good faith effort to
       ensure that, in the event an Application does not supply the
       function or data, the facility still operates, and performs
       whatever part of its purpose remains meaningful, or

       b) under the GNU GPL, with none of the additional permissions of
       this License applicable to that copy.

      3. Object Code Incorporating Material from Library Header Files.

      The object code form of an Application may incorporate material from
    a header file that is part of the Library.  You may convey such object
    code under terms of your choice, provided that, if the incorporated
    material is not limited to numerical parameters, data structure
    layouts and accessors, or small macros, inline functions and templates
    (ten or fewer lines in length), you do both of the following:

       a) Give prominent notice with each copy of the object code that the
       Library is used in it and that the Library and its use are
       covered by this License.

       b) Accompany the object code with a copy of the GNU GPL and this license
       document.

      4. Combined Works.

      You may convey a Combined Work under terms of your choice that,
    taken together, effectively do not restrict modification of the
    portions of the Library contained in the Combined Work and reverse
    engineering for debugging such modifications, if you also do each of
    the following:

       a) Give prominent notice with each copy of the Combined Work that
       the Library is used in it and that the Library and its use are
       covered by this License.

       b) Accompany the Combined Work with a copy of the GNU GPL and this license
       document.

       c) For a Combined Work that displays copyright notices during
       execution, include the copyright notice for the Library among
       these notices, as well as a reference directing the user to the
       copies of the GNU GPL and this license document.

       d) Do one of the following:

           0) Convey the Minimal Corresponding Source under the terms of this
           License, and the Corresponding Application Code in a form
           suitable for, and under terms that permit, the user to
           recombine or relink the Application with a modified version of
           the Linked Version to produce a modified Combined Work, in the
           manner specified by section 6 of the GNU GPL for conveying
           Corresponding Source.

           1) Use a suitable shared library mechanism for linking with the
           Library.  A suitable mechanism is one that (a) uses at run time
           a copy of the Library already present on the user's computer
           system, and (b) will operate properly with a modified version
           of the Library that is interface-compatible with the Linked
           Version.

       e) Provide Installation Information, but only if you would otherwise
       be required to provide such information under section 6 of the
       GNU GPL, and only to the extent that such information is
       necessary to install and execute a modified version of the
       Combined Work produced by recombining or relinking the
       Application with a modified version of the Linked Version. (If
       you use option 4d0, the Installation Information must accompany
       the Minimal Corresponding Source and Corresponding Application
       Code. If you use option 4d1, you must provide the Installation
       Information in the manner specified by section 6 of the GNU GPL
       for conveying Corresponding Source.)

      5. Combined Libraries.

      You may place library facilities that are a work based on the
    Library side by side in a single library together with other library
    facilities that are not Applications and are not covered by this
    License, and convey such a combined library under terms of your
    choice, if you do both of the following:

       a) Accompany the combined library with a copy of the same work based
       on the Library, uncombined with any other library facilities,
       conveyed under the terms of this License.

       b) Give prominent notice with the combined library that part of it
       is a work based on the Library, and explaining where to find the
       accompanying uncombined form of the same work.

      6. Revised Versions of the GNU Lesser General Public License.

      The Free Software Foundation may publish revised and/or new versions
    of the GNU Lesser General Public License from time to time. Such new
    versions will be similar in spirit to the present version, but may
    differ in detail to address new problems or concerns.

      Each version is given a distinguishing version number. If the
    Library as you received it specifies that a certain numbered version
    of the GNU Lesser General Public License "or any later version"
    applies to it, you have the option of following the terms and
    conditions either of that published version or of any later version
    published by the Free Software Foundation. If the Library as you
    received it does not specify a version number of the GNU Lesser
    General Public License, you may choose any version of the GNU Lesser
    General Public License ever published by the Free Software Foundation.

      If the Library as you received it specifies that a proxy can decide
    whether future versions of the GNU Lesser General Public License shall
    apply, that proxy's public statement of acceptance of any version is
    permanent authorization for you to choose that version for the
    Library.

                               ADDENDUM TO LICENSE
                                   March 2003
                                Revised July 2007

                    Copyright (C) 2002,2016 Jeroen van der Zijp.

            Everyone is permitted to copy and distribute verbatim copies
         of this license addendum document, but changing it is not allowed.

    FOX Toolkit Library License Addendum.

    1. License.  The FOX Toolkit Library ("The Library") is licensed under GNU
    Lesser General Public License as published by the Free Software Foundation,
    version 3 of the License, or (at your option) any later version.

    2. Relinking Exemption.  You may distribute a combined work using a
    statically linked, unmodified copy of the FOX Library under terms of your
    choice, without the relinking requirement stipulated under the GNU Lesser
    Public License, subject to the following conditions:

      a. This static relinking exemption covers only the FOX Toolkit Library.
      Other libraries which the FOX Library may need are covered by their own
      respective licenses.

      b. Modification of the configure scripts, makefiles, or installation
      tools of the FOX Library to support a specific platform does not
      constitute creating a modified copy based on the FOX Library.

      c. Programs or binaries statically linked with the FOX Library must be
      identified as such by including, in the Documentation or by other means
      (for example in the About Box or Online Help), the following statement:

      "This software uses the FOX Toolkit Library (http://www.fox-toolkit.org)."

      d. Subclassing from Objects or Widgets supplied by the Library involves
      no modifications to the source code of the Library itself, and does not
      constitute creating a modified copy based on the Library.

    3. This FOX Toolkit Library License Addendum is NOT propagated to derivative
    works.  When making derivative works based on the FOX Library, this license
    addendum ceases to apply, and code will revert to the simple GNU Lesser General
    Public License.  The Relinking Exemption only applies to unmodified versions
    of the FOX Library.

    4. If you do not accept or are unable to meet the conditions under (2), you
    may continue to distribute the combined work under the original GNU Lesser
    General Public License.

                                 END OF ADDENDUM

Rationale

We now launch into a point by point discussion of the License Addendum:

- Point 1. says that basically, FOX follows the GNU Lesser General Public License.

- Point 2. addresses the practical problem of static linking FOX into an application program or combined work. The GNU Lesser General Public License insists that the recipient of a distribution of a combined work i.e. a program linked with the Library, be allowed to relink.

  Linking a program dynamically is usually the easiest way to comply with this stipulation. However, there are sometimes practical or logistical problems which make it difficult to comply with this requirement.

  We have taken the position that static linking is functionally equivalent to dynamic linking, and we're not really denying the recipient of a statically linked program any source code he or she wouldn't be able to obtain otherwise, as long as the program is linked with an unmodified copy of the Library.

  Static linking with a modified copy of the Library, however, would deny the community the benefit of these modifications, as these modifications would now be locked up inside a closed binary executable, so therefore we must insist on the original GNU Lesser General Public License when the Library has been modified.

- Item a. says we can not make any statements about anyone else's code; if your application must use other libraries (jpeg, png, tiff, glibc, and so on), then you must observe the licenses of these other libraries.

- Item b. clarifies that when we're talking about derived works, we're not talking about making some minor changes to Makefiles or configuration scripts which are often needed to make the code compile on a particular platform or compiler.

- Item c. requires you to identify your program as using the FOX library. With static linking, there would be no way for a normal user to tell otherwise. We request that you include the given statement, and preferably a version number also. The motivation is two-fold:

  - A certain amount of publicity for the FOX Library :-).

  - Some way for recipients of your program to verify that the distribution was made according to the FOX License. This might appease some license-vigilantes.

- Item d. aims to differentiate between the C++ programmer's interpretation of deriving (or subclassing), and the legal concept of making a derived work. When you're subclassing your own class from an existing FOX widget or other object, you're not making any changes to the source text of the FOX Library itself, and hence this cannot be interpreted as a derivate work in the legal sense.

- Point 3. says that derivative versions of official releases of the FOX library can NOT carry forward the License Addendum. This point was added because it was apparently unclear what "unmodified" meant. With "unmodified" we mean that the code has not been modified relative to versions available from the FOX Toolkit web site [not counting tweaks to makefiles and packaging, of course].

- Point 4. says that if you are unwilling or unable to meet these demands, then you can always distribute your program under the original GNU Lesser General Public License.

This concludes our remarks on the License revision; please feel free to contact me if you have additional questions. The rationale section will likely be expanded when there are still questions left unanswered.

Copyright © 1997-2022 Jeroen van der Zijp