Seems GPL2 or GPL3 already requires this
Seems GPL2 or GPL3 already requires this
Posted Nov 26, 2024 17:28 UTC (Tue) by intelfx (subscriber, #130118)In reply to: Seems GPL2 or GPL3 already requires this by ballombe
Parent article: Arch Linux finally starts licensing PKGBUILDs
Posted Nov 26, 2024 18:44 UTC (Tue)
by npws (subscriber, #168248)
[Link] (18 responses)
Posted Nov 26, 2024 19:54 UTC (Tue)
by daroc (editor, #160859)
[Link]
Posted Nov 26, 2024 20:30 UTC (Tue)
by Wol (subscriber, #4433)
[Link] (16 responses)
So what happens when (as has happened with me) the make files have a different author to the main project source, and were written because the main project didn't have any?
As was stated elsewhere, this promptly kills any requirement to provide said build scripts (because the original project didn't have any), and the GPL has no jurisdiction due to the lack of derivation.
(In practice, the makefile is "GPL by default", but there's nothing stopping it being explicitly GPL-incompatible.)
Cheers,
Posted Nov 27, 2024 0:07 UTC (Wed)
by JoeBuck (subscriber, #2330)
[Link] (15 responses)
It seems that if you give someone an executable of a GPL program, the text requires you to provide source, and the license says the source includes the build script you used to produce that executable.
If you don't provide an executable, then sure, it seems you can claim that any build scripts you have are independent works. I agree that they aren't derivative works. But it's producing the executable that combines them: the executable depends both on the original source and your build scripts. So you need to provide both to comply with the license if you distribute compiled code.
IANAL, but really, just read the text of the license. That's what it says.
Posted Nov 27, 2024 1:09 UTC (Wed)
by sfeam (subscriber, #2841)
[Link] (14 responses)
I suspect this brings us right back to the oft-noted point that it is not within the power of a license to define what is or is not a derivative work. I would argue that it is similarly not within the power of a license to extend itself to cover additional objects, text, entities, etc that are not inherently part of the work being licensed. There is also the argument that this requirement is invalid because it is too vague. What exactly constitutes "the build script you used"? Is it the makefile? a shellscript that invokes the makefile? the shell itself? the configuration script for your build environment? all or none of the above?
Posted Nov 27, 2024 10:37 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (11 responses)
It is very clear that FLOSS *forbids* licences attempting to cover "mere aggregation". So again we're getting into the realms of "what is a derivative work". Given that tarballs, git repositories etc rarely contain binaries, the argument about "derivative works" almost certainly doesn't apply to distributing those.
I wonder - the requirement for build scripts etc - is that a GPL3 anti-tivo-isation measure? It would be "interesting" if an attempt to ensure freedom actually broke freedom in a different way. Rather like GFDL documents are considered "unfree" if they contain invariant sections ...
Cheers,
Posted Nov 27, 2024 11:02 UTC (Wed)
by anselm (subscriber, #2796)
[Link] (10 responses)
The build-script requirement is already in GPLv2, which predates the TiVo.
AFAIR, the “anti-TiVo-isation” effort in GPLv3 added the notion of “User Products” (such as DVRs) and stipulated that software conveyed for use with User Products must include any required “methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product” (GPLv3 section 6). This goes beyond the requirements in GPLv2 to prevent a situation where, e.g., the DVR you bought came with complete source code under the GPLv2 but its proprietary boot loader will only run an operating system signed with the device maker's private key, which is not part of your software package.
Posted Nov 27, 2024 15:04 UTC (Wed)
by malmedal (subscriber, #56172)
[Link] (9 responses)
According to Bradley Kuhn, this is not correct, he says you could install and run your own Linux-version on TiVo as much as you wanted, but if you did, the proprietary software would stop working.
https://sfconservancy.org/blog/2021/jul/23/tivoization-an...
Posted Nov 28, 2024 8:21 UTC (Thu)
by anselm (subscriber, #2796)
[Link] (8 responses)
I wasn't making a claim about the TiVo in particular – this was just a hypothetical to describe the sort of provisions the GPLv3 adds to prevent clever antics on the part of device makers.
(You could note, too, that Linux specifically is GPLv2, so nothing in the GPLv3 that isn't in the GPLv2 would apply to a Linux-based DVR in any case. Just imagine, for the sake of the discussion, a future Linux-like operating system that DVR manufacturers might like to use and that is published under the GPLv3.)
Posted Nov 28, 2024 11:34 UTC (Thu)
by malmedal (subscriber, #56172)
[Link] (7 responses)
Sure, Kuhn's claim is that TiVo agreed that GPLv2 forced them to allow the user to install and run modified Linux.
I believe this sentence from your post is wrong:
>>> but its proprietary boot loader will only run an operating system signed with the device maker's private key, which is not part of your software package.
If I am understanding Kuhn correctly he says that GPLv2 already forces the device manufacturer to provide such keys, and that TiVo agreed and complied in the case of their device.
Posted Nov 28, 2024 13:35 UTC (Thu)
by anselm (subscriber, #2796)
[Link] (6 responses)
I'm certainly not going to disagree about GPL interpretation with Bradley Kuhn, who is after all a lawyer and noted GPL expert.
It does leave me wondering, though, why the GPLv3 went to the trouble of adding all sorts of provisions about “User Products” and so on, if the GPLv2 already does what is required. (In the case of the TiVo there's obviously no way the Linux kernel license could prevent the – “merely aggregated” – TiVo user-space software from checking whether it is running on an official TiVo-provided kernel and refusing to work if it isn't, and that would presumably also apply if the kernel was GPLv3 instead of GPLv2.)
Posted Nov 28, 2024 16:27 UTC (Thu)
by malmedal (subscriber, #56172)
[Link] (3 responses)
Posted Nov 29, 2024 1:55 UTC (Fri)
by pabs (subscriber, #43278)
[Link] (2 responses)
Posted Nov 29, 2024 1:57 UTC (Fri)
by pabs (subscriber, #43278)
[Link] (1 responses)
https://events19.linuxfoundation.org/wp-content/uploads/2...
Posted Nov 29, 2024 10:41 UTC (Fri)
by malmedal (subscriber, #56172)
[Link]
Posted Nov 29, 2024 13:24 UTC (Fri)
by paulj (subscriber, #341)
[Link]
Sometimes I get the feeling that some of the leading copyleft lawyers almost prefer not to see these questions argued in court and decided authoritatively (and here I do not refer in any way to bkuhn or anyone related to SFC, just for clarity). But maybe that's just my limited experience.
Posted Nov 29, 2024 15:42 UTC (Fri)
by Wol (subscriber, #4433)
[Link]
Maybe, at the time, it didn't?
Especially in light of the Playstation II furore, maybe TiVo changed the mechanism to be GPL3-compatible. If I thought something at work was a grey area (legal, H&S, whatever) and I could see a quick fix, I'd push for it ...
Businesses don't like expensive problems. Offer them a quick and cheap fix for a potentially expensive problem, and you should be able to get it through.
Cheers,
Posted Nov 28, 2024 0:35 UTC (Thu)
by gdt (subscriber, #6284)
[Link]
Posted Nov 28, 2024 17:09 UTC (Thu)
by NYKevin (subscriber, #129325)
[Link]
That is not how this works. You need permission to distribute the binaries. The license says, effectively, I will give you permission if you comply with my instructions. Those instructions can cover anything under the sun. If you don't want to follow the instructions, that's fine, it just means you cannot distribute binaries of the licensed program. It does not mean you get to pick and choose which instructions you want to follow.
> What exactly constitutes "the build script you used"? Is it the makefile? a shellscript that invokes the makefile? the shell itself? the configuration script for your build environment? all or none of the above?
The authors of the GPL already thought of all of those questions. Here's GPL 2:
> The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
GPL 3 contains a longer and more elaborate set of definitions in section 1 (which are, as far as I can see, largely equivalent to GPL 2, but more detailed). See https://www.gnu.org/licenses/gpl-3.0.en.html#license-text and note that definitions provided in section 0 are used in section 1.
Posted Nov 27, 2024 11:06 UTC (Wed)
by paulj (subscriber, #341)
[Link] (4 responses)
Posted Nov 27, 2024 11:52 UTC (Wed)
by Wol (subscriber, #4433)
[Link] (1 responses)
But for a perfect example of what you want ... is your blockbuster novel a derived work of the word processor you used to create it?
Cheers,
Posted Nov 27, 2024 16:22 UTC (Wed)
by paulj (subscriber, #341)
[Link]
> "running another program, ... depending on its output format"
E.g., a possible scenario: popen() some other programme, have it perform some task for you and take the resulting output and use it, such that your programme /depends/ on that other programme. At least, that's a scenario that lies within the realm of scenarios this statement admits. If the comment author didn't intend that with their statement maybe they can clarify. If they did intend that scenario to be covered, I'm curious for the reasoning to believe we can be "damn sure" there are no copyright implications.
Posted Nov 27, 2024 17:06 UTC (Wed)
by intelfx (subscriber, #130118)
[Link] (1 responses)
Note that I never said that "running another program *prevents* a derived work relationship". I said that such a relationship is not necessarily created by running another program or even depending on some properties of its output. Even if you " While I'm clearly not a lawyer, it is my belief that "depending" on the names of the binaries created by the upstream build scripts is far too insignificant of a dependency to be considered a basis for a derived-work relationship.
Posted Nov 27, 2024 17:19 UTC (Wed)
by paulj (subscriber, #341)
[Link]
The piece you quote from the FAQ is what I had understood before. Your comment made me wonder if you were arguing that running another programme (e.g. popen) /always/ prevented a "derives from" relationship, in which case I was curious to read more of your reasoning for that, to learn exactly why. But that wasn't what you meant - as you've just clarified there. Thanks.
Seems GPL2 or GPL3 already requires this
Seems GPL2 or GPL3 already requires this
Seems GPL2 or GPL3 already requires this
Wol
Seems GPL2 or GPL3 already requires this
Seems GPL2 or GPL3 already requires this
Seems GPL2 or GPL3 already requires this
Wol
Seems GPL2 or GPL3 already requires this
I wonder - the requirement for build scripts etc - is that a GPL3 anti-tivo-isation measure?
Seems GPL2 or GPL3 already requires this
Seems GPL2 or GPL3 already requires this
According to Bradley Kuhn, this is not correct, he says you could install and run your own Linux-version on TiVo as much as you wanted
Seems GPL2 or GPL3 already requires this
Seems GPL2 or GPL3 already requires this
If I am understanding Kuhn correctly he says that GPLv2 already forces the device manufacturer to provide such keys, and that TiVo agreed and complied in the case of their device.
I believe it is because of this paragraph in GPLv3(important bit in bold):
Seems GPL2 or GPL3 already requires this
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
Kuhn says he asked Stallman and Stallman confirmed that the point of this was to ensure that proprietary software should continue to function normally even if the GPL parts were modified, and my understanding is that this also holds for "mere aggregation".
Seems GPL2 or GPL3 already requires this
Seems GPL2 or GPL3 already requires this
Interesting, thank you, in his blog-post Kuhn writes.
Seems GPL2 or GPL3 already requires this
Specifically, I asked him on 2012-05-05:
In the slides he says:
[so], these words in GPLv3: “The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.” mean that the proprietary software that is not a combined work with the GPLv3'd work must also function?
Stallman replied on 2012-05-06 with:
Absolutely. And I wrote it specifically to do that!
Ironically, even if Linux were GPLv3, Tivo’s method of crypto-lock-down would likely comply with GPLv3.
bkuhn checked this with RMS: even he agrees this mechanism complies with GPLv3.
I can't find anywhere he has written his reasoning, would be interested to read a longer explanation of exactly what would and would not be a violation.
Seems GPL2 or GPL3 already requires this
Seems GPL2 or GPL3 already requires this
Wol
Seems GPL2 or GPL3 already requires this
Seems GPL2 or GPL3 already requires this
Seems GPL2 or GPL3 already requires this
Seems GPL2 or GPL3 already requires this
Wol
Seems GPL2 or GPL3 already requires this
I advise you to be less combative, but yes, I can: https://www.gnu.org/licenses/gpl-faq.html#MereAggregation
Seems GPL2 or GPL3 already requires this
> Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).
>
> If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.
>
> By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.
popen() some other programme, have it perform some task for you and take the resulting output and use it, such that your programme /depends/ on that other programme
". The FSF seems to agree with me.
Seems GPL2 or GPL3 already requires this