15 Nov 2013



Intellectual Property: Fundamentals

Intellectual property is something way too many people like to talk about without actually understanding the nuances of the laws supporting them. While I could easily go on and on about these misconceptions, I'll focus primarily on those that relate to free software and open source, of which there are plenty. Some of the more prominent ones include incorrectly claiming what is and what is not a GNU Public License (GPL) violation and the notion that companies should "just" go and open source their stuff. The latter is in my opinion almost hilarious in its naivety, but we will cover the former first.

Simplistically, the GPL states that anyone who receives a distribution of a piece of software is entitled to get a copy of the source code and any software that is derived from code under the GPL also falls under the GPL. It does not require the source code be provided free of charge, nor does it require the source code be made available to people who do not get the software destributed to them. GPLv2 also did not disallow methods that would block actual usage of the provided source code, such as requiring binaries to be signed to be run, though GPLv3 explicitly disallows it. GPLv3 also added a patent clause stating that anyone who releases GPLv3 code also grants a perpetual usage license to any patent they own whose processes are used in their supplied code. That particular clause has also pretty much killed any chance of GPLv3 adoption at many major corporations. The GPLv3 is however of only minor consideration internally, as opposition by the majority of the developers makes it unlikely ReactOS would ever move to it and several key developers have stated plainly that they will never grant permission to relicense their code under GPLv3.

The point of interest today however is the viral nature of the GPL, or rather, when it actually applies. As stated above, derived works automatically inherit the GPL, unless the derived work is by the original author of the code and he chooses to relicense. The thing that many people misunderstand however is what constitutes a derived work. Many people have in the past made claims on the forum that including such and such application or utility or library is automatically not possible because the code in question is under a different license or might be completely proprietary and therefore conflicts with the GPL. That automatic assumption is however incorrect, primarily due to the way that 'derivation' is sometimes equated with 'linking' by free software advocates. Programmers generally know that applications are rarely standalone. Most of them link in libraries so as to reuse functionality. The reasoning then goes that linking in code under the GPL constitutes creating a derivative work. This reasoning is a bit fuzzy and untested in court, but is sufficiently accepted by the majority of the free software community that many projects have explicit linking exceptions in place. Otherwise, using the GCC compiler and its implementation of the C++ standard library would automatically extend whatever version of the GPL that version was under to your own code if you distributed the resulting executables, which would basically kill GCC as a viable compiler for commercial use. Then there is the Lesser GPL (LGPL), which has this linking exception built in automatically.

There are two things to keep in mind with respect to ReactOS and bundling of programs, drivers, and libraries. First and foremost, the majority of those applications were written for Windows to begin with and built using Visual Studio and Microsoft's supplied libraries, meaning they never linked against ReactOS code to begin with. Second, many of the libraries that applications do interact with in ReactOS come from the WINE Project, which uses the LGPL for their code, so even for applications that do link against those libraries, they are already covered by the linking exception and thus the GPL does not automatically extend to them. These two factors combined means distribution of ReactOS with applications and drivers that are not under the GPL is a non-issue legally on ReactOS' side. The only legal impediment to doing so is whether the other software allows for redistribution at all. Other impediments are for the most part ideological.

Next time we'll explore a bit more about the consequences of choosing the GPL versus something like the BSD or Apache licenses.

Comments (9)

  • anon

    Also, I was wondering. When you say: "Simplistically, the GPL states that anyone who receives a distribution of a piece of software is entitled to get a copy of the source code and any software that is derived from code under the GPL also falls under the GPL. It does not require the source code be provided free of charge, nor does it require the source code be made available to people who do not get the software destributed to them." wouldn't that mean that it is rather simple in sidestepping the idea behind the GPL (and I don't mean the literal interpretation, but, for instance, why Stallman MADE the GPL for in the first place)?

    If what you say is true, then one could use open source GPL'ed without giving any of the source code, even when distributing it - at least in practice. Think about it. It does not have to be provided free of charge; but there is also no minimal requirement as how much must be paid, as far as I gather from your text.

    So...ok: I add some useful code to a GPL'ed piece of work, redistribute it, and when people getting it demand to have the source code for it, I say: "Sure, you're entitled to it. But not for free. Please donate 101 billion dollars for it."

    Result: in practise, no one will be able to get that source code, for that price.

    This would undermine the whole concept of it, so I think there is a caveat you forgot to mention, or there has been a huge oversight when one made the GPL.

    Nov 17, 2013
  • anon

    There you go: "The one exception is in the case where binaries are distributed without the corresponding complete source code. Those who do this are required by the GNU GPL to provide source code on subsequent request. Without a limit on the fee for the source code, they would be able set a fee too large for anyone to pay—such as a billion dollars—and thus pretend to release source code while in truth concealing it."

    It would have surprised me if they would have kept such an obvious loophole open, indeed.

    Nov 18, 2013
  • anon

    "anyone who receives a distribution of a piece of software is entitled to get a copy of the source code"

    If you get the software, you are entitled to the code.
    I can't give you the software and refuse to give you the source, or charge extra for it, as you are entitled to it at that point.
    What I can do, is not make it publicly free. "Buy my software if you want the code".

    Yeah, you could charge 101 billions dollars for the source, but that means you are charging 101 billions dollars for the software itself.

    In that case, clearly your software would be irrelevant. Nobody would buy it and nobody would use it so yeah, whatever.

    Also, at best, that would be a one time deal even if you manage to do it. Someone could buy it, change a piece of code, and publish it for free as a derivatibe free gpl derivative work.

    So it's not a problem in practice at all.

    Nov 27, 2013
  • anon

    btw, z98, I don't know what it is, but this comment-part of the site gives me a lot of trouble. Almost every time I place a comment here, it sort of 'hangs'. It keeps forever 'running' and eventually gives an error on the page. When I reload or go back to the main page and look again at this comment-section, it turns out my comment got through after all, but it cetainly ain't normal behaviour. Maybe it should be looked into. (I'm using FF, btw).

    Nov 18, 2013
  • anon


    Nov 29, 2013
  • anon

    Well, I think there is a limit, isn't it? For all I am aware of, that fee should kind of match the costs of distribution - cf. Art. 3 lit b of the GPLv2:

    "Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange;"

    So basically, you can SELL THE BINARIES, but NOT THE CODE.

    Other than that, I find it GREAT that you chose that topic, dear Z98!

    As to other comments: when you interpret a legal text such as a license or other contract, what matters is the will of the parties; and if that is to be interpreted, and unclear from first sight, you try to read it as reasonable parties acquainted with the matter WOULD. So if anyone is saying, "but supplying the source code will cost 1 Mio EUR", that will have to be JUSTIFIED, OBJECTIVELY. One does not go around "amok-interpreting" contracts just because some word allows it (unless you are British handling marine insurance law...)! ;)

    In your next series you might also wish to mention that software patents by far do not exist in all countries...

    Nov 18, 2013
  • anon

    Another aspect of the GPLv3, not understood by most, v3 is incompatible with the v2. Yes, sounds strange but is true and not an oversight but a design decision of the FSF to "encourage" everyone to upgrade to GPLv3. Looking on the adoption rate, this idea has failed (especially as the linux kernel stays under v2 only).

    One example for problems because of that: http://libregraphicsworld.org/blog/entry/libredwg-drama-the-end-or-the-n...

    Dec 10, 2013
This blog post represents the personal opinion of the author and is not representative of the position of the ReactOS Project.