Misconceptions About the GPL
lisah writes "Misconceptions about the widely used GNU General Public License (GPL) continue to plague the free software user community and, according to the ITManagersJournal, 'the confusion is frequently based on misreadings, rumors, secondhand accounts, and what is convenient to believe.' In order to clarify some of the more common misunderstandings about the GPL, Bruce Byfield consulted with three experts: attorney Richard Fontana, one of the main drafters of the third version of the license; Harald Welte of the GPL-Violations project; and David Turner who is assisting with revisions of the license. Together, they help clarify the distributor's role in providing source code to customers, whether GPL is viral or unenforceable, and why some misunderstandings are really rooted in varied interpretations of the law." ITMJ and Slashdot are both owned by OSTG.
Even after RTFA, I still feel that by choosing GPL I am giving up my freedoms as a developer. This type of freedom goes in one direction towards the end user (which is a good thing) but the developer gets screwed, by forcing his software to follow a strict set of rules. Incorporating GPL sections of GNU Code could put you in violation. In theory even if you do not plan to widely distribute your application you still need to follow the rules.
It is like a chef having to give up his secret recipe just because he used GPL Spices. At least with software patents I can normally buy the right to use the software the way I want to use it.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
It's how a judge ultimately interprets it.
"I'd rather be a lightning rod than a seismometer." -Ken Kesey
I wish any viruses that affected me would refuse to be infect other people unless I agreed to allow them to also have an opt out clause on further infection to third parties.
You have to admit it would be quite effective at stopping the common cold.
Think of the Children; Sleep with your Sister
I'll tell you what misconception annoys me the most. It's the idea that you need to agree to the GPL in order to use the software. I find it highly irritating to be asked to click-through a EULA window containing the GPL when I install a piece of software. The GPL is not a EULA, and you don't really have to agree to the GPL if you only intend to use the software. The GPL gives you rights to modify and redistribute the software; if you don't agree to the GPL, there is nothing else that would give you such rights. The right to use the software is implicit in the fact that it was legally distributed to you.
I understand the GPL completely. It means that if I use Microsoft Word to write a novel, I have to give the rights to my novel to the free software community.
Yeah, this is exactly the nonsense that stupid PHBs worry about. They think that if they use Linux in their organization, say, as an Apache web server to serve up static "about us" web pages, they have to give the rights to their own proprietary software, which has nothing to do with Linux, to the community. I just don't "get" where the heck people come up with this nonsense.
1. The GPL is viral
2. The GPL is unenforceable
3. You can't charge for GPL software
4. The "liberty or death" clause applies absolutely
5. Distributors only need to ship the source code they alter
6. Distributors only need to supply source code, and not the means to use it
7. Distributors don't need to provide offers of source code
8. Distributors only need to offer source code to their customers
9. Distributors only need to link to the license text
10. I don't think that word means what you think it means
Basically it says something like "Your sourcecode is to be available, penguins are to be worshipped, but are to be referred to as GNU/Penguins, and men are not to shave". If you don't care about all that, you can skip to the end, which is a good part and has Marvin in it.
You are approaching the issue of freedom from the completely wrong angle. When you put a work under the GPL who gets the freedom?
Is it the developer? No, the developer gains no additional freedom by placing the work under the GPL.
Is it the user? No, though there are some nice clauses about requiring source code to be provided on demand, the user is no freer with a GPL'd work than with a work in the public domain or one covered by an arguably "freer" BSD-style license.
Then who gets the freedom? Good question! The software itself.
How can an inanimate thing like software gain freedom? Let me explain. By licensing software under the GPL, it guarantees that the software cannot be used in other non-GPL projects (give or take a license). Any code that comes into contact with GPL'd code gains the same freedom and the process continues so long as people continue to use the GPL code in their projects.
So software freedom is freedom for software. Free Software meets developers on an equal footing, not one based on a master/slave relationship like BSD licenses define. Closed source software treats software code as property, not much different from treating slaves as property. The GPL gives software code its very alienable right to not being used so shabbily.
I find it amusing how the article attempts to claim the GPL isn't viral, using the following arguments:
* Microsoft may have first called it that (therefore it must be false.)
* The GPL doesn't infect other software on the same computer. (DUH?)
If I use any GPL code in my application, even one line, I have to release my application under the GPL license. Throw all the pointless qualifications you want around it, like only if I release the application to the public, and I can still release it under other licenses, and all the related conditions that likely apply to 1% of real world cases.
As a developer, I believe that developers have a right to make a living from their code. I also know that so few people donate for free software that most developers who rely on donations have to do something else to pay the bills. At the same time, I like to release 95% of my work as open source, so other developers can use it, some of which may also be trying to make a living as a developer. The Apache, BSD, even LGPL licenses handle that just fine.
Trying to spin the GPL as non-viral is foolish - the free software community should at least be honest about their agenda. I'm not saying its a bad agenda, it just happens to be incompatible with mine.
That the courts in any country have unambiguously stated that dynamic linking creates a derived work, and this isn't just the FSF's attempt to stretch the concept of a derivative work beyond any reasonable expectation; similarly, that there is any legal significance to the "address space distinction".
If you are developing your code from scratch, you are free to other versions of it under whatever license you see fit -- the GPL is a non-exclusive license, so you are free to license your creative work in other ways at the same time.
If you are trying to use someone else's GPLed code, track down that person and try to get a non-GPL license from them. Is that so hard? It's exactly what you'd have to do to get access to someone else's proprietary code, except that you get to preview the source.
If the author want to license his code to you in a non-GPL way, well, it's his creative work -- he can do what he wants. Start from scratch or find another vendor.
8. Distributors only need to offer source code to their customers
If distributors opt to provide an offer for source code, then under section 3b, the offer must be good for three years, and must apply to "any third party." No distinction is made between commercial customers and anyone else who might be interested in the source code.
Does this mean any manjack can walk in off the street and ask for the source? Or is it meant for re-distribution or further on sales? Not entirely clear and I know it only applies to the 'offer' mentioned in point 7.
I don't think most folks have an issue with giving a customer the source, but giving the source away on a project seems inane.
Yes, I know folks like SugarSuiteCRM, et al. provide free and beefed up versions, but still, without giving details this kind of fuzziness would/could seem detrimental.
And finally are there measure for what is meant by 'offering' the source? Could it be in a small ad in my local paper? Just wondering and no, IANAL.
$30 Off All Plans: Use code TRIPLESAWBUCK
At what point is my software considered a derivative work?
If a program relies on a GPL program to function, can it still be considered a separate work? If my program calls a GPL program and uses results from it's output files for further manipulation, is this allowed because the programs are not interacting directly? Could the GPL program be distributed with such a proprietary program? Even if the GPL program were modified to facilitate this, such as outputting its internal data structures to a formatted file, only the modified GPL program would need to be released, right?
What other forms of communication between programs are allowed and disallowed without converting all the licences to GPL?
Doesn't the "No Warranty" section apply to the user of the software, in addition to the distributor? Having the user acknowledge that they understand there is no warranty for the software is useful and desirable.
The OP is is saying exactly that the GPL does not line up with this set of goals. If I'm trying to make a *tool* that will always be available, then I will use the LGPL because that *tool* will always be available and usable.
By a developer making his libraries "free" only under the GPL (and not a more free license like the MIT/BSD or even LGPL), then he's forcing anyone that wants to use this shiny tool to also make their software free under the same restrictions. That is why the GPL is "viral" -- not because it "infects" any software that it is stored next to -- but rather because GPL code is useless unless you're working on other GPL'd code.
Sometimes the GPL feels about as enjoyable as enforced communism to me.
I just don't feel very "free" when working under the GPL (and I have contributed to several GPL projects). It's just that something more along the lines of the LGPL would be my license of choice when creating a tool that I want to be available and free and useful to others for many years to come.
If anything that I've said is a myth, then please debunk it -- I would genuinely appreciate it.
--clint
GPL is pushed by propaganda zealots, spin doctors, and to make matters worse, lawyers.
It would be nice if the FSF actually noticed trends that damage people's understanding of the GPL and did something about them. For example, many programs place the GPL in the role of a click-through license. This makes no sense whatsoever, and leads people to think that the GPL is a EULA and that it applies to *users* of GPL'd sofware. On top of that, it lends credence to the notion that click-through licenses are worth something.
Another example is MySQL. They don't understand the GPL, in fact it seems to be a willful misunderstanding. They claim that any application utilizing MySQL as its SQL database is combining the two applications into a new program and thus either a) becomes subject to the GPL or b) must purchase a commercial license from MySQL. Gee, what could make them want to interpret it that way? Yet while MySQL is flaunting this definition all over the place, the FSF has done nothing to correct them.
Don't the "tools needed to make the source code useful" include a compiler? And you'd probably need an operating system to run that, perhaps some sort of kernel. Does a distributor of a GPLed program need to be prepared to set up a development environment to make the source code useful for "any third party"?
This may seem like a purposely obtuse interpretation, but as someone with very little knowledge of the GPL, I'm given pause the experts say under the GPL it's not enough to prove source code, but to "make the source code useful to anyone." I'd be very reluctant make my company subject to anyone's concept of utility.
Actually, one line might be considered fair-use excerpting...
Seriously, if you don't want to GPL your application, just don't use any GPL code in it. Why is that so hard? Nobody whines about not being able to incorporate pieces of Microsoft Office into their code. The only difference is that you gan ogle the beautiful source code of GPL applications, so that it's more of a temptation.
You're not going to lose the rights to your software if you invoke GPL code with it. You're not going to lose the rights to your software if you use GPL code to make it (e.g. gcc and emacs don't tarnish your C code). You're only going to have to GPL your code if you actually incorporate someone else's work into it.
Using the GPL is evil, you forever give up your right to make money off of any code. It's like giving up the keys to your house, actually I think there is a clause that allows anyone to make copies of the keys to your house to use to come and go as they please.
It's amazing some of the things people beleive.
As x approaches total apathy I couldn't care less.
The GPL, just like all software licenses, is doomed to extinction. Technology has passed it by. Why should I comply with your so-called 'license terms' when I can easily make an unlimited number of copies of your software without depriving you or anyone else of anything? How is it moral to expect me to?
Software writers working for commercial companies get only a tiny fraction of the revenue their work generates. Fatcat marketing goons and corporate exceutives take most of it, through the legally enforced 'licensing' that keeps their outdated distribution model going.
Regardless of the name on the license, software licensing is about taking away your freedoms. They all try to dictate what you can't do with the product despite that fact that nothing you would ever choose to do with it would ever deprive the licensee of anything. Its your software, you paid for it (or downloaded it, at the least), so why can't use use it however you see fit? Maybe I want to use it on my home computer and also sell it to my neightbor so he can too. The GPL and other software licenses stop me!
I think developers should post their software on their websites without licensing. They could then ask people who download it to pay whatever they feel like it is worth to them. This way, if you want to just use it for personal use, maybe you pay $1. If you want to include it in some larger project that will be sold for a lot of money, you pay more.
Technology will supplant software licenses one day. All of us will be more free then.
You're correct. What's your point?
It's been said already in this discussion, but it bears repetition: If you don't want to release your code under the GPL, then don't. A condition of using GPL'd code is that you release the subsequent work under the GPL. Don't like the terms of the license? Don't use the GPL'd code. Very simple, very clear. To extend the metaphor, consider that your "vaccine" against the "viral" nature of the GPL.
What exactly is your agenda? From what I can infer from your post, it seems like your agenda includes gaining the right to use GPL'd code in violation of the license, for reasons that IMHO you haven't made clear.
Again, nobody's forcing you to use GPL'd code!
Never underestimate the power of stupid people in large groups.
People reuse Microsoft code every single day. Either in source code form (ATL, WFC) or in libraries (.Net, MFC, too many to mention).
Microsoft puts very few restrictions on developers using their libraries and code, and the few restrictions there are do not compare to the heavy-handed Software Freedom protections of the GPL.
One question I've wondered about the GPL. If I write a program that links to a shared library that is GPL'd, do I need to GPL my application as well?
For example, if I write an application that makes a call into something like OpenSSL, does my app have to be GPL'd?
Avoid Missing Ball for High Score
To combine two previous posts: This is not the normal case. The normal case is that you want to take a GPLed program, and change one line, or a hundred, but most of the program is the GPLed original. It's 99% theirs, not 99% yours. And that, in all such situations, robs your argument of it's moral force.
But what if it's really as you say? You've got your program, and you want to add one GPLed line? Yeah, you're right, it's going to make you GPL the whole thing. (Yes, I just admitted that your point was correct.) But so what? As someone else already posted (in reply to the chef using the GPL spices in his/her recipe), if you don't like the terms, don't use the code. You wrote the whole program yourself, but you can't rewrite that one line that you have to copy from GPLed code? Right. Sure. Either you are capable of rewriting the line (in which case, do it and stop being lazy), or you didn't write the of the program (in which case the situation as presented is just an academic exercise rather than a realistic scenario).
At a previous job, we had a huge code base - literally a million lines. We wanted to use GPG to check the signatures of some software that we were supplying over the internet to our installed base (didn't want them running something that didn't really come from us). But we didn't want to GPL all million lines of ours. No problem - we ran GPG as a separate executable, invoking it with a system() call and checking the return code (IIRC). Of course, this meant that we had to make the code for GPG available, but that wasn't a big deal. This is one way to handle the "adding a little GPL" scenario in the real world.
The GPL is not a restriction on code use, it is a restriction on code distribution. You don't lose the rights to your code simply because it invokes or uses another library.
For example, dynamically linking to a GPLed library does not taint your code -- that is a separate piece of software that you code uses. On the other hand, if you distribute the GPLed library, you better also distribute the source code to it.
The GPL is effectively a poison-pill license, not a viral license. It's saying that you can only write GPL code using a GPL base; a "viral" license would force the GPL on other code.
For example, people use Apache code modules to support GPL projects and products. If the GPL were viral, the Apache code would have to be redistributed under GPL. The GPL is a poison-pill in that you couldn't take that GPL code and merge it in to the Apache code base; only the original author or their legal representative could submit that code under an Apache license.
Of course if my understanding is wrong, then every web application out there running on Apache or using Apache libraries needs to rip out all GPL code or rip out all Apache code. Never mind all the other relevant licenses like Mozilla or BSD.
I do not fail; I succeed at finding out what does not work.
And Microsoft places no restriction on the redistribution of libraries, nor on the ownership and licensing of any code that you author yourself.
Whether or not doing XYZ forces you to release your code under GPL is besides the point. I want to make it clear that people reuse Microsoft code all the time, both in static and dynamic libraries as well as in source code form for some technologies. Distributing applications based on these libraries is virtually unrestricted. Redistribution of MS libraries is encouraged by the MS licenses.
To say that MS code is unavailable for redistribution is erroneous.
There is no question what the GPL says if you listen to RMS in the new documentary "Alternative Freedom"! He is not only the inspiration for the title, but also the most direct and to-the-point interview in the documentary.
Check out: http://alternativefreedom.org/
Documentary also features Lawrence Lessig, Danger Mouse (of Gnarls Barkey), and others...
Obviously it would be up to the court to determine the appropriate de minimis limit for copyright law to apply but I can understand you being cautious and counting even a single line. Leaving that aside, you're talking crap. If you use GPL code in your application then the GPL gives you permission to distribute that application under the GPL. It doesn't force you to. If you have some other permission to use the copyright holders' work then you can rely on that instead. Or you can just not distribute the infringing work.
Other than the additional permission to distribute under the GPL, this is exactly the same as if you'd used a line of Microsoft Word's source code in your work. You either get permission from the copyright holder or you don't distribute. That's the law.
My understanding is that you are able to modify a GPL'd application and profit from it without sharing your changes if you don't distribute it. And running a modified version of a GPL application on a server would probably not count as distribution in most cases.
This allows companies such as Google to modify and profit from GPL applications without offering their changes to the community. (I'm not saying they do, but it allows them to)
Are they planning to try and stop this with GPL v3?
I find when i talk to developers that this is actually the biggest misunderstanding of the current GPL, developers often seem to think that if you modify some GPL software and integrate it into a web application the web application has to be GPL'd whereas to the best of my understanding that is only true if you distribute the webapplication - which most companies do not.
My favorite misconception:
I actually heard a PHB state as fact that "GPL" stood for "GNU Per Linux" and was just an abbreviation for "GNU/Linux".
You don't know how hard it was not to ask him what BSD stood for.
--MarkusQ
The biggest problem I've seen with GPL is that static linking your (completely NON GPL) code with a GPL library seems to make the entire program subject to the GPL. While dynamic linking to DLL's doesn't. This has always been the biggest sticking point with using libraries under full GPL (not LGPL) as part of a piece of software. I've had to avoid using many useful GPL libraries simply because the platform I'm on required static linking.
If they would straighten this out in the license I think GPL software and GPL licenses would see a LOT more use. Having a distinction between static and dynamic linking (particularly given all the different ways you can link code these days) makes usage rules much more confusing. A non GPL program shouldn't be subject to GPL unless it's source code actually contains stuff copied from GPL sources. Simply static linking with a GPL library shouldn't make you GPL too.
This is really the only objection I have to GPL, all the other terms don't bother me at all.
Milo from Kangaroo Koncepts
If I have a 10 million line program, and it links to and calls FFTW (a GPL Fourier Transform package made up of a few thousands lines of code), my 10 million line program is now under the GPL. I cannot offer that program to outside organizations without also offering to make all 10 million lines of source available to them. "Viral" is not a bad description of this effect.
I'm not saying this effect is good or bad, but it MUST be accurately understood.
The authors downplayed this too much, and appealing to anti-MS sentiments was manipulative.
I've found that a Venn diagram helps a lot when people misunderstand the GPL.
If you never let anybody see your work, you give away no rights: (dot in center)
With a proprietary licence you give away this many rights: (teeny circle around it)
With the GPL you give away this many rights: (slightly bigger circle around both)
With the BSD you give away this many rights: (much bigger circle around them)
If you dedicate it to public domain: (huge circle around everything)
At this point the light seems to turn on for people and they say something like "You mean the GPL is closer to a proprietary license than the BSD?". That's when I know the confusion has finally been dispelled. Nothing annoys me more than people who are afraid of the GPL because they believe it will somehow take their rights away from them.
If I'm writing a piece of Open Source code I don't mind being put to commercial use, I will apply the LGPL. That's what it's for. If you find a GPLed library on Slashdot that you want to use in a commercial product, don't give up looking for an LGPLed or public domain version. Otherwise, accept that you're developing a commercial product and have your boss/client cough up the change for a commercial library license; explain the difference in cost between purchasing the license and paying you for man-hours to develop that license yourself. If it's a small enough library, write it yourself, stick an LGPL on it, and upload it to SourceForge!
No one says you have to use GPL software to build your program.
If you do, you don't get screwed over. You just don't get to screw anyone else over. You can't forbid someone their natural right to freedom of expression, discovery, and invention, like you often can with traditional copyright.
You get the same rights every other GPL developer gets: the right to modify the work in question. You give up your right to forbid others to be creative; just like the original author gave it up to allow you to modify his GPL work in the first place. If you want more rights than everyone well, great. Start from scratch, and horde your own ideas. Re-build your own private wheels, over and over again at every job you go to. Let those who want to build a communal software base build one.
All the GPL does is transform software from a license into a real, tangible property right. Unlike copyright, you can do whatever you want with your own property. You just can't sell it, or give copies away, and then tell people what to do with something after it belongs to them. Like normal property rights, once someone else has their copy, it's theirs to do what they want with.
I think that's the way the world should work. I don't like having to wonder if it's legal to apply this colour of ink to this or that medium, or whether someone else has done it first. I don't like having to re-invent yet another way to solve a problem because my last three employers own the last three solutions I came up with. It's a waste.
If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL?
Yes, because the program as it is actually run includes the library.
You're operating under an assumption of valid copyright law, for starters. copyright monopolies themselves are the primary injustice the GPL is designed to fight. You're saying "wah, if I use the GPL, I can't restrict others with copyright monopolies the way I want to". Freedom to own slaves vs. freedom from slavery. The restriction on modified or unmodified redistribution in copyright law is the thing I oppose (I don't necessarily oppose attribution rights.)
"Without copyright law, the GPL would be unenforceable. It would also be unnecessary".
- I would have no difficulty with you releasing binary-only forks of "my" codebase, so long as copyright (and patent) were abolished. You're free to ignore the GPL so long as you ignore copyright law. I'm happy for you to do this. Contempt for an unjust law should be encouraged.
You are always "free" to contact the authors of a GPL project and pay for a dual license that allows you to do what you require. Trolltech's QT is the perfect example of this! I do this with my own projects as well.
--jeffk++
ipv6 is my vpn
I have never liked the term viral applied to the GPL, not because I want to hide the fact that you have to license your modifications under the GPL, but because it was deliberately chosen for its negative connotations, and isn't really an accurate description of how the GPL works anyway.
The main criterion for something being viral is that it is self-propagating. It goes and injects itself into your body (or computer, or software) without permission. The GPL doesn't do this. You choose to use the GPL in exchange for putting your code under the GPL, or you choose not too.
Secondly, viruses are almost always regarded as a negative thing. Not only does it sneak in behind your back, but it makes you sick, slows down your computer, brings networks to their knees and sends your personal information out to shady people. Neither I nor thousands of other free software developers consider releasing software under the GPL to be harmful to us.
People have been burned by writing large pieces of software that used GPLed code in it, without understanding what their obligations under the GPL were until they had already made a significant investment into using it. It is a shame that those misconceptions occur, but it wasn't because the GPL tricked them into it. The FSF and other free software developers don't want to dupe their users into doing something that they don't want. We want them to make informed decisions about how they use their code.
The use of the word viral to describe the GPL feeds off of misunderstandings to create the appearance of malice where it doesn't exist, and that is why it shouldn't be used.
gcc and emacs don't tarnish your C code
GCC doesn't tarnish it so long as you're not using glibc, or if you're only dynamically linking against it. If for some reason you have to statically link against it, welcome to GPL-land.
The GPL has its problems when a GPLed application has a plugin functionality, because then the plugins have to be GPLed, too, or else they cannot be used. Usually, plugins are loaded as shared objects (that is, they are linked dynamically at run-time), so the GPL applies here too. This can be solved either by providing a different ABI (rather hard to achieve) or by putting the application under another license.
Also, GPL for libraries is almost always a bad idea. Unlike programs, libraries are linked, technically weaving code together, but no lib code gets modified. Thats why the LGPL exists. xvid is GPLed, but this is OK because xvid cannot be used in closed-source binaries anyway (because of mpeg4 patents).
This sig does not contain any SCO code.
I'm a contractor who developed a custom kernel for an embedded systems customer - so I guess I distributed it to them.
Of course I gave them the source; and AFAIK they gave their customers the source; and their customers don't yet ship externally, but they've given source to GPL'd stuff in the past so I expect they will release it if/when they ship.
Does that mean I now have to host the kernel for *EVERYONE*?!?
Anyway, FFTW was a bad example. From their FAQ:
Pay for the thing if you want to use it.
Igor Presnyakov stole my hat
If I use any GPL code in my application, even one line, I have to release my application under the GPL license.
Then re-negotiate a license with the copyright holders, as you would have to do if you used a line of code from anybody else.
Could you explain what rights the GPL gives me, the developer whose code is GPLed?
In theory, it gives me the FSF's protection, but the right to defend my copyright is something I already had.
It allows others to see and use my code, but I could have granted that without the GPL and with less restrictions on the developer community (if I had used the LGPL, for example).
What extra rights does it give me? How does it extend the law and enable me to do things I couldn't otherwise?
This isn't a criticism of the GPL, it is a criticism of the suggestion that the GPL makes new rights and gives me them. The GPL gives me no rights, but it doesn't take any of my rights away, either.
In short, it doesn't affect my rights.
Yes, because the program as it is actually run includes the library.
I'm not sure I can even parse this. "run includes" ?
I have to say, the parent poster seems absolutely correct to me in that this viral "myth" was not clarified at all. It is viral. And many people don't understand where the line is.
It seems to me that dynamically linking DOES taint your code. But obviously there is confusion here. Saying things like, if you don't like the GPL license, don't use GPL code doesn't clarify this. Saying the GPL is not viral does the opposite of clarifying. This is no way to remove uncertainty.
... is that the GPL is pro copyright because it's a license. Wrong! The success of the GPL is the ultimate proof that all those arguments like ... "copyrights are pro creator, pro business, an incentive, protection, pro commecial..." ... are lies, frauds, and scams. Copyrights like any coerced monopoly or any personal "right to sue" for market share will slow business, hurt individuals, are predatory rather than protectional, and are a disincentive to creation and productive behavior. The GPL basically fought fire with fire. The greatest victory of the GPL is that it broke the software industry copyright cartel and is forcing them to compete off of merits and service rather than off of threats and control.
How can I re-distribute microsoft office with my source code for free or within my $10.00 commercial project? The license is no different in that respect from a dual licensed GPL/Commerical project like QT.
--jeffk++
ipv6 is my vpn
Since this is a story of GPL confusions, I have a relevant question...
.BSP format" phase which is far less intimidating to me, and I can get on with my life.
Recently, back in January actually, GTKRadiant was put on the GPL as of 1.5.0. For a long time that program had an EULA that forbade you from using GTKRadiant in your own commercial products without paying id (or whoever maintained GTKRadiant) hefty licensing fees.
Does GTKRadiant being under the GPL now mean that I may freely use GTKRadiant to build worlds in my own game even for commercial purposes without paying any usage royalties? Or can a GPL'd program like GTKRadiant still have "no commercial use" conditions tagged to it?
The "level editor" stage of making a one-man-produced game has been my largest hurdle -- I can grasp a lot of concepts in computer science (I even have a B.S. degree in it) but I still can't wrap my head entirely around GUI programming (don't laugh) to competently write my own world builders. So if I can now use GTKRadiant for my game (even though it likely won't be a commercial game, but you never know) then, well, I can skip right to the "figure out the
Yes, but how's that different from any other license out there? If you use Microsoft's code in your application, you're going to have to release the result under the license terms dictated by the license you have from Microsoft to use their code. In that respect the GPL is no more viral than any proprietary software license.
using GCC for your own commercial apps is impossible then,
because you have to include libraries and headers, which are GPL'd.
thus this instantly "infects" your code, forcing you to make it GPL'd as well.
as soon as you "include strings.h" or io.h or whatever, bingo.
or if you use one of the libraries (glibc comes to mind)... oopsy!
I really don't believe this was the intention.
If I develop a multi-million dollar commercial app, and need one GPL'd library,
it shouldn't make all my code GPL.
ok, so I write a commercial app with 10 million lines of code, and I happen to use
a little 100 line GPL static library - then all my work is suddenly derivative?
I don't think so!
I would do it this way - I'd make my commercial app, include whatever GPL libraries I need,
and release the code to the GPL portions I use. That's fair!
I'm releasing the parts I've used. Giving credit where its due, and not making money off those parts.
Let me explain the analogy. If someone has a cold (if some code is licensed under that GPL), and they come into close contact with another person (the code is linked with some other code), then that other person also gets a cold (the other code is also now licensed under the GPL).
Not a perfect analogy, but not bad. Feel free to propose a better one.
And so far as people paying for what they want to use, I never said different. Perhaps you should ease up on the crusading.
The strange thing is that NO MATTER what choice you make, the software should still install. "Declining" the GPL simply removes the right to further distribute the software.
So, the correct behaviour should be: Present the GPL -> Accept/Decline. If Accept, indicate that distribution is under the terms of the GPL, and continue. If Decline, indicate that distribution is only possible under the terms of the GPL, but use is free, and continue.
In other words, why bother? I can decline the GPL, and still USE the software, legally.
YMMV
Ratboy
Just another "Cubible(sic) Joe" 2 17 3061
The reason "viral" is inappropriate and doesn't make sense, is that all other uses of the word "viral" in the history of the word, mean something completely different. A virus infects other, unrelated things.
This new, radical concept of "viral" invented by Microsoft, is talking about infecting a derived work. Well, guess what: if you make a derived work of almost any of Microsoft's products (such as, say, Microsoft Windows itself), your derived work is going to be even more restricted. In fact, it's probably flat out unauthorized and could get you sued.
Yet MS Windows doesn't get tagged as "viral" even though its license is infinitely more restrictive. Did the same person who called GPL "viral" call his own product "superviral to the point of lethal?" No. Did he say, "it's viral, but less viral than 99.9% of the software out there?" No. It's pretty damn obvious that the word is intended to be merely pejorative without being an enlightening or accurate analogy. If GPLed software is less "viral" than 99.9% of the software out there, then applying the word as though it were somehow distinctive and unusual, isn't intellectually honest.
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
In my experience, GPL code is not beautiful. It's scary how bad some of it is, which is why I tend to prefer to bury my head in the sand and pretend nothing is wrong, except in the cases where something bad happens and I have no choice but to scour the source. If you want to get an idea of how not to write code, download a random piece of software via freshmeat. Odds are it will have all sorts of problems.
> Even after RTFA, I still feel that by choosing GPL I am giving up my freedoms as a developer.
Eh? If you're developing on software you wrote, you can dual license it and put it under more than one license (e.g. offer either free GPL or let them have it under BSD for a fee). You're free to offer your code under as many licenses as you see fit.
If you're modifying some source you don't have rights to, you had no freedoms to give up to begin with--you wouldn't have any right at all to use that source code unless they put it under a license like the GPL.
Besides, "secret spices" are bad--it's better for everyone to learn the better ways if there are better ways of doing things. Or have you forgotten all the things you learned from others and their examples as well as how those things dwarf what any person could've learned all on their own?
Tangentially en topic, but this is a good chance to post my article which slashdot has rejected twice now:
I am the developer of Jin, a client for chess servers, licensed under the GPL. About 6 months ago I was contacted by the Internet Chess University, asking for a commercial license for Jin. After negotiations failed, IChessU decided to nevertheless use Jin, but did not release the full source code of the client they built. I have contacted both the FSF and the EFF, but they were unable to help me because they are not licensed to practice law in Israel (both I, and the owners of IChessU are Israeli). I have no intention of dropping the issue, but I am now stuck with paying a lawyer out of my own pocket, which is very limited. Read the whole story.
The question is then, what kind of protection does the GPL really give the small-time FOSS developer, who can't afford fancy lawyer to enforce it? What does this mean for such developers?
THANK YOU!!!! Damn where are my mod points??????
A second of reflection gets you:
"Great men are not always wise: neither do the aged understand judgement." Job 32:9
"Mere aggregation" (i.e. storing GPLed software next to non-GPLed software) doesn't 'infect' the non-GPLed software. Otherwise, Linux distributions would have forced all those non-GPLed projects (Xorg/XFree86, Apache, Perl, Python, ...) into GPL-space years ago.
Linking against a GPLed library (or object file) is a whole different matter, and is a short-term tactic to ensure that only GPL-compatibly-licensed software can gain the benefit of powerful and/or unique features included in said GPLed libraries. In a way, it's anti-competitive, but it's one of the few ways the Free Software community has of fighting back against offensive proprietary software authors.
Now, I'm not going to defend the use of the GPL wholesale for libraries and similar software; the question of whether to choose GPL, LGPL or MIT/BSD depends on what the code is intended to do. If I was creating something that was intended to be a canonical implementation of a file format or network protocol that I would like to see become widely-used and deployed, I'd probably use a MIT/BSD license for it.
There are two benefits to GPLed code: (1) you can redistribute it; (2) you can fix it if it's broke, or adapt it to work better with your code. Microsoft dynamic libraries give you (1), but not (2). There is some value-added to using the open source libraries.
So to answer your original question -- you're right -- proprietary libraries aren't always number one choice. Sometimes they are, but often they're not. So this is why I have yet to willingly use Trolltech's QT product on a project, because they only offer the two extremes ($2000 per developer, or GPL'd), and why I support GTK. I realize QT is prettier, has better docs, and is more mature -- but it is so frustrating to work with the licensing that I have cast my lot in with the good folks at Gnome.
So, I RTA and then check out Harald Welte's GPL-violations Project page and I have an epiphany: I should start a company (or 2 or 3 or 4) with a business model based on GPL non-compliance because these sissies won't actually sue anyone. Seriously, to-date there really doesn't seem to be any incentive (not talking about "morals" here) to comply with the terms of the GPL, at least not until they catch you the first or second time. IMHO, its time Harald &Co. spanked down on someone hard. Spank somebody like Siemens, Fujitsu-Siemens, Asus, or Belkin [who apparently ripped off netfilter]. Show the world that the FOSS community is not just a bunch of spineless hippy freaks with big ideas about freedom and rights and whatnot but with no wherewithall to enforce any of them. BTW, IAAL, so, if you like, Harald, call me up and I'll do it. Heh.
The law is not an ass. No really.
"If I use any GPL code in my application, even one line, I have to release my application under the GPL license"
That's like saying cookies are viral. If you eat a cookie, even just one, then you have a cookie in your tummy. If you don't want to have cookies in your tummy, all you have to do is remember to not eat them.
If you don't want to license your code under the GPL, all you have to do is write your own damn code.
Why yes, I AM a rocket scientist!
By a developer making his libraries "free" only under the GPL (and not a more free license like the MIT/BSD or even LGPL), then he's forcing anyone that wants to use this shiny tool to also make their software free under the same restrictions. That is why the GPL is "viral" -- not because it "infects" any software that it is stored next to -- but rather because GPL code is useless unless you're working on other GPL'd code.
The GPL is perfect for entire systems of code, since that's exactly what you want. If you're extending GPL software, the extensions should remain GPL. Your last claim is false, because almost every GPL compiler does not apply the GPL to its output. You can compile non-GPL software with gcc, and so long as you don't actually incorporate GPL libraries into your work, it's yours to do with as you please. There are two possibilities if you want to use GPL code in a non-GPL work: The GPL code makes up a small portion of the overall work and you can just rewrite the functionality yourself, or the GPL code is a large enough portion that you can't feasably rewrite it. In the latter case, you have to ask yourself whether it would be fair to the authors of the GPL code to release a non-GPL work that consists mostly of their work.
I've always been amazed at the fact that people consider their programs to be their own special property when in reality they are building on 60 years of research in computer science into compilers, languages, operating systems, and algorithms that is completely freely available to them. My opinion is that we are now at the point in computer science where any software development short of strong AI is merely a small incremental improvement on those years of research, and that it's absurd to assign ownership of a software project to the last person to tack something on to it. Can anyone claim that they have put more time and effort into their own software projects than the collective work done in building all the GPL software that's available? Even the biggest commercial software projects in history are beginning to be dwarfed by the total contributions to GPL software.
Sometimes the GPL feels about as enjoyable as enforced communism to me.
If you don't like it, lobby for reasonable copyrights and patents. If the law was reasonable, the GPL would be unnecessary. As it is, the BSD style licenses are abused by companies who take open work, modify it and copyright (or patent) it so no one else can use the simple incremental improvements for 95+ years. Make software equivalent to mathematics like it should be, so that every improvement can be freely shared. This doesn't mean that commercial software must fail, it simply means that data structures and algorithms should be recognized as mathematics. Windows won't suddenly be freely available or unmarketable because they have invested time in creating actual copyrightable works like images, documentation, fonts, etc.
It's just that something more along the lines of the LGPL would be my license of choice when creating a tool that I want to be available and free and useful to others for many years to come.
The LGPL is specifically for libraries because it makes sense to allow people who may not have a choice in development licences to be able to use it. The reason it arose is mostly a technicality of how modern compilers and software development work. Technically, you can use any GPL program you want within your non-GPL software, but you have to do it without actually linking against it (which pulls copyrighted macros and inline functions from header files). Feel free to run a Linux system full of GPL software in a closed virtual machine and control all the input and output to the system so that it appears the VM is completely your software, but you'll still have to distribute the whole Linux system and source along with it.
I still think the GPL is proper for any stand-alone application simply because it prevents companies from building an interface around the
blagggggh im tired of hearing this. every piece of gpled code is good work that some smart guy made that you cant use in your commercial project and if there was no gpl they mightve just made it public domain so i blame the gpl for my not getting to use it. gpl saps resources that might have been spent making stuff i can use, and causes it instead to be spent making thigns i _can't_ use. thats why its not as simple as saying "just dont use gpl software"--because it was released under gpl, it is unavailable under another license.
The thing is, there are really two main kinds of code. There are libraries, which are intended to be dropped into other applications, and there are entire applications on their own. The LGPL, surprisingly enough, works better for libraries, and the GPL works better for applications. The problem with always using an LGPL style license is that people can always work around it to "embrace & extend" your code in such a way that it pretty much stops being free. For instance, if you release some image editing application under the LGPL, and Adobe goes and integrates it with Photoshop as a library, they can basically get all of your features, without contributing anything back. Anyhow, you compare the GPL to enforced communism. That's a ridiculously extreme example. Enforced communism takes everyone in an entire country, and via threat of physical violence, forces them to give up what they've created, earned, and done. The GPL is completely optional. You don't have to link with any GPL libraries, or modify any GPL programs. You can write them yourself, or you can license them from proprietary vendors, or you can use a BSD or similarly licensed piece of software. Do you complain about every proprietary piece of software you buy? Because remember, that gives you less freedom and flexibility than the GPL does. You have the choice to use or not use GPL'd software. It is awfully tempting to use it, because the source code is right there. But it is your choice, and if you choose to use it (and I'm referring to using the code in your program, not just using the final product), you have an obligation to follow the license. It's not forcing you to do anything; it's just an offer that's really tempting.
Ahh...I see. So you're referring to your practise of seeking out people with colds, deliberately coming into close contact with them, and then complaining when you have a cold too? That does make a little more sense than the transmogrification, to be honest, but I'm not sure that's the typical behaviour people exhibit around viruses.
Hmm...tough one. Let's see: it's a bit like if you write a 10 million line application (you write a 10 million line application), you want to use FFTW in it (you want to use FFTW in it), so you acquire a copy of the software (you acquire a copy of the software), and you follow the terms of their license by giving them money (you follow the terms of the GPL by releasing your source).
How's that one?
No way! I've got a big, shiny, high horse and I'm going to use it to plunder the East!
Igor Presnyakov stole my hat
Solution: Make your 10 million line program link dynamically to the FFTW shared library, and then don't distribute FFTW (or distribute it separately).
Nobody is forcing me to use GPLd code. But they are running around pretending they are creating FREE code, helping everyone in the FREE software community by providing something. They are not. They are only helping a small subset of that community, the small subset that produces only GPL code. GPL code is totally worthless to a project like mozilla, they cannot use it. So quit pretending its altruistic to make restrictively licensed, unfree code.
the GPL code is a large enough portion that you can't feasably rewrite it. In the latter case, you have to ask yourself whether it would be fair to the authors of the GPL code to release a non-GPL work that consists mostly of their work.
I think the problem is that many developers USE the GPLed code, but don't extend it in anyway. They'd like to be able to use the library as is, without forcing THEIR project open. I find the GPL attitude kind of arrogant. I can understand if you extended some GPL code wanting those changes to come back, I don't have a problem witht that. But if the GPL code is just used by my code, I don't think its fair they tell me how I have to license my own software.
When I was working for Be Inc. as a tech support guy, my co-worker developed a 3com 3c509 driver based on Donald Becker's GPL Linux driver. BeOS users suddenly had something very useful, a driver working in BeOS that thought it was talking to a Linux kernel, but the wrapper made it interface with the BeOS network server. Anyway, long story short, the GPL is viral, as Be Inc. started to receive emails from the FSF about the driver download. Apparently Be Inc. would have to GPL the BeOS kernel to use the driver, or that was according to the Be Inc. legal dept that forced us to take down the driver+wrapper kit. I read the email exchange, and RMS himself was involved in the process. So point one is apparently the authors attempt to change history or something, not sure. Fact is the GPL-left version was designed to work-around the viral aspects of the license, so you can link to gpl libraries, etc... to not have to be gpl yourself (the code linking into gpl lib's).
In response to the 3rd point, about the price of GPL-ware, and freedom. Let me be clear, the GPL is a license, which outlines restrictions. The word restriction, and freedom seem almost mutually exclusive except in terms of establishing the contrast of each other. Aka the provision is the GPL about how you MUST provide the greedy original author with your cool enhancements is a restriction of the GPL, not a freedom it provides. The price of the GPL is a non-issue, as I just showed how the gpl is not free, as in freedom, and the author of point three points out that the GPL does not guarantee free as in "free lunch, free beer" (aka price).
Point 9 is funny. When BSD code is assimilated into the GPL I notice that the BSD clause of always attributing the author is mostly ignored, and even replaced (many times) with the GPL-ware authors name. So complaining about not having the entire GPL license in each and every file header is a joke. Of course this is a case by case situation, but really, the common case is that the GPL licensed project typically has a person who takes other peoples enhancements, by force of license, and represents them as their own without attributing the original (patch) work to the contributing author.
People, there is a better way for you to contribute code to the world. The BSD way! In short, and without starting a bikeshed flame war, the BSD way doesn't care about restricting you by the license, except to not steal the fame for the code, aka give credit to who you accept BSD licensed code in your project, and who cares if you are commercial project, or philanthropic. Freedom should always win over greed.
It isn't a lie if you belive it.
Go pick a fight with someone who actually might disagree with you. And quit being a prick.
Anyone gives a fuck
(-1, Raw and Uncut is the only way to read)
"If I'm trying to make a *tool* that will always be available, then I will use the LGPL because that *tool* will always be available and usable."
Are you playing with semantics? The original parent didn't say *tool* he said application.
Whatever you released under the LGPL will always remain available but the use of your LGPLed code in closed source applications is a dead end. When the developer of the closed source decides to drop the application its on a path to obsolescence and nothing will bring it back.
As far as GPLed code being useless due to the viral nature of the GPL you are obviously wrong as evidenced by the bergeoning base of open source software licensed under the GPL. Due to the interest in using and developing GPL software its future is ensured and and application or tool will always be available.
Reality does not match your interpretation of the effects of GPL on the uesfullness or longevity of applications.
burnin
I don't really need a solution cause I don't really have a problem. I am happy to avoid GPL software in code that I wish to remain fully proprietary. My example was only given to demonstrate the viral nature of the GPL.
Having said that, I am skeptical that dynamic linking is a way to avoid "GPL infection". I wouldn't want to test the courts on that one.
"Nobody whines about not being able to incorporate pieces of Microsoft Office into their code."
That's because they are allowed to. I can use MS Office, or the IE html/js rendering engine in my program, free of charge, without having Microsoft decide what license my code will be under. If Office or IE were GPL, I would not have this option. Microsoft's works are more free than GPL works.
Disclaimers - I've licensed my software under the GPL, and I've successfully at times advocated GPL and LGPL software professionally.
I agree with the principles of the license. My complaint is that the fine print is difficult to explain to a PHB. Many intelligent people I have worked with have misunderstood one or more of the various clauses. In some cases the clauses appear intentionally vague and prone to misreading. As a non-lawyer, it is challenging to explain the GPL license to someone who has it in front of them. It seems no two non-lawyers will arrive at the same interpretation. The format of some sections excepting other sections, and ill-defined concepts (such as the LGPL clauses about interfaces and what constitutes a derivative work) can create enough confusion in software professionals to drive them towards lesser-performing alternatives just for greater clarity.
Perhaps it would be helpful if it came with a non-binding layman-worded abstract in addition to the preamble, or there was a more comprehensive FAQ about it that what currently exists.
As an example of reaonable confusion- 7zip for Windows is GPL licensed. Does the self-extracting archives it creates constitute a Derivative Work?
Question:
Say there's "Big proprietary software project A", which has been under development for years. The people who developt A find "small GPL'd tidbit of code B" which does exactly fill a niche that they've wanted to fill.
This is a common example in these discussions.
People say you can, as the copyright holder of software B, release it under as many licenses as you want. But, why would you do that if you release it under the GPL? Cause pretty much anything else is going to place less restrictions on the people who are granted the license.
Say, you write software B, and you GPL it, but you also release it under a license which says that someone can use it, but must attribute the work? Why would anyone choose the GPL over that?
Or, what if you issue licenses on a case-by-case basis? If you allow the developers of Software Project A to add it into their project under a different, non-GPL license, what if someone calls them on it? I mean, what happens?
~Wx
sig?
The first misconception; the money issue
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
(From the GPL version 2 - Emphasis mine)
What the above means is that no money must be charged for *licensing* a derivative work. In other words, not only must the entire derivative work be placed under the GPL, you can't charge more for the GPL licensed work than you would if you were using another license. Note that the word "distribute" is not mentioned in the above section at all. People *really* need to read this, as I've often said, because it specifically refutes the idea that making money from software using the GPL is prohibited by the license. As that article says, your only obligations are to ensure that a) whichever distribution medium (CD-ROM, ftp site, whatever) that contains binaries must also contain the source code of said binaries, and that b) you don't try and charge for downstream use of the license.
I'll say it again...PLEASE go and read the above link about paid distribution of GPL licensed software.
The second misconception; the linking issue
6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.
(Excerpt from the Lesser GPL - emphasis mine)
For combined derivative works including an LGPL licensed library, it could definitely be argued that this is not a hard application of copyleft, and that those who want it are being given weasel room. The other allowance that the LGPL makes is that an LGPL library can be combined with either a library or an application not under the GPL, and that while the LGPL library itself stays under the LGPL, the resulting combined application does not have to be.
I personally consider the LGPL deeply hypocritical in light of Stallman's previous thorough attempts to discourage use of the BSD license. He also, however, states here that the LGPL is only intended for use with libraries which imitate functions already present in commercial software. Hence, he implicitly concedes here that he is attempting to build a code monopoly in order to enforce increased use of the GPL. He cites appeals to popularity as one reason why people might try and coerce a software author into using the LGPL, when to my mind his own fears of a lack of popularity must surely have been the reasoning behind the LGPL's creation.
Although it is true, as stated above, that there is no prohibition against making money from the distribution of GPL licensed software, the GPL is likely to force those who wish to sell software (and who are accustomed to capitalist economics) to reconsider their strategy. The reason why I say that is because in order to be ultimately successful, a vendor following the capitalist process must usually rely on the creation of exclusivity, or a monopoly. This has also been called the "unique selling position," and what it means is that if you are one of ten different vendors selling a given product, you need to create a unique reason or incentive for a potential customer to buy from you, as opposed to one of the nine other vendors. It was that exact principle which led to the fragmentation of commercial UNIX, as incompatibility was born out of each vendor's desire to create a *unique* product, hence giving a customer incentive to buy from that vendor rather than the others. This principle is also why the recipe of Coca Cola, as another example, has been kept secret. If other companies knew the exac
If I use any GPL code in my application, even one line, I have to release my application under the GPL license. Throw all the pointless qualifications you want around it, like only if I release the application to the public, and I can still release it under other licenses, and all the related conditions that likely apply to 1% of real world cases.
And if I took one line of code from your commercial project, you would sue me. Basically, you're looking for a free lunch. BSD style licenses offer a free lunch, and it's admirable of them to be so generous. Unfortunately, generosity does not always pay off, especially when it's unconditional in the face of things like copyright and patent law.
As a developer, I believe that developers have a right to make a living from their code. I also know that so few people donate for free software that most developers who rely on donations have to do something else to pay the bills. At the same time, I like to release 95% of my work as open source, so other developers can use it, some of which may also be trying to make a living as a developer. The Apache, BSD, even LGPL licenses handle that just fine.
Consider how you make a living by writing commercial software: You write some code, test it, and then it's yours and your children's for 90 years after you die. If you don't do that, it likely means you assign your copyright to the company you work for, and they keep it forever, and just pay you for the time you worked on it. In either case, it's the long lasting copyright that is at odds with the spirit of the GPL. The GPL assumes that software is essentially mathematics, that sharing it is worth more to everybody than trying to monopolise mathematical expressions, and that if you want to make use of GPL'd code, you have to put your additions back in the pot. It's just a simple contract: Use GPL software, make your modifications GPL. If the GPL code is worth enough that it's infeasable to write your own to do the same thing, then probably your software required less work than the GPL code you want to use, making it kind of silly to want ownership of the result. The future of software development is service. If you think companies will not pay for the development of zero marginal cost software, just look at IBM and RedHat. Just because everyone knows how you did something and can duplicate your work does not make it worthless, it just means that the next big thing can build directly on your work and you can have it for free, too. It's a longer term investment, but most big companies (like IBM) are used to making long term investments profitable. At some point in the (perhaps not so) distant future, strong AI will write software and humanity will simply benefit. Investment in open source is an investment that will pay off in the long run in unimaginably good ways.
Trying to spin the GPL as non-viral is foolish - the free software community should at least be honest about their agenda. I'm not saying its a bad agenda, it just happens to be incompatible with mine.
If the GPL is viral, then commercial software development is a bloated cancer consuming vast amounts of talent and utterly wasting it, slowly killing innovation and scientific research with eternal copyrights and fraudulent patents. GPL software is not viral, it simply exposes the sham of modern commercial software development. You are essentially claiming that the ability to find GPL software and integrate it into commercial projects harms you because then your commercial project has to be GPL. I claim exactly the opposite: By not making your software GPL you are harming your customers by not using the best tools for the job and allowing them the freedom to change and modify the software they buy. Not only that, but the existance of GPL software proves that most commercial software development and purchases are a waste of money. That, I think, is what you're really rejecting, the idea that software is simply a mathematical expression, easily derivable given the proper tools, and not subject to arbitrary laws of artificial scarcity. It's a failing business model you're defending, nothing more.
That line with the opening curly brace in your software is CLEARLY taken from the Linux kernel... Release your software under the GPL NOW!
What an apt name. As others have pointed out, how can inanimate collections of ones and zeros be free? Your error is that the user is, in fact, more free. You've carefully crafted your statement to say that the user is no more free with GPL software than he is with BSD or public domain software. Well, that's true, as far as it goes. But the vast majority of software that the average Joe uses is neither public domain nor BSD-licensed. It's proprietary. And the GPL beats the snot out of that for the user.
Keep working on it, and maybe you can aspire to become "MediocreAnalogyGuy".
Sean
Seems to me none of the first 4 points in the linked article is misleading. After that I gave up reading :
1) AFAIK, any released software that incorporates or even links against GPL software needs to be released as GPL.
2) OK, maybe its been tested in Germany, but in the US, the GPL has not been upheld in court by a judge. The sited case (Drew Technologies, Inc. v. Society of Automotive Engineers, Inc.) was settled ; a verdict was not issued by a judge. I'm not saying that case isn't legally significant, but it can't be considered proof that the GPL is settled law - its not.
3) You have to give it away for free - thats the essence of the GPL. But you can charge for it too. How's this a misconception?
4)"liberty or death" - come on - is this really a common misconception? How many ppl have even heard of this? (and yes, of course most slashdot readers have, but are you really misconceived?)
The FSF can't correct them, they are already correct. The mysql client library is released under the GPL. If I want to make a closed source application talk to a mysql server, I have to either write my own mysql client library, or use the GPL one. If I use the GPL one, then I need to release my app under the GPL, or get a commercial license from mysql AB.
Taken from "Why you shouldn't use the Library GPL" - Later renamed, "Lesser GPL" (boy, if that doesn't sound like some real icky propoganda), written by RMS:
"If we amass a collection of powerful GPL-covered libraries that have no parallel available to proprietary software, they will provide a range of useful modules to serve as building blocks in new free programs. This will be a significant advantage for further free software development, and some projects will decide to make software free in order to use these libraries. University projects can easily be influenced; nowadays, as companies begin to consider making software free, even some commercial projects can be influenced in this way.
Proprietary software developers, seeking to deny the free competition an important advantage, will try to convince authors not to contribute libraries to the GPL-covered collection. For example, they may appeal to the ego, promising "more users for this library" if we let them use the code in proprietary software products. Popularity is tempting, and it is easy for a library developer to rationalize the idea that boosting the popularity of that one library is what the community needs above all.
But we should not listen to these temptations, because we can achieve much more if we stand together. We free software developers should support one another. By releasing libraries that are limited to free software only, we can help each other's free software packages outdo the proprietary alternatives. The whole free software movement will have more popularity, because free software as a whole will stack up better against the competition."
I can't believe developers out there follow this crap. It's worse than fundie religions. Limiting libraries to "free software only" is just that - limiting. It limits the potential of free software. It potentially limits my choice of software to "free" or "non-free". I'll tell you what gives me freedom - when I see "free" software ported for use on my "non-free" OS, linked to whatever it requires in the OS to work. I'd like to use Linux as my primary OS, not just for "free" software, but I can't because of shit like this. The quoted statements are only one example of the attitudes in the "free" software community that restrict it from being so much more widely used and accepted. I would totally abandon my "non-free" OS if the developer(s) of my one or two "non-free" apps could do what "free" software developers are able to do with the "non-free" OS. Having the best of both worlds is freedom.
The response "Let the commercial non-GPL vendors release their code or purchase the rights to the free code under a separate license agreement." is not valid. If Microsoft wanted to purchase a license to use someone's GPL'd code in their closed source, would they be successful, or would they hit the brick wall of "Viva La Stallman! Viva la revolution!!!"? Or maybe MS would have to pay 2 billion dollars while someone else gets the right to use it for free. In other circles, this would constitute unfair, anti-competetive practices. Gee, what does that sound like?
Nobody wants to test the courts, of course, and IANAL -- but if you aren't even distributing the GPL package, I fail to see how you can be violating its copyright.
I (and others) believe the FSF is overstepping their bounds here. I fail to see how you can violate copyright on a shared library if you aren't even distributing the shared library.
Of course, I am not a lawyer and this isn't legal advice.
If the devs have a bug tracking system, or a public mailing list, then they are soliciting help from their users.
Are you purposefully being obtuse?
The OP did not say he had to use the GPL, merely that the GPL is a viral licence.
Of course nobody has to use source code protected by the GPL. But adding a small amount of GPL'd source (according to the GPL) will cause your entire source code to be GPL'd. If that isn't viral, I don't know what is.
Online Starcraft RPG? At
Dietary fiber is like asynchronous IO-- Non-blocking!
And I've pointed out that it is. You've yet to explain how it's a decent analogy you see. The fact that you must deliberately introduce the GPL code into your project seems to put a bit of a spanner in the works (this was the "your mission, should you choose to accept it, is to seek out and have intimate contact with people with colds" part of my analogy, in case you missed it).
A fight? Were we fighting? I thought we were discussing analogies. Is this like a slow motion fight where there are hours between blows?
Thank you for the advice. Here's some of mine. Stop taking everything so seriously, relax a little, see the lighter side of life. It's good for you! And you'll have more fun! And people will like you!
Igor Presnyakov stole my hat
I think the problem is that many developers USE the GPLed code, but don't extend it in anyway. They'd like to be able to use the library as is, without forcing THEIR project open. I find the GPL attitude kind of arrogant. I can understand if you extended some GPL code wanting those changes to come back, I don't have a problem witht that. But if the GPL code is just used by my code, I don't think its fair they tell me how I have to license my own software.
So I suppose that to play DVDs, RAs, and WM[AV]s on Linux or BSD, we should be able to just copy (but not modify) the pieces out of the media players to do so, and Wine should be able to just copy (but not modify) all the Windows DLLs that are too much of a pain to rewrite, and OpenOffice should be able to just copy the user interface and file format code for Office for better interoperability.
If closed source people want to use GPL software, they need to feel exactly the same way about free software people taking any piece of their commercial software and using it for GPL software. Don't forget that the same copyright laws that protect your commercial interests protect the community interests of the GPL. I highly doubt any commercial software company would let their code be used in a GPL project. They would require NDAs and commercial licenses for the finished project. So there you go, commercial software is just as viral as the GPL.
> all other uses of the word "viral" in the history of the word, mean
> something completely different. A virus infects other, unrelated things.
So does GPL. GPLed code "infects" your code with the "GPL disease" if you put it there. The fact that you have to consciously include the code in your project is irrelevant; if you know someone has herpes, all you have to do to avoid infection is to not have sex with them. Herpes is still a viral disease, and, by analogy, so is GPL.
> Yet MS Windows doesn't get tagged as "viral" even though its license is infinitely more restrictive.
MS Windows source code does not permit derived works from it. Since you can not make a derived work, you can not infect that derived work with MS code. If you steal the code anyway, then MS will sue you and you will no longer have a project; they will not offer you the code as long as you use their license. This is not "infection", as that would imply transmission of a disease. MS license can not be transmitted to your code, and so is not an infectuous disease.
Somebody had said:
So I replied:
So you think that the GPL is unfair and unreasonable. So ignore it! That's right, just pretend that the GPL isn't even there! It even says right in the GPL itself that you can do this. (Paragraph 5: "You are not required to accept this license.")
There's your answer. Act as if the GPL doesn't exist, and do whatever you want with the software (as long as it's legal, of course)! Comb through the source code. Check out how it works. Make a bazillion copies. Change it around, and make your own version of the program. Better yet, combine it with another brilliant program of yours to make a super-program. Sell it and make a million--
Oh, wait. That's against the law --you'd be breaking copyright. You wouldn't want to do something illegal, would you?
Fine, just bundle it for free when you sell your--
Oh, darn. That's not legal either.
Umm, be a nice guy in general and post it on the web for people to download? Donate the program to a charitable organization?
Nope, that's against the law, too. Damn.
Hmm, what to do? Well, maybe you can ask the original programmer to sell you the rights to the program, so you can use it. Or perhaps you could give royalties. With enough financial incentive, maybe the programmer would be willing to transfer the rights to you.
But sometimes software is created by more than one person, and you'd have to negotiate with each of the authors to get the rights to the complete program. Sometimes even contacting one of the original authors can be a big hassle.
If only there were some way for the authors to state ahead of time, under what sort of conditions they would be willing to give you the rights to their program. This way, if you didn't want to negotiate, you'd still have the option of just fulfilling their conditions, and they've already agreed ahead of time that you get their permission --without your even needing to contact them! You know, some sort of text that they could include with their program (or put up on their web site) that explains all this clearly. They could call it a "document of giving permission". Hey, come to think of it, someone should come up with a word in the English language that means a "document of giving permission".
I'll let you take it from there. Let us know if you come up with any great ideas.
The original comment is from http://linux.slashdot.org/comments.pl?sid=188343&
Actually, the GPL does matter to the end user in at least one way: if you use proprietary code you are at the mercy of the code's owner for bug fixes, new features, etc. If the owner decides not to provide some change to the code you are out of luck. With GPL'ed code you can always hire someone to make the changes you need, even if the original owner of the code has disappeared / been bought by your main competitor / etc
It's very easy to make a clear statement about GPL virality, so I really don't understand why the interviewees didn't take the opportunity to do so. Here's my off-the-cuff attempt at an explanation:
Unfortunately, a nice simple summary like that doesn't carry the whole truth.
The problem is that the derivation of programs carries a double semantic under the GPL, and this is the source of endless debate and discontent because it is partly inappropriate in a distribution license.
One of the two meanings of derivation relates to physical modification of the original GPL source code to create a new ("derived") work through the process of code extension. By any rational assessment, this is a self-evidently fair provision, in that if you take someone else's source code and modify it in some way, then your new program is derived by ancestry. and thus quite reasonably should inherit the license of its progenitor.
In contrast, the other meaning relates quite illogically to *using* GPL'd library code through linking to it, despite having made no modification whatsoever to that GPL'd code. This could make sense in a usage license (which the GPL is not, in theory), but it is quite out of place in a license dedicated to protecting the availability of the original source code and any modified versions thereof. That semantic is clearly in the license "for other reasons".
Remember the discredited attempt by some content providers a few years ago to equate web links and the content to which they point as being one and the same thing? We "obviously" knew that that was ridiculous at the time, yet the GPL tries to claim that linking for usage is the same thing as copying the source for derivation by extension. It's "obvious" that this is incorrect, and that therefore the client application should not become affected virally. There is no derivation by ancestry, so by what mechanism is the license inherited? Well the answer is that it's not inherited --- instead the new, non-derived client code has been tainted by usage.
This second semantic has no business being in the license at all, because consistency would then require us to taint everything else that comes into contact with GPL code through simple USAGE, and that includes web applications. Usage is usage, you can't make arbitrary exceptions to it without totally undermining your platform of logic.
It's quite a mess. Maybe we need a good chat with Eben Moglen; I think he'd understand the problems inherent in tainting by usage very clearly.
So you see, those 3 paragraphs don't really tell the whole story. Still, they certainly define GPL virality a lot better than the article did.
"The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
the confusion is frequently based on misreadings, rumors, secondhand accounts, and what is convenient to believe.
Huh, sounds like some peoples' ideas of the Constitution, and other state and local laws, in the United States. Go figure on that coincidence!
So an unknowing third party might easily assume someone is illegaly using ReiserFS when they are not.
Apocalypse Cancelled, Sorry, No Ticket Refunds
Microsoft Office isn't really a 'library.' And I'd worry about you if your code was linking into it to run.
You have a point. And even if your code dynamically links to the GPL'd library only at runtime, it seems some people maintain your code violates the GPL if it also isn't released under the GPL license. That almost seems like prior restraint. Your code isn't allowed to 'trespass' into the GPL'd library at run-time, because it might not be GPL'd itself.
Well, adding a small amount of IBM or Apple or Microsoft's code into your source code makes your entire source code 'illegal' in just the way the GPL'd code is illegal. It's just that the 'punishment phase' of the violation of the GPL'd code's copyright is to release your source code. You can also opt to cease all distribution of your binaries instead **. There isn't an established legal 'camel's nose under the tent' precedent that prys open big repositories of code as a mandatory action just because a little snippet of GPL'd code was included.
(** there are probably ogres and activists and even lawyers who will instead try to coerce you into 'releasing the source code.' )
But adding a small amount of GPL'd source (according to the GPL) will cause your entire source code to be GPL'd.
No. I use GPL in my code all the time and the rest isn't GPL'd. Of course I'm not distributing it, no one forces you to distribute your software.
The fact that you must deliberately introduce the GPL code into your project seems to put a bit of a spanner in the works
Or if somebody in your employ, or somebody else involved on the team developing the program you are working on, introduces the GPL code, (I might add) without your knowlege or consent or the consent of management at your organization.
See, there's the viral nature introduced again. The 'vector' is some rogue or irresponsible coder. The victim could be a huge team working on a large project.
That is precisely how binary Linux kernel modules can be legal. If you don't distribute Linux, then you are not bound by the GPL. Using published programming interfaces is not prohibited by copyright law, so you can write and distribute as many binary kernel modules you like, as long as you don't distribute the kernel with them. The user combines your kernel modules with the kernel, but the user is also not bound by the GPL because he isn't distributing. Consequently binary kernel modules are merely a convenience problem and not necessarily a legal problem.
Microsoft Office isn't really a 'library.'
It's a COM server, isn't it?
And I'd worry about you if your code was linking into it to run.
Well, if I was trying to write a big bloated word processor...
except that, last I checked, glibc was LGPL for just that reason.
Actually, glibc is licensed under the LGPL, not the GPL. You can statically link LGPLed software with a closed source program as long as you include the object (.o) files when you distribute it so that anyone can relink it with a different version of the LGPLed component.
> If that isn't viral, I don't know what is.
Of you truly think that that is as viral as it can be, let me license some software to you under an EULA that says that any and all software you ever develop, or has developed, must be licensed under that same license. And that all software that sits on the same medium, or on another medium close to that one, has to. And that that this does not only apply to you, but must be made part of any bsuiness contract you will ever negotiate in the future and thus apply to anyone you have commercial contact with (and maybe I'll even add that a marriage is a business contract just to piss your wife/husband off).
I'll call my license GNU Punishment LARTer.
--The knowledge that you are an idiot, is what distinguishes you from one.
The copyright applies only to that portion of the code entitled to copyright protection. That portion not having the benefit of copyright protection is fair game so the GPL does not apply to that portion.
From what I have read, it pretty much boils down to the following, YES I can charge my software and / or source code,
HOWEVER, I have to allow any and everybody the ability to obtain said name software and / or source code for free.
Which effectively KILLS my business of charging for software and / or source code.
The concept of selling services rather than intellectual property just does not really appeal to me, hence the reason
why I avoid GPL software. But to each his or her own.
Regards,
MBC1977,
(US Marine, College Student, and Good Guy!)
Regards,
MBC1977,
Sorry, the last two paragraphs were not supposed to be part of my post. I fsckd up the post.
"Seriously, if you don't want to GPL your application, just don't use any GPL code in it. Why is that so hard?"
It's not hard but it has no effect on whether the license is viral or not. In fact, it's an acknowledgement.
"You're not going to lose the rights to your software if you invoke GPL code with it."
Not so. If that were the case, a programmer could work around the GPL buy cleverly building his application. The FSF argues, and I can't agree, that the mere inclusion of GPL'ed header files constitutes a derivative work. How are you going to call GPL'ed code without using headers to define the interfaces?
"You're correct. What's your point?"
I believe his point is that the GPL is viral, which it is.
"It's been said already in this discussion, but it bears repetition: If you don't want to release your code under the GPL, then don't."
Yes, it's been said a million times but it doesn't change the fact that the GPL is viral.
"Again, nobody's forcing you to use GPL'd code!"
No, but if you do they are forcing you to release under the GPL. That's the viral part.
Why do advocates get nasty when a spade is called a spade? The viral nature of the GPL is precisely what differentiates it from other open source licenses.
Not true. If you use a line of code released under any other open source license (or in the public domain) you don't have the same issues.
Once again, the response doesn't refute the fact that the GPL is viral.
That may be a good analogy if the claim was that cookies were fattening and cookie advocates responded with "They're not fattening unless you eat them".
"If you don't want to license your code under the GPL, all you have to do is write your own damn code."
Yet another admission that the GPL is viral.
"If the GPL is viral, then commercial software development is a bloated cancer..."
If you say so. The GPL is viral though.
"GPL software is not viral, it simply exposes the sham of modern commercial software development. You are essentially claiming that the ability to find GPL software and integrate it into commercial projects harms you..."
No he didn't. He simply said that the result would be that the project would have to be GPL'ed.
"By not making your software GPL you are harming your customers by not using the best tools for the job and allowing them the freedom to change and modify the software they buy."
You're entitled to that opinion but there's no way you can defend it. Releasing under the GPL doesn't automatically make software "the best tools for the job" and the ability to modify software is often of no use whatsoever. On the other hand, there are many cases where the GPL restricts contributors from releasing their software at all.
"Not only that, but the existance of GPL software proves that most commercial software development and purchases are a waste of money."
Another absurd statement. Quite a bit of GPL software is, itself, commercially developed. Who do you think foots the bill for many of the most successful OSS projects?
"...the idea that software is simply a mathematical expression, easily derivable given the proper tools..."
You aren't a programmer obviously.
I'm not a GPL advocate. I don't care if you use the GPL or not. I don't, because I can't code my way out of something that's easy to code one's way out of. However, "viral" implies some sort of surreptitious "GPL will come upon you unawares in the night, and it will GET YOU!" notion that is simply ridiculous. By the same token, sentences for breaking the law are viral, because they happen to you if you break the law. That's silly.
Why yes, I AM a rocket scientist!
Right, because if it weren't for the GPL, nobody would ever be held responsible for the misdeeds of their subordinates. Golly, the evil just keeps on coming!
Why yes, I AM a rocket scientist!
By virtue of the fact that you can avoid it, it doesn't sneak up on you from a toilet seat or a dirty neede or a crack ho or a poorly sanitized telephone, you've demonstrated that it's not viral.
As I've said before....all you have to do to avoid getting the Cookie Virus is not eat cookies.
Why yes, I AM a rocket scientist!
But you can't redistribute the ActiveX/COM controls - unlike the grandparent's statement that the microsoft libraries can be redistributed suggests.
--jeffk++
ipv6 is my vpn
Can you really? Can you distribute those bits of MS Office to your Linux-using friends?
1. Is the software licencing scheme valid against the law? shouldn't licencing be part of a state law so as that a court can support licencing? can I just use GPLd software without honouring its licence since there is no law that says I should honour each licence?
2. What if I apply a source code copy, reformat and rename utility over the GPLd software? in this case, I copy the GPLd software, but there is no way to prove that it is not mine. There is no way to prove that two identical algorithms are not copies.
Actually, it's more likely fall below the threshold of what's considered copyrightable at all. Fair use, by comparison, is borrowing chunks that are recognisable parts of a larger copyrighted work (and copyrightable in their own right), with proper attribution.
I know, nitpicking...
If you give or sell Debian binaries, you can just say "if you want the source, get it from debian at (URL)."
Alternatively, you can be nice to Debian and host the code at your own URL. This also means you aren't at the mercy of Debian keeping the source code for the version you're selling to others.
That part about "third party" is actually meant to *help* small-time distributors who have taken the code as-is from another bigger source. E.g. the Kernel source tree.
And you complain about it. Sheesh...
If it gives you no rights? Your code and you chose the license as GPL and then complain it gives you no rights!
Well, one right it DOES give is that if someone improves your GPL code and gives those benefits to others, you must be included in knowing what those benefits are. Free bugfixing and development, in effect.
BSD removes this right (as done public domain), which is why so very few companies create works and license under BSD and choose GPL or propriatory.
Note that CDDL from SUN has this GPL-like "you must tell us what you did" but don't require that you tell anyone else. So for Sun, CDDL is a better license. Worse for others developing their own code, so mostly Sun code under CDDL.
I wasn't replying to the original parent, I was replying to the guy who was talking about wanting to ensure that a tool would be useful to others for a long while to come.
So no -- no semantics.
While I certainly don't say anything close to "Stallman" == "Stalin", what I mean is that people promoting the GPL advertise freedom and what you wind up with is encumberence. People promoting Communism say that if we all just join in together it will be fantastic -- well it's just not true -- that's not how freedom works.
As I said in my original post, I do support the GPL by contributing to GPL projects -- but as has been stated elsewhere in this
You call that freedom? If it's freedom, and I'm supposedly free under it, then I don't feel very free there. I feel constricted and hassled. I feel baited-and-switched.
However, if it is as you say, a contract that I willingly enter as part of a worldwide protest against copyright law -- then fine. Please call it that, and I'll use it as such. But please don't try to sell it to me as some sort of utopian freedom, or bait me into it with shiny libraries that I "can have full use of if only I sell all of my source code to the GPL". Call it what it is, but it's not complete freedom.
Does that explain my frustrations a little better? Am I still being unreasonable? I like the GPL, I use the GPL, but I'm frustrated and annoyed with how people sell it as freedom when it is not.
So there you go, commercial software is just as viral as the GPL.
In other words, GPLed software is no more free than closed source software. I thought the point was to offer freedom and openness. That doesn't sound very open or free at all.
Note that I don't have a problem with the GPL; you can license however you want. Just don't try and claim that GPL code is somehow gives more freedom than closed source code.
no redistribution -> NO GPL
in other words if someone downloads library A from GPL or LGPL supplier X and proprietary closed source object code from party B and links them dynamically or statically then SUPPLIER X CAN NOT BE FORCED TO OPEN UP THEIR CODE SINCE THEY DID NOT DISTRIBUTE ANY COPYRIGHTED MATERIALS OWNED BY OTHERS.
Why is it so hard to make such a simple point.
Thats my choice. I *wrote* that program, that library, whatever. I do not *want* you to be able to take it, add 3 lines, relicense the "improved" program, and out-compete me with my own work.
If you don't like it. Tough luck. Don't distribute my program then. Your "rigth to make a living" argument applies both ways.
It undermines my chances of making a living from MY code if I have to compete with your "improved" version, and you have the advantage that you get all my sourcecode, while I don't get your sourcecode.
This book might clear up some of your misconceptions.
No, that book clears up nothing. But perhaps this can clear up your lack of understanding.
You can't copyright an interface. That is accepted by absolutely everyone and everywhere (except possibly SCO).
When the GPL is used as the license for a library, it covers the distribution of that library. It does not cover the use of the interfaces to that library, because it is a copyright license, and interfaces cannot be copyrighted.
Libraries are accessed through interfaces, and a client program is written to work with a particular interface (or set of interfaces, I'll assume just one for simplicity). Any library that implements that interface will allow the client to be link-loaded and to run and to function.
The client is not tied to a specific library if it has been dynamically linked, only to a specific interface, and distributing it without accompanying libraries merely says "I will work with any library code that satisfies my unresolved links by implementing the corresponding interfaces".
If it has been statically linked then the library code is being distributed along with the client code so different considerations apply, ie. those considerations relevant to the physical distribution of the embedded library code. What's more, static linking replaces the generic and open nature of an interface by a tightly bound association with specific library code, so the composite client executable is no longer independent from that library code, and all genericity has been lost.
While GPLv2 does try to make dynamic linking taint client code, for that to stand would require the completely untenable legal theory that interfaces can be copyrighted, so that the mere use of an interface engages the terms of a copyright license. There is not a chance in hell that any court would uphold that view, given many decades of precedent confirming the opposite position.
(And copyrighting interfaces would freeze all computing to a standstill too, so it won't happen.)
We're on the same page there.
A million lines of code that could link to a small GPL'd utility library (not LGPL or GPL with linking exception -- I can get behind those) is not derivative! And the library authors have just lost my support, since I'll be spending my time and money reinventing their wheel. I would have been happy to use their library and responsibly return any fixes or improvements. Consider glibc for example.
And you can avoid the AIDS virus by not having sex or getting blood transfusions.
When people say the GPL is viral, they don't mean it "infects" you without your permission. They mean it takes over code that was previously not GPL, and spreads from code to code. Hence the name "viral", sharing properties of a virus, not exactly a virus. Do you object to the term "viral marketing" too?
"Do you object to the term "viral marketing" too?"
Yes.
Viruses self-propagate. This is an important distinction. To say that the GPL is viral is to imply that if you have a GPL program on your computer, and a non-GPL program on your computer, and you use them both, the non-GPL program will become a GPL program. That is simply not the case. This is obviously the impression that Microsoft wishes people to have of the GPL, but it is not true.
I don't care if you use the GPL or not. I just think this "GPL is viral" notion is silly. (There's a worthwhile discussion to be had over whether memes are viral or not. I happen to think that since they require a conscious effort on the part of a thinker to propagate, they are not.)
Why yes, I AM a rocket scientist!
When I first learned of the GPL in the early 90s, my first thought was "hey, that's like a virus". I'm sure other people had that thought too. The article claims Microsoft started this term back in a 2001 speech. However, you can see the term "viral" being applied to GPL much earlier, by looking at newsgroup archives.
Here's an article from 1993:
"I'm sure many companies would use GCC, etc. if the GPL wasn't so viral."
The GPL is like a virus, but doesn't share all properties of a virus. When introduced, the GPL was indeed a radical, new concept, and yes, designed to be viral in nature in that it spreads by making more and more code GPL. The use of viral does not mean "bad" or "without choice", though many do find it's viral nature unacceptable. The term "viral marketing" conveys the same idea -- that of spreading like a virus.
> The GPL is designed to prevent commercial exploitation, and it does this
l , where it is explained how this result is to be achieved through the use of the GPL.
> by forcing companies who use it to publish their modifications.
This is not a misconception, it is in the license. If you use GPLed code in your project, you have to GPL the result. Everybody knows that. In fact, this is exactly what GPL is for.
> The objective of the GPL is to prevent the commercial sale of software
> in order to produce a gift economy in software development.
See http://www.fsf.org/licensing/essays/pragmatic.htm
> Microsoft makes money by selling software.
> Making money by selling software is wrong.
> Microsoft is wrong.
> You can't sell GPL software.
> GPL software is better than Microsoft software.
This is simply an incorrect argument. The correct conclusion is "using GPL software is right", which follows from the second premise. If you disagree that making money from selling software is wrong, as most people do, you will not agree with the conclusion.
> You shouldn't use GPL software unless you contribute to the community in some way.
This is not a misconception. It is what the FSF really wants, as stated in the above "Pragmatic Idealism" essay. The key word here is "shouldn't". They will not prevent you, because they can not, but they will apply all the pressure available to them (mainly social pressure from the community) to ensure that you do indeed contribute. It would a misconception to state that you "can't" use GPL software unless you contribute, but it is perfectly correct to say that the above statement expresses the FSF's intentions.
> Any employee who discovers their employer has modified GPL software and hasn't published those changes should deliberately leak them.
Nobody has this misconception.
> Hacking into websites based on GPL CMSes in order to obtain their unpublished mods is intrinsically ethical.
This is not a misconception. Just because you don't publish your modifications, doesn't mean they aren't covered by the GPL.
"viral" means "like a virus", not exactly a virus.
That's a naive interpretation, and one that I personally have not encountered. I think "viral" captures very well the mechanics and intent of the GPL. Ok, you don't like the word usage, and I understand your reasons. However, I, and many others, are perfectly happy with it.
And getting back to the original poster's point, the article definitely tried to deflect the real, virus-like qualities of the GPL. It's ok to mention how it isn't like a virus, but at the same time the author should mention how it is.
"You may borrow, but you may not steal."
You you don't like the GPL, then don't use it. Write your own code, and stop whining.
I wasn't arguing the good or bad of anything. Just defending the assertion of a 'viral' nature of the GPL.
If you say so. The GPL is viral though.
Stated with the absolute assurity of one providing no proof. Bravo.
You're entitled to that opinion but there's no way you can defend it. Releasing under the GPL doesn't automatically make software "the best tools for the job" and the ability to modify software is often of no use whatsoever. On the other hand, there are many cases where the GPL restricts contributors from releasing their software at all.
Obviously if someone wants to use GPL software it's because it is the best choice for one reason or another.
If the ability to modify software is of no use whatsoever, then what's the point of not releasing it under the GPL? If there's no need to modify software, then that means the GPL can't possibly harm it because no one will take advantage of the extra rights the GPL grants.
The GPL cannot restrict developers from releasing their software unless they are already entangled in some legal issues regarding the software they've written and merged with GPL software. In most cases they would be unable to release the code as BSD or public domain either.
Another absurd statement. Quite a bit of GPL software is, itself, commercially developed. Who do you think foots the bill for many of the most successful OSS projects?
Free software is paid for by other free software, period. There are several traditional businesses that write open source and free software, but it is impossible to separate the service related and software related income. When someone buys a support contract from Red Hat, the money pays for traditional IT services as well as some amortized software development costs. However, you could also ask how Red Hat pays for the GPL software they use. The answer is simply that they contribute back to the base of GPL software. Red Hat would not make money without GPL code, and they would not survive without making improvements to the GPL software that benefit everyone but also give them an advantage because they are the most knowledgable about it and can support it easier. I realize they also have purely commercial closed source software as well, but that is mimimal compared to the GPL codebase. The fact that Fedora Core can do everything Red Hat can is proof of this. Red Hat essentially makes money *and* creates GPL software by selling service contracts. There are plenty of other ways to get GPL software developed, like code bounties or just directly hiring programmers to write what you need.
You aren't a programmer obviously.
Are you? Can you formalize a turing machine using set theory? If so, you should know why programming is equivalent to mathematics, or rather a branch of finite set theory. There is nothing that programmers can know or do that cannot equally be done purely with mathematics. My point was not that computer science was easy, since mathematics is not easy, my point was that almost everything in computer science today is easily derivable from the knowledge that we already have. Do you know how to write compilers? Well, you don't have to because 50 years of research have built very good compilers. Is the compiler you use more complex than most of the projects you will ever write in your lifetime? Probably. Combining the compiler, operating system, standard libraries, and general computer science knowledge that is in the public domain vastly outweighs anything even a large team of programmers can generate in a lifetime. I believe that AI will surpass human intelligence within the next 50 years, and that simply will result in mathematics understanding itself. That will effectively be the end to the myth of godly programmers, which only exists due to the limitation of our human minds and the complexity of modern mathematics and computer science. I have no hubris as a programmer, I realize that I am just exploring a landscape of turing machines or lambda expressions that to an AI will simply be called home.
In other words, GPLed software is no more free than closed source software. I thought the point was to offer freedom and openness. That doesn't sound very open or free at all.
If you don't mind equating freedom with slavery, then sure. My comparison between GPL and closed source software was purely in terms of how they both propogate themselves. Closed source design leads to more and more closed source, but free software design leads to more and more free software. If one did not grow, it would stagnate and die and the other would fill its place. Perhaps you are mistaking the Freedom to use and modify software with the freedom to enslave others by restricting their use of software. In a free society, no one has the freedom to own slaves. In a free software environment, no one has the right to restrict other's use of software.
It is fundamentally a different model from either capitalism or socialism, because both assume limited resources and a means to fairly distribute them. Software, and knowledge in general, is fundamentally different. Material resourses, at the lowest level matter and energy, are fundamentally limited to at best a constant (so far as we know). Material resources must be divided between entities in some way. On the other hand, information is limited only by the material available to encode it. There is an infinite supply of information, and it is virtually free to replicate and create. While material resorces must be divided up for the greatest good, information must be muliplied out for the greatest good. Everyone should have the best information available, since that translates into the highest possibly efficiency for use of material resources, effectively maximizing the material resources available.
Just don't try and claim that GPL code is somehow gives more freedom than closed source code.
If you don't agree, too bad. In my opinion, you're outnumbered by those who realize that sharing knowledge openly will maximize the good in our universe. Don't worry, the free sharing of information won't restrict your ability to discover and invent things, so unless you have a vested interest in controlling others for your own benefit, nothing will change to your disadvantage.
I never expected it to take so long to have court rulings. We're still relying on people's opinion of what it means.
Controlling complexity is the essence of computer programming. -Brian Kernigan
If you don't mind equating freedom with slavery, then sure.
Nice try, but that's not how its working. If you want to make use of GPL code, you are then restricted to GPLing your software. Please explain how that's a choice for the developer.
In a free society, no one has the freedom to own slaves. In a free software environment, no one has the right to restrict other's use of software.
Actually I'd think in a totally free society you COULD sell yourself into slavery if you choose to do so. In your free software environment though you're taking away developers freedom if they choose to use GPL code. The result is that some developers end up re-inventing the wheel.
It is fundamentally a different model from either capitalism or socialism, because both assume limited resources and a means to fairly distribute them. Software, and knowledge in general, is fundamentally different. Material resourses, at the lowest level matter and energy, are fundamentally limited to at best a constant (so far as we know). Material resources must be divided between entities in some way. On the other hand, information is limited only by the material available to encode it. There is an infinite supply of information, and it is virtually free to replicate and create. While material resorces must be divided up for the greatest good, information must be muliplied out for the greatest good. Everyone should have the best information available, since that translates into the highest possibly efficiency for use of material resources, effectively maximizing the material resources available.
The code itself can be copied infinitely, sure. Does that mean the time I spent in creating it is worthless? I do all the work, I put in the effort and investment, and you come along and say 'thanks, well take that!' and walk off. Wow, do I feel appreciated. Next time instead of writing code to the benefit of everyone, I guess I'll go build houses for a living..
If you don't agree, too bad. In my opinion, you're outnumbered by those who realize that sharing knowledge openly will maximize the good in our universe. Don't worry, the free sharing of information won't restrict your ability to discover and invent things, so unless you have a vested interest in controlling others for your own benefit, nothing will change to your disadvantage.
No, I think you're clearly in the minority. Sharing knowledge is helpful yes, but at the end of the day people need motivation to invest the time and effort required to create great software. How can I spend time creating something good if I'm worried about paying for my house? The answer is that I likely won't.
Oh, and if you think I'm making this up, you need to open your eyes. A very select few open source projects are successful; most end in failure though. THAT's the reality of the "community" you wish to build. People that no longer want to create software.
Nice try, but that's not how its working. If you want to make use of GPL code, you are then restricted to GPLing your software. Please explain how that's a choice for the developer.
First, you are wrong that software developers must GPL their software. That's only if they distribute it. Second, developers *always* have a choice of what code to include in their own software. As I've repeatedly pointed out before, the choice for a software developer in releasing GPL code is that they are guaranteeing that any improvements to it will be available to them as well. It's a contract for the betterment of the code, for everyone, instead of just being advantageous to one group or individual.
Actually I'd think in a totally free society you COULD sell yourself into slavery if you choose to do so. In your free software environment though you're taking away developers freedom if they choose to use GPL code. The result is that some developers end up re-inventing the wheel.
Again, our definition of freedom differs. To me, freedom is the assumption of human rights as a constant. Any other society is not free, merely convenient for those in power.
The code itself can be copied infinitely, sure. Does that mean the time I spent in creating it is worthless? I do all the work, I put in the effort and investment, and you come along and say 'thanks, well take that!' and walk off. Wow, do I feel appreciated. Next time instead of writing code to the benefit of everyone, I guess I'll go build houses for a living..
If you go build houses for a living, let me know how information flows in that business. I'll be surprised if you can find any example other than blueprints where information about housebuilding is hoarded and paid for like software. But in the end, isn't the information needed to build a house just software for people? The complexity of a modern house is at least as complex as some major programming projects when fire, water, plumbing, electical, and engineering codes are all taken into consideration. In case you are wondering, I have personally built a house as well. All the people we worked with were happy to share experience and advice (e.g. information) as we paid them for the service of manual labor or even information processing (in the case of our structural engineer). Almost everyone in the real world realizes that sharing information is beneficial, and its only those in the artifically created "intellectual property" markets that think otherwise. In terms of me taking your software when it's finished, I'd like to know when you planned on compensating Knuth, Dijkstra, Turing, or any other big names of computer science? They have contributed far more than you or I probably ever will, and they did it almost entirely for their salaries at universities.
No, I think you're clearly in the minority. Sharing knowledge is helpful yes, but at the end of the day people need motivation to invest the time and effort required to create great software. How can I spend time creating something good if I'm worried about paying for my house? The answer is that I likely won't.
I write software because I like to, not because anyone pays me for it. In my job I do a mix of system administration and programming, but those are purely service activites for the company I work for. They don't necessarily care if I GPL my code or not, because it's specific to their business and most of what I write are either highly custom changes or generic utilities to make things faster. My reward for creating software on my own time is simply that it's what I like doing, so it gives me pleasure. Most open source programmers are the same way, the programming itself is both the ends and the means to pleasure in their lives. My entire point throughout this thread is that there are enough of these programmers that commercial software is mostly unnecessary. There will always have to be programmers paid to do unhappy jobs like maintaining old code bases or doing highly specific tasks,
>> Linking is derivation
You're just handwaving, and very badly. The exact opposite is true.
Here is the opinion of a respected lawyer on the subject. Summary: you're entirely wrong.
Lawrence Rosen is an attorney in private practice, with offices in Los Altos and Ukiah, California (www.rosenlaw.com). He is also corporate secretary and general counsel for the Open Source Initiative, which manages and promotes the Open Source Definition (www.opensource.org).
The GPL IS viral if you are comparing it to, say, the BSD-license
Or anything else.
That is a feature, not a bug.
"Clippy" is a feature too.
"Stated with the absolute assurity of one providing no proof. Bravo."
...nor knowledge or experience either. Perhaps after you've entered college, studied computer science, and worked in the field you might have a real perspective. Programming is real work and machines won't be doing it any time soon, of ever.
Right back at ya.
"Obviously if someone wants to use GPL software it's because it is the best choice for one reason or another."
Not so.
If the ability to modify software is of no use whatsoever, then what's the point of not releasing it under the GPL?"
Protection of the codebase from competitors.
"If there's no need to modify software, then that means the GPL can't possibly harm it because no one will take advantage of the extra rights the GPL grants."
You mean the extra restrictions the GPL places.
The GPL cannot restrict developers from releasing their software unless they are already entangled in some legal issues regarding the software they've written and merged with GPL software. In most cases they would be unable to release the code as BSD or public domain either."
Not true. It may simply be the case that they don't want to. In some cases code can be released as open source but not under the GPL.
"Free software is paid for by other free software, period."
You don't know what you're talking about. Even in the case of Red Hat, it's more complicated than that. Open source developers are paid by companies other than Red Hat. Ever heard of IBM, Intel, Sun, Novell, HP, Dell? All these companies fund open source projects directly and indirectly. Remember Transmeta? I guess Linus doesn't count as an open source developer in your eyes.
"There are plenty of other ways to get GPL software developed, like code bounties or just directly hiring programmers to write what you need."
Deep thinker, aren't you?
"Are you?"
Yes, with over 20 years of professional experience.
"Can you formalize a turing machine using set theory?"
What? I am a programmer, not a mathematician. Mathematicians rarely make good programmers. Have you seen Donald Knuth's actual code? I have.
"Do you know how to write compilers?"
Yes, and I have modified gcc and extended linkers to product loadable modules for embedded systems. You?
"...vastly outweighs anything even a large team of programmers can generate in a lifetime."
Provably untrue based on the fact that such systems have been produced from scratch in far less than my lifetime. Besides the stupidity of that statement, your point is...?
"I believe that AI will surpass human intelligence within the next 50 years, and that simply will result in mathematics understanding itself."
Don't know much about the unfulfilled promises of AI, do you? Dream on.
"...the myth of godly programmers..."
That is certainly no myth. There will always be gifted programmers and there will always be a need got them.
"I have no hubris as a programmer..."