3

I want to use the GPL v3 version of EXT JS for a project, but I'm very confused about how it should be used and whether or not I should get the paid version. I'm seeing different answers on the net so I don't know who to believe. There is a topic about it on their forum, but even there I see contradictory answers. I tried to contact the customer support, but I'm still confused so now my question is more global and it's about GPL v3 in general. What does it do and what I am allowed or not allowed to do with my code?

I would like to use EXT JS to create web apps to be used internally by the company, and I also would like you use some of its elements like grids on websites. In the emails, the customer support mentioned that if I were to use the GPL version, I had to "publish" my code. I don't know what that means, since the JavaScript code is visible to anyone.

Thanks

2

The GPL is a copyright license that belongs to a category of license commonly called "copyleft" licenses. The defining characteristic of a copyleft license is that a work derived from a copyleft-licensed work must be licensed under that copyleft license as a whole. For the GPL, if your work includes a single piece that is licensed under the GPL, then the entire combined work must be licensed under the GPL whenever you choose to distribute it.

When you distribute a combined work the includes GPL components, you must license the entire work under the GPL. When you do so, your obligations for the new work include:

  1. making the human-readable source code of your application available whenever the application is available, and
  2. permitting anyone who receives a copy to make derivative works based on your code and release it under the GPL.

Note that I've said "whenever the application is available" and "anyone who receives a copy." Only people who have been given a copy of your application have a right to the source code and permission to create derivatives. If the application is only available to company employees and not the general public, then no one in the general public has the right to see the source code of your application. Also, the company employees might not either, because they've only been given access to the application as agents of the company. Per the GPL FAQ:

Is making and using multiple copies within one organization or company “distribution”?

No, in that case the organization is just making the copies for itself. As a consequence, a company or other organization can develop a modified version and install that version through its own facilities, without giving the staff permission to release that modified version to outsiders.

But you've said that you want to include some elements on websites, which I assume are public-facing. In that case, for those public-facing works, you will need to make the source publicly available. You ask:

I had to "publish" my code. I don't know what that means, since the JavaScript code is visible to anyone.

Very true -- Web applications are already sent to the user in source form. Some things to consider, however, are:

  • You must make it clear that that your application is licensed under the GPL. Making the source available satisfies requirement #1 above, but the user might not know that requirement #2 (permission to prepare derivatives under the GPL) is in effect unless you prominently state (e.g., in a footer, About page, etc.) that the work is licensed under the GPLv3 and include a copy of the license.

  • According to the GPLv3, your source code must be in "the preferred form of the work for making modifications to it." You cannot minify or obfuscate the source code when satisfying the requirement of source code availability. If you wish to minify your application's source (e.g., for performance reasons) then you must separately make the original source available to anyone who receives the minified source.

  • If your website work is made up of lots of discrete files, it could be a big pain to download all of the pieces. You might make the whole source available as a single zipped file. A complex website with iframed resources, scripts, styles, and image resources could be quite difficult to gather up manually. In addition to being courteous, I'd be a little concerned that forcing users to gather up all the pieces could be viewed as intentionally impeding the ability to access the source, but I don't really know to what degree that concern has legal merit.

| improve this answer | |
  • "Copyleft" is word play, not a legal term. GPL licenses cover copying of code - if you want to copy the code, you have to follow the conditions of the license. If you just use the code or create derived works without distributing them, there is no obligation. – gnasher729 Jan 27 '16 at 0:01
  • Thank you for your reply. Things are more clear now, but now my question is... why would someone choose to pay to use this library. The only reason I see is if you're planning to make very heavy changes on the source code, but in this case, why would someone pay to develop something themselves? – user1319182 Jan 29 '16 at 15:53
  • 1
    @user1319182 Here a "combined work" could be any application that makes use of Ext JS as a library. If you are okay releasing all of your application's human-readable source code and allowing others to reuse it, then the GPL is 100% the right license for you! Many people/businesses do not want to allow others to take their application's code and reuse it in their own applications, so they pay for the ability to retain that right. – apsillers Jan 29 '16 at 16:02
  • @gnasher729 Aha -- upon a careful re-read I now see the source of your complaint: I ambiguously used "use" in my second paragraph. I've changed it to "distribute". The rest of my answer explicitly talks about obligations only related to distributing the code, so I think it can stand unaltered. I also mentioned explicitly that the GPL is first and foremost a copyright license, but that it also belongs to the category of copyleft licenses and added a categorical definition for "copyleft license". – apsillers Jan 29 '16 at 16:10
1

The GPL license is what's known as a copyleft license. It's an open source license, which is known for it's "viral" nature.

The GPL provides many freedoms with code, including: the use in private and commercial environments, as well as the freedom to modify and distribute that code. However, it comes with a catch. Anything modifications to the code also have to be made available, and even cases where you're making a link (e.g. GPLLibary.foo();) will force that library to be made under the GPL as well.

So when do you have to make available your source code? It all depends on how you distribute it.

If you ever make the code into an application, and distribute publicly, you must also distribute the source code. However, if you are only using it internally within your organization, then there is no distribution, and you don't have to make the source code available necessarily.

| improve this answer | |
  • This doesn't address the asker's specific situation; it's just a general explanation of the GPL. – Justin Jan 30 '16 at 0:14
  • @JustinLardinois Since you were so kind as to leave a comment, perhaps you could explain how the post could be improved? Regardless, I do agree that it is somewhat of a general explanation, and I'll try to expand on the answer. – Zizouz212 Jan 30 '16 at 0:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.