LGPL and Licensing Freedom? 66
Father asks: "I'm trying to develop a cross platform alternative to ASP (Active Server Pages) based on Object Pascal (Delphi) and have hemmed and hawed for some time over licenses. I want to LGPL, but I would also like to create a commercial version (binary only) compiled from the LGPL version. My idea is to keep a register of contributors and their activity, and pay them a gratuity for assisting in the GPL version provided they post updates/fixes to my site, and they are 'accepted' for the primary distribution." Sounds like an interesting idea. Would a BSD-style license allow something like this or is the LGPL good enough?" (More)
"...I do not want to hinder other distributions, but create an LGPL product that can also help pay those heating bills. Basically I want the software to work like a journal... great good and all, but a little spare change doesn't hurt.
I know there are a host of License buffs out there on /. and I am hoping to at least get an idea as to whether I'm heading down the right road. If not, perhaps I'll just leave it at LGPL and go along my merry way.
Please help,mike
mjohnson@davesworld.net "
Re:Write Once, Release Twice (Score:1)
The question is not whether he can use multiple licenses. Obviously the copyright holder can do whatever they wish. The question was on how to handle contributions from other parties. He has full control over his own source code -- but without agreement from contributors, he cannot make use of their changes/additions.
GPL is better than LGPL in your case. (Score:1)
Instead, release it under the GPL and specify on your homepage (or whatever) that it also is available under other licenses for commercial use. When you then get a request from someone who wants to include it in a closed source product you are free to license it to them under any terms you agree upon.
However, that demands that you either remains the one and only copyright holder of your product or that you get anyone who submits you patches to accept that you also can release the code under whatever additional license you see fit. This is generally not a problem for minor patches, people tend to accept that, as long as you continue to maintain a GPL version. Make sure to state VERY clearly that any patches that are sent to you might be released under other licenses as well, that might save you a lot of trouble later on in case of a missunderstanding.
The only real disadvantage is that you can't include previously GPL:ed code that might prove usefull (unless you can contact all the contributors to that code and get their acceptance). Also, if you loose your status as maintainer of your product (someone forks the GPL version and gets accepted as the new maintainer by the community), you might not get any usefull contributions anymore, but that is a risk you have to take and as long as you do a good job as the maintainer, the risk is very small. You can minimize that risk by trademarking the name of your product, that way they can't fork it and use the same name unless you allow them.
BSD License works best (Score:1)
Re:is it easily done? (Score:1)
It doesn't say that.
See http://www.gnu.org/copyleft/gpl.html [gnu.org]
--
The best license depends on your purpose (Score:1)
The BSD license is best because it's short, simple, clear, unambiguous, and fair.
If you want to create a reference implementation or framework, and your mission is to promote the standard protocol or language embodied in that framework, then the BSD license is a great choice. After all, in this situation you don't mind a commercial vendor picking up your code base and not contributing changes back to the community. You are just happy that they are advancing the standard. This is the mission and the achievement of the internet plumbing pieces that Brett cites in his post.
If however, your mission is to create an implementation that will remain open to the community (presumably based on standards that are well established and don't need further help), then the GPL is an excellent choice, since it will encourage improvements and changes to keep flowing back into the original code base, and protect the code base from being hijacked into binary only products, (unless of course some arrangement has been made with the copyright holders of the GPLed code).
On the gripping hand, if your mission is to make big wodges of cash, then you'll probably want to keep your development closed, and sell binary copies under an obnoxious UCITA-friendly shrink wrapped license.
It does not seem to me that a programmer who wants to encourage his colleagues to contribute to a project should adopt a license whose explicit purpose is "ban" them from making a better living than a grad student!
I think you misread the motivation. I can make big wodges of cash by picking up a sawed off shotgun and visiting a few of my local banks. Yet for some reason, society "bans" me from engaging in this wholesome and profitable activity. RMS seems to feel that, being as the vast majority of software technique is a common pool developed by the contributions of thousands, arbitrarily walling off portions of the noosphere on the grounds of patent and copyright might be a little like robbing the intellectual bank. You can argue the specifics of how society might best encourage innovation, while at the same time not choking the golden goose of a free enchange of ideas, but please, lets not invoke base motives here. It seems to me that RMS himself has done considerably better in his financial life than the average grad student.
Remember, 80% of software development is of custom code that is valuable only to one specific customer anyway, so none of that work is going to be imperiled by the red menace of the GPL. On the contrary, the wide availability of quality, community maintained tools and infrastructure should only make our lives as programmer more productive and pleasent, since we no longer have to labor with black box APIs that are changed at the whim of incrutable marketing departments...
Re:is it easily done? (Score:1)
i think i read somewhere in the GPL that in the process of GPL'ing the code, you give the copyright to the FSF.
Is that your final answer? Would you like to use your lifeline? ;)
No sorry, that is incorrect. You have confused the policy of the FSF, which is to get copyright on all contributions to projects they maintain assigned to themselves, and the language of the GPL itself.
You can most certainly GPL code, and keep the copyright to yourself. This is the situation with, for example, the Linux kernel. The result of this situation is that after awhile, it becomes quite impractical to determine who holds the copyright to what part of the codebase. This is not a problem if it is not desired to distributed the code under a different license as well (and this is the case with the Linux kernel)
However for those, such as the poster, or Cygnus, or Aladdin, who want to be able to release a GPL version of their project, and also make money by licensing their codebase to binary-only folk, it is essential that they retain sole copyright on their codebase. This is accomplished by asking patch contributors to formally assign their copyright to the project maintainer.
The FSF also requires copyright assignment. In their case, the justification is that in the event of a legal dispute, they would be in a position to prosecute any violations of the GPL on their projects without needing to involve anybody else.
Summary: you continue to hold copyright on any code you place under the GPL, unless you specifically assign that copyright to someone else (for whatever reason)
Re:is it easily done? (Score:1)
Essentially true...
It is the responsibility of the copyright holder to defend the copyright from infringement. If you fail to do so for long enough, then other parties can start claiming rights. This is why so many Big Media Corporationstm err on the side of rabid lawyers attacks when their copyrighted properties are being used. Even when the actual use falls under fair use provisions. After all, their lawyers are on retainer, so its only you that has to spend money to defend yourself. But I digress...
The GPL is based on the notion of using existing copyright to provide legal teeth to the basic "play nice" notion of copyleft. So in order to mount a legal defense of a particular work, it would have to be undertaken by the copyright holder(s) of that work.
Hee hee!! (Score:1)
It's all true! We commie bastiches will not rest until every red blooded American "programmer" is out on the street begging for used DIMMs.
But not just yet... First I have to go re-line my football helmet with tinfoil!
Meanwhile, I'm eagerly awaiting TomC to weigh in on the immorality inherent in the system!
Re:Why another? (Score:1)
Leaving aside personal opinions and aesthetics, however, Pascal is a more straightforward language to parse than C or C++, and is relatively pure on the Borland branch. C would be better than C++, as it would avoid tremendous complexities, but another issue lurks: C, C++, and Java all muddy the same syntactic pool. An approach based on Pascal would not represent yet another pollution of C-flavored syntax.
Why another? (Score:1)
Re:Why another? (Score:1)
If he goes through with the project, it's very commendable of him to work on a free version. My comment might have come out the wrong way, sorry.. Mondays. Hate'm.
Re:This is easily done (Score:1)
How many rights you require people to assign to you before you accept the patch is up to you. You might choose to only require some subset of the rights be signed over to you, if that would "sweeten" the deal and get more people to work with you.
Excellent point (Score:1)
Re:PHP != ASP || eval($zend) (Score:1)
So, let's try it slowly:
ASP = language independant object toolkit for writing server side web applications
PHP = combination of a new high level scripting language and a way of embedding it in HTML and having an http server execute it.
Zend [zend.com] = free language independent parsing engine for writing server side web applications, powers PHP4
ASP is a well thought out object model that gives access to session maintenance at a range of persistence levels and scopes, as well as cached, efficient DB connections, and feature rich objects that handle HTTP transactions.
Feature rich objects, now with 40% more widgets!
Session management is built into PHP4, and is available in PHP3 through PHPLIB. I have no idea what qualifies as "cached, efficient DB connections", but I know MySQL is quite fast and effecient. Plus, you don't have to pay $1500 for MS SQL Server.
Sorry, I can't help it. I'm a PHP advocate.
- Scott
------
Scott Stevenson
Write Once, Release Twice (Score:1)
-----------
"You can't shake the Devil's hand and say you're only kidding."
Re:Why another? (Score:1)
The man asked a question and instead of helping to answer it, you have (without any knowledge of his reasons) told him that his efforts are a waste and insinuated that he is greedy. It's too early for this sort of thing.
-----------
"You can't shake the Devil's hand and say you're only kidding."
IANALEOAL (Score:1)
IANALEOAL (I am not a license expert, or a lawyer (nor do I sell double-glacing)), so what follows may not be correct anyway;)
I suppose it depends on the difference between the normal and binary only versions. It might make sense to issue the 'core' program LGPL, and then charge for binary-only additions (modules), which the LGPL would cover AFAIK.
Of course this wouldn't make sense if the binary-only one has extra 'core' functionality, in that case can't you just re-license anything that is (c) you, and request that all contributors do the same, to allow the entire thing to be released binary-only.
Personally, I'm not convinced that using (L)GPL'd code like cripple-ware is a Good Thing (tm), and think that a 'free for non-commercial use' clause might be better.
--
Mix and match... (Score:1)
Enhydra (the OpenSource Java Application server) has similar issues.
So, they've decided to mix and match. [enhydra.org]
Re:is it easily done? (Score:1)
i see. okay. then the FSF has no power to, on it's own, enforce a GPL violation involving code whose copyright belongs to somebody else--is that right?
is it easily done? (Score:1)
i think i read somewhere in the GPL that in the process of GPL'ing the code, you give the copyright to the FSF. in that case, it seems that you would no longer be able to distribute the same program under a different license (the same way an employee of a software company wouldn't be able to sell his company's product).
anyway, i am not trying to slander the GPL, so if it dosen't say this, somebody just say "it dosen't say that" or whatever.
so, am i right?
sh_
Re:Licence OK, what about the business model? (Score:1)
Or you want to write BSD-licensed software.
One possibility methinks (Score:1)
One possibility methinks (plain txt) (Score:1)
Your main code gets GPLed. Modules get GPLed. However, there's a convenience tax
The funny thing about Linux/BSD is that while the resources required for running software can be low, compile jobs require a considerable amount of power.
And even permanently connected machines cannot be in continous update mode. And no one running a business would 1) waste the bandwidth nor would they 2) waste the resources constantly recompiling the only thing available, the source.
As for the approved patches only approach, the Linux source is maintained exactly this way. Nothing new here.
So I guess what I'm saying is if someone is going to try to skip on the price for the binaries, they'll have to invest in some serious hardware. It isn't exactly the best option for a business tho even if they do make money. Any resources they have have to be allocated to handle customers' needs.
(I sort of have the idea that if somebody is going to go the hard way, might as well reward them for investing their time in their own education. Every business has certain things they do inside and other things they depend on others. It goes with the territory of whatever type of business your in. There is no business that can last going the easy way at all times. Companies have to commit to the mundane/time consuming stuff if they want to be taken seriously as well as keep up with the rest of the world.)
Private licensing and GPL (Score:1)
I think that the proposal you make creates a fundamental conflict of interest; and isn't necessary anyway. At Hewlett-Packard we recently had a similar problem come up when we explained to our management why we wanted to open source e-speak [e-speak.net], a piece of infrastructure software for creating free (as in speech) services markets.
The conflict of interest is between asking people to accept that you are using the GPL to show the world that the software you are releasing will create a level playing field while at the same time reserving a priveleged place for yourself. At any point you can argue that your software isn't making enough money because you didn't reserve enough of a special position for yourself, leading you to close the source to more of the product, and alienating the open community that is trying to grow around it.
The first step IMHO is to consider the development costs of the software a writeoff -- and start considering instead how you can make money from the service surrounding the software instead of the software itself.
The key argument that I make to my management is that even if the source is open, that doesn't make it a product. There are some people who are willing to download and work with software without any support and packaging, but those are precious few and their attention is divided among hundreds of different pieces of software that they could possibly be working on.
But by combining that source code with a good test suite (to minimize package bugs, and control backward compatibility), a product release stream (to make it easily installable, include GUI management front-ends, precompiled with a top quality compiler, etc.), a call-in support line, and company backed performance guarantees, you have added something that the source by itself doesn't have.
It is an ongoing area of controversy, but I really think that after releasing a set of code under GPL you should never look back, but push forward to really gather in the community you are trying to create and avoid sending mixed messages like: you can use this for free, but please don't compete with me.
That having been said, if you really want to do this I know that there has been at least one successful counter-example to my opinion; take a look at the ghostscript site and see if you can cope with that model.
With GPL, you do not know where you stand. (Score:1)
The X11 or BSD licenses, by contrast, says what they mean and that's that. Under these licenses, you know your rights. With the GPL, you can't be sure.
--Brett Glass
Patent risk unrelated to choice of license (Score:1)
--Brett Glass
Patent risk unrelated to choice of license (Score:1)
--Brett Glass
Oops; typo. Please mod this down or remove. (Score:1)
Re:is it easily done? (Score:1)
"Copyleft" is not a "play nice" notion at all. (As Richard Stallman himself puts it, "The GPL is not Mr. Nice Guy.") "Copyleft" is an attempt to destroy programmers' livelihoods and hurt commercial developers.
--Brett Glass
LGPL with binaries exception ala WxWindows (Score:1)
You might also consider adding a copyleft term of some sort to the MIT (BSD without advert clause) license.
Re:A few problems - Not licensing ones! (Score:1)
Re:Licence OK, what about the business model? (Score:1)
Anomalous: inconsistent with or deviating from what is usual, normal, or expected
Re:PHP != ASP != JSP (Score:1)
Re:The principal problem with GPL/LGPL as I see it (Score:1)
Look at Ghostscript (Score:2)
I gather that changes are accepted under the condition that they can be used both with "GNU Ghostscript" and "Aladdin Ghostscript."
This seems to have been a decent trade-off over the years; people have considered it worthwhile to contribute changes without necessarily being paid directly.
I'd tend to think that three factors should come in:
There will be fewer "games" played of the sort there are in Hollywood with I sent you this script, see, and you made a movie based on it, and so I'm going to sue you!
Whether patches are "accepted" or "rejected," they should be tracked, perhaps in a public archive.
PHP != ASP (Score:2)
ASP is a well thought out object model that gives access to session maintenance at a range of persistence levels and scopes, as well as cached, efficient DB connections, and feature rich objects that handle HTTP transactions.
It also provides a means to access this object model via Windows Scripting Host and any language that can be plugged into WSH. These include to my knowledge JavaScript, VBSCript, and PerlScript.
So, let's try it slowly:
ASP = language independant object toolkit for writing server side web applications
PHP = combination of a new high level scripting language and a way of embedding it in HTML and having an http server execute it.
People may have written PHP modules that emulate many of the methods available in ASP. That does not make it the same thing by any stretch of the imagination.
I know there is a perl module Apache::ASP that attempts to closely replicated the object model used by ASP.
It is a good object model, and people would do well to use it as a base for similar projects.
Needling comment about Open Source not innovating should be inserted at this point.
LGPL works, MPL might be what you want (Score:2)
I beleve the LGPL (or maybe even stright GPL) works, as long as you don't mind shipping source to all your "binary customers" (or shipping it on request). Of corse it won't prevent other people from doing the same thing, but Red Hat seems to be making enough money even with SuSE, Caldera, Slackware, et. al. in the ring.
However I think you may want to look at the MPL (Mozilla Public Licence) as well. It has a few advantages to people who want a shrinkwrap and free reslease:
You might want to look at The Open Source [opensource.org] website, expecally their short approved licences [opensource.org] list.
Lastly I think you might want to look at Setting Up Shop: The Business of Open-Source Software [hecker.org] which has a discussion of some of hte licences, and some bisness models to make money useing them (I havn't read this yet, just skimed it, so I appolgise if it isn't as good as I hope).
Look how Hans Reiser (ReiserFS) does it: (Score:2)
Basically he asks contributing hackers to sign ownership of the code over to him. He makes all code available through the GPL, but sells exceptions to commercial OS vendors.
You can find the business model and licensing here [devlinux.com].
It's your intellectual property (Score:2)
The GPL is designed to give rights to the end-users, not to take them from the creator of the work.
Look at the ACE/TAO license (Score:2)
You might want to look at the license for ACE [wustl.edu] and TAO [wustl.edu]. If I understand them correctly, they are BSD-ish in that they allow anyone to use the software without supplying source or having to return modifications.
However, the license also contains a clause where you agree that if you do submit a patch, you implicitly agree to assign copyright to the ACE/TAO maintainers.
ACE and TAO are an interesting open source project -- run by a university research group, with industry support for Dr. Schmidt's group and with private companies offering support, packaging, and custom development.
Good luck, whatever you do.
The BSD license can be a danger to you (Score:2)
If you use a BSD license your competitors can pick up your code, they can trivially enhance it and refuse to provide your with their changes. If they are feeling bored they will also file a patent claim against you so that you cannot sell your own software any more without a huge lawsuit bill while they can smile and make all the money you should have made.
The GPL has a patents with distribution rule for exactly these kind of reasons.
If your code is a module or library and you want control of the module only then the GPL/LGPL can be excessive, in which case the MPL may well strike a good ground.
If you simply want to throw code to the world and don't care who uses it for what and if they make your commercial life hard then the BSD license (epecially without the advertising clause) is pretty much perfect. Its a 'you have it you do what you like but dont sue me please' license.
Alan
Re:Commercial Branching? (Score:2)
Yep, I remember that - I seem to recall it from the resignation letter some months ago however, and that it was blamed on too much of the original code being kept back by Netscape (so that a lot of work had to be done just to get to the same standard as NS 4 now "enjoys"
To be honest though, I think ANY scheme that allows the author to sell a closed-source release of the package is going to be viewed with a certain distaste; the author might be better off going for the Redhat model - sell boxed sets, complete with support, and then sell support - based on his greater familiarity with the package than recent contributors, he should be able to manage something from that - particularly if he can appeal to the business market that tends to want a Retailer to have a contract with...
< schnipp! >
This is where the difficulty arises; assuming you are replacing an existing (or stub) routine, can you be 100% sure you haven't included one or two lines identical to the original? a library call? a data structure? No piece of code in a package this large can be an island, and you must have read hundreds of lines of code before you feel confident enough to contribute. Even assuming you carefully work around every identical code routine to keep your contribution unique, can you guarantee the next person to patch it won't drag in code from the main body, and contaminate your offering? as I say, it's a difficult area, and the FAQs don't really cover it well enough.
--
Re:The principal problem with GPL/LGPL as I see it (Score:2)
Not so fast
The GPL as I've read it says take my stuff change it but when you give binaries to someone you must give the source. It also says that the next in line gets the same rights as the previous person to receive the source. Note the word same. That's a BIG word. Now I read that as, unless otherwise noted, I can charge someone if they change source I have downloaded and edited from someone else and they want to take my generation and go binary only w/ their changes. See the thing is that as long as the original author (ie FSF) made no requirement of transfering back copyrights, I can charge people if they want to change the license on their generation. BSD I can't.
The BSD license is best for this application. (Score:2)
The GPL, on the other hand, is long and complex. It includes a political manifesto which is required to be included with every copy. It prevents commercial reuse of the code, which means that it is fundamentally unfair. Anyone can use the program for what he or she wants except the commercial programmer, who is precluded from incorporating it in a product that he or she does not give away. This provision was intended by the GPL's author, Richard Stallman, to reduce the salaries programmers can make for programming and thus hurt their livelihoods. See The GNU Manifesto [fsf.org], where Stallman explicitly states this intent:
It does not seem to me that a programmer who wants to encourage his colleagues to contribute to a project should adopt a license whose explicit purpose is "ban" them from making a better living than a grad student!
The GPL also deters standardization by preventing commercial and closed-source products from using the same code base as open source products.
In short, the GPL is a poor choice. The time-honored BSD license, or the MIT X license (which is nearly identical), is a much better way to go.
--Brett Glass
Re:Commercial Branching? (Score:2)
OTOH, you *do* need to protect yourself with something like one of these licenses if you don't want to hassle with getting additional permission from each author; otherwise, it opens up a world of legal hurtin'. :) You might consider discussing with each contributor licensing terms and royalties upon submission of their code (or possibly even before they submit their code).
The Netscape Public License FAQ [mozilla.org] has good explanations of not only the NPL, but several other open-source licenses as well, including BSD, GPL, LGPL, and the Artistic License.
It's my understanding that the major differance between the LGPL and the GPL is simply the fact that you can link to GPL-incompatible libraries using the LGPL. Unless that's all you want to accomplish over the GPL, then there's really no major difference. 'Course, you could always make an Open-Source Copyrighted Undistributable Software Product. ;)
Good luck in your endeavor.
PS.
From the NPL FAQ:You must retain copyright (Score:3)
The GNU project retains copyright to all of their projects, so that (I assume) the switch to a newer version of the GPL, if and when this is necessary, is not a problem at all.
--
Ian Peters
Licence OK, what about the business model? (Score:3)
As I understand it, The LGPL lets me ( Binary-Only Software Inc) get away with just about anything if I dynamically link, or merely requires me to provide a linkable object file containing my proprietary binary(and there are tools to combine a pile of object files into one massive one, so shipping one .o file would potentially meet the requirement), as well as requiring the distribution of the original LGPL code.
Are these minor hassles to Binary-Only Software Inc. really worth paying you money? I doubt it.
With the Cygwin distribution, Cygnus uses a dual GPL/commercial licence to ensure that binary-only developers need to pay for a licence. This would probably make more sense. I realise that such a licensing scheme would make life difficult for BSD'ers, but from a revenue-generating standpoint it's the only variation of this business model that really makes sense.
Freeware (Score:3)
A few problems - Not licensing ones! (Score:4)
Or do you plan to somehow determine the "worth" of each contributor's code? What method would possibly be fair? Lines of code? Profiling?
I think you might be asking for disputes.
Commercial Branching? (Score:4)
--
This is easily done (Score:5)
You can then track who gives you patches, make them shareholders in Widgets, Inc., and give them a portion of the proceeds. The key thing is to get all the code under one copyright holder, so you can then do whatever the hell you want.
For some real-life examples of this, check out CUPS [cups.org] and LPRng [astart.com]. Both release both GPLed and commercial versions, and both operate like I've suggested (though I don't believe either one contributes net profits back to patch contributors).