back to article Court erred in Neo4j source license ruling, says Software Freedom Conservancy

A US federal district court decision in California favoring database biz Neoj4 is incorrect and imperils free open-source software, according to the Software Freedom Conservancy. Neo4j Enterprise Edition (EE) was at first offered under both a paid-for commercial license and for free under the GNU Affero General Public License …

  1. doublelayer Silver badge

    Mangle a license, get confusion

    When they decided to knit together a frankenlicense, they created a lot of really unclear stuff. Unfortunately, I don't think the court interpreted it incorrectly, and perhaps though I don't write contracts, the FSF could have written it better.

    The problem is with relative terms. The clause that says you can remove restrictions starts like this:

    "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions.

    The problem, which is repeated frequently throughout this section, is the phrase "this license". Someone can argue that "this license" always refers to the AGPL3 in its original form, but it's also somewhat easy to argue that it instead refers to the license you are looking at that contains this clause. And in that case, the restrictive clauses in the license would have been an original part of "this license", and therefore could not be removed. For an analogy that's not direct, it's like saying "You may take any object that wasn't in this room" and letting people sort out whether you meant "wasn't in this room when you came in", or "wasn't in this room when it was constructed, meaning every object that wasn't built in place". I think the FSF could have made this work by replacing "this license" with the specific name of their license, but if they had, that part would probably have been deleted.

    Don't misunderstand me, I don't like the sneaky way they've manipulated the license to mislead users of the software. However, I think the court is probably correct in its decision that they can write new terms into a contract and apply it to code they've written.

    1. monty75

      Re: Mangle a license, get confusion

      The first clause under Definitions of the AGPL v3 says:

      "This License" refers to version 3 of the GNU Affero General Public License.

      Assuming that clause was still present in Neo4J’s version, the term is consequently unambiguous.

      1. JassMan

        Re: Mangle a license, get confusion

        Yep! IANAL If they mangle a license and want to make conditions apply to the modified license, they should equally have a definition stating "This Modified License" refers to version 3 of the GNU Affero General Public License along with conditions set out in whichever parts of Commons Clause they choose to insert. That way they can specify which parts follow which source license.

        There is even a page on the FSF site which says if you want to change an open source licence for any reason they will help you with your new version. Why didn't they just talk to FSF before making a mess of a legal document then trying to screw people over with an ambiguous statement.

        1. Warm Braw

          Re: Mangle a license, get confusion

          If you aim is to turn an open source licence into a more limited licence, I'm not sure the FSF is going to rush to your aid.

          For me, the bigger worry is that rather too many open source projects are at the "???? PROFIT!!!!" stage and it's not clear how to resolve that or how that will affect future potential investors.

          1. hayzoos

            Re: Mangle a license, get confusion

            It all depends on the limits one wishes to place in the licence. Some view some open source licences as limiting to an extreme if all one wants is to maximize profit.

            Not all open source licences negate profit. Not all licences that negate profit are open source.

            Before there was a proper definition of open source, I took the most literal approach and considered any software which was distributed with it's source as open source. I did not automatically assume I could then use the source in any way I wished.

            As demonstrated in this case and others, the label of open source has value. That indicates to me that the overseers of "open source" should use more than just copyright from the legal arsenal of intellectual property to protect the use of the valuable term "open source". Trademark may fit the bill.

          2. Graham Cobb Silver badge

            Re: Mangle a license, get confusion

            Actually, I would hope the FSF would rush to their aid. Precisely to avoid this sort of problem.

            Clearly the creator(s) of the code can choose to licence it under any terms they wish. If they decide the next version will not be open source that is their right. And it is in our interest to make sure that does not result in the sort of legal confusion that this has caused, and that they do not make it look like it is "sort of Open Source" when it isn't.

            1. Falmari Silver badge

              Re: Mangle a license, get confusion

              @Graham Cobb “Clearly the creator(s) of the code can choose to licence it under any terms they wish. If they decide the next version will not be open source that is their right.”

              Is that their right? Under AGPLv3 (copyleft), changes made to the code have to be released under AGPLv3

              In this this case the previous versions were released under AGPLv3. Changes they make to the code have to be released under AGPLv3. Which is probably why Neo4j released version 3.4 under AGPLv3, they have no choice if they modified the code. Neo4j can’t then add a Commons Clause license to remove rights AGPLv3 grants.

              If Neo4j have added components to version 3.4 which are not required to be released under AGPLv3. They should have added their Commons Clause license to just those components while releasing the rest of the code under AGPLv3 only.

              Much like Google do with there browser, there is the Chromium release and Chrome.

              1. SImon Hobson Bronze badge

                Re: Mangle a license, get confusion

                A lot would depend on who wrote all the code and who holds the copyright on it.

                If, for example, one organisation/person holds the copyright (or can persuade all those that do to join with them) then they are free to turn round and say "version X+1 is now under a different licence". If version X was under an open source licence, then people can continue using/modifying/distributing version X and it's derivatives, but have no rights to any parts in version X+1 that weren't also in version X.

                But clearly it gets a lot harder when there are multiple contributors - if just one of them still holds the copyright and doesn't agree, then their contributions would have to be removed and replaced in order to take version X+1 to a different (more restrictive) licence.

                1. Falmari Silver badge

                  Re: Mangle a license, get confusion

                  Thanks SImon Hobson and others below for you posts explaining how licensing works in respect of the creators.

              2. Anonymous Coward
                Anonymous Coward

                Re: Mangle a license, get confusion

                Wrong. They can change the license of their code at any time they like. Previous versions will still be under the original license, and if anyone takes that code and alters it, then the GPL rules apply, but that doesn't apply to the copyright owner.

                Do you really think that if someone releases something as (A)GPL, they are forever stuck with it for the whole lifecycle of that product?

                1. Anonymous Coward
                  Anonymous Coward

                  Re: Mangle a license, get confusion

                  You are right. Not even the fascist dictatorial GPL is that bad!

              3. unlocked

                Re: Mangle a license, get confusion

                They can't revoke licenses on existing code, but as the owners of the code, they are not bound by any licenses, and can freely ignore the copyleft part of AGPLv3 and distribute future code changes under a different, incompatible license. Licenses grant permission to use a creative work to people who wouldn't ordinarily have it; owners don't need any permission to use their own creative work.

          3. Anonymous Coward
            Anonymous Coward

            Re: Mangle a license, get confusion

            don't look now but I think there's a whole lotta forkin' goin' on

    2. oiseau
      WTF?

      Re: Mangle a license, get confusion

      ... it's false advertising to claim a license is open source when it's not.

      Well ...

      It's sure to be mangling if you claim a license is open source when it's not.

      And yes, false advertising without any doubt.

      But wait, there seems to be some confusion about this: are lawyers involved?

      Wasn't it referred to as lying once upon a time?

      --------------------------------

      lying adjective

      Definition of lying

      1: marked by or containing untrue statements.

      2: present participle of lie.

      --------------------------------

      lie verb

      intransitive verb

      1 : to make an untrue statement with intent to deceive.

      2 : to create a false or misleading impression.

      --------------------------------

      O.

      1. hayzoos

        Re: Mangle a license, get confusion

        Lying under oath to the feds can result in some nasty consequences, just ask Martha Stewart.

        1. This post has been deleted by its author

      2. doublelayer Silver badge

        Re: Mangle a license, get confusion

        I definitely agree about the false advertising. The case this is dealing with is whether they were allowed to put in and enforce the terms they did, whether they advertised it correctly or not. They have lied, and hopefully they won't again, but they still need to clear up what they're allowed to do with their non-open proprietary version with part of the GPL in the terms.

        1. Anonymous Coward
          Anonymous Coward

          Re: Mangle a license, get confusion

          I don’t think you understood the ‘false advertising’ aspect. The defendant (a single person and his one person company), is a committer for the ONgDB project which forked Neo4j Enterprise. The license file ONGDB used came from Neo4j Enterprise and was the AGPL + Commons clause term appended to AGPL. The license stated it was copyrighted to FSF, had the AGPL preamble, and had to be verbatim as per FSF guidelines.

          The defendant had told the community that ONgDB was open source because it was under AGPL license , with AGPL preamble, and the AGPL terms allowed for removal of restrictive terms like the commons clause. FSF now confirms this was the intention, had they known about case, they could have gotten involved earlier before the court erred its ruling.

          Because of this ruling, the court concluded that the AGPL license + commons clause could not be called ‘open source’ and that defendants were in trouble for calling ONgDB open source. Obviously not a case of defendants trying to trick people.

          Defendant is just an open source supporter and committer and thought he was helping the community after Neo4j’s toxic behavior. He did not make money from it, etc,

          All Neo4j had to do was stop calling the license AGPL and remove the AGPL copyright and preamble and there would be no more confusion.

          In court Neo4j called their license something along the lines of ‘Neo4j License’ to cause confusion within the court. I have to hand it to them, they are pretty sneaky,

          Also, the FSF could sue Neo4j for violating their copyrighted AGPL and end this. I am not sure why they have not done so.

          To put everything into context: Neo4j started the lawsuit as a legal bullying mechanism and were not expecting a single person to fight back against a unicorn with big money. This back fired because defendant not only fought back and now they have to follow through with all their claims.

          So now you know how this all started.

    3. Anonymous Coward
      Anonymous Coward

      Re: Mangle a license, get confusion

      I don't like the sneaky way they've manipulated the license to mislead users of the software

      Don't worry, there's a law for that!

      Fraudulent Misrepresentation Overview

      Under contract law, a plaintiff can recover compensatory damages against a defendant when a court finds that the defendant has committed fraudulent misrepresentation. Courts will typically find that a defendant has committed fraudulent misrepresentation when six factors have been met:

      - a representation was made

      - the representation was false

      - that when made, the defendant knew that the representation was false or that the defendant made the statement recklessly without knowledge of its truth

      - that the fraudulent misrepresentation was made with the intention that the plaintiff rely on it

      - that the plaintiff did rely on the fraudulent misrepresentation

      - that the plaintiff suffered harm as a result of the fraudulent misrepresentation

      [Legal Information Institute, Cornell University]

  2. hayzoos

    Goes beyond open source

    I will admit TLDR for licences in question. I will make an assumption, the two original licences were not self-conflicting. Licences are a form of contract. Courts abhor conflicting contracts. In attempts to have a contract remain in effect when a court finds a conflict, they usually include a severance clause which basically allows an "illegal" part of a contract to be removed, but the remainder of the contract stands. Without a severance clause, the court will throw out the entire contract.

    What we have here is a self-conflicting licence which the court seems to be ignoring the conflict.

    This could set precedent on software licences and how to handle self-conflicts as a subset of contract law. It would apply to open|closed source licenses if they are self-conflicting.

    Just keep in mind that "AGPL v3+Common Clause" is a different beast than either "AGPL v3" or "Common Clause", in spite of how similar they may seem.

    1. klh

      Re: Goes beyond open source

      Commons Clause is not a license by itself, it's always added to some other license and could never be compatible with anything GPL.

  3. Anonymous Coward
    Anonymous Coward

    I agree that the courts have erred in the ruling, but I'm not surprised they'd err in favour of the one with the lawyers and money in the bank. The courts usually end up being bought by the highest bidder unless both bidders are exceedingly rich and can duke it out to the bitter end.

    The origianl license says additional terms can be removed at will. I fail to see how the courts could have so badly "misinterpreted" that, so I'd like to know how much Neo4j paid the judge...

    1. doublelayer Silver badge

      The problem is which terms were additional. The license appears to have been written with the assumption that someone would use the unmodified AGPL, then someone else would apply new terms to it. Instead, this company just bolted their stuff on from the start, so they can argue the terms weren't additional, but part of the original license.

      Whenever I see licenses like this, customized from the established ones, I generally understand them to mean basically the following:

      We like open source to the extent it allows us to get free work, but don't particularly want to deal with the downsides, so we think we've made something that means you have to pay us. Whether we did or not, you're going to find out in a court case. Look elsewhere; someone who really understands why free and open helps everyone has made something that can be used instead.

      1. Joe W Silver badge

        ... and this is why you need to pay experts to do work. A proper lawyer would likely have spotted that problem and removed the offending part - which one would have been up to the licensor (in this case they would have removed the "remove any part you don't like"). Just like you would hire proper engineers to design a bridge...

        This is also why I use licenses in their basic form and do not add to them lest I mangle them. Much of my code is under some form of GPL (and please leave my name attached as the code originator and for fsck's sake cite my papers!) or under "this code is open and free and comes with no restrictions nor any guarantee at all - do as you please but do not blame me" - or (the other half of it) under the project's license, if you pay me to write code for you then you get to choose (not my problem, and I am unlikely to develop anything so ground breaking that I would get rich from that).

        Yeah, contract lawyers (like good engineers and most other professionals) do command their price, but the good ones (choose any profession) are worth it to avoid a court case (yup, again most professions, I guess) and in this case bad publicity - had the license openly been more restrictive from the start no one would have cared (well, it would not have made a big splash.

  4. VoiceOfTruth Silver badge

    This is why some people prefer the BSD licence

    It's simpler. GPL, in whatever form, is not a great licence.

    1. Anonymous Coward
      Anonymous Coward

      Re: This is why some people prefer the BSD licence

      Yep. GPL is a lawyers paradise.

      1. Tom 7

        Re: This is why some people prefer the BSD licence

        US courts are a lawyers paradise.

    2. Charlie Clark Silver badge

      Re: This is why some people prefer the BSD licence

      You're right but that not is relevant in this case.

      The problem here is the same as with many dual licensed projects, which try and limit commercial exploitation of a project to a single company whilst keeping it open source.

  5. Anonymous Coward
    Anonymous Coward

    Khunt?

    Who is this Bradly Khun? He seems to spout a load of nonsense that the tech media lap up. Is he in any way qualified to spout such nonsense?

  6. CookieMonster999

    Why bother ?

    If the license is so shaky why not choose a different graph database and stay on the safe side ?

    1. wub

      Re: Why bother ?

      So, you read and ponder the significance of every provision in the licensing for every software product you use?

      Among the issues here is the fact that Neo4J's public representation that their software license is "open source" and their apparent intention that it is not created at least the appearance of fraud, if they did not consciously commit fraud. I believe that if they were serious about being open source, they would not have cobbled two licenses together this way.

      Anybody know how many distinct open source licenses are available today?

    2. This post has been deleted by its author

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like