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.