This is in context with third-party commercial Drupal templates/modules/extensions available from popular vendors e.g. TemplateMonster.
Drupal is licensed under GPL 2. And according to GPL 2 terms, no software based-off a GPL 2 software can be sold, or any restrictions placed on its redistribution.
Any according to GPL 2 terms, Drupal modules and themes are based-off Drupal (because they interact with Drupal).
Most of such vendors sell Drupal modules/themes with single-site/domain license. So, I have 2 questions here:
1) Can one legally sell Drupal or other GPL licensed CMS templates? This is not providing services, but distributing code based off Drupal, which amounts to redistribution, under GPL.
2) According to TemplateMonster's Licensing FAQ, a single Template purchase is intended to be deployed on only a single domain.
However, as per GPL 2, "You may copy and distribute verbatim copies of the Program's source code as you receive it".
So, can TemplateMonter or other vendors legally prevent someone from redistributing/reusing templates on multiple domains, considering that their templates are based-off Drupal, and by the virtue of it, transferring them to someone amounts to redistribution.
Comments
Gray area
First of all, there is nothing in the GPL whatsoever that prohibits charging for distribution (selling). You can charge $100 a copy for a Drupal module if you wanted to, under the GPL, and there would be nothing illegal in it. The only restriction is that you cannot prevent the person you sell it to from giving it away for free, or for reselling it for $50 a copy, or whatever.
As for distribution restrictions, the law is somewhat gray on just how far the GPL's coverage extends. Based on the information available to us at the moment, the DA's position is that the GPL does apply to PHP code in the theme (which includes template files), may apply to Javascript files depending on how they're written (not all theme JS depends on Drupal's core JS), and generally does not apply to CSS or image files (at least not unless they are also derivative works, which is rare).
So for theme shops selling themes, the answer is "sometimes, maybe, ask a GPL-savvy lawyer". (Note: Not all attorneys are GPL-savvy. There are still many that are knee-jerk anti-GPL and won't be able to give you valid advice.)
Also - FYI, Drupal is
Also - FYI, Drupal is licensed under GPL v2 or greater, not just v2
Well, thanks for the reply. I
Well, thanks for the reply.
I interpret that to mean that I can charge whatever I want for any of my custom work on Drupal (including customizations to Drupal itself, or extensions), and prohibit redistribution of anything that's not PHP (well, I can argue, everything non-PHP is not directly dependent on Drupal, off-course where these are not derived from Drupal files).
--
I always think tomorrow will have more time than today.
And every today seems to pass-by faster than yesterday.
http://www.rahulsingla.com
Kinda
More specifically, the GPL applies to anything that is a derivative work of Drupal, or something that is distributed under the GPL. So a Javascript file that is modified from a JS file distributed from Drupal.org would be covered by the GPL, as would one that is relying on code distributed from Drupal.org. Similarly, CSS files that are copy-paste-modify from a file distributed from Drupal.org (most themes that use a base theme, or do that with a Drupal core stylesheet) would be covered by the GPL. Images that are modifications of those distributed from Drupal.org would be covered as well.
So there's actually a fairly narrow case where work would not be covered by the GPL.
Even then, although you can charge for distribution (not through Drupal.org, of course, but if you distributed it separately), it's rarely a good idea to do so. Charging for copies of GPL code is not a sustainable business model, especially in a developer-centric model like Drupal, and is most likely to result in someone taking the code they get from you and uploading it to Drupal.org for free anyway. Or they'll just re-implement it themselves and distribute it for free on Drupal.org and you'll be left with a dead-end module you cannot sell. Yes, that has happened before.
Site-specific work, like custom modules or theme work, you could charge for but again it's rarely necessary. You charge for the customization service, and you don't actually license the work to the client until you've been paid for the service. After that they can do what they want with it, but so can you if you retain copyright. (Whether or not you do so depends on your contract.)
Thanks Crell for all these
Thanks Crell for all these detailed replies.
Charging for copies of GPL code is not a sustainable business model, especially in a developer-centric model like Drupal
I could not agree more with this. In fact, I release anything I create on Drupal that might be re-usable either through the CVS, or through my personal website (Check the last blog post on my site, a link triggered the spam filter here).
But when you are developing custom modules for a particular client to manage the Enterprise processes, and data related to a particular client, I think anyone would charge for that. You know Drupal itself needs funding, and there has to be a commercial environment encapsulating any open-source project, for a long-term sustainability of the project, and for the developers associated with it. I would be all ears if you think I am wrong here.
Dries himself has Acquia Drupal (no offense intended).
Thanks again for your wonderful replies.
--
I always think tomorrow will have more time than today.
And every today seems to pass-by faster than yesterday.
http://www.rahulsingla.com
Certainly
Drupal has a massive commercial ecosystem built up around it that keeps thousands of people well-paid. However, it is mostly in Drupal services or ancillary services (hosting, performance optimization, etc.), not in code licensing.
When doing custom work for a client, whether you charge them for a license or charge them for your time is, I suppose, a semantic distinction. In practice I think most firms technically charge for the time/labor, not for the code itself, but I've never surveyed their various contracts to say.
not in code licensing That
Crell said: not in code licensing
That was what I wanted to confirm. Can I prevent my clients from re-distributing code written for them by me. And by and large, the answer seems no.
Crell said: In practice I think most firms technically charge for the time/labor, not for the code itself
Well, let me take an example. If I am developing a set of modules that manage Export-oriented processes of a particular industry (let's say auto parts), I would like to sell this code to multiple organizations in the same industry. It then becomes important for others not to be able to redistribute code I supplied to their organization. But it looks like, it is difficult to enforce such restrictions for Drupal (GPL-licensed) extensions.
Thanks again for the replies.
--
I always think tomorrow will have more time than today.
And every today seems to pass-by faster than yesterday.
http://www.rahulsingla.com
Wait a minute ...
Crell said:
If you retain copyright then you are distributing the customized work and thus making it subject to the GPL, thus the only way you can license the software to the client is under a GPL compatible license. Yes ?
Copyright within GPL
Just a point on the licensing issue, I think the issue of intellectual property must be considered: If someone creates an original work such as a theme or module from scratch and then decides to allow a client access to it, say on a subscription basis, is this not OK? Aren't there other cases of copyrighted SASS's sitting on top of a GPL core program, I think there are many examples, a webpage for example can include closed and opensource software. At one stage someone decided to apply the GPL to Drupal, so isn't it down to the creator of the theme or module to decide which license to apply as long as Drupal is passed on intact with its original license and a separate license for the custom theme/module. So if someone creates a theme(not a modification of the core/original modules) which plugs into Drupal, can that not be under a proprietary license?
I'd be interested to have your points of view.
Mack
OpenSolaris development has
OpenSolaris development has some parallels. They stopped releases under that name, and now offer Solaris Express 10..?, which cannot be used in production, but is free for evaluation. [Edit: they offer support contracts if you want to use in production.]
I think one possible short term solution is to provide multiple apis or distributions. Provide a standalone module that has an api for joomla/drupal/whatever, or release a 960 theme for more than one cms. That could help a little in regards to the question of what a derivative work is, if the targeted platforms of the product's source code does not reuse code in certain ways.
[Edit 2: With themes, you can't release binaries, so enforcement of ip can be harder.]
Related Question
I have for some time been considering creating a PHPTemplate to ActionScript API bridge (something slightly similar to this idea --> http://groups.drupal.org/node/57628). With such a bridge the template files would all be compiled AS3 plus any graphic and audio resources. In short a designer would use the bridge to [1] ask for output text from PHPTemplate & Drupal, [2] ask for layout definitions & resources from an AS3 template file, and [3] integrate the data with the layout and generates the final page as SWF/SWT/SWC files.
This would create an environment where many designers could work in a familiar medium and get precise results, thereby avoiding most of the onerous Drupal learning curve for these non-coders. It also would allow them to create recyclable and general use Flash templates as opposed to the commonly single-use Flash pages they normally make.
The question arises about licensing of such AS3 templates with Drupal. These templates would seem to be outside the scope of the GPL in any way since they do not directly interact with Drupal and the AS3 statements as well as the SWF outputs run in completely different address spaces away from the PHP system.
Comments? (and please, leave the flash flaming outside the room)
Oh yeah, I think looking at
Oh yeah, I think looking at examples of conversions of file types may help here. Like for ms office files, such as doc, ppt, etc. You're working on PHPTemplate to ActionScript API, sort of looking at openoffice support for Microsoft Word. Commercial MS license terms probably have more stringent derivative license terms compared to GNU, but it will take a legal expert to give you deeper advice.
It would've been nice to just
It would've been nice to just give you this link: http://www.artisteer.com/?p=faq#faq6
...and think that the problem is clearcut, but a program for the sole purpose of converting code from drupal to AS3 templates still leaves some problems. For example, quercus has converted php functions to java functions. The license holders for php can ask for the source code of java, but they're not under obligation to release source code that speeds up converted code. Sort of like writing a book in English, and someone else translates it into Japanese. The original author holds the license terms for foreign-langauge editions of the work, but they don't own the work, only distribution rights (feel free to correct if not consistent across countries or if there's other factors). GNU isn't the same, because even after converting it to another language, it can still be deemed a derivative work.
If it functions as a stand-alone product and it supports multiple platforms, you may escape the derivative clause, as long as you don't reuse the code of any of the platform in any meaningful extent. http://groups.drupal.org/node/131079#comment-430449 ...Acubed has some more clarity on the subject. My suggested approach may open up the source to more than one platform if the analysis is flawed or it may depend on the judge.
If I make a page hit counter using php and mysql, and then open up an api for other programs, I don't see how this is derivative code. The glue code to make it work for drupal/joomla would not necessarily be a derivative work either. Joomla has a MVC approach to coding, while drupal seems to advocate the use of hooks.
In South Korea, the traffic laws assign percentages to whose fault it is in a traffic accident (depending on the angle, etc.). I mention that because if the work that you make can be used without drupal, then you have a stronger position that it is not a derivative work, similar in the vein of what Acubed has said.
To clarify ...
I am not talking about "converting code from drupal to AS3 templates" ... I am talking about a pure Flash theming engine that works off of original AS3 templates and bridges (talks) to the PHPTemplate engine only to exchange Drupal page data and variables. In essence this is the same as what a web browser does ... it talks with Drupal, requests data, occasionally sends data, and ultimately displays final pages.
Perhaps the above comment
Perhaps the above comment seals the deal a little better: http://groups.drupal.org/node/77248#comment-430559
The Smarty theme engine is an example applicable for you. http://smarty.incutio.com/?page=SmartyFrequentlyAskedQuestions#other-1
I think your project probably can avoid the worry of GPL, but releasing any modules to drupal.org obviously wouldn't be good for your case.