|
|
Subscribe / Log in / New account

Obfuscated "GPL" driver?

Obfuscated "GPL" driver?

Posted Oct 15, 2015 15:44 UTC (Thu) by nybble41 (subscriber, #55106)
In reply to: Obfuscated "GPL" driver? by Wol
Parent article: Status updates for three graphics drivers

Of course the authors of the Vivante driver can obfuscate the source as much as the like (provided it isn't a derivative work of Linux or other GPL code), but if what they distribute isn't in the "preferred form for modification" then neither they nor anyone else can distribute it as part of a combined work with the Linux kernel. The relevant copyright holders in this case are those who hold copyright in the Linux kernel—not the Vivante driver.


to post comments

Obfuscated "GPL" driver?

Posted Oct 15, 2015 16:16 UTC (Thu) by andresfreund (subscriber, #69562) [Link] (15 responses)

As the copyright holders they determine the "preferred form", no?

Obfuscated "GPL" driver?

Posted Oct 16, 2015 2:05 UTC (Fri) by nybble41 (subscriber, #55106) [Link] (14 responses)

> As the copyright holders they determine the "preferred form", no?

Yes, the copyright holders for the Linux kernel get to decide what the preferred form of modification is for code included in derivative works of the Linux kernel.

(Or did you mean something else, like each contributor getting to decide what the preferred form is for their own small part, which would render the clause completely useless?)

Obfuscated "GPL" driver?

Posted Oct 19, 2015 15:00 UTC (Mon) by Wol (subscriber, #4433) [Link] (13 responses)

> (Or did you mean something else, like each contributor getting to decide what the preferred form is for their own small part, which would render the clause completely useless?)

Actually, that is the only interpretation that is possible. And no it doesn't render the clause useless.

If the other copyright holders consider that "the preferred form" is unsuitable, they simply don't pull it into their tree. What they can NOT do is tell someone else what that someone else is allowed to do with their own code.

Cheers,
Wol

Obfuscated "GPL" driver?

Posted Oct 19, 2015 15:53 UTC (Mon) by nybble41 (subscriber, #55106) [Link] (12 responses)

> If the other copyright holders consider that "the preferred form" is unsuitable, they simply don't pull it into their tree.

Their tree isn't the only one that matters when you consider derivative works. One cannot take GPL code from party A plus (nominally) GPL code from party B, which party A considers obfuscated and not "the preferred form for modification", and distribute a derivative work including code from both sources. That is the entire point, really, of the clause requiring that the modified code be distributed in the "preferred form". Otherwise I could trivially circumvent the GPL by combining other people's GPL'd code with my own obfuscated modifications (a hex dump of the binary, perhaps) and call that the "preferred form".

Either the "preferred form" is defined objectively with reference to some external community standard, or all the copyright holders in the combined work need to agree that the code is in the "preferred form". Nothing else makes sense.

Obfuscated "GPL" driver?

Posted Oct 19, 2015 16:19 UTC (Mon) by sfeam (subscriber, #2841) [Link] (11 responses)

Reference to some external community standard or consensus would not work either. If that were the whole of it, then a change in community preference could invalidate the license status of code going back decades.

Obfuscated "GPL" driver?

Posted Oct 19, 2015 17:34 UTC (Mon) by nybble41 (subscriber, #55106) [Link] (10 responses)

Presumably the standard that would be applied would be whatever was in effect at the time the license was offered and/or accepted, so it wouldn't be invalidated quite so easily as that. I agree, however, that the (in effect) "reasonable person" standard leaves much to be desired. For that matter, the license shouldn't really refer to something like "the preferred form for modification" at all without defining exactly what that means.

Obfuscated "GPL" driver?

Posted Oct 19, 2015 20:41 UTC (Mon) by madscientist (subscriber, #16861) [Link] (9 responses)

I always assumed it meant the form that the copyright holder preferred to use when they modified the code themselves. It should not be difficult, from a legal perspective, to show whether or not the copyright holder really uses the same form of the code when they modify it internally, compared to the form in which they distribute it. If they really edit the obfuscated code directly and don't have the un-obfuscated code around to make changes then convert it again, well, then, it sucks to be us but it's not violating the license. I'm not sure I see the big hole in this.

Obfuscated "GPL" driver?

Posted Oct 20, 2015 17:33 UTC (Tue) by nybble41 (subscriber, #55106) [Link] (8 responses)

> I always assumed it meant the form that the copyright holder preferred to use when they modified the code themselves.

The really interesting case is when a copyright holder releases obfuscated code under the GPL. They have the right to do that, provided it isn't a derivative work—it's their code, they can release it however they want. The license is for the benefit of the recipients. Can someone else without access to the original, unobfuscated code combine what they received with third-party GPL code? It's the only form of the code they have, so it must be *their* "preferred form for modification" even if the original code looked entirely different.

Obfuscated "GPL" driver?

Posted Oct 21, 2015 13:26 UTC (Wed) by Wol (subscriber, #4433) [Link] (7 responses)

Which is exactly my original point.

You (a licensee) have no right to tell me (the copyright holder) what is the "preferred form".

The only sanction you have available is to refuse to use my code. Which is a freedom that the FSF would uphold :-)

It still amazes me that if someone makes a gift of code, the recipients of said gift seem to take it as their god-given right to carp and moan about the giver's bad behaviour ...

Cheers,
Wol

Obfuscated "GPL" driver?

Posted Oct 21, 2015 15:41 UTC (Wed) by nybble41 (subscriber, #55106) [Link] (6 responses)

You didn't answer the question. The problem isn't what the copyright holder can release, it's what the original author or other distributors can incorporate into GPL projects like the Linux kernel, thus creating a derivative work of both the obfuscated driver and the kernel, whose copyright holders do not consider obfuscated code to be the "preferred form for modification".

If the driver can't be distributed along with the kernel, it's essentially useless. The only way for one to use it would be to download the driver source and compile it for one's own system, which most users won't do.

Obfuscated "GPL" driver?

Posted Oct 21, 2015 17:39 UTC (Wed) by sfeam (subscriber, #2841) [Link] (5 responses)

Are you implying that a disagreement between the original authors of one piece of GPL code and the authors of another piece of GPL code can prevent combination of the two GPL works?

Obfuscated "GPL" driver?

Posted Oct 21, 2015 19:57 UTC (Wed) by nybble41 (subscriber, #55106) [Link] (4 responses)

> Are you implying that a disagreement between the original authors of one piece of GPL code and the authors of another piece of GPL code can prevent combination of the two GPL works?

Yes, exactly. This is obviously the case where one of the authors is the one trying to combine the works; otherwise the "preferred form for modification" clause would be meaningless. While you can release whatever you want under the terms of the GPL, it can't be enough to simply claim that the (obfuscated) code you're adding to another GPL project is in the proper form, when the other contributors disagree.

The only question is whether you can circumvent the clause less directly by releasing obfuscated code with a GPL license but not combining it with the other project yourself, leaving that up to third parties who need to distribute the combined work.

Obfuscated "GPL" driver?

Posted Oct 21, 2015 20:25 UTC (Wed) by sfeam (subscriber, #2841) [Link] (3 responses)

> Yes, exactly. This is obviously the case where one of the authors is the one trying to combine the works.

So according to that theory, the author of the work has fewer rights with respect to combining it than 3rd party recipients have? IANAL and all that, but I find that conclusion hard to swallow. It would be strange to reject a contribution from the original author while saying the same bit of code with the same controlling license would be acceptable if passed through a 3rd party.

You lost me at the point where somehow "other contributors" get to decide what GPL works can be combined. So far as I know, that level of control was ceded by releasing the contribution as a GPL work in the first place. After that they no longer have control over how it is combined with other GPL works. If they didn't want their work incorporated into other GPL projects then they should have released it under a different license. Of course if those same "other contributors" are also managing the project then yes, they will be able to reject the new contribution if it is not to their taste. But that power comes from their position as project manager, not from their status as copyright holder on a previous piece of GPL code.

Obfuscated "GPL" driver?

Posted Oct 21, 2015 22:55 UTC (Wed) by nybble41 (subscriber, #55106) [Link] (2 responses)

> So according to that theory, the author of the work has fewer rights with respect to combining it than 3rd party recipients have? ... It would be strange to reject a contribution from the original author while saying the same bit of code with the same controlling license would be acceptable if passed through a 3rd party.

That would not be my argument. It seems to be what Wol is suggesting. I would argue that neither the original author nor 3rd party recipients have the right to combine obfuscated code (even if provided under a GPL license from the author) with other GPL code where the obfuscated version is not deemed by the other contributors to be in the "preferred form for modification".

> You lost me at the point where somehow "other contributors" get to decide what GPL works can be combined. So far as I know, that level of control was ceded by releasing the contribution as a GPL work in the first place. After that they no longer have control over how it is combined with other GPL works.

There are requirements about how GPL projects can be modified beyond simply that the modifications must also be released under the GPL. One of those requirements is that the source code of your altered version must be provided to others in the "preferred form for modification". Whether you consider that form to be determined by the previous contributors, the FSF, or "community standards", it clearly can't be left entirely up to the author of the modifications.

As I said before, the clause is really much to vague, but all the same it's a critical part of ensuring that the source code the GPL requires is actually usable code, and not obfuscated to the point that it provides nothing beyond what you could get by disassembling the binary.

Obfuscated "GPL" driver?

Posted Oct 22, 2015 0:45 UTC (Thu) by smckay (guest, #103253) [Link] (1 responses)

No one in their right mind is going to argue in good faith that the Vivante driver is in the preferred form for modification. I doubt that anyone not in their right mind would argue it either--for example, LoseThOS/TempleOS/SparrowOS guy is obviously not quite totally sane but his code is still far, far better than obfuscated C. You have to provide something that is recognizably source code that a human might be willing to open in vi and make changes to. It can't be QR codes printed on 10 reams of copy paper, it can't be the output of gcc -S, it can't be a pile of tortuous crap that's obviously been run through an obfuscator. Someone else could argue differently, and IANAL, but courts seem to notice when they're presented with jackass arguments like "no, really, git history notwithstanding, I PREFER to modify obfuscated source" and don't appreciate it.

Obfuscated "GPL" driver?

Posted Oct 22, 2015 17:32 UTC (Thu) by nybble41 (subscriber, #55106) [Link]

> No one in their right mind is going to argue in good faith that the Vivante driver is in the preferred form for modification.

I agree. That doesn't prevent the Vivante driver code from being released under a GPL license, so long as the work isn't considered derivative; copyright holders are not bound by the terms of the licenses they grant to others. Which leads to the question that I've been asking: could someone take the GPL-licensed (but obfuscated) Vivante driver, build a binary which is a derivative work of both the Vivante driver and the Linux kernel, and distribute that binary without violating the GPL license of the kernel?

Obfuscated "GPL" driver?

Posted Oct 16, 2015 1:06 UTC (Fri) by cortana (subscriber, #24596) [Link]

This sort of obfuscation was considered by Debian to make the code non-free, though not non-distributable: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=383465


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds