hi there everyone,

I am not sure if this has been discussed before, but i've noticed that some modules built on drupal are available commercially only, while some extensions are never made into the public.

can someone, particularly someone from drupal core team, explain the drupal license please.

thanks

Comments

mdroste’s picture

are available commercially only? Could you post names, owners and
sites where they are available?

--
go with us - learn php

--
mdwp*

redpineseed’s picture

some do have a full version that is only available commercially.

Boris Mann’s picture

There is debate* over this, but the short answer is that as long as developers don't distribute code of their modules (i.e. only have it hosted) they are not required to distribute.

Drupal's license is GPL. See the GPL for more information.

I haven't seen any commercial modules, other than Khalid's extended license stuff.

Lots of extensions do never back it back to Drupal. We always try and get people to contribute here. Many are turned off by the difficulties of CVS or are just not interested in contributing, which is their right.

Other than knowing what the license is, what is your question?

Note: Bryght distributes all Drupal code changes directly back to the community.

*The debate is whether modules automatically MUST be GPL because Drupal itself is. It kind of doesn't matter, because again, the GPL requirement for source is only required IF the module is distributed.

redpineseed’s picture

correct if i am wrong, anything built on top of GPL should be GPLed, in which case Drupal is GPLed.

if someone makes signficant changes (like forking off) to the drupal core/module source and use it in business process without distributing the changed/forked source, then he/she is not obliged to GPL anything?

Boris, are you intended to make your auto installation scripts public and GPL?

thanks.

eaton’s picture

...Is that anything that *includes code from a GPL project* must by GPL. A module, by definition, is a freestanding piece of PHP code that *interacts* with the Drupal core via publically established APIs. Thus, a module or theme developer is free to restrict the distribution of their own work as they see fit.

--
Eaton — Partner at Autogram

Boris Mann’s picture

Our provisioning system is currently completely separate from Drupal -- it runs on Python and PostgreSQL.

We helped make the Drupal codebase suitable for multi-site installs, and that is now part of core.

We're helping to develop install profiles and an installer API, that will also hopefully make it into core.

I'm not even going to go into the many other things that Bryght as a whole has contributed to Drupal, both from code and marketing perspectives. Anyone that would like to manage 100s or 1000s of Drupal sites is welcome to contact us about licensing our provisioning platform.

Regardless of whether or not you distribute, the license is GPL. If you distribute, you must make source available. If you DON'T distribute...well, we'll never know, so you're welcome to not make source available.

Gerhard Killesreiter’s picture

Boris, I thought we had agreed that

http://gnu.org/licenses/gpl-faq.html#GPLAndPlugins

pretty much settles the matter. IOW: Yes, Drupal modules have to be GPLed Whether you as the author distribute them is of course up to you.

Boris Mann’s picture

...but I think this is restrictive to the point of problems for some business models.

I would rather that at some point we make a ruling, saying that modules don't have to be GPL (e.g. BSD license). Regardless, anything on Drupal.org currently must exist under GPL.

But, I imagine redpineseed has something else in mind. Perhaps he will enlighten us further: is forking what you're talking about?

You can fork all you want...it still has to be GPL, and you have to share source if you distribute.

eldarin’s picture

retract from GPL when already released as such. As the copyright holder, you can release other work as non-GPL, but the originally GPLed work can't be "un-GPLed".

Modules which are distributed as copies - are GPLed or in conflict with the GPL. It's simple.

If you mean "business models" as in "selling (Drupal-derived) work"; why not just make the clients the copyright holders ? Then they can then do what they want. You, as the writer, can even distribute it without breaking the GPL, but probably just get a nasty reputation as a developer.

kbahey’s picture

Boris,

I agree with you here.

The rules can be very simple:

- Anything commited to the repository will automatically be GPL, whether it is core or contrib, patches or modules.

- Modules and themes that are not in the repository can be LGPL. This gives the author freedom to license them as they see fit.

--
Drupal development and customization: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

killes@www.drop.org’s picture

I am glad that we agree on the matter. WRT somebody else's business model: I don't care at all.

It is simply not in our hands to decide whether contributed modules need to be GPL or not. This is already answered as "Yes, they need to be GPL" by the GPL that we ship Drupal under. At elast that is how I understand it. Giving that PHP is an interpreted language this is of course a difficult issue. Maybe the Drupal foundation (once it comes to life) could seek legal counsel to settle this issue.

--
Drupal services
My Drupal services

djnz’s picture

I am not sure I entirely agree with the author of that part of the GPL FAQ.

In any case there is a workaround to creating commercial modules. Write your module in two parts. Write an API that interfaces with the Drupal API and release it under the GPL. Write your module to interface with your API and release it under whatever (commercial) license you want.

As long as you do not interface directly with Drupal data structures or code, the fact that Drupal is licensed under the GPL is irrelevant to your module. The copyright of your API module is more complicated: you own the copyright to the bits you wrote, but not the API and the data structures of Drupal you interface with. But of course the Drupal GPL allows you to release code under the GPL that uses its API and data structures.

So your API is OK under the GPL, and you can do what you want with the rest of your code.

Note that this post represents the personal opinion of the poster and is provided without liability or warranty.

--------------------- WEBg8 ---------------------

Dries’s picture

Ther are two ways to look at it:

  1. Given that FAQ is the official GPL FAQ carried out by the FSF lawyers, I suggest we accept it. I believe it is a bad idea to have our own interpretation of the GPL. None of us are license/legal experts so let's stear away from conflicts. Lawyers aren't writing code either. It's one thing to have your own interpretation, but at the end of the day, having two conflicting views and potentionally violating the GPL doesn't help your clients.
  2. If we take the strict approach, it is easy to become less strict in future. However, it we take the less-strict approach, it becomes hard to become more strict because people will have to give up things (revenues). With the GPL3 around the corner (which is supposed to fix some of these issues), I'd rather be strict.
cel4145’s picture

IANAL, but I do know enough about US copyright law (can't speak for other nations) to know that it is best for Drupal to follow FSF interpretations. This is not only because of their expertise--there is no doubt that they have the leading legal authorities on the GPL working with them--but also because the FSF is prepared to legally defend those interpretations.

So until a Drupal foundation can afford a stable of lawyers, it's in the best interest of drupal.org to strictly follow the FSF. Whether or not module developers choose to do otherwise is up to them, but drupal.org should have a clear policy recommending that they do follow the FSF interpretations to avoid any future legal entanglement of being complicit in copyright infringement.

So, IMHO, any modules and or themes should be GPL'd if they are to be distributed for download on drupal.org (note this excludes bluebeach).

kbahey’s picture

I think all of us agree here that modules and themes that are on Drupal.org and dsitrbuted with Drupal are GPL. I think there is little if any disagreement here.

Where the disagreements are:

- Are modules and themes different? Most here seem to differentiate, although other CMSs don't do so.

- Can separately distributed modules be licensed differently, or are they GPL automatically? Opinion is split on this. Is a module considered "derived work"? Does the old UNIX fork and exec rule apply to PHP in a hosted environment?

--
Drupal development and customization: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

cel4145’s picture

Given the international nature of this community, I believe it is not in the community's best interest to take a position on these issues. Copyright law differs from nation to nation, and interpretations of the GPL are based in part upon copyright law.

Thus in the forums, developers could certainly discuss their opinions about whether X or Y is true, but official drupal.org policy should leave it up to the legal experts. drupal.org can recommend that people read the GPL FAQ and seek legal counsel for further explanation. But we shouldn't endorse any interpretation beyond that.

lekei’s picture

You are not permitted to contribute to Drupal if you want to release your modules with a less restrictive licence (eg. LGPL, Free Software, Public Domain).

Expert advice that I have obtained is that GPL prevents a user from using any material that you do not personally hold copyright to since GPL is flawed for use in any web server. The only exceptions are if you put such material solely into the database or the css (and as long as you do not modify an existing theme).

You can, however, sell a distribution containing GPL code to anyone at any price, as long as a) you give them access to the source code, and b) you give them the right to modify and/or redistribute it as they see fit.

You are NOT required to give it away for free to anyone who asks.
You are NOT permitted to include anyone else's material in the distribution.
Due to the way in which Drupal functions (there is html code generated by the code) it is the position of the FSF that putting a website online constitutes distribution.

This is the reason that no web server uses GPL and most CMS systems do not use an unmodified GPL.

eaton’s picture

You are NOT permitted to include anyone else's material in the distribution.

Unless you receive permission from them.

Due to the way in which Drupal functions (there is html code generated by the code) it is the position of the FSF that putting a website online constitutes distribution.

Again, this misperception has been corrected by a number of members of the Drupal community. The FSF people that you spoke with even noted that the intent of the copyright holders (i.e., 'This doesn't cover the HTML that's output') trumps hair-splitting over GPL wording.

The difficulty with code is that there are members of the Drupal community who have contributed code, and do NOT want the licensing to be 'looser' -- since it is their work that is affected by it, it looks like a show-stopper. Those same individuals, however, have also vigorously said that GPL shouldn't apply to the HTML. A clarification in the Drupal license would probably be a good idea, but your confidence about this issue isn't justified.

--
Jeff Eaton | I heart Drupal.

--
Eaton — Partner at Autogram

lekei’s picture

I have talked to other experts in software licensing and they all agree that Drupal's licence is broken. The advice was to keep bringing this up it until it gets fixed.

So many people here keep saying "get legal advice". Well the legal advice I got was that the risk was very small, however the costs could be very high. It would only take one fanatic to sue you to cost you a fortune regardless of whether you win or loose of the case, just to fight the case.

eldarin’s picture

You can create as many modules as you want, and you can charge as much as you want for them from your client.

If you run the code on your specialized hosting server only, you are not distributing the code. You can even charge for running the code, or the hosting service.

If you distribute the modules - give copies of them, anyone receiving them can re-distribute them as they see fit according to the GPL.

The GPL-faq is a little shady by qualifying with "we believe" ("... they form a single program") when defining modules/plugins to GPL'ed work.

To avoid any legal misrepresentation you should GPL modules you choose to distribute.

If you like, let the client be the copyright-holder and pay for the developement like the bounty-prizes set up for some missing functionalities. The client probably won't want to distribute the modules, but might of course opt to - under GPL (making re-distribution free).

kbahey’s picture

Well, this keeps coming up in different places.

Here are some previous discussions on the topic for reference:

Original discussion
Recent Clarification

Note that the commercial version of nodevote and userpoints existed before the GPL'd version did. So the GPL version is derived from the commerical version, not the other way around.

I have promised the person who commissioned it not to release the full version for free, and unless he says it is OK to release it, I will not do it. I doubt if he will agree, since he wants to keep some competitive advantage on his web site. That person is not deprived on any right. In fact, agreeing to release a version to the community was an afterthought and a positive thing in my opinion.

The only point that remains is whether anything that uses a GPL service should be GPL. The debate is old on this, and not Drupal specific. Gerhard quoted GNU's stance on this, but there is no consensus on it. It was also done at a time when things were done in a certain way (static linking, UNIX environment, ...etc.), and the world has changed on us since then (dynamic libraries, interpreted languages, ...etc.)

A similar debate is present in Linux on the kernel driver modules front, and many vendors are reluctant to release drivers because of that, hence a net loss to all.

Remember that the LGPL was invented to address this issue: the alleged viral nature of the GPL that is often used by its detractors, and claiming that it infects and pollutes anything it touches.

We all agree that anything in the repository should be GPL, not only because of ideology, but for the sake of consistency and prevention of delayed bickering and legal issues.

We in Drupal have to clarify whether a module should be GPL just because it got installed on a server that has Drupal on it, and uses Drupal's services, or would the LGPL suffice here? It got raised in drupal-devel once, and no concensus was reached, and go raised again in the first link above.

--
Drupal development and customization: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

eldarin’s picture

.. but that would not retract from earlier versions which still were released purely GPL'ed.

Running "commercial"/proprietary modules with Drupal does not constitue breaking the GPL, but distributing modules under anything than the GPL does - even LGPL if I remember correctly.

That means you could have a "commercial website" with "commerical services" using your proprietary modules/code (changed Drupal core - etc). You can't demand anyone who was given a copy of your work pay you - even if your proprietary modules/code was stolen by a website hacker or even a sneaky employee from the webhosting company. You can get compensation in court from the webhosting firm/employee, but your code was "set free".

The copyright holder has the ultimate power, be it the module-writer or the requesting client, as to distribution and charging for the product. When distribution of equal/derived copies first starts it will ultimately be free.

kbahey’s picture

As one can see above there is a debate on whether ANY Drupal module, core or contributed, in repository or not, MUST be GPL because it uses Drupal services.

Gerhard (killes) thinks that this is the case, and supports his view by the opinion (it is an opinion) of GNU on process space, ...etc

Other who commented, including Boris, djnz, and myself see this as one opinion/interpretation, and an unnecessary restriction.

We already have a precedence here, which are the Drupal themes. One case that keeps coming up is the Bluebeach theme that is used by this very site. It is not released to anyone despite repeated calls to do so.

The reason (which is valid in my opinion), is that a) themes take a lot of work to do, and b) using it by sites all over the net dilutes it.

Steven Wittens had to write another theme (Friends Electric) to demonstrate the techniques used in Bluebeach.

So, my point is: why do we have a double standard for modules and themes? If it is Ok to withhold a theme written for someone, and not in the repository, then why is a module treated differently, and why do some demand that it be released just because it uses Drupal?

We should use the same standard for both, and if Drupal accepts that LGPL modules and themes can be used then the problem is solved.

--
Drupal development and customization: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

sepeck’s picture

a god example. Blue Beach is not redistributed or for sale anywhere.

-sp
---------
Test site, always start with a test site.
Drupal Best Practices Guide -|- Black Mountain

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide

Dries’s picture

The GPL does not require us to distribute bluebeach (drupal.org theme). Similarly, you're not forced to distribute your theme (which by the way is a nice theme). I think your bluebeach statement/analogy missed the point. No one is forced to distribute or share code. The question is; if we were to distribute or share the Drupal.org theme, should it be GPL?

Based on the official GPL FAQ, the answer is yes. According to some of you, the answer is no. My answer is: I don't know. All I know is that I'm not comfortable with having my own interpretation that differs from the official interpretation. If you distribute modules based of your own interpretation of the GPL, you might be putting your customers at risk. They might not get what they paid for, someone else might get hold of their module and distribute it based on his interpretation of the GPL, etc.

It is a difficult question and it shouldn't be because licenses should be easy to understand by Joe Average, John Developer or Tony Customer. When a license is hard to interpret, or when conflicting views exist, it is best to leave this to experts or to take the save/conservative/strict path ...

I'll read up on the LGPL shortly.

You might also want to take note of http://lists.drupal.org/archives/drupal-docs/2005-07/msg00054.html.

eldarin’s picture

Good remarks from the FSF representative in that post.

Some current themes and templates used with Drupal do not contain "library-like calls", nor data-structures part of active use of direct Drupal functions (i.e calling PHP functions with any Drupal PHP-variables).

The same goes for (X)HTML and XML tags - they're not GPL, but free as in public domain. The actual input into data-labels is very different from Drupal's internal non-aggregated representation as well. The tags or data-labels may have existed before template-engine creation time, or was created at the same time - but as independent labels (not datastructures) of any Drupal internal data.

The data-labels are based on external not-Drupal-specific definitions and would therefore not imply falling under Drupal's GPL reach.

Some templates and themes, mainly Smarty and PHPTemplate-based ones, differ from this. Some of these share most datastructures, memory space, function calls and are designed specifically and only for Drupal when using Drupal-function-calls in their templates or themes. That means they function just like any other module or plugin with regards to the FSF's GPL understanding.

XTemplate-based, and perhaps other templates or themes, do in no way share anything with Drupal, but rather define external data-labels in a clean API understood by the template-component and the Drupal-components/-theme-engine.

It is possible to write Smarty or PHPTemplate themes/templates in such a way as to avoid direct Drupal calling, emulating e.g XTemplate behavior. Using data-labels as "API-glue" you can split your theme into two parts: the processing part, and the presentation part.

This would be equal to the "clean API" circumvention like djnz explained.

Smarty is pretty complicated to sum up as giving "module-like" templates, because it normally doesn't include PHP - but can do it.

The fact that you end up with these two parts of functionality might be a little disheartening with regards to using Smarty or PHPTemplate for the purpose of creating "commercially licensed" themes or template. Sometimes splitting the theme or template into two parts is unavoidable when using XTemplate too. This is of course when you design for non-core Drupal modules.

That way you can put whatever license you like on the "pure" template or theme, with absolutely nothing to fear from any GPL violation or FSF reaction.

With regards to my updated XTemplate engine as an example; I see the engine itself as GPLed-but-unreleased, but safely regard all my templates under whatever license I care for.

I made improvements to how templates in XTemplate can do more complex iterations, caching and even do eval's like in Smarty - which would actually be like having templates behave as Smarty but without any legal hassles for commercialization.

PHPXTemplate.org has XTemplate released in version 0.3 under dual license using BSD and LGPL 2.1 from 1999 (first LGPL released version). This license was unchanged for the april 2005 1.7 developement release and the very recent 1.8 release.

See http://cvs.sourceforge.net/viewcvs.py/xtpl/xtpl/license.txt?rev=1.1&view... for the license and http://cvs.sourceforge.net/viewcvs.py/xtpl/xtpl/ for browsing developement version.

edit: just a sidenote about Quicktemplate - which inspired XTemplate and has similar syntax as well as being LGPLed. Homepage at http://quicktemplate.sourceforge.net/ . It seems it has many coding similarities with XTemplate.

cel4145’s picture

As I understand it and people have said in this thread, the LGPL was created as an alternative to the GPL to answer many of the concerns cited here. However, the GPL currently governs distribution and use of Drupal. If I understand things correctly, use of the LGPL cannot be substituted for the GPL where it is already required since it is "less free." The GPL is pretty clear about eliminating the freedoms granted under the GPL. One can't simply choose to switch to the LGPL without the permission of all copyright holders of the GPL licensed code.

chx’s picture

Well, this year we saw Apple go over to x86 and ESR getting a job offer from Microsoft.

So I should not be surprised even by this.

But you can forget it right now. I have code in Drupal, and I will never let my code out of GPL. No, LGPL won't do.
--
Read my developer blog on Drupal4hu.

--
Drupal development: making the world better, one patch at a time. | A bedroom without a teddy is like a face without a smile.

killes@www.drop.org’s picture

I won't agree either to any change of licence.
--
Drupal services
My Drupal services

Steven’s picture

The situation with themes is quite different. Most importantly: a large part of the theme, namely the images and the CSS, are by definition independent of Drupal. They are not derived from Drupal in any way, and could work just as well on another CMS or even a static HTML page. They are protected by regular copyright law. Furthermore, a theme is IMO part of the 'end product' that is the site: it defines the site's image and is important for visitors.

A module on the other hand is a piece of behaviour that is very dependent on the Drupal API. It is usually not part of the 'end product', as there are many sites running the same modules that are still vastly different because of their content.

Of course it is not a pure black and white situation, and the same module reasoning of being dependant on Drupal applies partially to Bluebeach's .php template files.

And indeed: in a perfect world, I would've released the .php portion of Bluebeach while keeping the images and CSS proprietary. However, given that the images and CSS are automatically available for download, I believe this would lead to people shamelessly ripping the design.

We had this discussion at DrupalCon and many developers seemed to agree with this difference between modules and themes.

--
If you have a problem, please search before posting a question.

killes@www.drop.org’s picture

I think that the executable parts of a theme are just to be treated as any module. You don't however _have_ to release them. Just as any module you happen to write and use on your (or a client's) site.
--
Drupal services
My Drupal services

redpineseed’s picture

If you read GPL license carefully, you'll find GPL only applys to code/bin distribution, doest apply to non-distribution use.

and now what constitutes distribution? many in housing application is not a distribution where GPL code can be used. will this be ok with the original author? mostly not.

kbahey’s picture

As we all know, there are lots of CMS systems around, and I am sure that this question on licensing has come up for other projects too.

Many of them have answered the question, and many of them either allow dual licensing, or allow modules to be licensed differently.

So, here is a selection of how other CMS handle this issues, namely, can modules/plugins be licensed on licenses other than the GPL?

Joomla (the recent fork of Mambo) is GPL licensed. In their FAQ they say that it is explicitly allowed, and that they have inquried:

10. I have written a Component, Module, Template for Joomla. Do I have to release it under the GPL?

No The GPL allows you to write your own extensions for Joomla and to release those extensions under whatever license you chose.

Post Nuke, another GPL licensed CMS also supports this position explicitly, and treat modules and themes the same way. In their FAQ they say:

Am I allowed to release commercial modules for PostNuke?

We believe it is permissible to release modules under a license other than GNU/GPL and even to encode it providing they are not derivative of existing GPL work, including the PostNuke "core". It is definitely not acceptable to release a non-GNU/GPL module packaged/shipped or distributed together with PostNuke: it must be a standalone module distributed separately. The same applies to themes.

This is based on what we believe to be true after making enquiries. The fact remains, there are no legal precedents confirming or denying this and that such rulings, if there were ever to be any, could vary from jurisdiction to jurisdiction.

Xaraya, a CMS/CMF has a brief reply on the their forums where they explicitly say that commercial modules are allowed.

Wordpress is also GPL licensed, and allow a different license than the GPL to be used for their plugins. However, they interpret it as only compatible ones are allowed. Under the "writing a plugin" they state:

...
You may also wish to add a GPL template, to explicitly mention that the plugin is released under the same licence as WordPress.
...

You do not need to license your plugin under the terms of the GPL; but any license you choose to use must be compatible with the GPL

They link to the FSF page on licensing, under the section "GPL Compatible Licenses", which lists the LGPL as compatible.

GPL-Compatible, Free Software Licenses

...
GNU Lesser General Public License, or GNU LGPL for short.

This is a free software license, but not a strong copyleft license, because it permits linking with non-free modules. It is compatible with the GNU GPL. We recommend it for special circumstances only.

Between version 2 and 2.1, the GNU LGPL was renamed from the GNU Library General Public License to the GNU Lesser General Public License to better reflect its actual purpose. Namely, it is not just for libraries, and the GNU GPL is sometimes more appropriate for libraries.

On the other hand, and for the sake of completeness, there is eZ publish, which has a dual licensing scheme. The interesting part is that they consider both modules and themes as derived work and must be released as GPL, unless you buy a commerical license, then you can do what you want with both eZ publish and your modules/themes.

Another CMS that is in a different league than all the above (much bigger, C libraries underly everything, requires dedicated hosting, ...etc.), is Midgard which is LGPL from the start, allowing for any kind of usage, commercial or GPL as the case may be.

So, there is precedence here for making modules commerical while core stays GPL.

--
Drupal development and customization: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

eldarin’s picture

There are a lot of opinions and a very short list on court rulings. Like the GPL FAQ page states - it's up to the judges to form an opinion yet.

I believe the opinions stated in the other CMSes are mostly wrong on modules/plugins when considering the FSF stance reflected very clearly in the GPL FAQ with regards to modules and plugins.

When it comes to the extreme cases, I think that judicial common sense will be prevalent, but neither Richard M. Stallman - nor the FSF - are known to be lax about their stance on GPL.

E.g stealing code which is not released and claiming it as GPLed will probably get court orders of removal-cease-and-desist from anyone trying to distribute it, as well as legal quagmires for anyone trying to uphold stolen work as GPL, even if based on GPLed work.

kbahey’s picture

At least one CMS did inquire.

If you read carefull what the Post Nuke people said, they say:

This is based on what we believe to be true after making enquiries.

There is no legal precedence for any GPL related dispute yet, simply because no court has had to face any dispute so far.

--
Drupal development and customization: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

kbahey’s picture

For the sake of completness, I also checked the following CMS, e107, PHP Nuke, but could not find explicit statements on the issue of modules licensed under a different license.

--
Drupal development and customization: 2bits.com
Personal: Baheyeldin.com

--
Drupal performance tuning and optimization, hosting, development, and consulting: 2bits.com, Inc. and Twitter at: @2bits
Personal blog: Ba

eldarin’s picture

Since there is no legal precedence yet it continues to be controversial. I have no doubt that the FSF will go out in force and very strongly defend their stance when it somedays becomes necessary.

It is obvious that one can not retract anything from the GPL, only add to the license. That pretty much makes it clear to me, no matter what opinion other developers of CMSes might have.

killes@www.drop.org’s picture

All that proves to me is that those people can't read, too. They propbably have chosen the GPl without understanding the implications.

If you want to actually sell code (as opposed to selling services) you shouldn't use GPLed software as a base.
--
Drupal services
My Drupal services

redpineseed’s picture

many a business today uses but not sells software. not only they can fork, they can also combine all the improvements in the original code base into the fork. nothing can be done about it.

eldarin’s picture

Anyone can fork. Anyone can copy. Anyone can sell. Anyone can choose to distribute or not. Anyone who distributes has to make an written offer to also distribute source code - if not distributed in the first place.

The point given in the responses in the what-if-I-fork-thread was that it will require a lot of work to fork and keep stay updated - comparable to the work of a small team of Drupal developers.

But anyone can do so, like you pointed out.
:-)

sepeck’s picture

It's derivative code so it's still GPL.

-sp
---------
Test site, always start with a test site.
Drupal Best Practices Guide -|- Black Mountain

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide

eldarin’s picture

There is nothing in the GPL which prevents anyone from selling code.

There are some developers offering services at drupal.org official Drupal services offered exclusive list, that doesn't mean that's the only game in town. I don't know if they make $$$$ or even $$$$$ off Drupal work like with the Summer of Code projects, but it is "booming" according to some.

Drupal has no additional license than GPL, and that makes it pretty fair game for anyone. That is regardless of if they want to sell it or not. For the benefit of others, this should be made clear. There have already proven to be so many misunderstandings between (even Drupal) developers.

Reading the full text of documents is often laborous, like you pointed out.

If one wants to herd a pack of GNUs in an efficient manner; one needs to understand the GNU; one has to become the GNU.
;-)

sepeck’s picture

Eldarin, You seem to be upset over the fact that you are not on that list. If YOU want to be listed, please read the directions to be listed and follow them.

To be listed in the service directory: post an e-mail to Drupal developer mailing list (subscription required) with the appropriate details. The current page maintainer will then add your organization to the directory.

If this is not your point, then it sure seems like it is. If you want to sell you services, then do so. If you want to try and make money selling services around Drupal coding, then do so. You will develop your reputation by the work and communications you do.

Drupal is GPL. If you want to sell services then do so. Dries has stated, we are not lawyers so we are NOT giving legal advise. Many have stated their opinion. Drupal folks are working towards setting up a foundation. During this time, it is extremely unlikely that you will be made happy and we will add anything more into the handbook on the subject. After we have a foundation setup, perhaps we will talk to a lawyer about a carefully worded statement.

In the meantime, you are pursuing your ajenda by cross posting the SAME stuff in multiple forum topics when you have been answered several times.

-sp
---------
Test site, always start with a test site.
Drupal Best Practices Guide -|- Black Mountain

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide

eldarin’s picture

.. where I had similar objectives in multiple thread postings. I have no desire or need to be on the exclusive short list, but do point out the obvious multiple interests involved in being a developers - myself included and as I have had no reservation about making perfectly clear about myself.

I do think the foundation is a good thing, and that will be easier to handle more issues as Drupal contributions grow and more sites gets the Drupal flavour.

My agenda has been to try and inform those with questions related to commercial developement about what are their obvious rights according to GPL, and which one could even train a monkey to respond correctly to. It's not that difficult for the basic questions, really. Showing newcomers and those with the basic questions that there are a well of commerical services around Drupal and that's it's ok is a good thing.

I trust some will find their answers searching on drupal.org or via Google, as long as there is not going to be a handbook subject on this explaining the most obvious or basic questions.

cel4145’s picture

Rather than debating this ad infinitum both here and in the other forum post, why not consider my suggestion that you take it upon yourself to produce the needed documentation and submit it to the doc team for review? If you feel it needs to be done, then work on it yourself, rather than making--what I find--insinuations that discourage people from listening to what you have to say?

Souvent22’s picture

just wanted to track this thread

johnny33’s picture

From what I see here, you can sell services to create modules.. you can use drupal and any modules you've created to make a commercial site.. BUT you cannot distribute the code for money, it must be freely available if you choose to distribute the code. When you sell services to create code, you are paid for your coding, but not for the code. If the code is used in-house you are not obliged to distribute the code, but once it is distributed it must be free.. You can keep a stash of code that you can re-use for different clients who hire you, but you do not own that code and your clients are free to distribute that code under GPL.. that is the gist I get from what I've read here. But like other ppl here, I am not a lawyer.

Heine’s picture

You actually can sell code for money under the GPL. It's free, not gratis. The GPL does apply on the sold code however, so the customer is free to do with the code what he wants.
--
Tips for posting to the forums.
When your problem is solved, please post a follow-up to the thread you started.

ximo’s picture

IANAL..

To sum up my understanding of this issue, after having read this and some other lenghty discussions:
The "official" opinion of the Drupal developers (obviously not of all, but of Dries and many others) is that Drupal follows FSF's own interpretation of the GPL. In short, it means that a module or a template that is distributed must also be licensed as GPL. If it is not distributed, however, it doesn't need to be licensed. You have no obligation to license it, as it has not been distributed.

For those who need more commercial freedom for their modules or templates than what GPL gives you, there are some solutions:

1. Work for hire
rnsi asked:

So just to be clear... I can write a module (or theme or template...) for Drupal for a client. I can choose to not release the source code to anyone (including the client, even if they ask). I'm not breaking GPL. I must, however, release the source to Drupal if asked - just not my custom mods.

Morbus Iff answered:

Correct. Though, there's a grey area in regards to ownership in a "work for hire" circumstance. It doesn't affect this discussion too heavily, however: whoever the owner is (the freelancer, or the client who hired you) can choose not to release the code.

I believe this involves you charging your customer for the service of writing the module/template, and while the customer is the owner of the module/template, it is not distributed, and therefore must not be licensed. Not 100% sure on this, and as Morbus said, it's a grey area.

2. Make an RPC module

Boris Mann wrote:

You can make a Drupal module, which would be covered by the GPL, which used standard methods to talk to the remote software -- e.g. XML-RPC, etc. The software remains under whatever license it is, and the Drupal interface module is GPL, but the interface module isn't much good without the software.

djnz wrote:

Write your module in two parts. Write an API that interfaces with the Drupal API and release it under the GPL. Write your module to interface with your API and release it under whatever (commercial) license you want.

This is how the TinyMCE module is done. TinyMCE is not directly linked to Drupal, but called upon by the TinyMCE module (not using RPC, but JavaScript). While that is a very basic example, you can take it further and virtually do anything through your RPC module that you could do as a module. So, your none-GPL'ed module wouldn't actually be a Drupal module, but a software on its own communicating with Drupal through the RPC module. I'm going for this approach, and will look into JSON for two-way communication between Drupal and my software..

I have also read that Smarty templates needn't be GPL'ed because they don't interfere directly with Drupal, but I can't guarantee that.

I hope this summary helps others in the same situation as me. I'm not hestitant to contribute to the community, while I will make a proprietary solution for Drupal, I will contribute back to the community with other modules, testing and bug squashing and at the same time I'll promote the use of Drupal. I hope I won't be looked down upon for having commercial interests at the same time.

Please correct me if something I said is wrong. Remember, IANAL..

Joakim Stai – Kollegorna

killes@www.drop.org’s picture

I think that this is a very nice summary.

--
Drupal services
My Drupal services

ximo’s picture

As I only needed one-way communication with Drupal from my remote software, retrieving data from Drupal, I ended up using AHAH in the same way SimpleMenu does.

Joakim Stai – Kollegorna

farrago’s picture

I'm not sure how option 2 is valid under the GPL. From the gnu.org faq:

I'd like to incorporate GPL-covered software in my proprietary system. Can I do this by putting a "wrapper" module, under a GPL-compatible lax permissive license (such as the X11 license) in between the GPL-covered part and the proprietary part?

No. The X11 license is compatible with the GPL, so you can add a module to the GPL-covered program and put it under the X11 license. But if you were to incorporate them both in a larger program, that whole would include the GPL-covered part, so it would have to be licensed as a whole under the GNU GPL.

The fact that proprietary module A communicates with GPL-covered module C only through X11-licensed module B is legally irrelevant; what matters is the fact that module C is included in the whole.

That would seem to rule out the "use an RPC module" method of getting around the GPL.

This is particularly important because of the upcoming release of GPL3 and the following GPL2 faq item:

A company is running a modified version of a GPL'ed program on a web site. Does the GPL say they must release their modified sources?

The GPL permits anyone to make a modified version and use it without ever distributing it to others. What this company is doing is a special case of that. Therefore, the company does not have to release the modified sources.

It is essential for people to have the freedom to make modifications and use them privately, without ever publishing those modifications. However, putting the program on a server machine for the public to talk to is hardly "private" use, so it would be legitimate to require release of the source code in that special case. We are thinking about doing something like this in GPL version 3, but we don't have precise wording in mind yet.

This would seem to suggest that running a website with a custom non-released module might, in the near future, be enough to constitute distribution, and thus trigger the GPL requirement to distribute the sources. The GPLv3 proposals are even longer and more obscure than the GPLv2 so I'm not entirely sure if that idea made it in there, but it's certainly enough to make you think, and casts the legality of option 1 into doubt as well.

Are there any thoughts related to those two faq items, whether GPL3 includes the "using on a website is distribution", and whether drupal will ever move to GPL3?

farrago’s picture

Ok, I've now read the GPLv3 proposal, and it doesn't seem to include the "Website is Distribution" idea. What it does do is:

13. Use with the Affero General Public License.

Notwithstanding any other provision of this License, you have permission to link any covered work with a work licensed under version 2 of the Affero General Public License, and to convey the resulting combination. The terms of this License will continue to apply to your covered work but will not apply to the work with which it is linked, which will remain governed by the Affero General Public License.

It is the Affero General Public License which has the "website is distribution" limitation in it. So I guess some modules may decide to use that license, and then it gets interesting as to what a module that links with both GPL and Affero code is virally infected with (given that the Affero license is just GPLv2 with an extra clause). All I can say is that the law profession must be very pleased with this whole mess - it guarantees them work for a long long time!

So it would seem the "don't distribute your code / get paid for work for hire" plan is still workable. I am still very dubious, however, about the "RPC" workaround. As posted in other threads, a clear answer to this would seem to affect a whole lot of people when it comes to things like adsense modules etc.

Again, any thoughts?

Boris Mann’s picture

If you read the RPC bits, it talks about bundling it all together, a la compiled programs.

WIth RPC, you have Drupal plus a wrapper/glue/whatever module. Those are the GPL bits.

Remotely, you have a service/proprietary code/whatever.

The two communicate using whatever protocol/interface/format you code. There is no connection between the two, only communication. Your proprietary bits remain wherever you host them.

--
The future is Bryght.

farrago’s picture

Ok, I think I get it. So long as your custom bit is a completely independent web app available as a web service independent of your Drupal site then you can communicate with it without pulling it in under GPL.

I was thinking of direct function calls: http://drupal/index.php?myModule -> my gpl/lgpl module -> my non-gpl module, which would not be a valid workaround.

What you are proposing is http://drupal/index.php?myModule -> my gpl module - - - > http://module/index.php?op -> my non-gpl module.

Which does make a lot more sense (although I'm sure my ascii art skills only served to confuse everyone else!)

Thanks for clearing that up,
R

hectorpal’s picture

We are now deciding on starting to use Drupal on commercial projects. We thought that doing modules for "bussiness rules" that are not GPL is a way to go, but after reading this long thread, it is not clear anymore. We can contribute to the community at least by using Drupal and improving it. We even can contribute with new general modules, but of course our clients want their bussiness rules to be propietary software.

I would like to see a formal recommendation of the Drupal "core" group, a entry to the FAQ, etc.

sepeck’s picture

You will need to have a lawyer review your needs and intentions.

We are not lawyers. We cannot give you legal advise in your country of origin nor are we likely to pay for that many lawyers advice.

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide -|- Black Mountain

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide

djnz’s picture

The examples at gnu.org are not very helpful when looking at web applications in general and PHP in particular IMHO. The examples (and the GPL itself) are geared towards C and similar code compiled from source where application developers will compile a number of libraries together with code they have written to produce a single object for distribution.

I would also go further than saying an RPC interface is OK, and suggest that the 'wrapper module' approch is OK provided you don't distribute your proprietory module together with Drupal core. Why? Look closely at the quote from gnu.org:

But if you were to incorporate them both in a larger program, that whole would include the GPL-covered part, so it would have to be licensed as a whole under the GNU GPL.

So just don't do the incorporating, and then there is no whole to be licensed under the GPL. This would be difficult if you were writing a traditional application and trying to sell it - you would have to get users to download your code and the GPL libraries separately, and then run a compiler (assuming they can) to produce an executable file. However with PHP, the user can just do the downloading, put everything in the right place and fire up the web server!

Why use the wrapper module at all? Well, this is not directly down to the GPL, it is more abstract. The GPL allows you to use (and distribute) the code subject to the GPL. It does not allow you to use the concepts behind the code, and in as much as these concepts are intellectual property, it is not clear what rights anyone may claim to that intellectual property. For instance Dries may well lay claim to the concepts underlying Drupal's node system. If you write a module that only works with Drupal's node system, you will be utilising those concepts, and the software you write could be said to be (in part) derived from those concepts. However if your module is abstracted from Drupal so that it uses a wrapper module (licensed under a license compatible with the GPL) to actually create nodes etc. then your module is only using the concepts underlying the wrapper module. Providing the wrapper module could be rewritten to integrate with a different CMS, your module can be shown to be independent of any Drupal intellectual property, and so noone can stop you selling it or make you distribute it.

Note that this is just my own opinion and is offered freely and without warranty or liability.

--------------------- WEBg8 ---------------------

TBarregren’s picture

I highly recommend everyone to read Open Source Licensing — Software Freedom and Intellectual Property Law by the the attorney Lawrence Rosen. It is available online.

I also recommend Understanding Open Source & Free Software Licenseing by Andrew M. St. Laurent. It is also available online.

Thomas (Webbredaktören)