LICENSE.txt 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. Copyright (c) 2011-2013 TapQuo S.L.
  2. site: http://tapquo.com
  3. mail: hello@tapquo.com
  4. ===============================================================================
  5. ===============================================================================
  6. OPEN SOURCE LICENSE FOR LUNGOJS
  7. Version 2.2
  8. LungoJS is an avid supporter of open source software. This is the appropriate
  9. option if you are creating an open source application with a license compatible
  10. with the GNU GPL license v3 (http://www.gnu.org/copyleft/gpl.html). Although
  11. the GPLv3 has many terms, the most important is that you must provide the
  12. source code of your application to your users so they can be free to modify
  13. your application for their own needs.
  14. View the license terms: http://www.gnu.org/copyleft/gpl.html
  15. THIS DOCUMENT IS A LEGAL AGREEMENT (the “License Agreement”) BETWEEN TAPQUO INC.
  16. (“We,” “Us”) AND YOU OR THE ORGANIZATION ON WHOSE BEHALF YOU ARE UNDERTAKING
  17. THE LICENSE DESCRIBED BELOW (“You”) IN RELATION TO THE LUNGOJS SOFTWARE
  18. LIBRARY (THE “Software”), AND/OR ALL RELATED MATERIALS. BY DOWNLOADING,
  19. INSTALLING, COPYING OR OTHERWISE USING THE SOFTWARE, YOU ACCEPT THE FOLLOWING
  20. TERMS AND CONDITIONS. IF YOU DO NOT AGREE WITH ANY OF THE TERMS OR CONDITIONS
  21. OF THIS LICENSE AGREEMENT, DO NOT PROCEED WITH THE DOWNLOADING, COPYING,
  22. INSTALLATION OR ANY OTHER USE OF THE SOFTWARE OR ANY PORTION THEREOF. THE
  23. SOFTWARE IS PROTECTED BY UNITED STATES COPYRIGHT LAWS AND INTERNATIONAL
  24. COPYRIGHT LAWS, AS WELL AS OTHER INTELLECTUAL PROPERTY LAWS AND TREATIES.
  25. THE SOFTWARE IS LICENSED, NOT SOLD.
  26. ===============================================================================
  27. ===============================================================================
  28. OPEN SOURCE LICENSE FAQ
  29. Version 2.2
  30. This document is for guidance purposes only and is not a legal document and is
  31. not legally binding. We encourage you to read the GPL v3 and the Quick Guide to
  32. the GPLv3 in their entirety and consult legal counsel if you require additional
  33. advice.
  34. ===============================================================================
  35. ===============================================================================
  36. LUNGOJS AND THE GPL v3
  37. Version 2.2
  38. -------------------------------------------------------------------------------
  39. What is the GPL v3?
  40. -------------------------------------------------------------------------------
  41. The GNU General Public License(GPL) is the most widely used free and open
  42. source software (FOSS) license in the world. The GPL was created and sponsored
  43. by the Free Software Foundation (FSF). Read the GPL v3 license
  44. -------------------------------------------------------------------------------
  45. What are the advantages of GPL v3?
  46. -------------------------------------------------------------------------------
  47. The GPL is the most widely used open source license in the world. Linux, MySQL,
  48. Wordpress and other major open source projects are all licensed under the GPL.
  49. The GPL is designed to ensure that you have the freedom to modify the software
  50. you use as you see fit. In return, you are asked to ensure that any users of
  51. software that you have built using GPL software receive the same freedom to
  52. modify your software in turn. Licensing under GPLv3 ensures the highest amount
  53. of availability in the open source community.
  54. -------------------------------------------------------------------------------
  55. What LungoJS products are available under the GPL v3?
  56. -------------------------------------------------------------------------------
  57. LungoJS Core, LungoJS Sugars and LungoJS Themes are all available under GPL v3.
  58. ===============================================================================
  59. ===============================================================================
  60. The GPL v3
  61. -------------------------------------------------------------------------------
  62. What am I not allowed to do with code that is released under the GPL v3?
  63. -------------------------------------------------------------------------------
  64. You can download the code base, install it, and modify it as needed. If you
  65. modify the code, we encourage you to contribute it back to the LungoJS community
  66. by contributing your modifications under GPL v3 in the LungoJS forums. If you
  67. convey your modifications (under the GPL definition of conveyance) then you
  68. must make your modifications available in source form to the users to whom you
  69. distributed your software. More information about what the GPL license allows
  70. is available in the GPL license itself, the Quick Guide to the GPLv3 and the
  71. official GPL FAQ.
  72. -------------------------------------------------------------------------------
  73. What is a modification?
  74. -------------------------------------------------------------------------------
  75. The simple rule to follow is if you modify any functionality or file in a Lungo
  76. product for a purpose other than configuration, then you have created a
  77. modification. All modifications of a GPLv3 licensed products are subject to the
  78. GPL v3 license. Additional information is available in the official GPL FAQ.
  79. The following are examples of modifications:
  80. Modify JavaScript, LESS or CSS source file
  81. Extend LungoJS class or override any LungoJS functions or methods
  82. Modifying an LungoJS API
  83. The following are not modifications:
  84. Creating a new theme in a new CSS file
  85. Creating or applying a locale/language pack
  86. Overriding property defaults on class prototypes (configuration)
  87. -------------------------------------------------------------------------------
  88. What licenses are compatible with GPL v3?
  89. -------------------------------------------------------------------------------
  90. A list of compatible licenses is available on gnu.org. This compatiblity list
  91. includes licenses that can be included in a GPL’ed work. The diagram below
  92. shows the directions of compatibility for some common licenses:
  93. -------------------------------------------------------------------------------
  94. Where can I find additional information about the GPL v3?
  95. -------------------------------------------------------------------------------
  96. The best sources are the GPL license itself, the Quick Guide to the GPLv3” and
  97. the official GPL FAQ.
  98. -------------------------------------------------------------------------------
  99. What is the LungoJS interpretation of “conveyance” under the GPL v3?
  100. -------------------------------------------------------------------------------
  101. The short answer to this question is that when a non-employee of the
  102. organization that created the modifications to GPL v3, uses those modifications,
  103. then the program has been “conveyed”.
  104. The long answer to this question is unfortunately, quite complicated,due to the
  105. complex wording of the GPL, the ambiguity of certain terms in copyright law and
  106. the nature of JavaScript programs. Here is our interpretation of what
  107. constitutes “conveyance” under the languages of the GPL v3.
  108. Derived Works
  109. When a software program calls code that is licensed under the GPLv3, then that
  110. software program becomes a derived work of the GPL’d code and hence subject to
  111. the GPLv3 copyright license. If the software program is then “conveyed” to a
  112. user, the GPLv3 requires that the source code to that software program also be
  113. “conveyed.” “Conveyance” for a web application is triggered when a user outside
  114. the legal entity that created the application uses the application.
  115. The Definition of a Software Program
  116. Since the boundaries defining an individual software program can be hazy in
  117. modern app architectures, we follow the rule “when determining what constitutes
  118. the software program, follow the main principle of the GPL v3, which states
  119. that users should be free to modify the entire software program that
  120. incorporates GPL’d code for their own purposes”. For software programs built
  121. using today’s web architectures that use remote network-based service
  122. interfaces for internal communication instead of traditional static or dynamic
  123. linking, the relevant software program is the totality of the application code,
  124. including code executed on the server and code executed on the client, provided
  125. that the server code is integral to the application. We exclude from the
  126. definition of “software program”, software incorporated into the software
  127. program via a service interface that provides functionality ancillary to the
  128. main purpose of the program, functionality un-related to application logic, or
  129. functionality that is used by a number of separate applications other than the
  130. application in question. With this caveat, please remember that the use of any
  131. specific technical approach in and of itself does not guarantee that
  132. “derivation” will not be held to have occurred.
  133. Example
  134. For example: let’s take a mortgage processing software program. Let’s say that
  135. the application has a front-end (that generates web pages linked to LungoJS
  136. JavaScript) that communicates over JSON/HTTP with a backend service. This
  137. backend service contains approval and validation logic for this application
  138. alone. Even if only the front-end uses LungoJS code, you should consider that
  139. the combination of front and back ends constitutes the application, and the
  140. source code for both back and front end would need to be provided to the
  141. application’s end users under GPLv3 if the application is used by an end-user
  142. who is not part of the same legal entity that holds the GPLv3 license to the
  143. LungoJS code.
  144. Next, let’s assume that the mortgage application web-pages also offer
  145. functionality that allows users to search current interest rates, and file a
  146. customer support ticket (functionality ancillary to the purpose of the
  147. application) and those functions are provided by separate server-side services.
  148. We do not consider those programs to compose part of the software program for
  149. the purposes of the GPLv3. For example, in all cases we would not consider a
  150. database that provides data interfaces to the application over standard
  151. interfaces to be part of the application.
  152. Reasonableness Test
  153. As mentioned above, in many cases, there can be ambiguity about the exact
  154. boundaries of a software program. In these cases, we apply a “reasonableness”
  155. test to establish application boundaries. Following the principles of the GPL
  156. v3, we should ask “what would a user who is conveyed a copy of the application
  157. reasonably expect to receive in source code form in order to modify the
  158. application for his or her needs.”
  159. Certain Technical Strategies
  160. Our interpretation is that the use of technical strategies that store and
  161. transmit LungoJS code as data (for example by storing JavaScript libraries as
  162. data-files within a database which are then transmitted as data files to the
  163. browser and only then converted into a program through the use of eval()) does
  164. not change the above definition of software program under the GPLv3 definitions.
  165. Definition of License Holder
  166. Following GPL v3 guidelines, we consider the holder of the GPL v3 license to be
  167. the legal entity that owns the rights to the work product of the developer who
  168. writes the software code that calls LungoJS functions. For example, a developer
  169. that downloads LungoJS and uses it to build an application that is copied to
  170. multiple offices within their company and serves web pages to employees across
  171. the country, has not triggered “conveyance” of the program since the containing
  172. corporate entity is the licensee, not the individual developer. However if a
  173. contractor, agent, employee of another subsidiary or other non-employee uses
  174. that software, then conveyance has occurred.
  175. In addition, if a copy of the software program is provided by the developer to
  176. a person in another legal entity, then we consider that “conveyance”, as
  177. defined by the GPLv3, has occurred, and that person must be provided with a
  178. copy of the source for the software program. Further conveyance by the
  179. recipient would only be permitted under the GPL v3.
  180. Conveyance vs. Propagation
  181. Since LungoJS are software programs that can run within the browser while
  182. disconnected from the network or the rest of a server program; when a LungoJS
  183. based interface is embedded in a web-page served to a user who does not have an
  184. employee relationship with the original licensed entity, we consider that
  185. “conveyance” rather than simple web page “propagation” as defined by the GPL v3
  186. has occurred, and the source code of the whole application must be provided to
  187. the user. Users who are not entitled to use the software under the original
  188. license grant to the recipient legal entity (whose developer downloaded and
  189. wrote to the LungoJS libraries) include contractors, agents, and distributors
  190. of the original legal entity, as well as employees of related corporate
  191. subsidiaries or parents. In these cases, a user who is a contractor must be
  192. provided with a copy of the source code of the application with further
  193. conveyance by the contractor permitted only under the GPL v3. This also applies
  194. to web development firms who create software programs under contract for a
  195. client.
  196. In the case of the GPLv3 licensed entities, our interpretation is that the
  197. distribution of abstraction/intermediary libraries to contractors or users
  198. outside the licensed legal entity for development purposes also falls under
  199. the definition of “conveyance.”
  200. -------------------------------------------------------------------------------
  201. GPL v3 Is The Official License
  202. -------------------------------------------------------------------------------
  203. While this is our best attempt to characterize our interpretation of the GPL v3,
  204. relatively little of this interpretation has been confirmed in law due to the
  205. limited case law surrounding GPL v3. In all cases, the GPL v3 text itself
  206. constitutes the actual legal agreement between LungoJS and our GPL v3 licensees.
  207. This FAQ does not constitute legal advice, but reflects our position on the
  208. responsibilities of users who use our software licensed under the GPLv3. We do
  209. not provide legal advice to current or potential users of our GPLv3 licensed
  210. programs, so we ask you to consult your own legal counsel if you have further
  211. questions.