Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I understand that when any software under the GPL is given to another the recipient has the same rights over the software that I do. I also understand that this applies to "a work based on the Program".

Questions:

1) I noticed several companies sell wordpress plugins and require that you buy a new plugin for each website. Plugins are obviously "a work based on the Program". How do they do this with GPL? (ie I want to do this and not have someone take my plugin, turn around and sell it for themselves. I'm working with Drupal, however, not Wordpress).

2) If I write a module for in-house purposes and an employee takes that module home and puts it online, is that legal? What I mean is that if someone steals my code do they still have the same rights over the code that I do?

3) If I use Drupal modules in a software-as-a-service business and let people use it (ie hosted on my servers), do I still have to give them the source?

References:

http://www.gnu.org/licenses/quick-guide-gplv3.html

share|improve this question
add comment

4 Answers

up vote 6 down vote accepted

Many of these questions are answered in the Drupal Licensing FAQ.

I understand that when any software under the GPL is given to another the recipient has the same rights over the software that I do.

That's only correct if you didn't author the software in the first place.

If you did author the software, you hold the copyright to it by default. You can assign to others any rights you like, but unless you place it in the public domain (not possible everywhere) then you still have rights that anyone who is just licensing your software will not have.

Copyright holders will often dual license their software, providing a no commercial use public license and a commercial license. Often the former comes with no support, while the latter comes with a price tag and after sales service.

The problem with Drupal is that they assert that any Drupal modules constitute a derived work and thus must be licensed under GPL. While this may be the case for modules hosted on the drupal website, due to their terms and conditions, I am not convinced it is the case for software hosted elsewhere. Thanks kiamlaluno.

Plugins are obviously "a work based on the Program".

That's not always the case. Different projects handle these things differently. We have seen how Drupal judges this one way, but Eclipse has a different approach to plugins to their software. According to the Eclipse Public License FAQ:

Q: If I write a module to add to a Program licensed under the EPL and distribute the object code of the module along with the rest of the Program, must I make the source code to my module available in accordance with the terms of the EPL?

A: No, as long as the module is not a derivative work of the Program.

In other words, if you write a program that modifies the Eclipse framework then it must be covered by the Eclipse public license, but if you write modules which use the public interface of the framework, you can license it in any way you like.

In the case of a GPL program however, the situation is different:

Q: If a program released under the GPL uses plug-ins, what are the requirements for the licenses of a plug-in?

A: It depends on how the program invokes its plug-ins. If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license for the main program makes no requirements for them.

If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means the plug-ins must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when those plug-ins are distributed.

If the program dynamically links plug-ins, but the communication between them is limited to invoking the ‘main’ function of the plug-in with some options and waiting for it to return, that is a borderline case.

From Frequently Asked Questions about the GNU Licenses. Thanks Philip


If I write a module for in-house purposes and an employee takes that module home and puts it online, is that legal?

If you hold the copyright and they are using it in a manner not covered by the license attached to that software then they are guilty of copyright infringement. If they have been given access to GPL software then the software has been distributed to them and they can do anything allowed by the GPL.

As it is, you are probably covered by your employment contract with your employees. For contractors then you will probably need to talk to a lawyer about getting everyone to sign up to an NDA, if you haven't already. Thanks craig.


If I use Drupal modules in a software-as-a-service business and let people use it (ie hosted on my servers), do I still have to give them the source?

No, this is the so called application service provider "loophole" in the ordinary GPL that the AGPL was designed to plug.

Again, the Drupal specifically mentioned AGPL in it's licensing FAQ:

Q: I have found a module or theme in the contributions repository that says it is available under a different license than the GPL (including the LGPL or AGPL). What should I do?

A: Please file an issue in the Webmasters issue queue (specify "Licensing problem" for the component) and we will look into the matter.

You will have to be careful about AGPL modules sourced elsewhere though.

share|improve this answer
    
To notice that what reported on Drupal.org site is about modules, and themes hosted on Drupal.org, with the GIT repository hosted on drupalcode.org. When you create a project on Drupal.org, you agree to license its code under GPL license; that is the reason the FAQ says to report it on the webmasters' issue queue. Drupal.org webmasters don't do anything for modules/themes hosted in a different site. –  kiamlaluno May 2 '12 at 15:24
    
I don't think a regular employee working with GPL software in the course of their employment counts as distributing it to the employee. They are acting as an agent of the company and thus the software was not distributed to them personally so they do not personally get the rights provided by the GPL. A contractor may be different depending on the contract. –  Craig May 2 '12 at 17:19
    
Whether or not plugins, modules, libraries, and such inherit the GPL is a matter of how the code is invoked. gnu.org/licenses/gpl-faq.html#GPLAndPlugins. The lesser GPL, LGPL, allows for it's code to be linked by closed systems. –  Philip May 2 '12 at 18:27
    
@Philip - Thanks, I've added your suggestion to my answer. –  Mark Booth May 3 '12 at 11:12
add comment

The official wording is not "work based on", but "a derived work". A plug-in is not necessarily a derived work.

I can't imagine anybody being granted rights based on theft (or copyright infringement).

share|improve this answer
    
+1: a plugin is usually not a derived work –  user281377 May 2 '12 at 14:47
add comment

1) There is some disagreement over what exactly is "a work based on the Program", so those companies might simply use a different license and hope to win when and if they get sued by the Wordpress Foundation. Another possibility is to add some license key mechanism to the derived work and hope that most users won't bother hacking around it or getting it from someone who did. Another option is to sell a service contract together with the software.

2) The GPL only says that you have to give the full rights over the sourcecode to everyone whom you gave a copy of the software. That does not include people who just happen to have access to a server it's stored on. It might include people who work on the software itself (but I don't think so). In any case, most employment contracts would prohibit this anyway.

3) No. This is in fact the business model of many OSS-based companies, e.g. Github.

share|improve this answer
add comment

If I use Drupal modules in a software-as-a-service business and let people use it (ie hosted on my servers), do I still have to give them the source?

No, you don't. Supposing that you are using a custom module, or a custom theme for your site, you are not forced to give them the source. As a matter of fact, there are two cases where the source code is not available:

  • Drupal.org, which runs on Pressflow 6, uses a custom theme (Bluecheese), but its code is not publicly available, and it is not even hosted on drupalcode.org (which hosts the GIT repository of all the projects hosted on Drupal.org). The code is maintained from some Drupal.org users (which are part of the Infrastructure team, as far as I know), but the code is not available to everybody.
  • Drupal Gardens, which offer site hosting based on Drupal 7, uses custom code, but the source code is not publicly available.

I don't think you are even obligated to reveal which Drupal modules are you using for the site you build to the users who use the services provided from your site.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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