Tags:
create new tag
, view all tags

Plugins and License

There has recently been some questions related to TWiki Plugins and licensing. Answers are covered in a short version and a long version. Read also the discussions, some developers have different opinions.

The short version

The longer version

First - if you have not already - you should read the General Public License. The General Public License is commonly just written as the acronym GPL.

It is easy to read and there are several translations to other languages at the site.

After that you should pay attention to the FAQ section about plugins.

What the FAQ says is

If a program released under the GPL uses plug-ins, what are the requirements for the licenses of a plug-in.
  • 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.

So what does all this mean?

With traditional TWiki Plugins and other extensions that are written in Perl and uses the official TWiki API there is no doubt. The two act like one program and share the data structures. TWiki makes function calls to the plugin (the many handlers) and the plugin makes function calls to the core (e.g. the API in Func). It is very clear that a TWiki plugin must be distributed under GPL. There can be no discussion or doubt about that. This is not even a borderline case. It is as clear as it can get. TWiki plugins must be released under the GPL if distributed.

So what does this mean to you as a plugin user?

Only positive things!

  • As a user of a TWiki plugin you have the right to use the software as you see fit, without asking, without registering, without paying anyone.
  • As a user of a TWiki plugin you have the right to modify the plugins for your own use. You do not have any duty to make these modifications public. However - the TWiki Community will be thankful for any contribution and we encourage you to share your work here at the official TWiki site. But it is entirely up to you do decide.
  • As a user of a TWiki plugin you have the right to distribute copies the software to others, as long as you comply with the rules in the GPL. It is when you copy and distribute GPL software that you have to be careful!

So what does this mean to you as a plugin developer?

  • If you develop TWiki plugins or modify existing plugins for your own use, you do not have to offer the code to the public.
  • If you are paid to develop a plugin for a client, and the client insists on the sources to be closed and non-public then this is allowed provided that the plugin is not copied and distributed. It does not matter if the distribution is for free, as part of a service subscription or a fee is charged for the software. Any distribution of the plugin means that you and the client (whoever does the actual distribution) must offer the sources to the receivers under the GPL license. And you cannot prevent the receiver from distributing the work including making it available in public.
  • You are allowed to offer additional services for a fee as part of the distribution. e.g. you can sell the software under an additional license as well, for example a license that offers warranty and support. But the plugin is still distributed under the terms of the GPL to any receiver of the software.
  • You can choose to distribute your plugins in any way described in the GPL. You do not have to post them at the official TWiki web site. But the TWiki Community encourage you to do so and will be very thankful if you do.
  • Anyone who receives a TWiki plugin from a consultant is entitled to redistribute it, including to TWiki.org's Plugins web.

So does anything written for TWiki has to be distributed under GPL?

No. You can for example write a plugin which is under GPL which calls a proprietary program giving it some data and then waiting for the program to return data back to the plugin. Such a program could be a database front-end, a program that generates a PDF file, a zip file, communicates with a phone system etc etc. i.e. TWiki is triggering another program to be executed and may receive a data stream back. In this case TWiki and the other programs are considered two independent programs and the other program can be closed source and proprietary. So if you wish to distribute a plugin that calls a proprietary program you will have to release the plugin under GPL but the proprietary program can remain proprietary, as long as the proprietary program is called by its main function and the proprietary program does not make function calls to the TWiki code.

But regular plugins using the TWiki API must be released under the GPL if distributed.

I wrote a plugin for my company - do I have to distribute it?

No. The GPL only governs the distribution, not the use of the software. If you wrote a plugin as an employee for the company, there is no obligation to redistribute it. Nevertheless, if this plugin is not company specific and you think it is useful to others, the TWiki Community would very much appreciate if you share it with the community, e.g. package and post it on twiki.org.

I made a plugin for myself - why should I publish it under GPL anyway?

Because it is to your own advantage and because it makes you feel better.

  • When you publish a plugin or an improvement to a plugin the entire community can improve it further and these improvements will benefit YOU.
  • The more value adding plugins the TWiki project can offer, the more satisfied users do we get, and the more contributions are made available that at the end will also benefit YOU.
  • When you download TWiki it is the result of...
    • Many many 1000s of hours of volunteer work given to you for free. Your contribution - large or small - is adding to the value of TWiki.
    • Many commercial companies have paid developers to create new features for TWiki and allowed the result to be published under GPL, even when they did not have to - because they know that overall - they get much more back than they invest. And your contribution is part of what they get back.

Who owns the copyright?

What many do not understand is that GPL works by using the copyright laws. Any work done by you is owned by you. If you work for a client that pays for your work your client will most likely own the copyright as part of your mutual agreement. If you are employed to write software your employer normally owns the copyright. If you write a new plugin it is essential that you claim your copyright in the code and in the topics as well as the GPL license.

If you make a significant modification to a plugin, you claim copyright for the modification while maintaining the original copyright notices.

If you make a very small modification to an existing plugin it is common to simply post a small patch for the plugin in the ....Dev topic for the plugin here at TWiki.org.

How do I get a copyright on my program in order to release it under the GPL?

From http://www.gnu.org/licenses/gpl-faq.html#HowIGetCopyright :

Under the Berne Convention, everything written is automatically copyrighted from whenever it is put in fixed form. So you don't have to do anything to "get" the copyright on what you write--as long as nobody else can claim to own your work.

However, registering the copyright in the US is a very good idea. It will give you more clout in dealing with an infringer in the US.

The case when someone else might possibly claim the copyright is if you are an employee or student; then the employer or the school might claim you did the job for them and that the copyright belongs to them. Whether they would have a valid claim would depend on circumstances such as the laws of the place where you live, and on your employment contract and what sort of work you do. It is best to consult a lawyer if there is any possible doubt.

If you think that the employer or school might have a claim, you can resolve the problem clearly by getting a copyright disclaimer signed by a suitably authorized officer of the company or school. (Your immediate boss or a professor is usually NOT authorized to sign such a disclaimer.)

TWiki plugin contributors are encouraged to get the copyright of their employer, school or client assigned to the individual contributor. This reduces lengthy negotiations with legal departments for each and every contribution.

What is the TWiki Community view on being payed to develop software for clients?

It is very positive. It is perfectly OK to be paid to develop software. It is perfectly OK to eat and buy clothes for the kids. You should not feel bad about it.

Yes, there are many people that develop software for free on the TWiki project. But there are also many that try to make a living from working for clients. We all have our reasons to spend time on TWiki.

The TWiki Community will not only accept that companies invest in having TWiki technology further developed. It will assist and encourage such activities when it benefits the overall value of TWiki.

It is all a matter of making the end result a win - win for everyone.

But no matter what - the conditions of the General Public License must always be obeyed 100%. This is essential for the entire open source movement.

-- Contributors: KennethLavrsen, PeterThoeny - 18 Mar 2007

Discussions

Thank you Kenneth for shedding light on the GPL and copyright of plugins. Very well done! As previously mentioned, all PluginTopicsShouldStateGPL.

I added a section on "how to get the copyright". I also replaced "add-on" with "code contrib". Contribs and plugins clearly fall under the GPL; add-on need to be looked at case by case.

-- PeterThoeny - 18 Mar 2007

I added some more clarifications.

-- PeterThoeny - 18 Mar 2007

Kenneth, not bad, but I think I found an incorrect statement ..

Any distribution of the plugin means that you and the client (whoever does the actual distribution) must offer the sources to the public under the GPL license.

it should read

Any distribution of the plugin means that you and the client (whoever does the actual distribution) must offer the sources to the the receivers of that distribution under the GPL license.

Which is a rather large but important difference, that makes it possible for consultants to distribute the work they are paid for by a client... to that client. The point of the existing GPL's is more to ensure the freedom of the receiver.

I guess the safest thing though , is to get the summary looked over by the appropriate foundation :).

-- SvenDowideit - 18 Mar 2007

Kenneth: I think the statement "you are allowed to dual license your plugin" is not correct. You can do that only if you have 100% of the copyright of the whole work, as is the case with the MySQL or SleepyCat products. Technically, it is not possible to dual license a plugin even if you own 100% of the plugin, if the plugin is part of other GPLed work that is owned by 3rd parties. You can apply a dual license to GPLed code only if you get all parties of the whole work to agree.

-- PeterThoeny - 18 Mar 2007

Maybe dual license means something specific and I am using the work wrong. What I meant is that a company can sell a very advanced plugin to a customer including 24 hours support, warranty, 6 hours training etc. But such a license must not stand alone. The plugin must still also carry the GPL and sources be available to the receiver and nothing can prevent the receiver from distributing the work product to third parties under the GPL.

The GPL states that the software comes with no warranty. If you offer warranty to a client I believe it is an additional license offered only to the paying client and nothing prevents this. This is clearly stated in the GPL. But to prevent any misunderstandings I have reworded the text above.

Sven. Yes my wording was not accurate. You must offer the product under GPL to the people you distribute it to, but it is your choice to distribute it. You are not forced to distributing. However you cannot prevent the receiver from making it public. This is why nearly all writers of GPL software choose to make GPL software public from the beginning because sooner or later someone will buy the software and publish it. What is not relevant for TWiki is that software embedded in a piece of hardware is also a distribution. This is where many hardware manufacturers forget to publish the sources of the modified GPL software that runs the hardware.

This topic is an incredible example of the power of wikis. I try to write a piece of information for new plugin authors. And less than 24 hours later the quality of the document is enhanced by at least a factor two through open collaboration.

-- KennethLavrsen - 19 Mar 2007

Thanks, Kenneth, for this. A number of points here.

First, the quotes you have embedded above come from the FSF website, and are the FSF's interpretation of the GPL. This interpretation has not (to the best of my knowledge) been tested in a court of law, so your assertions that these points apply to TWiki plugins are your opinion only. I added a statement to the top to make this clear.

Second,

  • Anyone who receives a TWiki plugin from a consultant is entitled to redistribute it, including to TWiki.org's Plugins web.
This is true as long as the receipt was not covered under the terms of an NDA (Non-Disclosure Agreement), which may simply be a verbal or gentleman's agreement. Many plugins are works-in-progress, and the author may not wish them to be shared - yet. You must respect the authors wishes, even if the work is ultimately released under GPL.

Third, your points of course apply to other GPL'd frameworks, such as Joomla, Drupal and Konqueror. In the case of these frameworks the community turns a blind eye to the large number of extensions that are distributed under commercial licenses. Why do they do this? Well, the reality is that no-one wants to test the GPL on this point in a court, for several reasons:

  • It would be really, really expensive (unless your name is Gates or Bush, you aren't rich enough),
  • It would cripple the project and its contributors, as every plugin author would be called to give evidence. Run away!
  • Most other GPL projects would also have to be canceled or face similar action.
  • It would screw over a whole bunch of developers who currently charge peanuts for licenses for software they invested huge amounts of effort in developing,
Anyone who accepts a commercial license to a plugin and subsequently re-releases it under the GPL is in clear violation of that commercial license. The releaser would be faced with a strong court case from the supplier, in which their only defence would be to prove the legality of the GPL. This isn't going to happen, for the reasons given above. It's the reason that all such cases to date have been settled out of court.

Finally, how can anyone honour the GPL but still make a living from writing plugins? Well, the GPL makes it clear that you can charge for distributing free software (it's enshrined in the constitution, so to speak) and that software authors should use this as their means for making a living. So if you want to recoup your development costs (or even - god forbid - make a profit!) here's how the GPL wants you to do it.

All you have to do is make sure that your development costs are totally covered by the first open transaction. The receiver can then distribute the software to whoever they like; your costs are covered. So, simply offer the software to the market for your dev costs + profit. Let's say you spent a couple of weeks on a plugin, and you need to make $50 an hour to cover your costs. You would set a distribution price of 2 * 7 * 8 * 50 * 1.175 (taxes) * 2 (reasonable profit) = $13160. That recoups your dev costs, and you can move on to sell support. Preferably that transaction will be up-front, and a sponsor will support the release of the code. Otherwise you are dependent on attracting a desperate purchaser. The reality is that you can charge for a TWiki plugin under the GPL, but it is almost impossible to do so at a commercially attractive price. Your kids will probably starve, but at least your pride is intact because you have honoured the GPL.

The alternative is to apply a commercial license to your work, which allows you to release at a reasonable price, and just take the risk of someone taking you to court for violating the untested terms of the GPL (sorry, Mr. Gates, sir, I didn't expect you to take an interest!).

Other creative solutions are very welcome. Before you suggest it, I have already tried begging, and that doesn't work either.

-- CrawfordCurrie - 19 Mar 2007

Crawford, you, I and other consultants may wish that TWiki is released under a more premissive license such as the BSD license. It is a fact that TWiki is released under the GPL due to its JosWiki predecessor. It is perfectly possible to stay clean with the GPL and make a living. For example, you can split up a plugin into a thin Perl shim that talks to proprietary software.

PS: I agree, begging does not work. A few days ago I received my first "thank you" payment of $5.00 via Paypal; many month after I added the donate button to my twiki.org homepage. smile

-- PeterThoeny - 19 Mar 2007

TWiki plugins must be distributed under GPL. This is how I interpret the GPL, this is how the FSF interpret the GPL. I quoted the FSF FAQ because those guys are the ones that knows GPL better than anyone else and it explains things in a clear non-legal language.

But if you read the original GPL text it is still pretty clear that TWiki plugins that contains function calls in both directions and share data structures with the core gets the GPL "virus".

There is no issue for consultants here as long as you know how the GPL also helps you. If you make a plugin for a client and he pays you for it, and the agreement says that the copyright belongs to the client, it is entirely up to the client to decide if he wants to distribute it or not. If you want to add a commercial license where you offer additional services you may do so.

So there is nothing in the requirement of distributing software under the GPL that prevents a TWiki consultant from charging 1000000 dollars for the development of a plugin to a client and there is nothing that forces the client to distribute the plugin.

What the GPL says is that IF you distribute a GPL work to someone you must give the receiver the same rights as you got and that cannot be limited by an NDA or commercial license. It is not that limiting or complicated.

This does not prevent an NDA to be created between consultant and client. The consultant may very well learn things about the client and his business that needs to be kept secret and the consultant can have secrets as well such as the fact that the consultant did the work for the client in the first place. If the client owns the copyright it is the client and not the consultant that decides if the work is to be distributed or not. Or they can agree to distribute a stripped down version of the plugin that only contains the basic technology as a contribution and a thank you to the TWiki community while the full version that contains company specific features remain non-distributed and probably kept secret.

What you cannot do is develop a plugin to a client and prevent him from re-distributing. And it is important that developers understand this so they do not end up getting screwed at the end.

Example: You develop a plugin for a client. You sell it far to cheap, but hope that you can earn additional money from offering it for 100 dollars as a download on your website. Short after someone buys the software for 100 dollars and post it at TWiki.org so anyone can download it for free. And this is perfectly OK for him to do this. You cannot prevent that.

So it is important that developers understand this and make sure that they get their costs and reasonable profit covered by the initial client(s).

This topic was not written because anyone has actual plans to start lawsuits against each other. It was written so that developers knows where they stand license wise and can plan their work accordingly and do not end up getting screwed. Because as Crawford rightfully writes, civil court cases is not a feasible path to walk for individuals.

-- KennethLavrsen - 19 Mar 2007

Peter, I have never contested the fact that TWiki is released under GPL, nor that the GPL terms as written will "infect" any plugin written for TWiki. If I was uncomfortable with this, then I wouldn't work on TWiki. My point is that other GPL projects don't fire shots at people seeking an honest return for their individual work, and I don't believe that TWiki should either.

Ken, You sell it far to cheap, but hope that you can earn additional money from offering it for 100 dollars as a download on your website - it's that hope word which is hard to give credence to. Like Peter I have a "donate" button on sourceforge, and I've had it since they first became available. Of the hundreds of thousands of TWiki users out there, only one has seen fit to donate in all that time. So far Peter has made $5, and I have made $10. This doesn't paint a very hopeful picture for anyone relying on the generosity of the TWiki community in rewarding work done. Right now, the developers are taking all of the risk and reaping almost none of the rewards.

  • Yes, that is what I just wrote above.

My main point, though, is that the GPL is just a bunch of words. Until it is tested in a court of law, it is at best a guideline. On the other hand, contracts such as NDAs and commercial licences are well tested in law. If a court case came up between a supplier with a NDA or commercial license, versus a purchaser who had redistributed software they received under that contract in the belief of the applicability of the GPL, then the purchaser will lose. There isn't a court in the world that would accept that premise in the face of a well-tested commercial contract.

Personally I think it's irresponsible to give people the idea that they can ignore NDAs and commercial licences that they may have accepted because the software they received under those contracts may be infected by the GPL. If you don't like the terms under which software is offered, you should walk away and find a different supplier - unless you are determined to spend your kids inheritance trying to defend the GPL in court.

-- CrawfordCurrie - 20 Mar 2007

  • Let us not make this a legal discussion. None of us are lawyers.
  • You know dammed well that if you as a developer makes a plugin for a large corporation and they decide to distribute it claiming the GPL it is you and not the corporation that risk to spend their kids inheritance trying to get payments for the distribution. The best strategy is to get paid when you do the work and ensure that you get paid well. And feel good about it.

You receive this topic all wrong Crawford. And you - as THE MAIN CONTRIBUTOR - have no reason to feel attacked or guilty of anything. It was never meant as an attack on consultants. It was meant has a help to new plugin developers that either work for an employer or try to make an extra income from writing plugins.

They may feel uncomfortable with

  • The license side of things.
    • This topic explains the facts of the license conditions and how this is generally interpreted among the open source experts. And it clearly explains that it is possible to make a good earning within the rules of GPL.
  • The community acceptance
    • The message from this topic should be...
      • that there is a clear community acceptance that people develop plugins for money
      • that we do not demand that you distribute all plugins in public to be accepted in the community
      • that the community encourage you to make the plugins available to the public when possible, because this is normally in everybodys interest. The TWiki becomes a stronger "product" making it easier for TWiki experts to sell their services. And the client gets the synergy from other contributors that enhance and bugfix the product they paid for. But we also recognize that this is not always possible. And that is perfectly OK.

And for those clients that want to invest in TWiki technology and new features that they need - and for new consultants - it can be only good to know where you stand and that TWiki is a project open to commercial interests while still being an open source project under the rules of GPL. Unclear rules means risk to businesses and make them stay away. Unclear rules is bad for business. When you know where you stand, with respect to both license and community you can make your agreements accordingly and feel safe and secure to both fund development as a client, and work as a developer as a consultant or employee.

And for those that are working voluntarily - like I am - it has been clear from the beginning that many of the developers are consultants that also do development to make a living. And I have always seen it as an advantage because it enables the massive investments in programming that are needed to make significant developments. What I get out of it personally is a strong tool that I can use in my work life. And it has for sure been only a good thing for my professional career. The fact it is also a wonderful extra hobby that challenge my intellect and teach me new skills is an extra prize. If all TWiki developers only had a few hours each day like me, TWiki would have gotten nowhere. This topic also makes it clear to new volunteer developers that TWiki is a community that accepts and encourage development that is sponsored by companies.

-- KennethLavrsen - 20 Mar 2007

If I write code for an employer, then they own copyright on that code, end of story. If they choose to release it publicly, I can have no issue with that. At the end of the contract, once I am paid, they own the code and can do what they like with it.

The remark that really hit my hot-button above was

  • Anyone who receives a TWiki plugin from a consultant is entitled to redistribute it, including to TWiki.org's Plugins web.
This is just not true. If I work for a client, they are first and foremost bound by the terms of any contract between us, same as me, irrespective of what the GPL says. It would be quite impossible to do business in an environment where I can't ever get paid, because the plugin code I give the client for acceptance testing can simply be redistributed under the GPL. They could simply reject the code, refuse to pay me, and distribute the code anyway. I have already had potential clients clearly exploring this route in the interests of their companies, which is what makes me so sensitive.

I have my own approach to making money from TWiki consultancy, and on the whole it works for me, without having to charge for plugins. However the whole approach of demanding that plugins be GPL strikes me as deeply negative to the TWiki project. Think of all those poor students out there, trying to pay off their college loans. They are not in a position to offer a distribution service. So what motivation do they have to contribute? None. They will just go and code where they are welcome instead. Why do you think we only have two useable skins? Why does Joomla have hundreds? Why does TWiki have so many unmaintained plugins? As I described above, you can't realistically stop people releasing under commercial licenses anyway, so why do you insist on devaluing what these potential contributors can offer?

What possible negatives are there to supporting people who want to charge? Seriously, I want to hear what you (all) think.

-- CrawfordCurrie - 20 Mar 2007

I agree with the key point Crawford is making:

While the GPL by itself entitles any receiver to full rights to modify and redistribute, there is nothing in the GPL that over-rides other contracts that are made between parties.

Also, while a plain / simple TWiki Plugin would (I think) be infected by TWiki's GPL license, there are a number of ways to make a plugin which is not.

  • develop a product / functionality, and then later create a TWiki Plugin to hook into it - only the TWiki Glue part would be GPL, and if you bundle the entire system as a Contrib, it would not be magically legal to treat the entire thing as GPL
  • develop a TWiki Plugin using non-GPL components... depending on the majority rule, its a tossup to see what license applies

I don't however think thats what Kenneth meant to imply - and suggest that the statement be ammended to something like:

  • Barring other contractual obligations, anyone who receives a GPL TWiki plugin is entitled to redistribute it, including to TWiki.org's Plugins web, however, there is a long standing tradition in the Open source community, of respecting the copyright holder's wishes in this regard.

I'd suggest that the 'from a consultant' is somwhat inflamatorily un-necessary, as singling out consultants is probably not your intent either.

-- SvenDowideit - 21 Mar 2007

I'll be the first to say I don't understand the legal niceties of this discussion, but I would like to re-enforce Crawford's comparison of the TWiki community the the Joomla community. There is a very active market for commerical plugins and skins for Joomla (another GPL) program. I don't know why their circumstances are different than TWiki's, but I am very clear that their approach is creating a healthier, more dynamic development environment.

BTW, I use Joomla for several clients and I am very happy purchasing the (reasonably-priced) commercial plugins when the application calls for it.

-- LynnwoodBrown - 21 Mar 2007

Edit | Attach | Watch | Print version | History: r15 < r14 < r13 < r12 < r11 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r15 - 2007-03-21 - LynnwoodBrown
 
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.