GPL 3.0 Concerns in Embedded World
An anonymous reader submitted a story discussing version 3.0 of the GPL. An interesting piece that raises some valid points. Talks about the fact that the GPL hasn't been tested in court (yet) and how companies using it as a core of their business are gambling on a variable. Specifically targeted to embedded systems, but the issues spread beyond that.
A: Getting caught using GPLed code in their software.
Or..
B: Having to defend themselves against any accusation that they used GPLed code, whether they did or not. And on this concern, I can see some small amount of validity.
The biggest problem GPLed code could cause for software developers is by getting Cool Stuff Done First. Imagine having an idea that someone GPLed some code for first, then trying to make a profit off it. That, I think, is where Microsoft is starting to be afraid. Or at least, they should be. Once the Open Source movement starts to move on to innovation (Which I see happening sometime within the next year or so.) especially in the areas of User Interface design and solid API level work, it will become increasingly more difficult for MS and the other major developers to work without having to be damn careful of what code comes from where.
So what I think MS is hoping for by talking about the evils of Open Source, is just to get government funding and facilities away from projects that might open up more GPLed code to the world. If you can't beat 'em, cut the resources out from under them.
My own pointless vanity vintage computing page
Last year John Carmack opened Quake and the Quake World Client to the open source community under the GPL license. After seemingly no time, there were a plethora of cheat clients going around for it... the way to deal with this by one group was to make a new client that everyone had to use to connect to a new server -- and they didnt release the GPL for that. That was Quakelives -- there was even a /. on it.
Now, though, there is another problem with the GPL. About this same time, another group decided to do something about the cheaters. They created a VERY advanced cheating client using the GPL'ed code, and released the binary... it quickly spread throughout the Quake community... about a month and 1/2 ago, the group came forward: they had implanted a trojan in the cheat file that reported a lot of information (windows cdkey, mac address, real name, organization, icq numbers, email addresses, etc) to servers set up for this purpose. Now, after they came out there was a general uprising of the community about this: everyone was upset, but a few wanted to make sure that was "ALL" the info that was passed.. this should be a fairly easy thing but--they refuse to give out their source code.
The web page for this is Remote Visual Spy.
My question is -- exactly how could a situation like this be remedied? This is an issue that effects over 4000 unique people, but on the big scale of things -- ID Software is not likely to sue over this b/c they stand the chance of losing the GPL license over a small case. How could this be settled? Also: How can someone release code under the GPL with the knowledge that this won't happen? (taking source, modifying, releasing binary, and saying they will NOT release the source)
So suppose I'm coding something, and I don't like some clause of GPL 3.0. Some linking clause or another. Can't I just say I'd like to use GPL 2.x? or LGPL? Or any licences I darn well please? Why, yes, I could.
I can't see a thing in the world that anybody has to complain about, as far as licenses go. You can release something you create on any terms you like. If you want to use somebody else's code, you do it on their terms. If you don't like their terms, find someone whose terms you do like or code it yourself.
It's obvious. So what's the big deal over licenses.
--
Libertarianism is rich wolves and poor sheep playing gambler's ruin for dinner.
Ignoring the article (and it's possible FUD and/or misinformation), here's the crux of the matter for people who want to put their code under the GPL:
If a court case demonstrates that there is a "leak" in the GPL, then we need to be able to re-license our code under a GPL++ that patches the leak (hence the "or higher" clause).
However, we have no control over what a GPL++ might happen to say. What if RMS sells out (yeah, sure)? What happens after he dies? What happens if someone else takes over the FSF?
I don't see any particularly good solution to this problem. Probably the project maintainer should insert a clause reserving the right to re-issue the entire project under a new license at any time, regardless of who has contributed to it. However, the same questions asked about RMS above could then be asked about the maintainer, plus the problem of licenses for forks arises.
--
Sheesh, evil *and* a jerk. -- Jade
The MS EULA is an attempt to establish a license to use the software. The GPL is only a license to redistribute the software.
From the GPL:
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
So basically, if the GPL is struck down (which doesn't seem to mean much), all that happens is normal copyright ensues and noone can redistribute the program at all.
There is no chance that a GPL'd program would ever fall into public domain except for it being placed there by the copyright holder or the copyright on it expiring.
A EULA, by contrast, is an attempt to add extra terms and agreements to the use of the software that do not "naturally" exist without the EULA.
So to sum up:
A MS EULA takes away rights that you previously had.
A GPL gives you rights that you previously didn't have.
The BSD people simply complain because they think that the GPL doesn't give you enough rights that you didn't have before.
Note: rights here is used in a legal sense, not a moral/ethical sense.
They laughed at Einstein. They laughed at the Wright Brothers. But they also laughed at Bozo the Clown. -- C. Sagan
Not really. The MS EULA attempts to restrict my rights beyond those that I'm restricted to by copyright law. They actaully want to control what I do with the software BEFORE I try to modify, distribute or copy it.
The GPL gives me a loophole PAST copyright law.
Basically, the GPL says that you can do anything with the software that is allowed by copyright law. You can also copy the program, distribute it and sell it, BUT, such an exception to copyright law is ONLY made if you are willing to comply with the terms of the GPL.
You are never bound by the GPL unless you want to be (it says this explicitly), but (in the words of George Carlin) you havta wanna if you wish to do something copyright law does not allow (create a derived work, distribute, reproduce, etc).
If the GPL were struck down, it would mean that no one anywhere (other than the authors) has the right to distribute or modify copyrighted/GPLed software (as per the terms of copyright law).
If some company takes BSD Licensed code and incorporates it into a proprietary product the original code is unaffected. It's still just as free as it ever was in its full BSD licensed glory. To use your words, the original code "remains free".
It hasn't been "stolen", it hasn't been "made proprietary". In fact, it hasn't been affected at all. It's just as useful (or useless) as ever.
The company that's now trying to make a living selling their proprietary software will succeed or fail solely on the merits of the value of *their* efforts and labor. If the code/documentation/marketing/support they've produced is valuable, they may just be successful.
In my eyes, this is a far better situation (and a much nobler form of sharing) than one where the original authors restricted their code and only made it available to people who use the same license they do.
Is FreeBSD no longer "free" code now that Apple has used large chunks of it in MacOS X? No, of course not.
If they don't want to give their improvements back to the community, I'll be happy to license my code to them under a different license for a lot of money. Or they can pay their own programmers to write their own.
The GPL license is just preventing a corporate free lunch.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
*FUD*AHEM*FUD*Face it, the GPL's days are limited.*FUD*AHEM*FUD
You obviously have a personal axe to grind against the 'GPL' (and or RMS).
You are at best a troll; but Ill bite.
The brightest 'star in computing' these days *IS* the GPL. It is a great liberator - it is freeing and opening code and more importantly it is being used as a check against proprietary standards.
The GPL is a reflection of an underlying social mood in the western world - one which re-evaluates priorities, it is a reflection of the Anti-Plutocracy Movement that is afoot. Like it or not (for whatever reason you are spreading this FUD) the GPL is an IP liberator - which is A Good Thing(TM) because human knowledge and discourse should not be a commodity.
Counter FUD:
The GPL is an excellent tool - and its future is very bright. We have much confidence in the GPL and its ideals.
With the possible exception of emacs, you've done nothing more than prove AC's point quite effectively.
KDE: Making an open-source Windows
Windowmaker/AfterStep: Making an open-souce NeXTStep
Mozilla: Bringing the web technology of the mid-90's to the open source community
XChat: A cheap knock-off mIRC clone for the open source world
gimp: We'll keep saying it's a suitable replacement for PhotoShop until someone believes us
Now go grab your favorite public-domain dictionary and look up the word "innovation". You'll find that none of the above products are innovative in any way. In fact, the stated goal for most of the projects you mentioned is simply to replicate the function of a specific piece of proprietary software.
The original statement that "GPL sw is entirely derivative from A to Z", while not 100% accurate, certainly hits very close to the mark.
While I enjoy my open source world, and my ability to customize and extend without barriers, you'd be blind not to notice that the best the open source community is usually able to muster is simply running a step behind the innovations developed in the commercial software world.
IANAL, but I think that the GPL probably will turn out to be enforceable for one simple reason. The FSF will be able to pick the time and place for a showdown. Copyright, unlike Trademark, does not require that the owner actively pursue violators. So the FSF can wait until they have just the right violator (someone not very well financed, and in a jurisdiction they feel will be friendly). Once they have nailed one sucker to the proverbial tree they will then have legal precedence.
The other thing that the FSF has in their favor is the fact that the entire software industry has been trying for years to strengthen copyright laws as they apply to software. After all the work and money they have spent they aren't likely to want to have a legal precedent that puts limits on copyright protection.
Oh, and there is a definite difference between most EULAs and the GPL, that is that the EULAs trigger on software use, but the GPL triggers on software distribution. Since copyright is designed to limit the distribution rights of the consumer,and not to specify what he or she may legally do with the material, this is a very important distinction.
As an embedded systems developer, this is an interesting issue to me. Real-time and compact embedded systems often put much of their code in what is conventionally viewed as kernel space in order to have direct access to hardware for key functions. Shared library mechanisms and kernel calls incur too much overhead for performance-critical operations, so these applications are typically statically linked and often have a fixed memory map.
In the context of the GPL, these code fragments must be released as they are linked with the kernel. With a kernel under the LGPL or other more permissive license, e.g. Red Hat's eCos, these functions may not need to be released. This is fine with me; if you don't like the GPL's requirements, use another OS.
Stallman is very clear on his intent in the GPL, although the wording in GPL 2 is not so clear. I fully expect that this will be clarified in GPL 3, to everyone's benefit. This will also make it less subject to potentially damaging judicial interpretation.
That leaves only the lack of legal precedents pertaining to the GPL. Yet the overwhelming majority of commercial software licenses, including Wind River's, are not court-tested and many of their provisions are blatantly unenforceable in many jurisdictions. This argument does not hold water.
Now consider for a moment that Wind River are one of the leading vendors of non-free, closed-source, proprietary OSes, notably VxWorks and pSOS. Their lunch is being eaten from above by Windows and Linux, and from below by uCLinux, eCos, and other free RTOSes. Clearly Schacker's statements are nothing more than a calculated FUD counterattack. He is trying to scare commercial embedded developers away from free software competitors and back to Wind River's proprietary solutions by raising the spectre of legal actions and a vague threat that companies might someday lose all of their proprietary code and with it their competitive advantage.
The truth is that the guidelines are clear, but Wind River can't compete. They would do much better for their investors to figure out how to adapt to the changing business climate instead of entrenching a lost position.
- Claims that the GPL is weak because it has not been tested in court are silly. Most software licenses have not been tested in court. The GPL is a very simple license which uses copyright law as its basis. It does not attempt to add restrictions, only grant limited rights, so I really don't see how it would be "struck down" as so many seem to fear.
- You are never bound by the GPL unless you wish to be. Under standard copyright law, you have no right to modify and/or distribute other people's copyrighted software. If you wish to do that, the author must give you license to do so. The GPL is such a license. Arguments that people are not bound by the GPL because they did not read/agree to it are moot. If you did not read or agree to it, you have no distribution rights.
All things considered, I think people are over-reacting to one man's take on why people should not be taking his market share away.GPL has limitations due to grouping all code as open always. BSD can give a company the ability to open source, or keep the code secret...it's really the way to go IMHO. BSD supports freedom of indidviduality in that sense, and GPL is more like another `prison` even tho it's the opposite of proprietary licenses - which are also `prisons`. I can't see why a company would really want to use the GPL when there's some very good (and often slightly better) software and OS's using the BSD license. I realize it's a matter of taste, but in a legal and business sense....BSD really would be the way to go. It doesn't force you into as many corners.
VxWorks is saying, gee, it'd be nice for our customers to have Linux above our RTOS to run their code on; why don't we put some shims in there and link the Linux kernel in and we'll be set (kind of like RT-Linux, I imagine). Oops, but we'd have to link, instead of using, say, pipes, so we hit the GPL linking clause.
But VxWorks has very little incentive to release their OS as open source, because of the basic economics of scarce resources -- in this case, their RTOS technology is pretty advanced, pretty stable, and they need to hold onto that lead to make money and pay programmers, etc. Happily, they do contribute to the GNU toolchain, using it for their platform and improving it (contributing back) so their customers, and everyone else, benefits. But that's because the toolchain isn't their core competitive advantage.
The article isn't FUD -- it's a legitimate point about the standoff between the GPL, which advocates fully public-domain programs as the only acceptable kind, and economics, where you must control a (naturally or artificially) scarce resource in order to make money and mantain an advantage against your competitors.
Corporations are legally required to act in the interests of their investors; they can't just say "we gave it all away and all our competitors now have our best technology, hope that's ok!". Meanwhile, low-level Linux developers are legally required to make their code freely available in exchange for the ability to link to freely available code. But that's not a good deal if your private code is better than the freely available stuff (and as an RTOS [at least], Linux ain't all that great). Hence, conflict.
To be clear, Schacker is not saying that the entire GPL is poorly defined. "Don't get me wrong," he explains. "There is not much ambiguity about the fact that if you take a software program covered by the GPL and make changes to that code, that code would now be licensable under the GPL. Nobody argues that point. But if you write an embedded application and you link that code to Linux, is that code now subject to the terms and conditions of the GPL? That's what isn't clear." The Free Software Foundation's Stallman answers Schacker's question by making a distinction: "If you write an application, link it to Linux, and thereby combine the two into a single program, the application is now covered by the GPL. However, normal practice does not involve linking user programs with Linux. User programs are linked with Glibc [GNU libc], and Glibc communicates with Linux using 'system call trapping instructions.' That mechanism has been used for decades for user programs to talk to a kernel, so it is generally accepted that the two are separate programs.
They may as well be speaking two different languages, as the word "link" used in each paragraph means very different things. Of course, Stallman didn't realize this and goes off on a rant protecting his "GPL". Face it, the GPL's days are limited.
what the?
great comedy company.
I would find it an amazingly amusing thing, if some Microsoft programmer came out and said ''Microsoft is using GPLed code in Windows XP.'', and someone was able to get their hands on proof, in court. What would this result in, the enforced release of the entire Windows XP source tree?
I see a lot of comments about the BSD license, and many of those seem to think it is in some way better than the GPL. Could someone summarize the differences between the two, without just RTFLing at me or quoting huge blocks of the legalese?
My own pointless vanity vintage computing page
The article talks about things needing to run 'close' to the Linux Kernel in embedded devices.
Well, the GPL 3 is completely irrelevant here, as the Linux Kernel is not available under GPL3. Linus specifically releases the kernel under the GPL 2 licence (not GPL 2 or greater, see Kernel Traffics passim.).
Some would argue the if the GPL3 turns out to be a good thing in the future, then it will be very difficult to relicence the kernel under GPL3 as there are so many contributers who submitted modifications to GPL 2 only code.
Note that this also means that you can't legally take code from the GPL 2 only kernel and place it in a GPL 2+ project, but that's not strictly relevant to the topic at hand.
Boffoonery - downloadable Comedy Benefit for Bletchley Park
> Now IANAL, but I doubt the GPL nor most web sites' terms of use would hold up in court. You can not be bound to what you do not have to read.
That's where the GPL is quite clever. You see, it doesn't take any rights away from you - it only gives you more rights than you had. The right to copy, under certain rules.
If you deny you're bound by the GPL because you didn't read it, then even if you win, you end up bound by normal copyright law and aren't allowed to be copying the code *anyway*.
- Muggins the Mad
I am guessing a large reason for it not being litigated is the risk on both sides.
Right now, proprietary software companies must not sufficiently threatened by its existence to litigate. There is a huge amount of downside risk for a company like MS to challenge the license, since the precedent could go either way. I think it is safe to assume that the GPL has enough legal foundation to make any outcome questionable.
What a lot of this comes down to is enforceability of a license. Many of the same arguments I have used against shrinkwrap licenses can be adapted to the GPL.
Finally, one thing I have never reconciled is how much duplication of code constitutes a violation? How many programs have a "while not EOF" type routine? Is it the approach to a problem that determines the uniqueness of the code?
IMO, neither side (pro or con) wants the GPL to go to court anytime soon. When you consider the other cases pending, such as RAMBUS, domain name trademark infringement, etc., any case involving the GPL would be a stressful time for a lot of people (myself included).
Marc
I've always wondered about the strength of the GPL. More particularly, though, if Big Money wants to use GPL'd code in their product, who exactly is going to step into the ring to fight their hordes of lawyers? Their power to bankrupt through extended litigation is not to be underestimated.
(2,3-Benzopyrrole)
Curt Schacker, vice president of corporate marketing for Wind River Corp
Ah, WindRiver - they would be upset. WindRiver sell a really HUGELY expensive (we are talking 'n' kilodollars per developer backside) POSIX OS / toolset for embedded development called VxWorks. They've managed to keep a commanding but certainly not monopolistic lead on the whole embedded OS scene for really quite a while now and the appearance of Linux that's just as good (debate), has shedloads more mindshare and is far cheaper has had a pretty decimating effect on their bottom line. The linked article is a classic example of FUD. Don't sweat it, they're doing it for you. A man called Curt Schacker is doing it for you, actually.
Bypass the whole thing, use BSD. (climbs into flameproof suit).
Dave
I write a blog now, you should be afraid.
If you look at the licenses, then end result is that they encourage different business models. The MS EULA assumes a manufacturing model - pay per widget whether devtool or .bet components. In this situation, they wish to control their IP (building blocks) so that all higher stage developments go through them so they can get an early peek and if necessary buy-out high growth sectors). Read ESR's notes on the difference between end-use and intermediate-use.
... see VTK which offers the basic toolkit free, then sells application kits and linkages to other systems.
:-)) and the GPL is a fundamental threat to this model as it does not fit the fules of the game they are trying to impose on the market. Currently OpenSource is a niche segment (low-end servers, embedded, exotic hardware) but given the fact that the PC market is saturated and the internet plays to Linux strengths (many small penguista experimenting with services), then it makes sense to do a slash and burn to clear the path for the 800-pound gorilla.
The GPL on the other hand assumes that code is communications and the license aims to ensure integrity (purity) and persistence (viral nature). Given that the distribution is unrestricted, then IMHO the model shifts the value to the service model (support, mentoring, accessories, etc). Unfortunately, the margins in this area are slim as it is labor-knowledge intensive and a firm cannot forbid an employee from walking out the door (not until they reintroduce economic slavery a la corporate towns). So you can kiss you 50% gross margins and shareholder stock pyramid goodbye.
The problem comes with the embedded model is that they exist in the gray area between manufacturing and service. IMHO, the problem can be resolved through thinking more carefully about the issue. For example, if you're doing embedded sytems, you might think about distribution of firmware updates as your service model or transmeta code optimisation as a value-added service. All you need to do is to OpenSource something like FCode, intgrate it with Linux as a kernel loadable module, and establish a long-term service contract with customers that purchase your hardware.
Whether this produces superior software is a separate issue. One can argue that something the size of a fortune500 company is too large to be responsive to customers (cf bug tracking/resolution record) and the lack of feedback (which if you assume that code is communications is a valid analogy) creates software that sucks. There are models which combine both Open/Closed source
If you look at it objectively, Microsoft is *NOT* a software or innovation company, it is in the business of IP licensing (buy, borrow or bully
As a defensive tactic, the GPL acts as a poison pill, as there is no point in being taken-over if you cannot embrace, extend and extinguish a competiting standard. It does even the field for new entrants which as any good self-respecting monopolist tells you is anathema to their excess profits. However, the big big disantage of having a purely free (as in beer) software is that you are missing the market signals that indicate the demand for a particular service. RMS may have his heart and soul in the right place but some of the practical issues need a lot more careful thought.
LL
As an example, Schacker offers this scenario: "Let's say you own a company that is building an Ethernet switch. Let's also say your value-add is software, and you have chosen to base your device on Linux. Can you imagine a court case some day that determines that all of the software you've developed falls under the GPL, and is now in the public domain? We fear this situation is impeding development in the embedded open-source arena."
What the heck does this mean? It's like saying that some day, the MS EULA means that MS owns all the code you've ever written. This is why lawyers exist. This is why you can (probably) contact the FSF. This is why there's been a bazillion questions about how the GPL operates, with most of them having been answered already.
Listen up, there is nothing about the GPL that makes it any different (in a legal standpoint) from the MS EULA, aside from changes in the terms and conditions. If EULAs in general are struck down, this could strike down the GPL as well. They're in the same family.
So let's look at the terms and conditions. The fear that your code will somehow have to be released under the GPL is covered by the LGPL, which is used to compile most apps that use the gcc compiler and libraries. The LGPL allows for commercial (closed source) apps to be compiled and linked against LGPL libraries.
If a company doesn't pay attention to this difference in licenses, it's their own fault. This is akin to mistaking the MS EULA for a Borland EULA. If you're still stuck, go get a lawyer or call the FSF.