10

I have come across a Java project licensed under Apache 2.0, but there's a fair bit of behavior locked away in an internal package that isn't checked into the project's repository (though the compiled files are in the release binaries).

Without these files the project cannot even compile, and even if the compilation issues were refactored out central functionality would be missing.

  1. Is this even really Open Source software?
  2. By bundling in a closed-source core is it violating its own license?
  3. If so, is there any recourse? I'm not trying to sue anyone, I just don't think it's fair to act like your project is open source, and release critically incomplete source code.
9
  1. Is this even really Open Source software?

The parts that have source code available and are licensed under an open source license are open source software, according to the OSI. The parts that do not have source code available or are not licensed under an open source license are not open source software. Since the software includes some components that fail to satisfy the definition of open source software, it is correct to say that the entire project, considered in totality, is not completely open source software. Of course, the components that do satisfy the definition are open-source, though they have the weakness (from a software-freedom perspective) of being subject to a problem similar to the Java Trap (i.e., free code designed to run in a non-free environment).

  1. By bundling in a closed-source core is it violating its own license?

Absolutely not. There are several points the would independently be sufficient to show that there is no license violation:

  • If the same copyright holder owns both the core internal closed-source package and the supporting open-source components, there cannot be any violation. The copyright holder doesn't need a license to do anything with their own code; they may offer a license to others to perform some subset of copyright-protected actions. It's impossible for a copyright holder to violate their own license, because licenses are only offered to other people.

  • If the closed-source and open-source components are owned by the different people, then the only possible violation here is against the owner of the closed-source component, if it was not licensed in a way that allows reuse or redistribution alongside Apache-licensed code. If it was licensed in a way that allows reuse (e.g., if the binaries were licensed under the Apache 2.0 license), then there is no violation. If the closed-source component were licensed under the GPL, then there would indeed be a violation because the downstream author didn't include the source code of the upstream author's code.

  • You probably think they might be a violation because you expect the open source license to require the totality of the project's source code to be available. However, this is only true for copyleft licenses like the GPL (not permissive licenses like Apache).

If so, is there any recourse? I'm not trying to sue anyone, I just don't think it's fair to act like your project is open source, and release critically incomplete source code.

The author of software may license it however they please. If they want to make the binaries freely available but only release source code for half of the files, or none of them, that's perfectly legal.

Your complaint appears to be the author's advertising the project as open source while it includes some non-open components. The only possible recourse I can think of would be some kind of consumer protection law against false advertising, if the author makes claims that the project is open source in a way that is demonstrably false. However, since "open source" is a tremendously nebulous term (e.g., the OSI failed to secure a trademark on the term), I think it is unlikely such a suit would prevail, even if you could identify a relevant statute to pursue legal action.

  • 1
    It isn't really relevant if A would sue A (i.e., sue themselves). What is relevant is that the owner of the copyright can do as they please, they need no "permission" to do anything with their own property ("license" is just a fancy word for "permission"). – vonbrand Feb 2 '16 at 0:39
  • 1
    To clarify, by "recourse" I didn't mean legal action; I was thinking about things the open source community could do (like exclude it from common repositories, for example), but since I don't know exactly what those options might be, it's hard to describe. Thanks for the break down! – dimo414 Feb 2 '16 at 0:49
  • 1
    @vonbrand Yes, that passage was a bit of a mess. I've completely rewritten that bullet point. – apsillers Feb 3 '16 at 14:11
  • 1
    The certain thing here is that the downstream code cannot possibly licensed under GPL since upstream is just binaries, what license upstream has is immaterial. One resource I can think is just to change/set the downstream license to a simple BSD/MIT since those just don't care about the upstream licensing. – Prahlad Yeri Feb 6 '16 at 22:58
1

More or less the same recourse you have for any closed source program that doesn't have published source: None whatsoever. Whoever wrote the code can do as they please with it, publishing none, half, all of it; allowing third parties to just read and gawk at the stunning genius behind it, all the way to allowing all and any use.

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.