|
|
Log in / Subscribe / Register

Collaborative GPL enforcement

By Jake Edge
May 14, 2014

Embedded Linux Conference

GPL compliance is probably a more important topic for the embedded Linux community than it is for any other free-software community, Bradley M. Kuhn said to start his Embedded Linux Conference (ELC) talk. After three years of trying, he was glad to be able to give his presentation at this year's ELC. In it, he covered a wide range of information about the GPL itself, compliance with it, how the GPL has been enforced, and where enforcement is heading next.

It turns out that he has spent the bulk of his career enforcing the GPL, first at the Free Software Foundation (FSF) starting in 1999 and now at the Software Freedom Conservancy (SFC). Those are two organizations that are doing what he called "community enforcement". GPL enforcement is, he said, his only claim to fame—something he has embraced over the last few years.

GPL operation

There is a difference between how the GPL operates in theory and how it works in practice, Kuhn said, and the latter only becomes clear when you try to enforce the license. In theory, the GPL is a copyright license and copyright is "more or less standardized" throughout the world. Like all copyright licenses, the GPL grants permission to do things that would not otherwise be allowed with the copyrighted work. But the GPL "hacks" copyright, into copyleft, by making those permissions dependent on granting the four freedoms to any downstream recipient of the code. Copyleft is one of those things that it is easy to understand once it has been explained, but is hard to come up with when no one else has done so—it was "a stroke of genius".

[Bradley Kuhn]

But in the real world, there are those who violate the GPL. If everyone "played by the rules", Kuhn said, he would use and advocate the Apache License. When there are violations, he believes that "social pressure" is always the first step to take.

When social pressure doesn't work, the copyright holder needs to use copyright law if they want to enforce their copyright (or left). He is not a fan of copyright law, in general, given the way that the movie studios and others have abused it, but copyleft enforcement depends on copyright law. He sees it as a case of "using the tools we have for the cause of good".

It is important to recognize that failing to follow the rules of the license means that the violator loses the right to distribute the GPL-covered coded. Further distribution is copyright infringement, he said, even if it is done in compliance with the license. The only way to get back the right to distribute is to "beg the copyright holder" for permission.

One of the complexities of modern GPL enforcement is that some current enforcement activities are not software-freedom motivated, Kuhn said. Oracle now holds the MySQL copyrights and enforces the GPL in a "corrupt use of copyleft". Oracle says that sending SQL statements to a MySQL server makes the client code a derivative work (thus subject to the GPL). In his mind, in any kind of enforcement, compliance must be the paramount goal. Oracle's goal is to convince people to buy licenses, not to get them to comply. That is not "community enforcement", which puts compliance above all other interests. Community enforcement is done for the public good, by or on behalf of the community.

It is the community (users) that report the violations that he ends up doing GPL enforcement on. Those violations are typically in some embedded device like a TV or a router, Kuhn said. Either the manual has an offer to provide the source, but no source is provided when someone tries to get it (he calls that "offer fail") or it is clearly running Linux but there is no offer to provide the source. The SFC gets a report of that sort weekly or even more often.

Standard procedure

Once a violation report is received, and enforcement is pursued, there is a standard procedure that gets followed. First, verify that there really is a violation, then send a "cease and desist" letter to the violator. "Cease and desist" is the proper technical term, but he doesn't like it because he would really rather see the violator keep using the software, but come into compliance.

At that point there is a loop. The violator is asked for the "complete, corresponding source" (CCS), as required by the GPL, and the SFC then builds that code and tries to make it work, which it almost never does. So SFC sends a report to the violator explaining why the code it sent is not the CCS and asks for it again. Sometimes a patch is sent with the report, he said, that will produce (or help produce) the CCS. That loop can happen many times. The record is 23 times through the loop, but five to seven is the median.

Once the CCS has been sorted out, the SFC asks the violator to inform its customers of that product that the CCS is available and to provide the CCS (as described by the GPL) going forward. It asks the violator to pay a reasonable hourly cost for the work it has done. After that, SFC restores the copyright permissions so that the now ex-violator can legally distribute the software again.

The money is "controversial" in the community, Kuhn said, but "no community enforcer is getting rich"—"maybe Oracle is" with its form of enforcement. In fact, since SFC is a 501(c)(3) US non-profit, you can see its tax filings online. That means you can see how much it got and how much it spent on enforcement, as well as the salaries of Kuhn and other decision-makers at SFC.

When he was at FSF, Kuhn was "the holdout" on the money question, as he didn't think FSF should ask for money. But, at one point, Dan Ravicher asked him who should pay for enforcement. Should it be those companies that donate to the FSF, most of which are in compliance? Or should it be the individual donors to the organization? The money has to come from somewhere, Ravicher told him.

In addition, if there is no deterrent to violating the license, no violators will ever voluntarily comply. If they know they can just "wait until you come knocking", without any financial penalty, they will do just that.

The financial settlements are confidential, but that is at the request of the violators. That upsets him, as he would rather see that information be public.

There are a number of things that SFC does not ask for as part of compliance. It has jumped through "amazing hoops" to make sure that products don't get junked because it is "bad for the environment". In one case, 80,000 units would have had to go to the landfill, but SFC found a way to avert that, Kuhn said. SFC also tries to avoid injunctions, though it has gotten them on occasion. When that happens, the violator has been a year or more out of compliance, had many warnings, and knew that an injunction had been filed for.

Another thing the SFC avoids is getting companies to switch away from using GPL-covered software. Instead, it tries to make it easy for those companies to continue using the software. Lastly, the organization tries to avoid lawsuits. Those are "always a last resort". By the time a lawsuit gets filed, it is only after "hundreds of hours" trying to get the violator to comply.

Building the code

The point of the GPL is not just to be able to examine the source code. The CCS includes "the scripts used to control compilation and installation", so users can actually build the code, not just look at it. That's part of the "freedom to modify", but it can be difficult to check that the scripts included in the CCS will actually build something that will work on an embedded device.

But ensuring that it will build something useful is important, as the WRT54G story shows. In 2003, there were "dozens" of reports about violations in the Linksys WRT54G wireless router. Discussions began between the FSF and Cisco (who had bought Linksys weeks before), but then someone posted the story to Slashdot. There is a mistaken belief that making a violation public will get it resolved more quickly, Kuhn said, but it actually makes it take much longer.

The FSF put together a group to enforce the GPL for that product, which included Erik Andersen of BusyBox and Harald Welte, who had copyrights in the Linux kernel. After many "rounds" of getting CCS candidates, the FSF eventually got everything working (except for two proprietary kernel modules). That CCS became the first check-in for the OpenWrt project, which is now a major replacement firmware option for wireless routers. OpenWrt credits the WRT54G enforcement action as the starting point for the project, Kuhn said.

The FSF was initially shy about lawsuits. Welte participated in the WRT54G enforcement, but tried to get the FSF to file more lawsuits, which it was loath to do. Kuhn said that there was a conference call every week for 30 or 40 weeks in which Welte asked "why haven't you sued them?". In retrospect, Welte was right, Kuhn said. When it became clear that FSF was not going to do so, Welte filed multiple lawsuits in Germany and was "quite successful" in enforcing the GPL in those suits. These days, though, Welte is working on other projects, so his gpl-violations.org project is mostly defunct now, except for hosting the mailing list.

By mid-2006, Andersen had become unhappy with the lack of GPL compliance for BusyBox, particularly in routers and network-attached storage (NAS) devices. He asked SFC to help with BusyBox license enforcement, so SFC became his agent for enforcement, while also receiving other BusyBox developers' copyright assignments for enforcement.

Since 2007, SFC has always had more than 100 violations queued up for enforcement. The list of violations currently stands at more than 300. The enforcement that it is has done on both BusyBox and Linux has made a real difference, Kuhn said.

Samsung is an example of a compliance success story, he said. SFC sued Samsung at one point over code in one of its TVs. That suit was settled and the CCS that came out of it was the basis for the SamyGO project, which creates replacement firmware that enables features like video recording on certain Samsung TV models. More recently, SFC worked with Samsung to fix a GPL-compliance problem in the company's exFAT filesystem. Normally violations take quarters or years to fix, but that one was resolved in weeks. It shows that, as Samsung now knows, compliance is not actually all that difficult, Kuhn said.

But why are there so many violations? He said he doesn't think downstreams (like device makers) are the problem here; the problem comes from upstream. He has tried to get violators to go on the record blaming their upstream suppliers, so that he can go after the supplier instead, but no one seems willing to do that. All of the violators ask that he not talk to their upstream about compliance, as the violators want to work with the upstream on compliance, which is a bit puzzling to him.

What developers can do

Developers, and embedded developers in particular, can help stop these violations. When you get code from a supplier, ensure that you can build it, he said, because someone will eventually ask. Consider using the Yocto project, as Beth Flanagan has been adding a number of features to Yocto to help with GPL compliance. Having reproducible builds is simply good engineering practice—if you can't reproduce your build, you have a problem.

He recommends putting the CCS online and noting the URL in the manual. Lots of people think that the GPL requires that, even though it doesn't. But doing so makes compliance much easier. He doesn't want to have to test offers from the manual to get the source code; "your fulfillment department will screw this up", he said. You can avoid all of that by having the source code online.

If possible, help select the suppliers and ask them about CCS before buying from them. Companies can also demand legal indemnity from their suppliers. Verizon got indemnity from a supplier who promised not to put any open-source software into a product, which saved Verizon from being the target of an enforcement action when the device was found to contain both Linux and BusyBox.

For many years, BusyBox enforcement was used to require device makers to comply with the licenses of other GPL code they were distributing. Typically that was the Linux kernel. But the community was split about using BusyBox as a lever to get kernel sources. Some kernel developers were unhappy about that, while others were supportive. Current BusyBox maintainer Denys Vlasenko convinced Kuhn that it should not only be BusyBox carrying the load for enforcement and that Linux kernel developers should get involved as well.

Matthew Garrett had been asking Kuhn to help him enforce GPL compliance on the kernel for some time. Garrett is a kernel copyright holder, but for years it was just easier to continue doing enforcement with BusyBox. Once Kuhn changed his mind on that, it turned out there were other kernel developers interested in enforcing the GPL for the kernel as well. That led to the GPL compliance project for Linux developers, which was created in May 2012.

That compliance project has now spread beyond just BusyBox and Linux, with Samba and Mercurial joining up. SFC is also doing "passive enforcement" for other projects where there are no known violations, but that SFC will enforce compliance if any are found. Garrett and David Woodhouse have publicly stated that they engaged SFC to enforce the GPL, but there are other kernel developers (roughly a dozen in all) who have joined the efforts anonymously. SFC is also in discussions with two "major free-software projects" to do enforcement for them.

Kernel modules

But there is an "elephant in the room" with respect to Linux and the GPL: kernel modules. Kuhn and the SFC lawyers believe that Linux kernel modules are almost always derived works of the kernel (thus subject to the GPL). Many corporate lawyers disagree. Since there is limited case law in this area, there is little guidance. That means there are no general rules, so it comes down to the specific facts of the case.

Since both sides believe they are right, this is the kind of dispute that turns into a big court battle. Kuhn's "political opponents" call that battle "the ground war of GPL", he said. He believes that it is time to have that ground war. He also believes that a GPL case will go before the US Supreme Court in the next 20 years or so, he said when answering a question from the audience.

Kuhn wrapped up his talk with an invitation to anyone who has code upstream in the kernel to "join the coalition". For some, their employer will hold the copyright. Others may not want to enforce the license, which is fine as it is not required, he said, and he doesn't blame those who don't want to do so. But for those who do, he asked that they see him after the talk as he had brought along forms for them to sign.


Index entries for this article
ConferenceEmbedded Linux Conference/2014


to post comments

Collaborative GPL enforcement

Posted May 15, 2014 7:36 UTC (Thu) by NUXI (subscriber, #70138) [Link] (8 responses)

I'm kind of curious just how precise of a duplicate build they require in order to consider you in compliance.

Having tried to rebuild various source packages from Debian/Redhat/etc over the years, I'm not entirely convinced one of the major linux distros could actually comply with a CCS request on the first try (or even the second). The build systems they use are often only fully reproducible in theory, rather than in practice. You often see this reflected in the fact that at any given moment a small chunk of the repository will FTBFS.

The same goes for the build systems of individual programs too. Syslinux would be a notorious example of a program doomed to fail a CCS request. The author requests you use his official binaries for a good reason.

What's CCS entail?

Posted May 15, 2014 20:13 UTC (Thu) by bkuhn (subscriber, #58642) [Link] (7 responses)

NUXI asks:
> I'm kind of curious just how precise of a duplicate build they require in order to consider you in compliance

Assuming by “they” you mean “Conservancy and the people on behalf of whom Conservancy enforces for”, I can probably answer, with my Conservancy hat on:

So, we really do try to build and install the software onto the device, and if we can't make that happen, we flag it for another time through the CCS loop. That's why the CCS process takes so long.

What we get out the other end usually builds and installs, but often is ugly and a mess, including weird step-by-step English instructions telling you to move various files around, and do other odd things. We don't get a clean, perfect, make && make install answer, but rather a set of complex instructions that make up the required “scripts to control compilation and installation of the executable”.

If you encounter CCS compliance problems, please do report them to <compliance@sfconservancy.org>, and we'll try to help. However, note that our queue is huge, so I can't guarantee we'll do more than document the case and queue it. :)

Meanwhile, though, you ask specifically about distribution vendors. Someone after the talk that Jake's summarizing asked the same question, pointing out that, say, you can't build Debian from scratch without the previous version of Debian. That would be a fine CCS instruction from my point of view. We've been told in CCS instructions (as recently as a year or two ago) that we have to go find a copy of Red Hat Linux 7.0 as a build environment (no, not RHEL 7, I mean the one released on 2000-09-25). I keep a bunch of ancient ISOs around for just such purposes. (And yes, the thing built on Red Hat Linux 7.0 :).

That said, I know people have complained that you can't build Fedora, or CentOS or Debian from scratch easily. I don't know if that's the case, but note that those distributions aren't 100% GPL (i.e., they include tons of non-GPL'd stuff), and therefore you have to ask the question of whether you can build and reinstall any given GPL'd package. I suspect that usually you can.

My rule of thumb is that: any given build/install step that gets a reasonably talented build engineer stuck for more than an hour or two is inadequate under GPL. What we often do, though, is we spend more than an hour or two and offer back patches to improve the CCS.

Finally, I admit that I really need to do more writing about what constitutes good CCS. I've been searching for Mr. Beautiful CCS for more than 5 years now, and, quite frankly, nearly every CCS I've seen is what I'd call “barely adequate” and I don't want to go out and ballyhoo a specific CCS release that I don't think is stellar. The problem is, other than true upstream and/or source-only releases, no one does stellar CCS: the adequate is the enemy of the pristine.

When I find it, I will definitely add a section to the book I'm working on to walk through that CCS example step-by-step and explain why it's so good.

What's CCS entail?

Posted May 17, 2014 4:51 UTC (Sat) by pabs (subscriber, #43278) [Link] (1 responses)

Some Debian folks are working on improving the bootstrappability of Debian:

http://bootstrap.debian.net/
https://wiki.debian.org/DebianBootstrap

Mainly to make it easier to create new ports but it could lead to people testing bootstrapping Debian from various OSes. Ultimately it all comes down to being able to compile the distro's version of GCC/LLVM using whatever compiler you have available. Eventually we will also have fully-reproducible builds and that could be used to verify bootstrapping from other OSes.

https://wiki.debian.org/ReproducibleBuilds

Debian also does regular archive-wide rebuilds of our in-development release to verify that packages still build with current versions of other packages.

https://wiki.debian.org/qa.debian.org/ArchiveTesting

Debian does check for missing source but upstream mistakes can slip through package-maintainer's and archive-maintainer's checks due to lack of knowledge or other issues. We now have some heuristics in lintian (our package checking tool) that finds many issues, including some false positives. Most of the issues will be due to embedded code copies of minified versions of jQuery, which is dual MIT+GPL licensed.

http://lintian.debian.org/tags/source-is-missing.html

What's CCS entail?

Posted May 18, 2014 2:58 UTC (Sun) by wookey (guest, #5501) [Link]

We are indeed, and making slow-but-steady progress (as is Debian's wont).

Here is another interesting URL:
https://wiki.debian.org/HelmutGrohne/rebootstrap which points to a jenkins instance running dodgy scripts which try to boostrap a selection of Debian arches from scratch. None of them get very far yet, but that will improve over time - the idea being to eventually have nice CI running to make sure that the distro stays bootstrappable, or at least knowing which things are currently breaking it.

What's CCS entail?

Posted May 22, 2014 18:14 UTC (Thu) by welinder (guest, #4699) [Link] (4 responses)

As far as I can see they are being nice by telling you what files to
delete. If they did that by hand when they created the firmware,
then it is not part of the CCS. They have to supply all the code and
build scripts, not (human-target) instructions on how to use it.

"make && make install" would be nice, but isn't a requirement of the GPL.

What's CCS entail?

Posted May 23, 2014 11:35 UTC (Fri) by bkuhn (subscriber, #58642) [Link] (3 responses)

welinder wrote:

If they did that by hand when they created the firmware, then it is not part of the CCS.

The above is simply not correct. scripts includes any human-target instructions. The word doesn't necessarily mean a shell script; it could mean a script that the human must “act out” to control compilation and installation.

What's CCS entail?

Posted May 23, 2014 15:20 UTC (Fri) by intgr (subscriber, #39733) [Link] (2 responses)

it could mean a script that the human must "act out" to "control compilation and installation".

Wow, as IANAL, that really sounds like stretching it. I can understand the desire to acquire these instructions along with the code, but claiming that's what the license requires is dishonest. Since the license doesn't require what you want, you play with the definitions of words to get what you want?

The GPL license was written for coders and in collaboration with coders. If you survey some coders, I am certain that a large majority will say that human instructions are not scripts.

In fact, what GPLv2 really requires is "complete corresponding machine-readable source code" and GPLv3 "machine-readable Corresponding Source". The word "script" only appears in a clarification of what "source code" includes. Can you really say with a straight face that your definition of "machine" includes humans?

Even the gpl-violations.org FAQ says under What are "scripts used to control installation"?

[...] The process of installation is often automatized by installation scripts. [...]
[...] But when reading and interpreting the license, it is clearly understood that the license doesn't specifically only mean "scripts", but any kind of software programs that are required to install a (modified) version of the compiled program.

Am I missing something?

What's CCS entail?

Posted May 23, 2014 16:50 UTC (Fri) by mathstuf (subscriber, #69389) [Link]

What if, included with the human instructions, they provide a robot which performs said actions?

Also, "machine-readable"…`cat` can "read" everything. Maybe "machine-executable" would be better?

What's CCS entail?

Posted May 27, 2014 13:37 UTC (Tue) by bkuhn (subscriber, #58642) [Link]

The gpl-violations.org FAQ is only a statement of what the folks who run that site believe.

The intent of the license is clear that the goal is to perform compilation and installation. Whatever instructions are needed to get that done are what's required.

If it were any other way, then everyone would just memorize their list of build commands and say GPL didn't require them because they'd never written them down. I doubt a judge is going to find that acceptable compliance. Judges hate when defendants do manipulative things to circumvent a license.

MySQL servers requiring clients be GPL

Posted May 15, 2014 9:01 UTC (Thu) by pricechild (subscriber, #78087) [Link] (11 responses)

> Oracle says that sending SQL statements to a MySQL server makes the client code a derivative work (thus subject to the GPL).

Is this an inference based on their android lawsuit or really a statement Oracle has made?

MySQL servers requiring clients be GPL

Posted May 15, 2014 17:32 UTC (Thu) by mathstuf (subscriber, #69389) [Link] (2 responses)

What if you claim to support MariaDB and say "if it works with MySQL, lucky you"?

MySQL servers requiring clients be GPL

Posted May 18, 2014 22:10 UTC (Sun) by eean (subscriber, #50420) [Link] (1 responses)

Isn't MariaDB a fork of mysql? So Oracle is a copyright holder of MariaDB. (I would be happy to be wrong...)

MySQL servers requiring clients be GPL

Posted May 19, 2014 3:21 UTC (Mon) by mathstuf (subscriber, #69389) [Link]

Oracle would threaten a GPL suit to get them to buy a commercial license, not force GPL proliferation. From that angle, saying you work with MariaDB should remove the larger part of the looming threat.

MySQL servers requiring clients be GPL

Posted May 15, 2014 19:18 UTC (Thu) by bkuhn (subscriber, #58642) [Link] (6 responses)

> Is this an inference based on their android lawsuit or really a statement Oracle has made?

My statement in the talk was actually based on statements made to various parties who MySQL AB "shook down" just before the time of the Sun purchase of MySQL AB. I heard from many people that Sun was much less aggressive on the MySQL shake-downs, and that Oracle brought back the old days of it. (I also had first-hand conversations with MySQL "sales staff", who even tried to hire me as a "consultant" at one point that helped confirm some nasty interpretations of GPL were going on at the old MySQL AB.)

The sad part is that I have been completely unable to get anyone to go on record about getting one of these "shake downs". They are all terrified, because they rely on MySQL commercially and fear getting sued by Oracle. I've offered myself as an expert witness and even offered to help if they wanted to file a declaratory judgment case, but no one wants to.

Anyone who uses MySQL commercially lives in fear of these Oracle shake downs, and it gives honest, community-oriented GPL enforcement a bad name.

If someone wants to put in the sleuthing time to dig deeper on the story (I'm looking at you, LWN staff ;), I can share a whole list of off-the-record contacts who'd probably be willing to tell you the same stories they've told me.

MySQL servers requiring clients be GPL

Posted May 15, 2014 19:37 UTC (Thu) by khim (subscriber, #9252) [Link]

Anyone who uses MySQL commercially lives in fear of these Oracle shake downs, and it gives honest, community-oriented GPL enforcement a bad name.

Anyone? Even Google? I find that hard to believe, really, but then who knows what agreements they signed under NDA. Will make the whole thing a farce, though, isn't it?

MySQL servers requiring clients be GPL

Posted May 16, 2014 8:25 UTC (Fri) by pricechild (subscriber, #78087) [Link]

Thanks very much for your response, it's really appreciated!

MySQL servers requiring clients be GPL

Posted Jun 21, 2014 11:29 UTC (Sat) by sitaram (guest, #5959) [Link] (3 responses)

I thought the *client* libraries moved from LGPL to GPL, and that is the cause of the shakedown. Saying this is because of "sending SQL statements to a MySQL server" sounds a little off, or at least subject to mis-interpretation.

I suppose in theory you could do that with a completely rewritten client side.

The usual short term solution is to switch to (the currrently plug-compatible) MariaDB. In the long term, however, that won't wash. Maria is not a solution; Monty Widenius and co are sure to do exactly the same LGPL-to-GPL bait-and-switch that they pulled with MySQL.

Friends don't let friends use projects that mandate copyright assignment (even if it is non-exclusive) to a for-profit entity.

MySQL servers requiring clients be GPL

Posted Jun 22, 2014 15:19 UTC (Sun) by rschroev (subscriber, #4164) [Link] (2 responses)

Is it possible to use the MariaDB client library to talk to a MySQL server?

MySQL servers requiring clients be GPL

Posted Jun 22, 2014 16:19 UTC (Sun) by rahulsundaram (subscriber, #21946) [Link]

MySQL servers requiring clients be GPL

Posted Jun 22, 2014 20:51 UTC (Sun) by clemensg (guest, #94377) [Link]

I think it is. But better take a look at: https://mariadb.com/kb/en/mariadb-versus-mysql-compatibil...

MySQL servers requiring clients be GPL

Posted May 16, 2014 6:19 UTC (Fri) by mgedmin (guest, #34497) [Link]

At one point (in the days of MySQL AB) there was a statement in the official MySQL documentation that claimed any app talking to the MySQL server by using its binary protocol was a derivative work and had to be GPLed, unless you shelled out for a commercial licence.

Collaborative GPL enforcement

Posted May 15, 2014 10:59 UTC (Thu) by HIGHGuY (subscriber, #62277) [Link] (4 responses)

He's right about upstream being a problem. Most embedded Linux vendors are now bitbake-based, but that's far from a guarantee.
The upstream vendor sells a Linux product including sources, build-scripts and whatever. The point is that they sell you _their CCS_, so _they_ are pretty much automatically in compliance. The output of their deliverables, however, is a binary.
So the Linux vendor is happy, they've fulfilled their license requirements just by delivering that bitbake-based distribution. The customer needs to hack around just to get to the point where a binary + CCS is generated.
I've done it with OpenEmbedded and I wouldn't swear that it will survive the test of license fulfillment. Yet, I can say with my hand on my heart that we've put in good and honest effort to produce the required deliverables.
I agree that making license compliance easy is as important as enforcement itself. Perhaps that was significantly improved in later versions (using old versions is one of the 'perks' of vendor-supplied OS); I sure hope so.

License compliance is like security. It doesn't generate income, it prevents extra cost. It also requires continuous investment and attention.

The Upstream Problem

Posted May 15, 2014 19:23 UTC (Thu) by bkuhn (subscriber, #58642) [Link] (3 responses)

Thanks for your comments, HIGHGuY. I agree with your points. I just wish people who were in the middle there would tell me when the CCS doesn't work so I can help. What I truly don't understand is why the downstream OEM industry (i.e., the middle-men in-between SoC vendors and final product vendors) don't report the violations by their upstreams. Heck, the final product vendors don't report violations on the middle-men either, for that matter. If I were a conspiracy theorist, I'd think they were all colluding to thwart compliance. But, I actually think it's more of a prisoner's dilemma for all the vendors involved.

The Upstream Problem

Posted May 17, 2014 9:09 UTC (Sat) by HIGHGuY (subscriber, #62277) [Link] (2 responses)

> But, I actually think it's more of a prisoner's dilemma for all the vendors involved.

The way I look at it, the request for license compliance flows the opposite way as the code itself. So, as a company, if my customers don't require license compliance, I don't bother either and naturally, I won't ask my upstream vendor.

Secondly, you don't bite the hand that feeds you. Especially for a 'minor' issue like license compliance. Time-to-market and cost are many times more important.
Also, who wants to sell to someone that sues you? These things (if deemed important enough by the receiving end) are (and must be) handled through contracts.

I had a case where a vendor delivered a dual-licensed (commercial+GPLv2) S/W component as a dynamically linked library. That library was linked against by their proprietary software.
Dutifully I signaled the issue and reported back to the vendor. That vendor said 'nothing was wrong' since according to their legal advice dynamic linking against GPL was allowed. "Enter legal battle", I thought.
After getting the local legal dept involved they simply said: we can't win this argument. In the worst case we need to test GPL in court, which is the last thing we want (especially against a vendor you're depending on for revenue).
So what advice did we get from legal? Make it a business decision, not a legal decision. i.e. The contract states that we get to choose between:
sharing your proprietary code with downstream recipients upon license fulfillment request, or get beaten up in court ourselves and demanding indemnifications from upstream vendor according to contract.
The matter was solved quickly once the upstream vendor's responsible manager needed to make this decision - a commercial license was acquired.

I also believe that a company's internal processes and QA are greatly reflected in the quality and speed of delivery of their CCS. Having been through the process of handling upstream vendor's CCS, albeit for a limited number of vendors, this was one thing that stood out.

The Upstream Problem

Posted May 17, 2014 19:45 UTC (Sat) by bkuhn (subscriber, #58642) [Link] (1 responses)

HiGHGuy, do I know you IRL or via another name online? Given your level of expertise on this stuff, I think I want to be in touch with you. :) Are you on gpl-violations.org mailing lists?

The Upstream Problem

Posted May 18, 2014 10:23 UTC (Sun) by HIGHGuY (subscriber, #62277) [Link]

> HiGHGuy, do I know you IRL or via another name online?
Nope
> Are you on gpl-violations.org mailing lists?
Nope

I'd say my input is merely n=1 experience, but if it's valuable to you, I'd be glad to help. I've sent you an e-mail.

A Few additional resources related to this talk.

Posted May 15, 2014 20:07 UTC (Thu) by bkuhn (subscriber, #58642) [Link] (2 responses)

I was the speaker for this talk, and thanks to Jake for writing up a summary of the talk!I share below a few resources related to the talk that might be of interest to those who have read Jake's summary:

I hope these materials are helpful to LWN's readers!

A Few additional resources related to this talk.

Posted May 17, 2014 12:57 UTC (Sat) by alison (subscriber, #63752) [Link] (1 responses)

Bradley, might there be a link to the form you brought along, mentioned in the last paragraph of Jake's article?

A Few additional resources related to this talk.

Posted May 17, 2014 19:41 UTC (Sat) by bkuhn (subscriber, #58642) [Link]

Any developers who wish to join Conservancy's enforcement efforts can email compliance@sfconservancy.org to discuss it with us.

Collaborative GPL enforcement

Posted May 16, 2014 17:45 UTC (Fri) by BenHutchings (subscriber, #37955) [Link] (1 responses)

I'm also in the GPL compliance project for Linux developers and I'm not anonymous. :-)

Collaborative GPL enforcement

Posted May 17, 2014 19:46 UTC (Sat) by bkuhn (subscriber, #58642) [Link]

Ben,

I wasn't completely sure you wanted to be publicly identified, because in fact I think the only place you've identified yourself publicly has been on this and one older thread here on LWN.

I'll add you with the other to to list of people who are involved. :)


Copyright © 2014, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds