Idea for a Contribution License


I’ve been reading this forum for a few months now, and I have been interested for quite some time in having a software license that would enable me to ensure that companies or any other high user of my stuff will contribute back in a manner that we can agree on. Monetary, branding (advertisement of usage), man-hours, doesn’t matter the exact manner.

The sort of stuff I work on typically is infrastructure-type projects, where they are depended upon to create applications; therefore the user won’t know is being used. Only the problem is, there really isn’t a license out there that protects my interests while allowing as many people to use my work as possible.

My concerns foremost are that I am protected, along with any other person who contributes to my projects.
Next, I want to know that the license allows me to pull all support from a company if they are clearly acting in bad faith wrt. contributions.

I do not want some company to fork my projects and say we are maintainers!!! Look at us, how cool we are, pay us now.
Nope, you can fork and maintain as much as you want but I still want to own the project, but I want to own the modifications, and if appropriate get paid.

Realistically I don’t believe there is any point in making it too strict or exact, in practice it’s not very realistic that I would end up suing anyone for their usage of it. This is one of the reasons I believe the term “in good faith” should be used in determining how much should be contributed back.

I’ve looked at plenty of other licenses, but so far I haven’t liked any of them very much. Trials, non-profit, commercial all of these things are not what I care about. I care about how much revenue you make off of my work and how much work you create for me, that’s it.

Payability as mentioned in Payability, Form, and Substance — /dev/lawyer talks a lot about the things I care about. Companies like to know that there are consequences for not paying someone. Either it’s the law that requires them to do it for contractors and employees, or it’s a software license for something they use. That is a lot of what the license I am looking for gives them. A consequence for not paying me for my work (and as a nice consequence recognize that there is a consequence for not having someone in-house who contributes to your dependencies).

Last month there was talk about Developer Basic Income which is a neat idea for allowing of payments, and perhaps could be used for some form of “backup” if parties couldn’t agree on something. But my issue with this as an all-encompassing solution is it really only helps project owners who have a larger user base willing to spend that money and it isn’t advantageous to them to go after people who violate their license (if it requires it). But more importantly, it does not allow project owners to recoup the costs of both development and support based upon the amount that has been thrusted upon them.

So I’ve gone ahead and wrote up a license (and no I haven’t got any legal training so don’t use it until it’s checked), and I’ve tried to take into account all of these things.


1 Like

@alphaglosined, welcome!

I did see your post pretty shortly after you made it. But it’s long and I needed to wait until I could take the time to really read. As it is, I’ve just had time for your post, and not yet for your license draft. I will make some time for the license draft, too.

A few quick thoughts in the meantime:

You mentioned “Developer Basic Income”. Anything quality you could link to about those conversations? I’ve become pretty allergic to mentions of universal basic income in software funding conversations, for reasons I recently blogged about. But I don’t want to prejudge an idea based just on a name.

You mentioned your priority is being protected. How did you mean that? Protected from companies profiting off your work without contributing? Protected from others forking your work and claiming project leadership? Protected from liability for errors or security issues with your software?

This is a forum. Nobody needs to write too exactly. But you made sure to mention protection was foremost in your mind. So I thought best to double check.

I take it you already understand very well that there are some tensions between your goals. Allowing as many people to use your work as possible, for example, will run up against company policies and ingrained expectations that turn away from anything not MIT, BSD, or Apache licensed.

As for the legal point of view, I can’t run around the Internet giving free legal seals of approval. But I did spot two legal points worth talking about.

First, there are certainly commercial license agreements out there that require assigning IP rights in changes and improvements back to the original developer. But that is not something we’ve seen a lot in free, public licenses like the ones that go in LICENSE files. There are reasons to expect at least US courts would try to avoid enforcing that kind of term.

Second, “in good faith” is definitely a common legal turn of phrase. But please understand that does not mean that it has a specific, predictable meaning spelled out in the law or as used by judges and lawyers. There are certainly some court decisions out there interpreting “in good faith” in specific contexts. But to put it in analogous coder terms, “in good faith” isn’t so much invoking a subroutine as throwing an exception. It’s not deterministic. It kicks us out of deterministic rule-following, and prompts some person or group of people—judge, jury—to apply their judgment and look at the circumstances moreso legal rules.

There isn’t anything that stands out to me. It’s all a nice idea, but I don’t think what has been described could work. If a project is big enough you have different tools to obtain money, but it doesn’t really solve the individual developer I think.

When I talk about protected I mean against liability. Everything else kinda comes in second if you don’t have the cash to back up your threats in a courtroom.

I’m aware that companies could very well be allergic to this type of license. A lot of my context for this comes from the D community, it’s quite normal for larger companies to contribute back to the ecosystem significantly, and yeah I know it’s a bit weird.

So for me personally what you have said has pretty much cemented that it’s well outside my budget to get this license anywhere near usable. It does have cross-jurisdiction issues.

So thank you for that information, it’s a shame that this niche for a software license doesn’t seem to have been filled by anything as of yet. But perhaps somebody will have something interesting to contribute down the road :slight_smile:

So there are two concepts here. Call them offense and defense, like in sports. You may not have a very strong offense if your defense has failed, you’ve gotten sued, and you’ve lost all your money. But otherwise, offense and defense aren’t inherently interlinked. They’re separate questions.

On the defense side, every common open software license, and every similar license I’ve helped write, has a disclaimer something like this one from the Blue Oak Model license:

As far as the law allows, this software comes as is, without any warranty or condition, and no contributor will be liable to anyone for any damages related to this software or this license, under any kind of legal claim.

In MIT, BSD, and Apache, these are the parts of the terms in ALL CAPITAL LETTERS.

We don’t have a long track record of court decisions behind these disclaimers. Either to show that they work, or even to show that they’re legally necessary in the first place. We do know that in some jurisdictions, like Germany, some guarantees (or “warranties”) about software might not be defaults that can be overridden, but mandatory rules. But I don’t think we’ve seen any open software developers held responsible under those rules, at least in public legal decisions.

I read through your license text, and while I don’t think I’d recommend that a client use as written, I think it helped me understand what you’re after.

I’d put it in the general category of “club projects”, riffing off the economic concept of “club goods”. Basically: projects that are “open”, but only to members who’ve contributed somehow.

I’ve done some license terms where monetary or in-kind contributors get exceptions to noncommercial or copyleft license terms.

I’ve been doing some more research into existing licenses, and rather than looking for an exact one, I’ve been looking for what is close to what I want.
The most interesting one I have found is Artistic.

It differentiates between standard and modified versions of a project.

(a) make the Modified Version available to the Copyright Holder of the Standard Version, under the Original License, so that the Copyright Holder may include your modifications in the Standard Version.

Which only activates if you distribute outside of your company.

“Distribute” means providing a copy of the Package or making it accessible to anyone else, or in the case of a company or organization, to others outside of your company or organization.

This is more or less a scenario that I did intend to be possible. If you don’t distribute externally, you’re good.

There is a major problem with it, however, porting of software to platforms that are closed (like consoles). You have to give back the changes to the copyright holder which may very well break licenses, NDA’s ext. with the platform’s company; which of course is just trouble for everyone involved.

So you’ve brought up club goods which is a very interesting idea, not something I had thought about quite in this way. So in a club, not all members are equal. The more of the clubs’ resources you use for your own benefit as well as the value gained increases the more you should give back to the club. I think this is where a lot of my issues stem from.

There is nothing requiring a company that forks your project to give you a cent if they want to take over your work. There is nothing stopping a company from essentially turning your project into SaaS without giving back some of the revenue.

In saying all this, patron license is almost there for a duel licensing setup.

To accept these terms, you must be enrolled to make regular payments through any of the payment platforms pages listed above, in amounts qualifying you for a tier that includes a “patron license” or otherwise identifies a license under these terms as a reward.

I think the changes that would make it acceptable for me in conjunction with Artistic could be:

- you must be enrolled to make regular payments through any of the payment platforms pages listed above
+ you must continue to meet your previously agreed upon contribution terms

Between a CLA for repository PR’s, Artistic license, Patron license. I think we are almost there for getting a good solution for my use case without the need for a new license, which is greatly appreciated!

I’ve had a chance to think about Artistic license further.

I think 4. C actually covers porting.

(c) allow anyone who receives a copy of the Modified Version to make the Source form of the Modified Version available to others under
(i) the Original License or

So Patron license isn’t required.

I did identify three things that would have stopped me from using Patron in its current state.

  1. Multi-seat
  2. Being able to distribute externally without sublicensing i.e. for porting (so private repo, but on request access).
  3. Not just monetary payment. Money in small amounts can be very harmful to those who are not set up to receive it. Both in terms of work (tax), but also other things may be cut off to them due to receiving an income. Hence it needs to support negotations.

If it was possible to bring back revenue/work generated as a determination of if you need the secondary license (Patron), I’d love to use it if those issues were ever resolved.

Either way, I think I’ve got a solution that’ll work. The whole modification elements in Artistic should be enough social leverage to get users to contribute back in a way that helps somebody in my position.

So thank you for helping me to get to this point, it may not be what I wanted, but it’s for all intents and purposes probably as close as I’ll need it to be. Hopefully this will help somebody else in the future!

A more radical alternative would be to recast copyright law in materialist terms, recognising authorship merely as the investment of labour power and entitling the contributor not to
‘proprietorship’ but to remuneration.

Couched in such terms, a copyright system might, […] be more accommodating of collaborative contributions. Aided by bureaucracy, statistics and technology, such contributions of labour power may be more accurately defined within structures which could transform author’s rights into remunerative rather than property rights.

Bently, L. (1994), Copyright and the Death of the Author in Literature and Law. The Modern Law Review, 57: 973-986. Copyright and the Death of the Author in Literature and Law - Bently - 1994 - The Modern Law Review - Wiley Online Library

… suggests a copyright license that offers a basic income for all contributors may be inevitable.

’ Programming isn’t the job getting automated. Programming’s the job automating the other jobs.’

Nah, my eldest who recently graduated in Comp. Sci. is expecting programs to write programs as a matter of custom in his lifetime… he knocked up something in Python in a few days that formats text inputs using machine learning…

You might like to do some reading on “private changes” under the GPL. That’s the FSF name for the idea that sharing within a company, even sharing private changes like Linux kernel patches throughout all of Google, doesn’t trigger the copyleft requirement to disclose and license source code.

If the deals you want with your users / adopting companies / club members will be one-off, I don’t think it makes much sense to write out those terms in the LICENSE file. Just write them into the deal you make one-off with the user.

You’re really just selling a commercial license at that point. But you’re accepting contributions partly or wholly instead of cash.

I had a look at GPLv3 and I think the keyword you were intending to suggest was “convey” (as far as looking it up) rather than “private” which was only mentioned once.

You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.

That certainly is an interesting form of sublicensing (without actually sublicensing)!

But yeah you are right, it’s a commercial license, without the expectation of commercial signage unless something goes really really well for someone and bad for you.

Just write them into the deal you make one-off with the user.

Are you talking about an informal agreement or a lawyer written license?

1 Like

Inform7 a bit of software for making games/stories has gone open source using the model that I have ended up with.

Artistic v2 with CLA.

I wonder if the author (Graham Nelson) read this topic!