10

An existing project which is licensed under Apache-2-with-Commons-Clause-1.0 should be advanced. A client wishes to pay me to write code in order that the code could be contributed to this project. Is payment for such work permitted?

3
  • Is the copyright to the project code owned entirely by one entity, or are there many contributors who each own the copyright to their contributions? (Or is the project based on one or more earlier commons-clause-licensed projects with separate copyright holders?) Jan 16 at 1:18
  • @IlmariKaronen The contributor gives the project owner the right to license the contribution on any terms they like Jan 18 at 15:42
  • OK, that seems mostly equivalent to the project owning the copyright (except that the project might not be able to sue someone violating the license on behalf of the contributors, which shouldn't be relevant here, but could potentially make enforcing the license harder for the project). Jan 18 at 16:46
10

Nothing in the Commons Clause talks about the development work itself, for which you would be paid. It only talks about the distribution of the software package under this license. So yes, payment for your contribution efforts is OK.

It needs to be mentioned that any license with the Commons Clause is not Open Source. It is not compliant with the definition of OSI and others. This category of licenses is called 'Source Available' (and strictly speaking it is out of scope of this site).

3
  • Thank you for answering the question, especially despite it doesn't belong on this site. Unfortunately I did not find another StackExchange where this question would be suitable - if there is please let me know. Jan 14 at 8:20
  • 16
    I believe the question belongs here. I think that 'in-scope definition' of this site should be slightly broader to cover marginal cases like this more generously. Jan 14 at 9:10
  • 1
    As I have received a few downvotes on my answer I would like to explain why I wrote it this way. The FAQ to the Commons Clause clearly states "Anyone not intending to “sell” the Commons Clause licensed software itself may view the source code, make modifications, submit pull requests to get their modifications into the software, freely use, embed and redistribute the software, make and distribute and sell derivative works." This is essentially what the OP plans to do. It does not say that the OP has to do this for free. Jan 16 at 16:32
5

The Commons Clause 1.0, among other things, forbids you to offer paid services in relation to the software. That would include offers to extend the software with new functionality.

So, being hired (and receiving compensation in any form) to make changes to the software would be a violation of the Commons Clause 1.0.

There is a bit of a grey area when you are an employee of the company and you are asked to make changes to that software as part of your job. I can see wiggle room in the text of the Commons Clause that that might be allowed, but I am not sure if the authors of the software or a judge will look at it the same way.

5
  • 1
    I disagree with your answer, Bart. The Commons Clause limits the ability to charge for selling, hosting or consulting/ support services. The development part (i.e. contributions to the project, which are then vetted by the maintainers) is not part of any of the mentioned restrictions. Jan 14 at 8:30
  • Thank you for your answer. What do you say about the answer of @Martin_in_AUT above? I would personally also understand, that extending software is not part of what Commons Clause prohibits since you are not making money with the software itself. Instead you are making money with your work, the code you write and own. Jan 14 at 8:32
  • 1
    @Martin_in_AUT, my interpretation is that development falls under the category of a support service. Your interpretation is clearly different, but not less valid because of that. In the end, the only thing that matters is how a judge in a court case interprets the Commons Clause. Jan 14 at 8:41
  • 3
    @BartvanIngenSchenau Let's agree to disagree on the interpretation of the term 'support service' w.r.t. development work, and pick it up again when we see a first verdict of a judge (I am not aware that any case with 'Commons Clause' was ever in court, especially not for this very specific detail). Jan 14 at 9:07
  • Many modern programming languages are open source. Companies use them internally and extend their functionality to make products that they charge for. 'Tis how the world works today. Jan 15 at 11:17
4

Yes.

From the Commons Clause FAQ (emphasis mine):

Commons Clause only forbids you from “selling” the Commons Clause software itself. You may develop on top of Commons Clause licensed software (adding applications, tools, utilities or plug-ins) and you may embed and redistribute Commons Clause software in a larger product, and you may distribute and even “sell” (which includes offering as a commercial SaaS service) your product. You may even provide consulting services (see clarifying discussion here). You just can’t sell a product that consists in substance of the Commons Clause software and does not add value.

The clarifying discussion includes this rationale from Heather Meeker, who drafted the license:

Consulting would not be "a product or service whose value derives, entirely or substantially, from the functionality of the Software." The value of consulting doesn't derive from what the software does ("functionality").

2

I think you probably can do this. Before I go on, I must note that (a) IANAL/IANYL, and (b) I'm assuming (1) you're not an employee of the payer, so work-for-hire isn't an issue, and (2) you're writing your code without reusing any pre-existing code, third-party free libraries, etc. If (b)(2) is not true, this answer doesn't apply, and frankly, I think you've got an insoluble problem.

The CoCl licence says that

Without limiting other conditions in the License, the grant of rights under the License will not include, and the License does not grant to you, the right to Sell the Software.

For purposes of the foregoing, “Sell” means practicing any or all of the rights granted to you under the License to provide to third parties, for a fee or other consideration (including without limitation fees for hosting or consulting/support services related to the Software), a product or service whose value derives, entirely or substantially, from the functionality of the Software.

It seems to me that your code does "derive value entirely or substantially from the function of the Software", since it's written solely to enhance the Software. Your authorship of the new code constitutes "a product or consulting service" in that context.

However, what CoCl says you can't do is be compensated to provide these to third parties. You (as Licensee) and the Licensor, between you, are the parties of the first and second parts.

I don't think there's any bar on your contributing the code to the project, and being paid to do so, provided the project is the sole rightsholder in the existing code. They will probably want to remain so, so it's likely the contribution will involve a Copyright Transfer Agreement, but that's a matter between you and the project, come contribution time. Make sure your contract with the payer specifies that you retain copyright to the work, so that you're free to do that if required.

13
  • Thank you for your very helpful answer! Everything you are assuming is correct, except of (maybe) one thing that I'm not sure whether I understood it correct: 2)b) I am using third party libraries that are under MIT licence but at least partly already used in the project I am contributing to. Does this make a difference? Jan 14 at 10:56
  • @TheProgrammer I'm not sure it makes a difference, but it certainly complicates matters. Does the project know of, and desire, your contribution?
    – MadHatter
    Jan 14 at 11:51
  • They limit the money that can be earned with consulting to a certain amount of money per year, so they are not completely against it but of course want to profit financially where they can Jan 14 at 13:33
  • @TheProgrammer then I'd advise you not to use that library except inasmuch as it is part of the existing project, and not to use any other libraries at all. As I see it, you can offer a combination of project code and your code back to the project, and be paid for that, but once you start adding anyone else's code, it will get extremely messy.
    – MadHatter
    Jan 14 at 15:22
  • 1
    I believe it very much depends on the way how the addnl library is included. For example if the MIT library was just included as a dependency, then there would be no issue, however if the code was directly copied into the new project it would require a close look at risks and merits and there I support MadHatter's recommendation for extra caution. Jan 15 at 10:09
1

If the copyright to the commons-clause licensed code is fully owned by a single legal entity (which I'll simply refer to as "the project"), they can just grant you an explicit exemption to the Commons Clause. Under the circumstances you describe, I see no reason why they wouldn't want to.


If the code has multiple copyright owners (either because there are multiple contributors who didn't all transfer their copyright to the project, or because the code was forked from or otherwise based on earlier commons-clause licensed code with a different copyright holder), however, things are different. In that case, another contributor to the project could claim that you are, in effect, selling an improved version of their commons-clause licensed code to a third party (the project) without their permission.

(The way the Commons Clause is phrased, it probably doesn't matter whether you're literally selling the improved code or simply providing a paid service to write said code. Either way, it still counts as Selling under the definition given in the Commons Clause.)

At that point, the question becomes whether or not the value of your improved version of the code "derives, entirely or substantially, from the functionality of the Software" written by the (hypothetical) objecting developer(s). Unfortunately, that seems like a nontrivial question. There is an argument to be made that it does not, since you're presumably only getting paid for your improvements to the code, and not for the original code itself (which the project already has full access to anyway). But there are also potential counterarguments that could be made, especially if your improvements are only things like bugfixes or other changes that have no intrinsic use or value without the pre-existing code. Would I trust myself to predict how a court would rule on such a case? No, not really, especially not without knowing a lot more about the details of the case.

So, to be safe, you really should try to get permission from all the copyright holders of the existing code. If there are thousands of them, or if some of them can no longer be contacted, well, then you may have a problem.

All that said, note that the worst thing that a potentially objecting copyright holder could do is sue you, personally, for copyright violation. They cannot sue the project for buying your services, since the Commons Clause only prohibits selling, not buying, and even if you're found to have violated the license by asking for money for your contributions, the code that you've contributed will not be tainted by the violation. Even in the worst case, the project will still have a valid license (or CTA) from you to your contributions, and from all the other contributors to theirs, and can legally distribute and build on the combined work.

(Strictly speaking, the specific license underlying the Commons Clause could impose additional conditions that would "taint" the combined code and make it undistributable in such circumstances. But I'm not aware of any Open Source licenses that would do such a thing, and certainly I see nothing in the Apache 2.0 license that I believe could have such an effect.)

So, in the end, it all comes down to whether or not you're willing to personally take the risk that someone owning the copyright to part of the existing code, who you haven't managed to get explicit permission from, will find out about you getting paid for your contribution and disapprove of that so strongly that they're willing to spend the time and money to sue you for what's likely to be meager and uncertain returns at best. In most cases, I'd rate the likelihood of that as pretty low. That said, if there happened to be e.g. a hostile fork involved in the history of the project, and if some of the original authors were still angry about it, I might reconsider that risk estimate.

3
  • 1
    Your answer appears to contradict the FAQ for the Commons Clause, which states: "Anyone not intending to “sell” the Commons Clause licensed software itself may view the source code, make modifications, submit pull requests to get their modifications into the software, freely use, embed and redistribute the software, make and distribute and sell derivative works." Jan 17 at 22:58
  • 1
    @Martin_in_AUT: The only part of your quote that explicitly allows receiving monetary compensation is the final part about being allowed to "sell derivative works", and indeed that's (arguably) exactly what the OP would be doing. The only question is whether the derivative work the OP would be selling back to the project would derive its value substantially from the original software it is based on. If yes, it would seem to be forbidden by the plain language of the Commons Clause itself, whatever the FAQ may say. Jan 17 at 23:16
  • 1
    … Based on the rest of the FAQ, the intent of the Commons Clause is clearly to permit sale of "value added" derivatives, such as software products that merely use a minor Commons Clause licensed subcomponent, while forbidding circumvention of the sales restriction by just making trivial or cosmetic changes to the software. Somewhere in between those two extremes lies a borderline between derivatives that can or cannot be sold, defined by the word "substantially". Exactly where, I don't see anyone but a judge being able to tell. Jan 17 at 23:17

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.