ZFS and GPL terror: How much freedom is there in Linux?

There has been a long debate about whether man is able to learn from history. I’d argue that we can – at least to some degree. One of the lessons that we could have learned by now is how revolutions work. They begin with the noblest of ideas that many followers wholeheartedly support and may even risk their lives for. They promise to rid the poor suppressed people of the dreaded current authorities. When they are over (and they didn’t fail obviously) they will have replaced the old authorities with – new authorities. These might be “better” (or rather: somewhat less bad) than the old ones if we’re lucky, but they are sure to be miles away from what the revolution promised to establish.

Death to the monopoly!

Do you remember Microsoft? No, not the modern “cloud first” company that runs Azure and bought Github. I mean good old Microsoft that used to dominate the PC market with their Windows operating system. The company that used their market position with Windows 3.x to FUD Digital Research and their superior DR-DOS out of the market by displaying a harmless line of text with a warning about possible compatibility issues. The company that spent time and resources on strategies to extinguish Open Source.

Yes, due to vendor lock-in (e.g. people needing software that only runs on Windows) and to laziness (just using whatever comes installed on a pc), they have maintained their dominance on the desktop. However the importance of it has been on a long decline: Even Microsoft have acknowledged this by demoting their former flagship product and even thinking of making it available for free. They didn’t quite take that extreme step, but it’s hard to argue that Windows still has the importance it had since the 1990’s up to the early 2010’s.

They’ve totally lost the mobile market – Windows Phone is dead – and are not doing too well in the server market, either.

A software Golden Age with Linux?

In both areas Linux has won: It’s basically everywhere today! Got a web-facing server? It’s quite likely running some Linux distro. With most smart phones on the planet it’s Android – using a modified Linux kernel – that drives them. And even in space – on the ISS – Linux is in use.

All of us who have fought against the evil monopoly could now be proud of what was accomplished, right? Right? Not so much. There’s a new monopolist out there, and while it’s adhering to Open Source principles by the letter, it has long since started actually violating the idea by turning it against us.

For those who do not deliberately look the other way, Linux has mostly destroyed POSIX. How’s that? By more or less absorbing it! If software is written with POSIX in mind, today that means it’s written to work on Linux. However POSIX was the idea to establish a common ground to ensure that software runs across all of the *nix platforms! Reducing it basically to one target shattered the whole vision to pieces. Just ask a developer working on a Unix-like OS that is not Linux about POSIX and the penguin OS… You’re not in for stories about respect and being considerate of other systems. One could even say that they have repeatedly acted quite rude and ignorant.

But that’s only one of the problems with Linux. There are definitely others – like people acting all high and mighty and bullying others. The reason for this post is one such case.

ZFS – the undesirable guest

ZFS is todays most advanced filesystem. It originated on the Solaris operating system and thanks to Sun’s decision to open it up, we have it available on quite a number of Unix-like operating systems. That’s just great! Great for everyone.

For everyone? Nope. There are people out there who don’t like ZFS. Which is totally fine, they don’t need to use it after all. But worse: There are people who actively hate ZFS and think that others should not use it. Ok, it’s nothing new that some random guys on the net are acting like assholes, trying to tell you what you must not do, right? Whoever has been online for more than a couple of days probably already got used to it. Unfortunately its still worse: One such spoilsport is Greg Kroah-Hartman, Linux guru and informal second-in-command after Linus Torvalds.

There have been some attempts to defend the stance of this kernel developer. One was to point at the fact that the “ZFS on Linux” (ZoL) port uses two kernel functions, __kernel_fpu_begin() and __kernel_fpu_end(), which have been deprecated for a very long time and that it makes sense to finally get rid of them since nothing in-kernel uses it anymore. Nobody is going to argue against that. The problem becomes clear by looking at the bigger picture, though:

The need for functions doing just what the old ones did has of course not vanished. The functions have been replaced with other ones. And those ones are deliberately made GPL-only. Yes, that’s right: There’s no technical reason whatsoever! It’s purely ideology – and it’s a terrible one.

License matters

I’ve written about licenses in the past, making my position quite clear: It’s the authors right to choose whatever license he or she thinks is right for the project, but personally I would not recommend using pessimistic (copyleft) licenses since they do more harm than good.

While I didn’t have any plans to re-visit this topic anytime soon, I feel like I have to. Discussing the matter on a German tech forum, I encountered all the usual arguments and claims – most of which are either inappropriate or even outright wrong:

  • It’s about Open Source!
  • No it’s absolutely not. ZFS is Open Source.

  • Only copyleft will make sure that code remains free!
  • Sorry, ZFS is licensed under the CDDL – which is a copyleft license.

  • Sun deliberately made the CDDL incompatible with the GPL!
  • This is a claim supported primarily by one former employee of Sun. Others disagree. And even if it was verifiably true: What about Open Source values? Since when is the GPL the only acceptable Open Source license? (If you want to read more, user s4b dug out some old articles about Sun actually supporting GPLv3 and thinking about re-licensing OpenSolaris! The forum post is in German, but the interesting thing there is the links.)

  • Linux owes its success to the GPL! Every Open Source project needs to adopt it!
  • This is a pretty popular myth. Like every myth there’s some truth to it: Linux benefited from the GPL. If it had been licensed differently, it might have benefited from that other license. Nobody can prove that it benefited more from the GPL or would have from another license.

  • The GPL is needed, because otherwise greedy companies will suck your project dry and close down your code!
  • This has undoubtedly happened. Still it’s not as much of a problem as some people claim: They like to suggest that formerly free code somehow vanishes when used in proprietary projects. Of course that’s not true. What those people actually dislike is that a corporation is using free code for commercial products. This can be criticized, but it makes sense to do that in an honest way.

  • Linux and BSD had the same preconditions. Linux prospers while BSD is dying and has fallen into insignificance! You see the pattern?
  • *sign* Looks like you don’t know the history of Unix…

  • You’re an idiot. Whenever there’s a GPL’d project and a similar one that’s permissively licensed, the former succeeds!
  • I bet you use Mir (GPL) or DirectFB (LGPL) and not X.org or Wayland (both MIT), right?

What we can witness here is the spirit of what I’d describe as GPL supremacist. The above (and more) attacks aren’t much of a problem. They are usually pretty weak and the GPL zealots get enraged quite easy. It’s the whole idea to trade the values of Open Source for religious GPL worship (Thou shalt not have any licenses before me!) that’s highly problematic.

And no, I’m not calling everybody who supports the idea of the GPL a zealot. There are people who use the license because it fits their plans for a piece of software and who can make very sensible points for why they are using it. I think that in general the GPL is far from being the best license out there, but that’s my personal preference. It’s perfectly legitimate to use the GPL and to promote it – it is an Open Source license after all! And it’s also fine to argue about which license is right for some project.

My point here is that those overzealous people who try to actually force others to turn towards the GPL are threatening license freedom and that it’s time to just say “no” to them.

Are there any alternatives?

Of course there are alternatives. If you are concerned about things like this (whether you are dependent on modules that are developed out-of-kernel or not), you might want to make 2019 the year to evaluate *BSD. Despite repeated claims, BSD is not “dying” – it’s well alive and innovative. Yes there are areas where it’s lacking behind, which is no wonder considering that there’s a much smaller community behind it and far less companies pumping money into it. There are companies interested in seeing BSD prosper, though. In fact even some big ones like Netflix, Intel and others.

Linux developer Christoph Hellwig actually advises to switch to FreeBSD in a reply to a person who has been a Linux advocate for a long time but depends on ZFS for work. And that recommendation is not actually a bad one. A monopoly is never a good thing. Not even for Linux. It makes sense to support the alternatives out there, especially since there are some viable options!

Speaking about heterogenous environments: Have you heard of Verisign? They run the registry for .com and .net among other things. They’ve built their infrastructure 1/3 on Linux, 1/3 on FreeBSD and 1/3 on Solaris for ultra-high resiliency. While that might be an excellent choice for critical services, it might be hard for smaller companies to find employees that are specialized in those operating systems. But bringing in a little BSD into your Linux-only infrastructure might be a good idea anyway and in fact even lead to future competitive advantage.

FreeBSD is an excellent OS for your server and also well fit if you are doing embedded development. It’s free, ruled by a core team elected by the developers, and available under the very permissive BSD 2-clause license. While it’s completely possible to run it as a desktop, too (I do that on all of my machines both private and at work and it has been my daily driver for a couple of years now), it makes sense to look at a desktop-focused project like GhostBSD or Project Trident for an easy start.

So – how important is ZFS to you – and how much do you value freedom? The initial difficulty that the ZOL project had has been overcome – however they are just working around it. The potential problem that non-GPL code has when working closely with Linux remains. Are you willing to look left and right? You might find that there’s some good things out there that actually make life easier.

23 thoughts on “ZFS and GPL terror: How much freedom is there in Linux?

  1. > One of the lessons that we could have learned by now is how revolutions work

    You obviously do NOT know history and how a revolution works. So just stop write about that.

    1. That’s a pretty bold claim to make based on one paragraph that only touches on historical revolutions as an allegory for technological ones – as an introduction for a post on tech. But since I’m a curious guy: Do you have any example of a successful revolution that undoubtedly lived up to its promises?

  2. You completely sidestepped the issue in your attempt at addressing Sun’s screwup wrt creating the (incompatible) CDDL in the first place.

    I’m not entirely familiar of the most recent developments re Linux, but it sounds like you’re framing this in a really uneven way. If the goal was to allow ZFS to be integrated, they could have chosen GPL (or another existing, compatible license) to begin with. Well, they didn’t.

    The issue of GPL compatibility was *well* known by the time the CDDL came into existence. The SPL had been incompatible. Everyone was painfully aware that MPL was incompatible, and Mozilla went through some effort to fix this by adopting the tri-license. Still, years later, when this was all well-known, Sun created *another* vanity license that the world didn’t need, based on the known-incompatible MPL, redlining it to fit their whims and add all sorts of terms they found favorable, but doing nothing to fix the incompatibility. To frame this as if CDDL were maybe incompatible by accident or that Sun wasn’t deliberate in its licensing choices is absurdly naive. The testimony in Oracle v Google refutes that picture over and over and over again. Okay?

    So the mere existence of the CDDL was the initial misstep. But let’s say we’re feeling charitable; time heals all wounds; age makes one forgiving.

    Well, here’s the thing: there’s nothing that would’ve stopped Sun/Oracle from fixing the licensing problem even after the mistake was made. They just don’t want to. They could have relicensed their parts of ZFS to GPL, just like they did with DTrace, and encouraged the rest of the community to do the same. Or, if that proved to be a problem, they could’ve taken advantage of the fact that the CDDL is forward compatible by default and created an update to the license that fixes the problem, since they hold the keys there, too. They haven’t done that, either. Which brings us to another thing.

    Within the last few years, when the possibility of this happening with the CDDL was pointed out to the ZFS maintainers themselves, they quickly decided to lock things down and jettison the “or later”-style compatible-by-default part of the CDDL *specifically to block any sort of license changes from ever happening*. So we are not only talking about the pain being self-inflicted here, we’re talking about a set of people running around and actively thwarting any attempts to get things healed.

    And regardless of anything else, that anyone would try to place fast and loose with the licensing of anything related to Sun/Oracle at this point is also beyond insane.

    1. The CDDL and its roots is a topic of its own. I briefly thought about writing more about it since I did a bit of research anyway. Maybe I’ll do so in another post as there’s quite a few things to point out. However IMO this leads away from what I see as the real problem: The stance that I criticized as “GPL supremacist”.

      There’s no single “one fits all” license out there and it’s perfectly fine to just choose one. From my point of view it’s most important to distinguish between proprietary licenses and Open Source licenses. And when it comes to the latter, it’s important to understand that GPL means Open Source – but definitly not the other way round!

      Declaring one single Open Source license the “true” one (and making people who have a different opinion look like disbelievers and heretics) certainly is far from showing respect towards the entire Open Source community. What the Linux kernel people are doing is perfectly legitimate (choosing a license for their project), but abusing their dominant position to more or less force others to adopt the same license or suffer pain and uncertainty remains pretty much questionable from a moral view. That’s why I criticize what has happened.

      GPL might or might not de facto be the top dog of Open Source licenses. Accepting a primus inter pares is not a good idea in the first place. But striving for leadership by a ruthless bully is simply not acceptable for people like me.

      You’re making the point that Oracle could change the license of their proprietary ZFS. That’s true of course but I’m afraid I disagree on that being a good thing. Since OpenZFS and OracleZFS are no longer compatible, that would be a disaster and only lead to chaos. The majority of ZFS installations today are using OpenZFS, there’s no good migration path and the closed ZFS lacks important features that could not be ported over due to the licensing problem! For that reason re-licensing OracleZFS would only make matters worse.

      I do not know the reason for stepping back from CDDL’s forward compatibility and would have to do my homework here first before judging it. But again: The CDDL is not the offender here. As I stated this ZFS case is merely an example of how today’s Linux kernel discriminates against Open Source projects that made other license choices. Let’s say somebody likes the Academic Free License. Should we not just respect that choice instead of obsessively look for some kind of “guilt” because that somebody didn’t choose the sacred (?) GPL?

      1. Oracle controls the majority of the copyright in OpenZFS and ZoL and could relicense their parts under CDDL+GPLv2(+), and others might follow, or they could use the or-later provision (except where it has been removed) as suggested above, but Oracle just won’t, because it’s more fun and profitable to see Linux developers and vendors squirm.

      2. You can have all the opinions you want about which licenses are better and what the definition of Open Source is, but a person can’t legally combine code under incompatible licenses and distribute the combined work. That violates copyright law.

        The ZFS discussion has nothing to do with people thinking that the GPL is “superior”, it has to do with the legal text of the license and what it allows or does not allow.

        No one is discriminating, the GPLv2 was chosen as the license for Linux before ZFS ever existed.

  3. This article reads like something written by a time traveler. The GPL is far less prominent than it was at one time and permissive licenses are on the rise. Open source is a given in most environments, Linux is well entrenched as a server OS, and only an idiot would insist on building their stack from purely commercial components. Why, then, the sturm and drang? The licensing of ZFS was undeniably a strategic move. Outside of RMS, is anyone actually stumping hard for the GPL?

    1. I agree to every single fact you point out. But where did you get the time-traveling impression from? There are especially two dangerous points in time for any ideology that is about freedom:

      1) The point when it raises to power. Power is corrupting a lot of actually well-meaning people by giving them the means of seemingly achieving their goals by playing foully for it. Hats off to the ideologist who resists that seduction!

      2) The point when the popularity starts fading and a loss of power is showing on the horizon. A lot of people won’t give in in this position but would rather use force or even turn to terror.

      Linux has undoubtedly passed point one and aside from being a bad sport at times didn’t do anything really evil. As a whole, the project more or less ignored other Unix-like systems. Some Linux people declared *BSD was “dying” while others showed a friendly face and dual-licensed some code pieces so that it could be used in other OSes, too.

      Linux is still on the rise, but as you pointed out, the GPL statistically isn’t. We have LLVM/Clang now and with LLD and Elftoolchain FreeBSD is emancipating itself from a GNU toolchain. The success of alternatives to GCC even made RMS mumble about a “conspiracy against it”. In the end the user only has more choices now and I can’t see how that’s a bad thing. The situation is worse than before only if you like the concept of vendor lock-in – be it proprietary or copyleft.

      My problem is not ZFS’s licensing or whatever motives SUN had for it (that’s a different story). I’m criticizing the way Linux as a major Open Source actor deliberately discriminates against license choices of other people (if they dare to not choose the GPL). That’s “all”. But that alone is really bad enough.

  4. Oh my, I wish people, who are not able to distinguish between their beloved open source and free software would stop claiming everything as “open source”.
    From reading the text and some of the comments the author wrote, you can clearly tell, that they do not care about the distinction, which in consequence can only mean a few things: (1) not knowing better, but still writing as if they knew anything about what they are talking about, (2) knowing the distinction but not caring about software freedom, so basically not caring about ethics, (3) even deliberately trying to undermine the ideas of software freedom, by claiming things, that are about software freedom, as things being “open source”.

    Please stop writing non-sense and get your facts straight. GPL is not an open source license. It is a free software license. It is a license which has had huge efforts of dedicated people behind it to make sure it is bullet proof. Please be an educated person and read up on what the difference between open source and free software is. (Hint: It is about ethics.)

    1. Your comment touches on so many topics that it’s really hard to answer in a few paragraphs… Feel free to hate me after the following statements as followers of an ideology that is criticized often do. If you are interested in different views or feel like enlighten me again, I offer you to discuss things further via email. And when we’re done with the topic, I’ll write another post about it. I won’t censor anything you say. My only condition is that before we start the actual discussion, we both define what various important terms mean for us.

      So let me start with your options characterizing myself. From your point of view it’s even worse: I’m (4) an apostate who supported the GNU ideas about free software (who wrote “GNU/Linux” and ran the de-blobbed Linux-libre) but changed his ways after understanding the deeply misanthropical implications. Yes, I know that this is heresy as I do claim that my primary motivation is indeed ethics! This is hard to believe since I oppose the basic idea of “libre” software (I can live with it and totally accept that people believe in it, but I won’t preach it anymore), I know (I’ve been there and wholeheartedly embraced the ideas).

      If you agree to my offer, please begin by answering the question that is the title of this post. It leads right into the complex of problems that I have with the GPL: It abuses the noble word *freedom* where really it means slavery in a lot of cases.

      Besides: I only use the term “Open Source” because we have nothing better so far. “Free Software” is a pretty bad term, because a lot of people think “Freeware” and thus “free as in beer”. Also according to the FSF the BSD license for example IS considered a “free software license”. Can we agree to “libre Software” for what you mean (“four freedoms”)? Also “Open Source” is the umbrella term since “libre” software is necessarily Open Source (“freedom 1”). I’m not hostile towards different views, I merely think that you are wrong (in thinking that your view is the only legitimate one).

  5. I have been drawn to the Linux in early days because there was not a single free C/C++ compiler at that time, all were commercial and for DOS/Windows so you had to become a pirate if you had no money. So I chose to start my migration to Linux. By the time of Slackware 3.0, thanks to a German magazine, I had already two CDs with that distro, here in Romania. Then RedHat and later Fedora. Today I switch often between Fedora and Ubuntu but I am in the middle of learning UNIX and to decide between HardenedBSD, OpenBSD and NetBSD (it has to be compatible with my hardware, run Krita with Wacom tablet for my daughter and also I have a big open-source project designed with Lazarus/FreePascal: “Visual Pin Configurator for Nucleo-L152RE board” ). So, I only cared for the “free to use” factor, no matter the license, but today I favor MIT and BSD.

  6. Good article. FreeBSD has always made a reasonable desktop (my primary home machine has been FreeBSD since v3.3 or so).
    Sometimes newer ideas are slower to be integrated but if they have technical merit they have a chance.
    DragonFlyBSD is a very good fork, good performance ideas.
    @vasile HardenedBSD is FreeBSD “plus”. Some of the features have made it back upstream to FreeBSD proper.

  7. So much text was read to find out your pathetic attempt to promote BSD. Linux folk don’t want to change their system to BSD. Get it into your thick scull. The mayor problem is authors who could use GPL license which would (if I am not mistaken) used by both Linux and BSD, but instead they have used CDDL and left original ZFS to rot. (It’s a figure of speech). So instead being an asshole by criticizing Linux folk, to promote your own agenda, you should for example promote signing a petition for Oracle to change the license (as they own this chunk of code, and legally they have rights to re-license the bloody thing).

    1. Sorry but most of what you wrote is wrong. The BSD operating systems do provide packages for GPL’d software but they prefer to keep their base system free from Copyleft code if possible. But that’s not my main point here nor do I suggest everybody should abandon Linux and start using *BSD instead. I’m merely pointing towards the fact that there are alternatives and nobody has to live with the uncertainty that Linux can mean for non-GPL software. Also I don’t think that it takes an asshole to criticize extremely rude behavior of some kernel gurus.

      Oh, and about Oracle: No that wouldn’t be helpful at all at this point. Oracle ZFS doesn’t play any important role anymore, OpenZFS is the standard. And the latter has grown many important features which male pools incompatible with the former. Now if Oracle would re-license the closed ZFS all that would mean is an attempt to split the community.

  8. “Linux owes its success to the GPL! Every Open Source project needs to adopt it!”
    Well; because Linux is also so successful with its 2% on the desktop market …
    Google’s Android also only uses the kernel; everything around it is GPL-free and many professional developers avoid copyleft-nonsense

    “The GPL is needed, because otherwise greedy companies will suck your project dry and close down your code!”

    Sorry, but that’s utter nonsense; everything that is once under a free license remains under a free license; this also applies to MIT or BSD licenses! If a company takes existing software that is under the FreeBSD license, the product must be much more powerful than just a copy; otherwise nobody would pay for the commercial product anyway. The free version remains unaffected by all this.

    Moreover, the GPL does not prevent a company from taking over your publicly accessible source code and secretly installing it in their own products!
    With the GPL you push companies into this area much more, without getting anything back. As an entrepreneur, I would only support copy-left-free projects!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.