taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

global-licensing.rst (12614B)


      1 ===========================
      2 Taler licensing information
      3 ===========================
      4 
      5 This file gives an overview of all Taler component's licensing and of runtime
      6 dependencies thereof. A "component" in this context is to be read as a set of
      7 source files which can be retrieved from a single Git repository.  If
      8 components consist of sources under different licensing regimes, i.e.  because
      9 we want to enable third party developments to easily integrate with Taler,
     10 those are described as well.
     11 
     12 All components are generally released under Lesser GPL, GPL or Affero GPL.
     13 The main strategy is for libraries that third parties may need to integrate
     14 with Taler to be under LGPL, standalone binaries and testcases to be under
     15 GPL, and Web servers implementing Web services and REST APIs to be under AGPL.
     16 Trivial code (such as build logic) is occasionally also simply put into the
     17 public domain. Legislations that do not have a public domain should consider
     18 that code to be under LGPL.
     19 
     20 The project was initially started based on code and documentation from GNUnet
     21 e.V. and INRIA, and is continued to be developed by the GNUnet community and
     22 Taler Systems SA.  INRIA and GNUnet e.V. have both assigned or shared their
     23 copyrights with Taler Systems SA.  Thus, it should generally be said that the
     24 code is copyright Taler Systems SA.
     25 
     26 We are also working closely with the GNU Anastasis package. Here, the same
     27 copyright sharing is in place between the original developers from BFH and
     28 GNUnet e.V., except that the copyright was assigned or shared with Anastasis
     29 SARL. Agreements are in place that allows developers to freely move code
     30 between GNU Anastasis, GNUnet and GNU Taler if this is technically warranted
     31 (note that all developers must sign the GNUnet e.V. copyright contributor
     32 agreement).
     33 
     34 Note that this file *may* be outdated. If in doubt, please contact the
     35 involved GNU maintainers (currently Florian Dold, Christian Grothoff and
     36 Martin Schanzenbach) as they generally have the responsibility and right to
     37 determine the appropriate license for individual components. (That right is
     38 technically granted and constrained by the copyright agreemnts signed by
     39 individual contributors and possibly subject to decision processes within
     40 Anastasis SARL, GNUnet e.V. and Taler Systems SA.  However, in practice this
     41 has so far never been an issue as so far everyone agrees on the licensing
     42 strategy and the maintainers will just make minor adjustments to consistently
     43 implement that strategy when issues arise, such as code moving between
     44 LGPL, GPL and AGPL licensed components or developers accidentally using the
     45 wrong license in a header.)
     46 
     47 
     48 ++++++++++++++++++
     49 Following the AGPL
     50 ++++++++++++++++++
     51 
     52 The main goal of the AGPL is to require a service provider to make the source
     53 code of the service easily accessible to all users of that service.
     54 
     55 For GNUnet, GNU Taler and GNU Anastasis, we are realizing this requirement by
     56 implementing an ``/agpl/`` endpoint that directs users of the API to the
     57 source code (either a TGZ or a redirect to the Git repository) of the
     58 component and its dependencies (we believe it is acceptable to not include
     59 unmodified dependencies that are easily available and findable elsewhere
     60 already).  The source code (as defined in the GPL) must then be downloadable
     61 gratis and without access control from that address in a form suitable for
     62 development (that is, including build system and instructions).  All of the
     63 usual constraints of distributing code under GPL apply as well.
     64 
     65 When deploying sources that have been modified from the upstream versions
     66 released by GNU, you *must* thus update the ``/agpl/`` endpoint to point to
     67 the modified source code.  Note that you *must* always make the code of the
     68 actually deployed version available, which includes customizations,
     69 extensions, integrations or security enhancements or bug fixes.
     70 
     71 .. note:
     72 
     73   We provide this text as a clarification, the ultimate
     74   license text that applies is that of the AGPLv3+.
     75 
     76 +++++++++++++++++
     77 Following the GPL
     78 +++++++++++++++++
     79 
     80 The GPL requires you to make the source code of the respective program
     81 available to all users that may be running the program. This includes again
     82 any customizations (branding, theming, extensions, integrations or security
     83 enhancements or bug fixes) you may have made.  The source code for the
     84 modified program must be again released under the GPL and must be reasonably
     85 easy to find gratis for all users of your program.
     86 
     87 When shipping binaries of *unmodified* versions of the GNU releases, this is
     88 satisfied as GNU makes the sources available via both the Git repositories of
     89 the project and the FTP mirrors of the GNU project.  You are still required to
     90 make any packaging logic you may have written to create the binaries available
     91 to others.
     92 
     93 .. note:
     94 
     95   We provide this text as a clarification, the ultimate
     96   license text that applies is that of the GPLv3+.
     97 
     98 
     99 ++++++++++++++++++
    100 Following the LGPL
    101 ++++++++++++++++++
    102 
    103 To follow the LGPL, you basically do everything you need to do
    104 under the GPL when it comes to the sources you were provided.
    105 
    106 However, you are allowed to integrate the code provided under
    107 the LGPL with other code that is not under the LGPLv3+.
    108 Nevertheless, modifications to our existing code must
    109 remain under the LGPLv3+, and we strongly encourage you
    110 to release all of your code under an appropriate FLOSS
    111 license.
    112 
    113 .. note:
    114 
    115   We provide this text as a clarification, the ultimate
    116   license text that applies is that of the LGPLv3+.
    117 
    118 
    119 
    120 ++++++++++++++++++++++++++++++
    121 API (git://git.taler.net/docs)
    122 ++++++++++++++++++++++++++++++
    123 
    124 The specification has been originally developed by INRIA and by individuals
    125 being under the juridical subject called 'GNUnet e.V.'. For each source
    126 file, the header indicated whose is holding the copyright, since some
    127 parts have been taken "verbatim" from the GNUnet e.V. foundation, and
    128 some other have been developed at INRIA or Taler Systems SA "ex novo".
    129 
    130 Generally, GNU GPLv3 license is used for them; see COPYING.GPL.
    131 
    132 
    133 --------------------
    134 Runtime dependencies
    135 --------------------
    136 This component has no runtime dependencies as it is supposed to generate
    137 HTML.
    138 
    139 
    140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    141 Firefox/Android/Python Wallet (git://git.taler.net/wallet-core)
    142 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    143 
    144 This project includes contributions from INRIA and GNUnet
    145 e.V. developers.  Please refer to each source file to obtain
    146 information about the copyright holder. The GNU GPLv3 is used as the
    147 license for Wallets.  Some components may be under the LGPL.
    148 
    149 --------------------
    150 Runtime dependencies
    151 --------------------
    152 
    153 The following list encompasses all the runtime dependencies for this
    154 project, and gives the copyright holder for each of them:
    155 
    156 * libgnunetutil: GPLv3+, GNUnet e.V.
    157 * libgnunetjson: GPLv3+, GNUnet e.V.
    158 * libgcrypt: LGPL, Free Software Foundation
    159 * libunistring: LGPL, Free Software Foundation
    160 * Python:   Python Software Foundation License, LGPL-Compatible, Python Software Foundation
    161 * Mozilla Firefox:   Mozilla Public License, LGPL-Compatible, Mozilla Foundation
    162 
    163 
    164 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
    165 WebExtensions Wallet (git://git.taler.net/wallet-webex)
    166 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
    167 
    168 The TypeScript code was originally developed at INRIA, but the project
    169 involves compiling libgnunetutil and libtalerutil to JavaScript, and
    170 thus depends on software from GNUnet e.V.
    171 
    172 Each source carries its own copyright holder(s), but it is generally
    173 licensed under GPLv3+.
    174 
    175 --------------------
    176 Runtime dependencies
    177 --------------------
    178 
    179 The following list encompasses all the runtime dependencies for this
    180 project, and gives the copyright holder for each of them:
    181 
    182 * libgnunetutil: GPLv3+, GNUnet e.V.
    183 * libgnunetjson: GPLv3+, GNUnet e.V.
    184 * libgcrypt: LGPL, Free Software Foundation
    185 * libunistring: LGPL, Free Software Foundation
    186 
    187 Note that these dependencies are compiled into the extension and do
    188 not appear as separate binary files.
    189 
    190 
    191 +++++++++++++++++++++++++++++++++++++++
    192 Merchant (git://git.taler.net/merchant)
    193 +++++++++++++++++++++++++++++++++++++++
    194 
    195 This project contains code under two different licenses, and whose
    196 copyright is held by INRIA and/or GNUnet e.V..  Please refer to each
    197 source file to know which party holds the original copyright.
    198 
    199 Source files are located in the following directories:
    200 
    201 * src/lib/
    202 * src/backend/
    203 * src/backenddb/
    204 * src/include/
    205 * src/tests/
    206 * examples/blog/
    207 * examples/shop/
    208 * copylib/
    209 
    210 The merchant's backend (i.e. all the code in src/backend/) is under the GNU
    211 Affero GPL.  Note that the use of the Affero GPL has little impact as the
    212 backend is not supposed to be directly accessible to the Internet).  The
    213 license for this code is in COPYING.GPL and COPYING.AGPL.
    214 
    215 The merchant's frontend logic (i.e. JavaScript interacting with
    216 the wallet, sample code for a shop) is under the GNU GPL.
    217 
    218 The merchant library (src/lib/) is under the Lesser GNU GPL as it can be
    219 linked with more diverse licensed software.  The license text for this code is
    220 in COPYING.LGPL.
    221 
    222 In taler-merchant-demos.git/talermerchantdemos/blog/articles/ we included a book
    223 by Richard Stallman.  It comes with its own permissive license (see COPYING in
    224 the directory).
    225 
    226 
    227 
    228 --------------------
    229 Runtime dependencies
    230 --------------------
    231 
    232 The following list encompasses all the runtime dependencies for this
    233 project, and gives the copyright holder for each of them:
    234 
    235 * libjansson: MIT License, AGPL- and LGPL-Compatible, owned by Petri Lehtinen and other individuals
    236 * libgcrypt: LGPL, owned by Free Software Foundation
    237 * postgresql: PostgreSQL License, AGPL- and LGPL-Compatible, owned by The PostgreSQL Global Development Group
    238 * libgnunetutil (in all of its variants): GPLv3+, owned by GNUnet e.V.
    239 * PHP:  PHP License, AGPL- and LGPL-Compatible, owned by The PHP Group
    240 
    241 +++++++++++++++++++++++++++++++++++++++
    242 Libeufin (git://git.taler.net/libeufin)
    243 +++++++++++++++++++++++++++++++++++++++
    244 
    245 ---------
    246 Licensing
    247 ---------
    248 
    249 This project has been developed by Stanisci and Dold who are
    250 sharing their copyright with Taler Systems SA.  For each source file, the
    251 header indicated whose is holding the copyright.  The license is
    252 the Affero GPLv3+.
    253 
    254 --------------------
    255 Runtime dependencies
    256 --------------------
    257 
    258 The following list encompasses all the runtime dependencies for this
    259 project, and gives the copyright holder for each of them:
    260 
    261 * Django:   BSD License, AGPL-Compatible, owned by Django Software Foundation
    262 * validictory:   BSD License, AGPL-Compatible, owned by James Turk
    263 * django-simple-math-captcha:   Apache Software License, LGPL-Compatible (FIXME), Brandon Taylor
    264 * requests:   Apache2 License, AGPL-Compatible, owned by Kenneth Reitz
    265 * Python:   Python Software Foundation License, AGPL-Compatible, Python Software Foundation
    266 * PHP:   PHP License, AGPL-Compatible, owned by The PHP Group
    267 
    268 
    269 .. _exchange-repo:
    270 
    271 +++++++++++++++++++++++++++++++++++++++
    272 Exchange (git://git.taler.net/exchange)
    273 +++++++++++++++++++++++++++++++++++++++
    274 
    275 This component is based on code initially developed in Munich for GNUnet
    276 e.V. but was significantly rewritten by INRIA. Most recent improvements and
    277 maintenance has been done at Taler Systems SA and BFH (under a copyright
    278 sharing agreement with GNUnet e.V.).  The copyright is with Taler Systems SA.
    279 
    280 The licensing for exported libraries to access the exchange is LGPL,
    281 the exchange itself is under AGPL, and testcases and standalone
    282 binaries are under GPL.
    283 
    284 
    285 --------------------
    286 Runtime dependencies
    287 --------------------
    288 
    289 The following list encompasses all the runtime dependencies for this
    290 project, and gives the copyright holder for each of them:
    291 
    292 * libjansson: MIT License, AGPL- and LGPL-Compatible, owned by Petri Lehtinen and other individuals
    293 * libgcrypt: LGPL, owned by Free Software Foundation
    294 * libsodium: LGPL
    295 * postgresql: PostgreSQL License, AGPL- and LGPL-Compatible, owned by The PostgreSQL Global Development Group
    296 * libgnunetutil (in all of its variants): GPLv3+, owned by GNUnet e.V.
    297 * libgnunetjson: LGPLv3+, GNUnet e.V.
    298 * libgnunetpq: AGPLv3+, GNUnet e.V.
    299 * libgnunetcurl: LGPLv3+, GNUnet e.V.
    300 
    301 
    302 +++++++++++++++++++++++++++++++++++++++++++++
    303 Web includes (git://git.taler.net/web-common)
    304 +++++++++++++++++++++++++++++++++++++++++++++
    305 
    306 All copyright owned by INRIA (but questionable whether creativity
    307 threshold for copyright is even met).
    308 
    309 Sources are licensed under the GNU LGPL.
    310 
    311 +++++++++++++
    312 Documentation
    313 +++++++++++++
    314 
    315 The documentation is licensed under the GNU Free Documentation License Version 1.3 or later.