GPLv4 – Starting the Conversation (2014)
christopherprice.net
christopherprice.net
The article also shows a poor understanding of the GPL itself. For example, when talking about dynamically linked software, it is stated that since SMB was under the GPL, Apple was "afraid that someone might ... force Apple to share the entire source code of OS X." No! The GPL can never force you to share your source code. What it can do is stop you distributing software that isn't yours and that you were using under the GPL. In this example, the worse that could happen to Apple is that they would lose their rights to distribute SMB if they were found to have broken the GPL terms.
As regards your example, I don't think the GPLv3 permits that, so if a company tries to circumvent the GPL using that approach, it would probably lose the rights to distribute the GPL software application.
What you will have to ask is, what will a non-technical judge think is one work with different labeled parts, or two separated works that are interacting. Questions like "If I remove one, do I still have a something that make sense to call a work?", "how was it created and what was the intention of the creator", "how would a end-user perceive the result", and in many jurisdictions, "what is the industry standard" (judges has shown a tendency to avoid decision which would cause disruption in the market).
> let's say a company decides to make a proprietary fork of a GPL software application
If they intentionally trying to go against the wishes of the author, its likely infringing the license regardless if you use technology X or technology Y.
This is the type of vagueness that a future GPL revision should seek to address, by refining what is meant by 'dynamic linking'.
Law is never certain, but I suspect the answer to the thought experiment is that the application is creating a derivative work. It could however be that the application is only providing compatibility with SoX, among many other similar programs installed on customers machine, in which case it might be fair use or maybe not a derivative work at all. It depends on the details.
A similar thought experiment is to ask why no large company has tried to challenge the guideline of dynamic linking as line in the sand regarding derivative work. How rare would it be that a company want to include non-core optional features in their proprietary products that need to be dynamically linked rather than using inter-process communication, and they want to go to court about it?
https://www.gnu.org/licenses/gpl-faq.en.html#SystemLibraryEx...
That would be the "broad range of interpretation".
If that is NOT compatible with your goals, do not use the GPL. Also, do not include any software using the GPL. For example, embedded systems using BusyBox.
However, adopting the GPL (and those user rights) should give you an advantage -- code that works and provides a time to market advantage.
However, adopting the GPL (and those user rights) should give you an advantage -- code that works and provides a time to market advantage."
In its current state, I have no intention to use the GPL for anything, even though I agree with the principals behind it (of ensuring that the code for free/libre software stays accessible to the public).
If you'd be happy to see GPL-style licences become less popular/relevant, by all means ignore the issues people have with them, but if you'd rather see their popularity grow then perhaps it's worth discussing further, especially as the main complaint is over the licence clarity, not something that has to undermine the goals of the FSF.
If compromising the core principles that make the GPL and copyleft software special is what's necessary to get people to use it, then we've already lost.
I honestly don't see any lack of clarity in the license unless you're actively trying to find a way to make proprietary software that utilizes GPL components. The courts might not agree with Stallman about the word derivative but the spirit of the license is clear and simple. If someone releases their work under the GPL and you use it in yours, then the combined work must be Free Software.
If you distributed something with illicit GPL code in it, could the recipient not sue you for the full source?
We talk about what the GPL can and can't do but it's just a civil agreement between two parties. It's what a lawyer can convince a judge to order that matters.
And I don't see what's so strange about a court ordering the disclosure of source code. Loads of civil court rulings reassign property.
"Because my company really, really, really wants to restrict our users freedom and we want to exploit free software to do so" isn't a good tactical reason.
That said, many of the things the author asks for are already included in the GPLv3. You can place DRM software under the GPL. You get a compliance window if you break the GPL's terms. It refers to "shared libraries and dynamically linked subprograms".
So this isn't a conversation that needs to happen. Or if it is, it's one that needs to start with a bit more listening.
Fuck you.
It seems much of the hate is that we don't like being shown we don't really own something completely with no restrictions (the HW or the DRM good) even though we bought it or that DRM gets too much in the way. Seems like the GPLv4 could help with the first former (where the trusted computing bits are opt-out, like in a BIOS or registry).
In open DRM, how and whose digital rights are being managed by said technology? If I lock down my laptops boot loader, is the laptop the digital right that I am "managing" with said security, or is it simply the terms TPM and DRM that is being incorrectly used interchangeable? To use "Open" DRM on property that the digital property owner also own seems as a very rare situation, for example a music studio whose owner want to prevent employees at the studio from making unauthorized copies. The benefit of "open" DRM seems very minor to the world, where the benefit of open security technologies, such as a TPM, seems as a much grander goal.
Sorry to say, but it is already the case of many computing devices: https://www.youtube.com/watch?v=gbYXBJOFgeI&feature=youtu.be...
If you buy an iPhone, what exactly do you own?
I hope this stuff gets cleared up, of course. Would be nice to run some free software on any computing device you own.
> DRM is the technical method to remain in control over property after sale, where contract would be the legal method when renting out property.
I agree at least the "owner" should be allowed to boot alternative SW, but it means DRM for digital assets will not be functional (you could dual boot..), as well as some silicon, I imagine.
> In open DRM, how and whose digital rights are being managed by said technology? If I lock down my laptops boot loader, is the laptop the digital right that I am "managing" with said security
No. I mean SW or digital assets (or digital titles to physical assets). Open DRM would be one in which anyone that has some SW/digital asset they wish to use DRM to control the usage of is capable of doing so. Whether or not the gatekeepers will allow it remains to be seen. The effect of p2p DRM on society would be hard to predict.
Sorry, but this is a retarded proposal. Courts take a hell of a lot of time to rule, and considering the usual software release cycles, it means you are allowing virtually unrestrained usage of the GPL'd software.
The HP case should be better handled, but you are providing a loophole "ops, debug build" for everything. You need to be careful there.
The better definition of dynamic/static linking is something needed, personally I'd like to have a modular concept here similar to the CC license, where the developer decides which is allowed.
I'm also fine with the tivoization clause, but again, make it modular. With some projects it is not an issue, while others might want to give control to the user, as in "the user must be able to alter the installed software under this license", or similar.
I want only one new feature, though (modular, as well): deterministic builds. I want to easily check that someone is using my software without non-approved/released modifications. With this it would become only a matter of publicizing the build environment.
I've done and/or led more GPL enforcement than anyone on the planet, for more than a dozen different copylefted projects, and I've done it as a volunteer, as an employee of both FSF and Conservancy, and for GPLv2-only, GPLv3-or-later, and LGPLv2.1 works.
While I love, as a purely intellectual exercise over a nice meal, to talk theory with people who only have a theoretical understanding, real world experience with the licenses is the center of drafting good copyleft licenses. The GPL might as well be the ISC license if its clauses are never enforced, so enforcement is really the litmus test on how the license is working and what changes are needed. If the author or anyone else would like to get involved with "field research" and help in Conservancy's enforcement efforts for Linux, Samba, BusyBox and other projects, I'm easily contactable.
Anyway, I think what Christopher Price and others in this thread are really looking for is the copyleft-next project. It's Richard Fontana's project that's attempting to redo copyleft licensing from first principles and from (initially) a theoretical basis. I'm a fan of the project as I do think a "redrafting from ground up done in a community fashion" is a good idea to try in parallel to the existing functioning copylefts like GPL.
But saying "GPL is broken, therefore we need a GPLv4" is not terribly helpful. GPL is on the verge of collapse not for most of the reasons pundits say it is, but because (a) it's widely violated, (b) few people are willing to enforce, (c) some of those who enforce won't follow community Principles when they do, and (d) there is heavy political opposition from wealthy corporations and trade-associations against those who do enforce, even when they commit to follow published community Principles.
IMO, those are the biggest problems GPL has now, and I work every week to seek to solve those.
Sure, having been involved with copyleft policy since the early 1990s, I keep a private bug list of GPLv3 (i.e., things I'd like to see in GPLv4). But, it's far from my top priority, and it shouldn't be the community's top priority, IMO, either.
Developers have more leverage in employment negotiation than they realize. Right now, most copylefted codebases that have historically had mostly individuals holding the copyrights are drifting to having companies mostly hold the copyrights. We have to stop this trend.
If individual developers hold copyrights, they make their own decisions about enforcing, and companies who oppose enforcement have less leverage.
I always thought of FSF and GPL as way to protect consumer rights and interests.
In other words, the code would still be developed in the open, no individual rights would be taken away, you'd just be making it easier for companies to assist with the growth of GPL software. I don't see any major problems with that.
Currently instead of just releasing their software under a GPLv2 or GPLv3 compliant license, thus giving customers the right to change and adjust it however they like, they choose to withhold those rights and put the software under a proprietary license. A company that does this is clearly not interested in empowering their customers and should not be of any consideration when discussing an ideal customer rights issue like the GPL.
IMO GPL is not there to be liked by companies, just like the green party is not liked by industrialists. GPL assigns legal obligations to companies and rights to customers. I fear that if GPLv4 is designed to be more likable to companies, rights for the consumer will suffer.
No, it goes beyond that.
I've heard stories where IT departments have blocked GPL software from being used (as end users, not as an integral part of a software product) due to it being unclear where the GPL starts and ends.
The article gives an example of a legal clarity issue in the 'dynamically linked' section:
"Most of what is in GPLv3 are important, clear improvements. However, they’re clouded and subsumed by one big unknown – the dynamic link.
Apple, for example, was forced to stop contributing to the open-source project Samba, and instead had to build its own SMB file server, based on the final GPLv2 code release of Samba. Now, Samba is deprived of code contributions that Apple would otherwise have been happy to share. Why? Because Apple is afraid that someone might argue that Samba is “dynamically linked” to OS X, and in turn (per rules of GPLv3), force Apple to share the entire source code of OS X.
This is stupid. But some argue even typing a file name into a terminal window constitutes a dynamic link. Others argue you must use some shared library, where code natively interacts in an intended manner, such as a dylib or .dll file to create this scenario.
Vagaries of this degree should not be in the GPL. It should be scrapped, or at least, replaced with clear and concise definitions that most industry experts in engineering (and product management) can explain in human terms."
I have searched for a few minutes and did not find anything.
http://appleinsider.com/articles/11/03/23/inside_mac_os_x_10...
The GPLv3 applies to the Program as the GPL defines it. It has a provision, in Section 5, for aggregate works of many programs and is mentioned in the FAQ [1].
> But some argue even typing a file name into a terminal window constitutes a dynamic link.
Who? The FSF holds the opposite. A terminal emulator and a program that runs within it are two separate programs.
[1] https://www.gnu.org/licenses/gpl-faq.en.html#MereAggregation
> "Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide."
The types of links should be crystal clear from the licence, rather than relying on judges to determine fair use. Companies are likely to avoid the GPL due to the potential risk derived from this lack of clarity.
A terminal emulator and a child process will have different virtual address spaces, so you may choose that as the discriminating factor. A web browser and a web application will share address space. But a web browser and a web application are clearly two separate programs as well.
It isn't really a problem unique to the GPL. Any interpretation of a non-trivial license with conditions will have an element of "I know it when I see it". Software licenses especially due to the level of abstraction.
Those running those IT department have thus demonstrated their incompetence. The first freedom granted by all free software licenses, including the GPL (any version) is the freedom to run your programs for any purpose. As long as you don't distribute the GPL license code you're using, you're not obligated to anything.
For instance, one is perfectly allowed to use GCC for the purpose of compiling proprietary software and distributing the resulting binaries. Because by doing so, you only only run GCC —you don't distribute it.
HPE now has a "default to GPLv3" policy for new code that they write.
Interesting, I hadn't heard that. When did they institute that policy? Good on them.
A lot of companies are very open source friendly these days and consequently are happy to open source parts of their software stack. Using a BSD type license makes this very easy. GPL however, forces companies to open source the whole software stack and that is very often not possible for companies, be it that they need to make money by selling the software, or that some code parts contain trade secrets or that they do have some code parts licensed themselves.
This explain why developers tent to prefer BSD/MIT licences, they can use code without restriction and restrict their users to access it. It's just that GPL focus on protecting users, not developers.
• No copyleft for libraries that implement proprietary standards competing with open standards, to further adoption of the implemented standard among proprietary software developers.
• Weak copyleft for libraries that implement the same features as existing proprietary software, to further adoption of the library among proprietary software developers.
• Strong copyleft for libraries that “do not face entrenched noncopylefted or nonfree competition”.
https://www.gnu.org/licenses/license-recommendations.en.html
Shouldn't that be the other way around?
That is wrong. As a developer you can of course refuse to use any software distributed under the GPL.
Of course, as a consequence many developers refuse to use any software distributed under the GPL (as in using GPLed code in their software). I am not sure how this is a good thing.
Your last wish of "start making their own transistors" is really funny in the context, that some of my proprietary code is actually for making transistors.
Trickle down freedom.
You can open-source any part of your stack under the GPL, just make sure that you get copyright from any open source contributers. Since you own the code, you don't have to adhere to the GPL (similarly the GPL doesn't prevent you to license the code to someone else at different terms).
The real problem is that most people won't use your shiny GPL project, because they can't properly integrate it in their stack without potetially having to open-source it.
"I think GPLv4 should focus on protecting and encouraging companies to contribute"
"It simply shocks the conscience. Companies are people"
"Allow for walled gardens to have an open space"
Also, please note it is from 2014, so there's no need to dignify it with a response.
You would be surprised. There are many developers who rail against the GPL for restricting their ability to turn free software proprietary, and who subsequently call BSD-style licenses "more free", because those allow them to do more things.
That is a misunderstanding of what the FSF is about, but it is a fairly common misunderstanding.
Currently there are questions about using opengl/vulkan drivers in a GPLed program on windows. They aren't part of the operating system (supplied by the GPU venders instead), so dynamically linking to them would create a gpl violation. But they implement standardised APIs that really should be considered as part of the OS.
- libraries opened with dlopen - libraries with an equivalent non-GPL licenced equivalent e.g. readline, which has a BSD-licenced reimplementation - libraries accessed via IPC to a coprocess hosting the library
In all these cases, I can be intimately tied to the API/ABI of a library but unsure of my legal status with respect to GPL-3 compliance obligations. While I understand the general intent, I'm unhappy that this is open to interpretation and that the legal standing of this is not at all clear cut.
Likewise with the anti-Tivoisation clauses. While again I understand and agree with the intent, I feel that inserting the language to combat a single problem has damaged the generality of the licence and made it much less attractive to many as a result.
While I do like the GPL-2 and GPL-3 licences, I think it's fairly clear that while GPL-2 was acceptable to many companies the GPL-3 is not, and while I may disagree with their reasoning for their stance, the practical fallout from it has been quite detrimental. I've certainly started using BSD or MIT licences more frequently for recent projects, where I would previously have used GPL-2 or -3 by default, simply because the licence profusion has made licence compatibility between a project using a lot of differently licenced shared libraries a very real problem.
The FSF has always thought for getting the full stack GPLed, and creating clauses which makes it easier to silo out the GPLed bits, while keeping the rest of the system locked down will probably not ring well with them.
Which is probably why we look at this post 2 years later, with seemingly nothing done to address the concerns raised.
GPL is for applications (ie. complete products), BSD/MIT-alike are for libraries (ie. standalone components used to build complete products.)
Most of the language in the GPL is incredibly problematic for library use. What does linking really mean? Is a "derived work" of a library anything that uses the library? Or is it a derived work only if I change the library itself and not release the patch? Ok, so there's the LGPL to disambiguate that... so for the common case of libraries, use the LGPL, got it.
But wait, that doesn't really make sense. What is the LGPL guarding against that make it any better than MIT/BSD? Are they thinking corporations are going to do something like patch GTK and not release the patch? That's incredibly unlikely. It's a huge burden to maintain a downstream patch of a library. Moreover, any patch you're likely to make to a library like (for instance) GTK is probably general purpose, and would be an abstraction violation to place any of your business logic in it, right?
If I'm a library writer, what is the motivation to use LGPL or GPL? LGPL doesn't seem much more protective than MIT/BSD in this case, except it prevents the contrived scenario of someone wanting to create proprietary patches to the library itself. And GPL only makes sense if I want to ensure nothing other than other GPL software can link against it (maybe useful for dual licensing like Qt? Or libraries that want to only exist in linux distros...)
Now on the application side, all the language in the GPL starts to make a lot more sense. Linking doesn't really make sense for complete applications like web browsers and photo editors, so it's ok that it's ambiguous (nobody's likely to link to the GIMP.) The GPL seems to be written with the assumption that a derived work would look like a re-distribution of some existing open source product with some proprietary changes, which is certainly evil. Generally it's a really good idea to use GPL here to prevent that. For complete products like applications, it's hard to imagine why you wouldn't want those protections if you're the copyright holder.
You could go even farther with the logic by saying the only real point of using GPL for libraries would be to help cause more proliferation of GPL'd applications, which is what the vision of the GPL seems to be aimed towards: protecting the user by ensuring they can see the code behind the applications they run.
With LGPL you can replace the shared library by a version that you built/updated/... (thus gives freedom) which is not possible for MIT/BSD libraries.
If you want to allow, you probably want a permissive licence. If not, you probably want a copyleft licence (I'd suggest GPLv3).
Many software products contain GPL-Licensend content, and these "quick-and-dirty" predecessor-software is abandoned once the producer reaches a certain "Lets-Refactor-it-out" success. The GPL could become a breaker of the infinite copyright and a driver of inventions, while at the same time providing the major advantages closed source holds for a limited time.
GPL is about ensuring everything is always open, and is incredibly purist about that. Any deviation would ruin their reputation and go against everyone's expectations for the GPL brand.
No, they're not. Even if they were, the GPL is not for protecting companies. The GPL is not for protecting developers. The GPL is for the users.
Why do I release OS code? Because I want to make the world a better place, building a "commons" so everyone benefits.
What if you don't want to contribute back to the commons? What if your company doesn't value the commons? Fine. You can pay me for my time.
I don't need to volunteer my time to make Windows, MacOS, or Proprietary forks of Android better.
Remember the controversy of CyanogenMod going commercial? I didn't understand the issue. If Google and Samsung can take your code and use it in proprietary apps, why can't Cyanogen?