Questioning EXPORT_SYMBOL_GPL()
Loadable modules do not have access to every function or variable in the kernel; instead, they can only make use of symbols that have been explicitly "exported" to them by way of the EXPORT_SYMBOL() macro or one of its variants. When plain EXPORT_SYMBOL() is used, any kernel module is able to gain access to the named symbol. If the developer uses EXPORT_SYMBOL_GPL() instead, the symbol will only be made available to modules that have declared that they are distributable under a GPL-compatible license. EXPORT_SYMBOL_GPL() is meant to mark kernel interfaces that are deemed to be so low-level and specific to the kernel that any software that uses them must perforce be a derived product of the kernel. The GPL requires that derived products, if distributed, be made available under the same license; EXPORT_SYMBOL_GPL() is thus a statement that the named symbol should only be used by GPL-compatible code.
It is worth noting that nobody has said that symbols exported with plain EXPORT_SYMBOL() can be freely used by proprietary code; indeed, a number of developers claim that all (or nearly all) loadable modules are derived products of the kernel regardless of whether they use GPL-only symbols or not. In general, the kernel community has long worked to maintain a vague and scary ambiguity around the legal status of proprietary modules while being unwilling to attempt to ban such modules outright.
Shared DMA buffers
Recent years have seen a fair amount of development intended to allow device drivers to share DMA buffers with each other and with user space. A common use case for this capability is transferring video data directly from a camera to a graphics controller, allowing that data to be displayed with no need for user-space involvement. The DMA buffer-sharing subsystem, often just called "dma-buf," is a key part of this functionality. When the dma-buf code was merged in 2012, there was a lengthy discussion on whether that subsystem should be exported to modules in the GPL-only mode or not.
The code as originally written used EXPORT_SYMBOL_GPL(). A representative from NVIDIA requested that those exports be changed to EXPORT_SYMBOL() instead. If dma-buf were to be GPL-only, he said, the result would not be to get NVIDIA to open-source its driver. Instead:
At the time, a number of the developers involved evidently discussed the question at the Embedded Linux Conference and concluded that EXPORT_SYMBOL() was appropriate in this case. Other developers, however, made it clear that they objected to the change. No resolution was ever posted publicly, but the end result is clear: the dma-buf symbols are still exported GPL-only in current kernels.
On the fence
More recently, a major enhancement to dma-buf functionality has come along in the form of the fence synchronization subsystem. A "fence" is a primitive that indicates whether an operation on a dma-buf has completed or not. For the camera device described above, for example, the camera driver could use a fence to signal when the buffer actually contains a new video frame. The graphics driver would then wait for the fence to signal completion before rendering the buffer to the display; it, in turn, could use a fence to signal when the rendering is complete and the buffer can be reused. Fences thus sound something like the completion API, but there is additional complexity there to allow for hardware signaling, cancellation, fences depending on other fences, and more. All told, the fence patches add some 2400 lines of code to the kernel.
The fence subsystem is meant to replace Android-specific code (called "Sync") with similar functionality. Whether that will happen remains to be seen; it seems that the Android developers have not said whether they will be able to use it, and, apparently, not all of the needed functionality is there. But there is another potential roadblock here: GPL-only exports.
The current fence code does not export its symbols with EXPORT_SYMBOL_GPL(); it mirrors the Sync driver (which is in the mainline staging area) in that regard. While he was reviewing the code, driver core maintainer Greg Kroah-Hartman requested that the exports be changed to GPL-only, saying that GPL-only is how the rest of the driver core has been done. That request was not well received by Rob Clark, who said:
(A "syncpt" is an NVIDIA-specific equivalent to a fence).
Greg proved to be persistent in his request, though, claiming that GPL-only exports have made the difference in bringing companies around in the past. Graphics maintainer Dave Airlie, who came down hard on proprietary graphics modules a few years ago, disagreed here, saying that the only thing that has really made the difference has been companies putting pressure on each other. Little else, he said, has been effective despite claims that some in the community might like to make. His vote was for "author's choice" in this case.
Is EXPORT_SYMBOL_GPL() broken?
Dave went on to talk about the GPL-only export situation in general:
The last sentence above might be the most relevant in the end. For years, the kernel community has muttered threateningly about proprietary kernel modules without taking much action to change the situation. So manufacturers continue to ship such modules without much fear of any sort of reprisal. Clearly the community tolerates these modules, regardless of its (often loud) statements about the possible legal dangers that come with distributing them.
Even circumvention of EXPORT_SYMBOL_GPL() limitations seems to be tolerated in the end; developers will complain publicly (sometimes) when it happens, but no further action ensues. So it should not be surprising if companies are figuring out that they need not worry too much about their binary-only modules.
So it is not clear that EXPORT_SYMBOL_GPL() actually helps much at this point. It has no teeth to back it up. Instead, it could be seen as a sort of speed bump that makes life a bit more inconvenient for companies shipping binary-only modules. A GPL-only export lets developers express their feelings, and it may slow things down a bit, but, in many cases at least, these exports do not appear to be changing behavior much. The fence patches, in particular, are aimed at embedded devices, where proprietary graphics drivers are, unfortunately, still the norm. Making the interface be GPL-only is probably not going to turn that situation around.
Perhaps one could argue that EXPORT_SYMBOL_GPL() is a classic example of an attempt at a technical solution to a social problem. If proprietary modules are truly a violation of the rights of kernel developers, then, sooner or later, some of those developers are going to need to take a stand to enforce those rights. The alternative is a world where binary-only kernel drivers are distributed with tacit approval from the kernel community, regardless of how many symbols are marked as being EXPORT_SYMBOL_GPL().
As with the dma-buf case, no resolution to the question of how symbols
should be exported from the fence subsystem has been posted. But Greg has said that he will not give up on this
particular issue, and, as the maintainer who would normally accept a patch
set in this area, he is in a fairly strong position to back up his views.
We may have to wait until this code is actually merged to see which
position will ultimately prevail. But it seems that, increasingly, some
developers will wonder if it even matters.
| Index entries for this article | |
|---|---|
| Kernel | Copyright issues |
| Kernel | EXPORT_SYMBOL_GPL |
| Kernel | Modules/Exported symbols |
Posted Jun 23, 2014 20:56 UTC (Mon)
by nix (subscriber, #2304)
[Link] (41 responses)
Posted Jun 23, 2014 22:37 UTC (Mon)
by airlied (subscriber, #9104)
[Link] (27 responses)
if we stick _GPL on every symbol no matter what, then it doesn't help anymore to distinguish a derived work, since we aren't making any distinctions anymore, we are just playing monkey see, monkey do.
Posted Jun 24, 2014 8:29 UTC (Tue)
by drago01 (subscriber, #50715)
[Link] (26 responses)
So we should just do s/EXPORT_SYMBOL_GPL/EXPORT_SYMBOL/ and be done with it. If some module is not GPL licensed and is a derived work and someone cares enough take it to court.
Posted Jun 24, 2014 13:40 UTC (Tue)
by Funcan (guest, #44209)
[Link] (24 responses)
Posted Jun 24, 2014 14:10 UTC (Tue)
by roblucid (guest, #48964)
[Link]
Posted Jun 24, 2014 14:33 UTC (Tue)
by PaXTeam (guest, #24616)
[Link] (17 responses)
not really as you don't need to read (and consequently know about) the EXPORT_SYMBOL_GPL line of code to be able to find a reference to the actual symbol somewhere on the net in some example/tutorial/whatever. now if the symbol's name *itself* had a _GPL or similar suffix then it'd be an argument to make but that's not the case now.
Posted Jun 24, 2014 14:41 UTC (Tue)
by nmav (guest, #34036)
[Link] (16 responses)
Posted Jun 24, 2014 15:32 UTC (Tue)
by slackwill (guest, #85173)
[Link]
Posted Jun 24, 2014 22:27 UTC (Tue)
by PaXTeam (guest, #24616)
[Link] (14 responses)
Posted Jun 24, 2014 22:59 UTC (Tue)
by mjg59 (subscriber, #23239)
[Link] (13 responses)
Posted Jun 24, 2014 23:56 UTC (Tue)
by PaXTeam (guest, #24616)
[Link] (12 responses)
Posted Jun 25, 2014 0:09 UTC (Wed)
by mjg59 (subscriber, #23239)
[Link] (11 responses)
Posted Jun 25, 2014 6:54 UTC (Wed)
by PaXTeam (guest, #24616)
[Link] (4 responses)
Posted Jun 25, 2014 21:35 UTC (Wed)
by mjg59 (subscriber, #23239)
[Link] (3 responses)
Posted Jun 25, 2014 21:44 UTC (Wed)
by PaXTeam (guest, #24616)
[Link] (2 responses)
Posted Jun 25, 2014 21:45 UTC (Wed)
by mjg59 (subscriber, #23239)
[Link] (1 responses)
Posted Jun 25, 2014 23:25 UTC (Wed)
by PaXTeam (guest, #24616)
[Link]
Posted Jun 25, 2014 20:52 UTC (Wed)
by bkuhn (subscriber, #58642)
[Link] (5 responses)
However, EXPORT_SYMBOL_GPL() does a few things of value nevertheless. First, it shows that the copyright holder who added the symbol felt personally that modules that would combine via that symbol would be combined works in that copyright holder's view and subject to the terms of GPL. The original opinion of the copyright holder *will* matter in GPL enforcement cases to judges and juries.
Second, it requires that anyone seeking to make a proprietary module that combines via that symbol to actually assert their own license as GPL *or* modify Linux to patch out EXPORT_SYMBOL_GPL into EXPORT_SYMBOL. This helps show that they violated the license intentionally (when they violate). That's very helpful in court.
As to Dave's original comments featured in Jon's article that lobbying groups: First, I actually don't know of any lobbying groups that are involved here, but I suspect he means "groups of people who are pushing for enforcement". (Lobbying has a very specific meaning in the USA that Dave might not be aware of in the context of his more colloquial use of that word). However with regard to Dave's likely point that non-profit groups have fialed to take action of enforcement on this issue: that's inaccurate; in fact, they have. Conservancy is actively enforcing the GPL for Linux and is raising this issue of proprietary kernel modules directly with many violators. At some point, I suspect some violator will refuse to comply and we'll have to sue them. But the fact that lawsuits haven't started *doesn't* mean that enforcement isn't happening: lawsuits are always a very last resort, and frankly Conservancy has only been doing enforcement for Linux itself for a few years.
As for suing over the GPL more generally, Conservancy has done plenty of that and will do so again when/if the time and the facts are right.
Posted Jun 26, 2014 3:46 UTC (Thu)
by airlied (subscriber, #9104)
[Link]
Surely for _GPL to have a meaning, different from non-_GPL exports some thought process should be used to distinguish when something might or might flag a derivative work. Flagging all new symbols as _GPL by default seems to me as if it would dilute the power.
i.e. you go to court and they ask the copyright holder developer, if he had any idea why he used _GPL and he says, Greg told me to.
Posted Jun 26, 2014 19:59 UTC (Thu)
by roblucid (guest, #48964)
[Link] (3 responses)
Is that actually a problem for the distributor of blobs?
1) They DO not distribute the kernel
Remember copyright allows creative alterations to the copyright-ed work of others.
Posted Jun 28, 2014 2:50 UTC (Sat)
by xtifr (guest, #143)
[Link] (2 responses)
The most famous instance I know of is GCC's ObjectiveC backend. It was originally distributed by NeXT as a blob, but the FSF objected, and Steve Jobs, with all his mega-millions and hordes of lawyers, backed down and released the source under the GPL. Not precedent-setting, but unless you've got better lawyers than Jobs, I don't think it's the sort of thing you want to try yourself.
Posted Jul 1, 2014 22:55 UTC (Tue)
by jwarnica (subscriber, #27492)
[Link]
Posted Jul 10, 2014 14:01 UTC (Thu)
by roblucid (guest, #48964)
[Link]
According to http://en.wikipedia.org/wiki/Objective-C "The work to extend GCC was led by Steve Naroff, who joined NeXT from StepStone. The compiler changes were made available as per GPL license terms, but the runtime libraries were not, rendering the open source contribution unusable to the general public. This led to other parties developing such runtime libraries under open source license. Later, Steve Naroff was also principal contributor to work at Apple to build the Objective-C frontend to Clang." Can't find any news source, to back your version of events, nor can I remember any controversy surrounding gcc & objective C, though I do remember it included objective C option, about time Linux was reaching 1.0 release. Finally, Steve Jobs, had made and lost millions at that time, after leaving Apple which was a firm in financial difficulties, as was NeXT, having produced (expensive) workstations, very nice but ultimately failing to achieve real market penetration. I actually saw demo of NeXT kit and Jobs himself on tour in Paris, demo-ing OO as part of a Sun presentation day.
Linking dynamic or static, is not some base legal litmus test of "derived work". Again, looking at definition of derived work in Copyright, it does not necessarily have the effect that's generally assumed, so long as the derived work is creative.
Posted Jun 24, 2014 17:06 UTC (Tue)
by zlynx (guest, #2285)
[Link]
Posted Jun 24, 2014 19:22 UTC (Tue)
by airlied (subscriber, #9104)
[Link]
Posted Jul 15, 2014 20:40 UTC (Tue)
by garyamort (guest, #93419)
[Link]
Actually, based on the discussion here, due to the method it is being applied it doesn't make it at all clear of the authors opinion.
The authors opinion was apparently quite clear, the patches did not include those flags. It was requested to be added after the fact by the maintainer and by now the discussion has had negative impact - all it would take is printing out the discussion and submitting it as evidence that the author was coerced into making the change and it is quite reasonable to assume that the flag is not a technical indicator, but merely a social statement.
Note: I think Greg is quite justified in making a technical decision that he feels it should have that flag and then discuss it with the author - at the same time making it quite clear that the author is the one who will make the final call and that he will accept whatever decision they make. That would provide strength to the use of this flag as far as court cases are concerned.
He is also quite justified to reject the changes because he doesn't feel comfortable with them not having that flag.
I'm simply pointing out that the debate weakens the effectiveness of this flag as the debate is quite clearly not based solely on technical grounds, but includes ideology - which is very human and important and certainly welcome - it just does not and should not have any impact on legality.
Posted Jul 16, 2014 19:07 UTC (Wed)
by psusi (guest, #95157)
[Link] (1 responses)
There is also nothing to stop them from setting the flag declaring the module to be GPL when it isn't.. it isn't like defining a linker symbol is a legally binding license, so this whole GPL nonsense is a pointless waste of breath.
Posted Jul 16, 2014 20:55 UTC (Wed)
by tao (subscriber, #17563)
[Link]
Posted Jul 9, 2014 20:52 UTC (Wed)
by nix (subscriber, #2304)
[Link]
What it was meant to be was a marker of *opinion*: 'it is my opinion that using this symbol makes a work so deeply intertwined with the kernel that it must necessarily be derived from it'.
Whether it means anything at all to have non-lawyers making such determinations is one matter. Whether it means anything at all when some people adding symbols clearly believe that *everything* should be so marked and that asking what time it is makes you a derived work... that's the issue here. I mean, sheesh, if turning on lock debugging makes you a derived work, suddenly, without changing a single bit of your code, what on earth message does that send, other than 'this mechanism is ridiculous'?
Posted Jun 23, 2014 23:28 UTC (Mon)
by bug1 (guest, #7097)
[Link] (11 responses)
A concept is not copyrightable (it might be patentable), this issue is just about copyright.
Posted Jun 24, 2014 7:15 UTC (Tue)
by geertj (guest, #4116)
[Link] (10 responses)
The reasoning is that if something is *not* a Linux specific concept, that an implementation using it should not be considered a derivative work under copyright, and hence the GPL does apply to it.
Posted Jun 24, 2014 10:07 UTC (Tue)
by dlang (guest, #313)
[Link] (9 responses)
Posted Jun 24, 2014 11:34 UTC (Tue)
by neilbrown (subscriber, #359)
[Link] (2 responses)
So if there is something novel and creative in the interface which the module needs to use, then the module would be derived. But if the interface uses terminology and formats which are common in the literature, or obvious and purely functional, then it is hardly novel or creative.
Posted Jun 24, 2014 14:06 UTC (Tue)
by roblucid (guest, #48964)
[Link]
It's not the scenario people are thinking of when they assume derivation as a negative to be feared, but something more like the Android scenario, which may distribute GPL code with it's copyrights protected, be a derivative work, yet have other parts protected.
So, it can be argued even if some blob is "derivative", that doesn't mean the code legally should be GPL-ed. The key is whether it is distributing a modification of GPL-ed code, a hard argument to make if no modificaiton is required to load a binary blob no matter what symbol is used, even if it modifies the non-redistributed memory copy of the kernel that is not breaking GPL. Hence the legal justification of shipping of blobs seperately from distro's but making them available for seperate distribution by repo.
Seems to me, the whole EXPORT_SYMBOL_GPL idea is relying on a need to make insufficiently creative modifications to the GPL source, in order to circumvent it, for instance in the "GPL Condom" design pattern.
Posted Jun 29, 2014 5:01 UTC (Sun)
by fergal (guest, #602)
[Link]
A simple photo of a building can be copyrighted, there is no novelty there.
Anyway the question is not what is copyrighted but what makes a derived work.
Posted Jun 24, 2014 12:36 UTC (Tue)
by oshepherd (guest, #90163)
[Link] (5 responses)
Because the Linux implementation of POSIX is Linux specific, any app using POSIX interfaces on Linux is a derivative of Linux?
I think what you intended to say is more along the lines of "As long as the interface is linux specific, anything using that implementation is a derivative of linux"
Yet I could go and re-implement that same interface for, say, FreeBSD. Is the driver still a derivative of Linux, when that same interface exists on another platform? Of course not.
The only real circumstance in which some code could be classified as a derivative of Linux, IMO, is quite simple: When the code is inextricably tied to the internals of Linux. When it dives right into the implementation of Linux, when it is so inextricably tied to Linux that any "compatibility layer" would be a derivative work of Linux.
Saying that a fence interface - of which many can be found in the wild - is in some way a derivative work of Linux is utter tripe and nonsense.
The whole EXPORRT_SYMBOL_GPL thing is really quite silly.
Posted Jun 24, 2014 14:46 UTC (Tue)
by nmav (guest, #34036)
[Link] (4 responses)
Posted Jun 24, 2014 15:43 UTC (Tue)
by sfeam (subscriber, #2841)
[Link]
Posted Jun 29, 2014 22:08 UTC (Sun)
by dvdeug (guest, #10998)
[Link] (2 responses)
Note also that this is not an argument we should be making. GCC has some Windows-specific code, as does many, many other programs. If works written for Linux would be GPL except for that clause, then Windows could declare that GPL code can't legally be written for Windows.
Posted Jun 30, 2014 2:10 UTC (Mon)
by mathstuf (subscriber, #69389)
[Link] (1 responses)
A thought experiment: If a BeOS driver layer were implemented for Linux, would all historical BeOS drivers suddenly become Linux-derived when loaded?
Posted Jul 3, 2014 14:07 UTC (Thu)
by nye (subscriber, #51576)
[Link]
Posted Jul 12, 2014 17:21 UTC (Sat)
by mina86 (guest, #68442)
[Link]
Posted Jun 24, 2014 7:56 UTC (Tue)
by kugel (subscriber, #70540)
[Link] (18 responses)
Right, all the _GPL talk is entirely moot if there's never a reaction to actual infringment.
Posted Jun 24, 2014 13:21 UTC (Tue)
by spender (guest, #23067)
[Link] (17 responses)
Empty threats only makes the problem of enforcing the GPL more difficult for the rest of us. I found that a multi-billion dollar company had been shipping my software in their devices sold around the world for several years -- all without any customer knowing they had purchased a product using free software. There was no corresponding source shipped with the devices, nor any written offer for any source. They had actually developed an entire packaging system around my RBAC system, too, so it wasn't any kind of casual use but an integral component of the product.
Since I don't have millions of dollars to throw away on legal fees, I learned that it's basically impossible to take these guys to court. The only way I could have gotten a lawyer in the US to take on the case on a contingency fee would be if they could make enough guaranteed money on it to cover their costs. As I (and most other) developers haven't filed for formal copyright registration, we aren't entitled to statutory damages in court for copyright infringement. The lawyers also would have an uphill battle in court proving monetary damages as the software is given away for free. More than that, though very unlikely, there was a chance if taken to court, I could be held responsible for the court fees of the infringer! Ultimately they were not able to take the case because of these things -- apparently the justice system in this country is only accessible by rich companies. I have not received even a single penny from the company in question, and yet they're profiting massively from it as it's a key component of their products' PCI compliance. Think about that whenever you swipe your credit card at some store virtually anywhere in the world.
If nobody actually enforces the GPL, we might as well rename it to BSD, because that's how companies are using it. Begging companies to obey the willfully-ignored license of software they're profiting off is not enforcement. Why should a company have to come up with a legitimate business plan around GPL'd software when companies can just wrap that GPL'd software with a license time bomb to force customers to keep paying for its use, in broad daylight, without any affected developers saying a peep about it?
-Brad
Posted Jun 24, 2014 13:45 UTC (Tue)
by Funcan (guest, #44209)
[Link] (9 responses)
Posted Jun 24, 2014 15:10 UTC (Tue)
by spender (guest, #23067)
[Link] (8 responses)
-Brad
Posted Jun 24, 2014 16:18 UTC (Tue)
by krake (guest, #55996)
[Link] (6 responses)
How is getting license compliance a bad thing?
Posted Jun 24, 2014 16:51 UTC (Tue)
by spender (guest, #23067)
[Link] (5 responses)
-Brad
Posted Jun 24, 2014 18:20 UTC (Tue)
by smurf (subscriber, #17840)
[Link] (2 responses)
Typically, resolution of these cases doesn't just result in "we'll comply with the license in the future". It also results in am (undisclosed) donaion to free software companies, and a promise of substantial pain to the infringer (as in "an injunction against selling these devices in $COUNTRY") should they continue not to comply with the license.
This result may not be what you want, but it's the best we can get – and it's much better than letting it slide, not getting source, and encouraging the next infringer (or the next product of this company) to also not publish any sources. :-(
Posted Jun 24, 2014 19:25 UTC (Tue)
by spender (guest, #23067)
[Link] (1 responses)
What we really need to be telling developers is to formally register their copyright. While people are quick to point out that you have the copyright when you create a work, this causes people to assume they get all the rights involved with having a copyright along with that. If you want to do anything other than meaningless, ignored threats, you need to register your copyright. It's the only way you can sue for statutory damages and attorney's fees. Registering a copyright is very cheap and doesn't need to be done by a lawyer:
-Brad
Posted Jul 3, 2014 10:44 UTC (Thu)
by Wol (subscriber, #4433)
[Link]
And if you're not a USAian? I don't want anything to do with the American Legal System. That rule is just yet another example of the US using its legal system to rip off the rest of the world's IP ... :-(
Cheers,
Posted Jun 25, 2014 6:52 UTC (Wed)
by krake (guest, #55996)
[Link] (1 responses)
That's true for any kind of unlawful behavior, isn't it?
Neither law nor exemplatory brutal punishment make unlawful behavior go away.
What kind of verdict do you think a court could reach in a GPL infringment case that would be more benefitial than what you can reach in a settlement?
Posted Jul 9, 2014 7:29 UTC (Wed)
by rich0 (guest, #55509)
[Link]
Scenario A:
Scenario B:
In scenario A the cost of non-compliance followed by immediate acquiescence is zero, so there is no incentive to follow the license.
In scenario B the cost of non-compliance followed by immediate acquiescence is $500k on average. A manager making the decision to violate the GPL has to factor a $500k hit into his budget, recognizing that he is rolling the dice.
Companies are out to make money. A "risk" to them is something that could cost them money. Right now GPL enforcement creates no real risk to a company - they get the benefits of violating the GPL and the only real downside is that they might or might not get to do it forever.
Posted Jun 25, 2014 20:58 UTC (Wed)
by bkuhn (subscriber, #58642)
[Link]
Posted Jun 24, 2014 15:49 UTC (Tue)
by etienne (guest, #25256)
[Link]
They don't do bombs, they help to catch terrorists by helping to do total surveillance - following secret laws.
Posted Jun 24, 2014 16:47 UTC (Tue)
by SEJeff (guest, #51588)
[Link] (1 responses)
Posted Jun 24, 2014 16:53 UTC (Tue)
by spender (guest, #23067)
[Link]
Posted Jun 24, 2014 20:47 UTC (Tue)
by kugel (subscriber, #70540)
[Link] (1 responses)
Posted Jun 24, 2014 21:35 UTC (Tue)
by spender (guest, #23067)
[Link]
Having already explored every option already, even if I were to find that they're still not providing the written offer or any source code, there's nothing I can do about it. The only thing I can do is post the source code I demanded from VeriFone's Director of Engineering which is now already out of date:
-Brad
Posted Jun 25, 2014 20:55 UTC (Wed)
by bkuhn (subscriber, #58642)
[Link]
Posted Jul 3, 2014 10:40 UTC (Thu)
by Wol (subscriber, #4433)
[Link]
Whether it'll be any help to you I don't know ...
But in the UK try making a formal criminal complaint. Copyright violation is a criminal offence when committed for monetary gain (or something like that). The bar is moderately steep but it's an option. It might be worth it ...
Cheers,
Posted Jun 25, 2014 2:10 UTC (Wed)
by KaiRo (subscriber, #1987)
[Link]
Posted Jun 25, 2014 9:24 UTC (Wed)
by dgm (subscriber, #49227)
[Link]
Where it has a great deal of value is on future-proofing user's investments on hardware. If the devices I choose to buy use those symbols I have a good chance of fixing their drivers, should I need to in the future. This is a deal breaker for me, as we are all very aware that kernel interfaces are not set in stone, as per Linus' current policy.
Posted Jun 26, 2014 12:42 UTC (Thu)
by mlankhorst (subscriber, #52260)
[Link]
Posted Jun 27, 2014 0:20 UTC (Fri)
by gerdesj (subscriber, #5446)
[Link]
As an end user and sysadmin of GPL software, I have no problem with devs attempting to push their sociological agenda through their own works. I can always pay to have a corporation's own desires foisted on me instead if I disagree with them.
In general I find that people who write software for libre usage have fewer intrusive demands on me, my wallet and my life whilst delivering far more value in many ways than the alternatives.
_GPL could be seen as a diluted mechanism and somewhat devisive in some areas but the original reasons for its existence are still valid and I would far rather deal with some lack of functionality than lose yet more rights to use my device as I see fit.
One day perhaps even the binary blob might be a thing of the past - it bloody wont be if we cave in completely and _gpl is a small part of that overall dream.
Cheers
Dave said:
Questioning EXPORT_SYMBOL_GPL()
But anyways, has someone checked that iOS or Windows don't have a
fence interface? so we know that this is a Linux only interface and
any works using it are derived? Say the nvidia driver isn't a derived
work now, will using this interface magically translate it into a
derived work, so we can go sue them? I don't think so.
Quite. I note the flap a while back about ktime_get() use. I cannot believe that anyone seriously thinks that getting the time is a Linux-specific concept, or that things that want to know what time it is must necessarily be deeply interwoven with the kernel and have been written with nothing but Linux in mind from the start -- yet ktime_get() was marked as a GPL-only export. FWIW, I'm certain that iOS and Windows both have time-getting functions... the real reason for this marking was probably 'this was horribly hard to get right so it feels wrong if proprietary modules can benefit from our hard work' -- but EXPORT_SYMBOL_GPL isn't meant to be a 'this was a hard bit' marker, is it?
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
EXPORT_SYMBOL_GPL() remains useful
EXPORT_SYMBOL_GPL() remains useful
EXPORT_SYMBOL_GPL() remains useful
2) They DO not modify the kernel files
3) They are specifically entitled by GPL to modify the program and are using a facility of the kernel to alter it in runtime memory only, without taking away the end-users GPL rights.
EXPORT_SYMBOL_GPL() remains useful
EXPORT_SYMBOL_GPL() remains useful
EXPORT_SYMBOL_GPL() remains useful
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
That is not "the only reason". It is "one sufficient reason [among others]".
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
http://www.copyright.gov/circs/circ61.pdf
Questioning EXPORT_SYMBOL_GPL()
Wol
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
If you violate the GPL there is a 5% chance that you'll be asked to stop violating the GPL or there will be a court case which has a 30% chance of forcing you to stop violating the GPL.
If you violate the GPL there is a 5% chance that you'll be asked to pay a $10M settlement or you'll sued with a 30% chance of having to pay $100M in addition to being forced to stop violating the GPL.
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
For that reason, they are protected by the government and you can't touch them (good investment for the company).
One day, one of these company will take some bad decision and nearly go bankrupt, the public will then be informed that this company is "too big to fail".
You are probably not allowed to put a "software bomb" in your own code to detect them and erase yourself, due to these secret laws.
Would be nice to live in a democracy, wouldn't it?
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
https://grsecurity.net/~spender/vos-2-6-31-grsec2-1-14.tgz
https://grsecurity.net/~spender/petro-grsecurity-20140211...
I suggest that you send violation reports on Linux to <compliance@sfconservancy.org>, to report them to the GPL Compliance Project for Linux Developers. As far as I am aware, this is the only group of Linux copyright holders actively doing enforcement on Linux (now that Harlad Welte has moved on to other things).
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Wol
Questioning EXPORT_SYMBOL_GPL()
It's about the USERS
Questioning EXPORT_SYMBOL_GPL()
Questioning EXPORT_SYMBOL_GPL()
Jon
