Sencha Inc. | HTML5 Apps

Open Source FAQ

This document is for guidance purposes only and is not a legal document and is not legally binding. We encourage you to read the GPL v3 and the Quick Guide to the GPLv3 in their entirety and consult legal counsel if you require additional advice.

Sencha and the GPL v3

  • What Sencha products are available under the GPL v3?
  • What is the GPL v3?
  • What are the advantages of GPL v3?

The GPL v3

  • What am I allowed to do to the code that is released under GPL v3?
  • What am I not allowed to do with code that is released under the GPL v3?
  • What is a modification?
  • What licenses are compatible with GPL v3?
  • Where can I find additional information about the GPL v3?
  • What is Sencha’s interpretation of “conveyance” under the GPL v3?

Sencha and the GPL v3

What Sencha products are available under the GPL v3?
Public releases of Sencha Touch, Sencha Touch Charts, Sencha Ext JS and Sencha GXT are all available under GPL v3. Sencha Touch Grid, Sencha Architect, and Sencha Cmd are only available under a Sencha commercial license and are not available under any open source license.

What is the GPL v3?
The GNU General Public License(GPL) is the most widely used free and open source software (FOSS) license in the world. The GPL was created and sponsored by the Free Software Foundation (FSF). Read the GPL v3 license

What are the advantages of GPL v3?
The GPL is the most widely used open source license in the world. Linux, MySQL, Wordpress and other major open source projects are all licensed under the GPL. The GPL is designed to ensure that you have the freedom to modify the software you use as you see fit. In return, you are asked to ensure that any users of software that you have built using GPL software receive the same freedom to modify your software in turn. Licensing under GPLv3 ensures the highest amount of availability in the open source community.

The GPL v3

What am I not allowed to do with code that is released under the GPL v3?
You can download the code base, install it, and modify it as needed. If you modify the code, we encourage you to contribute it back to the Sencha community by contributing your modifications under GPL v3 in the Sencha forums. If you convey your modifications (under the GPL definition of conveyance) then you must make your modifications available in source form to the users to whom you distributed your software. More information about what the GPL license allows is available in the GPL license itself, the Quick Guide to the GPLv3 and the official GPL FAQ.

What is a modification?
The simple rule to follow is if you modify any functionality or file in a Sencha product for a purpose other than configuration, then you have created a modification. All modifications of a GPLv3 licensed products are subject to the GPL v3 license. Additional information is available in the official GPL FAQ.

The following are examples of modifications:

  • Modify Ext JavaScript, Java or CSS source file
  • Extend Ext class or override any Ext functions or methods
  • Modifying an Ext API

The following are not modifications:

  • Creating a new theme in a new CSS file
  • Creating or applying a locale/language pack
  • Overriding property defaults on class prototypes (configuration)

What licenses are compatible with GPL v3?
A list of compatible licenses is available on gnu.org. This compatiblity list includes licenses that can be included in a GPL’ed work. The diagram below shows the directions of compatibility for some common licenses:

Where can I find additional information about the GPL v3?
The best sources are the GPL license itself, the Quick Guide to the GPLv3” and the official GPL FAQ.

What is the Sencha interpretation of “conveyance” under the GPL v3?
The short answer to this question is that when a non-employee of the organization that created the modifications to GPL v3, uses those modifications, then the program has been “conveyed”.

The long answer to this question is unfortunately, quite complicated, due to the complex wording of the GPL, the ambiguity of certain terms in copyright law and the nature of JavaScript programs. Here is our interpretation of what constitutes “conveyance” under the languages of the GPL v3.

Derived Works
When a software program calls code that is licensed under the GPLv3, then that software program becomes a derived work of the GPL’d code and hence subject to the GPLv3 copyright license. If the software program is then “conveyed” to a user, the GPLv3 requires that the source code to that software program also be “conveyed.” “Conveyance” for a web application is triggered when a user outside the legal entity that created the application uses the application.

The Definition of a Software Program
Since the boundaries defining an individual software program can be hazy in modern app architectures, we follow the rule “when determining what constitutes the software program, follow the main principle of the GPL v3, which states that users should be free to modify the entire software program that incorporates GPL’d code for their own purposes”. For software programs built using today’s web architectures that use remote network-based service interfaces for internal communication instead of traditional static or dynamic linking, the relevant software program is the totality of the application code, including code executed on the server and code executed on the client, provided that the server code is integral to the application. We exclude from the definition of “software program”, software incorporated into the software program via a service interface that provides functionality ancillary to the main purpose of the program, functionality un-related to application logic, or functionality that is used by a number of separate applications other than the application in question. With this caveat, please remember that the use of any specific technical approach in and of itself does not guarantee that “derivation” will not be held to have occurred.

Example
For example: let’s take a mortgage processing software program. Let’s say that the application has a front-end (that generates web pages linked to Ext JS JavaScript) that communicates over JSON/HTTP with a backend service. This backend service contains approval and validation logic for this application alone. Even if only the front-end uses Ext JS code, you should consider that the combination of front and back ends constitutes the application, and the source code for both back and front end would need to be provided to the application’s end users under GPLv3 if the application is used by an end-user who is not part of the same legal entity that holds the GPLv3 license to the Ext JS code.

Next, let’s assume that the mortgage application web-pages also offer functionality that allows users to search current interest rates, and file a customer support ticket (functionality ancillary to the purpose of the application) and those functions are provided by separate server-side services. We do not consider those programs to compose part of the software program for the purposes of the GPLv3. For example, in all cases we would not consider a database that provides data interfaces to the application over standard interfaces to be part of the application.

Reasonableness Test
As mentioned above, in many cases, there can be ambiguity about the exact boundaries of a software program. In these cases, we apply a “reasonableness” test to establish application boundaries. Following the principles of the GPL v3, we should ask “what would a user who is conveyed a copy of the application reasonably expect to receive in source code form in order to modify the application for his or her needs.”

Certain Technical Strategies
Our interpretation is that the use of technical strategies that store and transmit Ext JS or Sencha Touch code as data (for example by storing JavaScript libraries as data-files within a database which are then transmitted as data files to the browser and only then converted into a program through the use of eval()) does not change the above definition of software program under the GPLv3 definitions.

Definition of License Holder
Following GPL v3 guidelines, we consider the holder of the GPL v3 license to be the legal entity that owns the rights to the work product of the developer who writes the software code that calls Ext JS, Sencha Touch or Sencha GXT functions. For example, a developer that downloads Ext JS and uses it to build an application that is copied to multiple offices within their company and serves web pages to employees across the country, has not triggered “conveyance” of the program since the containing corporate entity is the licensee, not the individual developer. However if a contractor, agent, employee of another subsidiary or other non-employee uses that software, then conveyance has occurred.

In addition, if a copy of the software program is provided by the developer to a person in another legal entity, then we consider that “conveyance”, as defined by the GPLv3, has occurred, and that person must be provided with a copy of the source for the software program. Further conveyance by the recipient would only be permitted under the GPL v3.

Conveyance vs. Propagation
Since Ext JS, Sencha GXT and Sencha Touch are software programs that can run within the browser while disconnected from the network or the rest of a server program; when a Sencha based interface is embedded in a web-page served to a user who does not have an employee relationship with the original licensed entity, we consider that “conveyance” rather than simple web page “propagation” as defined by the GPL v3 has occurred, and the source code of the whole application must be provided to the user.  Users who are not entitled to use the software under the original license grant to the recipient legal entity (whose developer downloaded and wrote to the Ext JS libraries) include contractors, agents, and distributors of the original legal entity, as well as employees of related corporate subsidiaries or parents. In these cases, a user who is a contractor must be provided with a copy of the source code of the application with further conveyance by the contractor permitted only under the GPL v3. This also applies to web development firms who create software programs under contract for a client.

In the case of the GPLv3 licensed entities, our interpretation is that the distribution of abstraction/intermediary libraries to contractors or users outside the licensed legal entity for development purposes also falls under the definition of “conveyance.”

GPL v3 Is The Official License
While this is our best attempt to characterize our interpretation of the GPL v3, relatively little of this interpretation has been confirmed in law due to the limited case law surrounding GPL v3. In all cases, the GPL v3 text itself constitutes the actual legal agreement between Sencha and our GPL v3 licensees. This FAQ does not constitute legal advice, but reflects our position on the responsibilities of users who use our software licensed under the GPLv3. We do not provide legal advice to current or potential users of our GPLv3 licensed programs, so we ask you to consult your own legal counsel if you have further questions.