LICENSE.txt 14 KB

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