Stepping back, this gets into the bigger questions of "What is commercial use?"
If you take an image that's Creative Commons BY-SA-NC and you use it as the title image in your article and display the photographers name and even link to his or her website/original image, but your site is filled with ads you use to make money off your writing ... have you violated that license?
This is why Wikipedia doesn't allow NC works and why we have the "Open Culture" classifications for licenses types.
I feel like the Common Clause supporters are in this spot where they want to monetize and survive of their software, and I can respect that. But the spirit of the GPLv3 camp of devs is that "Fine, let other people make money off my works if they want. But they need to contribute their improvements back."
I feel like the Commons Clause is kinda a half-and-half approach that really fails on both sides of the camp. Most BSD licensed tools can be used in GPLv3 software, but (and correct me if I'm wrong) it doesn't look like Commons Clause is compatible at all.
It's kinda sad how licensing hinders using the best tools in open source development. An excellent example is Hunspell, which is a god awful spell checker that's used in everything. Aspell if superior in almost every case, and yet it can't be included in anything due to licensing:
> Most BSD licensed tools can be used in GPLv3 software, but (and correct me if I'm wrong) it doesn't look like Commons Clause is compatible at all.
You're correct; all licenses that don't qualify as Free Software are incompatible with the GPL by definition, and the "Commons" Clause is not a Free Software license.
> If you take an image that's Creative Commons BY-SA-NC ... but your site is filled with ads you use to make money off your writing ... have you violated that license?
Other examples: Is the BBC commerical? It's technically a public service broadcaster, owned and "controlled" (ish) by a government. But it has managers and offices and directors (and sorta) CEO, and HR departments and employees and will sell products, and it buys many things, and competes in the same space as many commerical TV stations and producers.
Is the US Department of Defence commerical? No. The US Army? No. What about Deutsche Bahn, the German train company?
Imagine a tiny worker owned co-operative, it's 10 local indiginous farmers who are barely self suffecient, but they made a co-op selling their products. It's a democratic organisation, controlled by it's members. That is definitly commerical.
In my experience BBC asks permission to use anything. I have an open source game (GPL), and they asked me for permission to use a footage of their own gameplay. So, even if this would fall into "fair use", they still asked.
> The author continues:
>
> "Our view is that open-source software was never intended for cloud infrastructure companies to take and sell. That is not the original ethos of open source."
>
> which is a pretty astonishingly unsupported argument. Open source code has been incorporated into proprietary applications without giving back to the originating community since before the term open source even existed.
It depends on who you ask. The GNU AGPL certainly was intended not for cloud infrastructure companies to unconditionally take and sell. And as for non-cloud software, some projects like Wine used to be licensed permissively until they realised certain companies like Cedega [1] were making money off their work without contributing anything back, and switched to the LGPL instead.
Then OTOH you have permissive fundamentalists from parts of the US west coast that are already rich and whose livelihoods aren't dependent on money, and then of course are very happy to gather favour and reputation from giant tech monopolies by giving it all away for free with no pesky "reciprocal altruism" conditions for the lawyers to have to reason through.
If you ask the people behind the AGPL about the ethos of open source, you're asking the wrong people. They're pretty explicit about having a different ethos:
AGPL is a tiny subset of open source software, and even then it's intended to allow cloud infrastructure companies to sell covered works. It's certainly the case that there's an intent to prevent certain pieces of open source software from unconditionally being used in this way, but I don't think it's reasonable to argue that there was a fundamental incompatibility between the original ethos and what's happening now.
I'm probably not thinking this through, but here goes anyway...
Ignoring the "free software developers" for the moment and only focusing on "open source" developers...
There are essentially two classes:
1. Those who truly believe in the spirit of 3-clause BSD license, plus the small number who believe in the spirit of the GPLv2.
2. Everyone else who "chooses" 3-clause BSD license because that's the default open source license and they just want to spend their time dev'ing.
I'm guessing group #2 is vastly bigger than group #1.
So for group #2, why not default to AGPLv3 plus selling proprietary licenses to companies that want to use your software?
The companies' lawyers won't let them touch the AGPL with a ten foot pole. If they want to use your software they will pay for a reasonably priced proprietary license.
For group #2, this is not that much different than defaulting to 3-clause BSD, except for the following:
* companies will pay you money before using your software
* there might have been some companies which would have downloaded and used your software under 3-clause BSD which will not use it under AGPL nor pay for the proprietary license. But those companies are the ones least likely to support you under the 3-clause BSD license anyway, either by donation or even giving back patches
So if the premise is, "I just want to dev," choose AGPL. Then when anyone tries to bikeshed about the license kindly offer to sell them a reasonably priced proprietary license instead.
If they accept, eat. If not, keep dev'ing.
If it doesn't work at all, you've still got an open source project available to the public under an open source license.
If you don't care about licensing, you should absolutely not default to a copyleft license. You should only ever use a copyleft license when you intentionally and explicitly want copyleft behavior.
The truth is, unless you're spending a significant amount of time building a high-quality, highly-useful piece of software, as well as marketing it, no company is going to pay you for your open-source software regardless of its license. If you are spending the time and effort necessary to produce something a company will go through the trouble of licensing, then you should be giving a lot of thought to the license you're using already instead of just going with a "default".
As far as actually making money off of open-source work, by far the best way to do that is to leverage your open-source contributions into getting a highly-payed job at one of the big companies. For these purposes, the actual license of the work is pretty much irrelevant, except that using a more permissive license is likely to result in having more users of your component, which in turn gives you as the author more prestige and therefore makes you a more valuable hire.
So basically, if you don't want to give any thought to the license you should use for a particular project, you should default to a permissive one. You can always relicense it later if you decide it's turning into something that might actually be valuable enough for companies to pay for.
I think you described the trade-off between permissive and copyleft licenses well, but the argument that you shouldn't default to copyleft is weak.
If you care about developers, you should use permissive license, if you care about end users, you should use copyleft license. The final decision is completely determined as who you see yourself more as a maintaner - developer of the software or end user of the software. The choice depends on the nature of software, and if you expect that you will be paid on either developing it or at least using it in another paid project.
Unfortunately, there is no middle road. The middle road will just mean more free loaders.
That's a fair argument, but the counterargument is that permissive licenses are good for users because permissive licenses allow more software to incorporate your component, thus (presumably) increasing the overall quality of software, and it's good for users to have good-quality software.
That is an argument which only works, however, when you're writing a component.
Almost exactly dual argument can be made to defend end-users.
And it is what we actually observe in the real world. Components that concern developers, such as libraries, often have liberal licenses, while finished programs often have copyleft licenses.
You can change the license but you can't take but what you have given away. If you default to a permissive license you can't decide that people can't earn money with what you have already given them whereas you can always decide later on to offer a more permissive license should you desire.
> You can always relicense it later if you decide it's turning into something that might actually be valuable enough for companies to pay for.
And you can just as easily relicense it from AGPL to 3-clause MIT for the odd case that it isn't valuable enough to sell but somehow valuable enough that some number of companies what to use it as a key piece of infrastructure.
What is your argument for "absolutely not" doing that and defaulting to 3-clause BSD when an author doesn't care about licensing?
You can only relicense it if you're the sole copyright owner. Otherwise you have to get approval from every single person who's ever contributed non-trivial changes to the project.
But the reverse isn't true; permissive licenses like 3-clause BSD are compatible with GPL, so if you default to a permissive GPL-compatible license, you can relicense under the GPL later if desired without having to get approval from all copyright owners (I'm assuming this is true of AGPL as well but I haven't investigated that particular point). Of course, someone else can fork it at that point and continue maintaining their fork under BSD, which is why you should think about the appropriate license to use before the project gets to a point where having the correct license is important.
> What is your argument for "absolutely not" doing that and defaulting to 3-clause BSD when an author doesn't care about licensing?
Copyleft licenses are actually fairly dangerous to developers. You have to basically treat any copyleft-licensed code as radioactive and keep it from tainting any other code on your computer. If you're the sole copyright owner it's not a big deal as you can relicense it, but once other people have contributed to the project, it becomes a problem.
And on a related note, many developers (such as myself) are reluctant to contribute to GPL-licensed projects, and so using a permissive license is more likely to attract contributions.
The issue in this arrangement is with contributors. Why would contributors want to actually contribute. With AGPL one of two things happen:
1) The contributors give you the right to license the software how you see fit. Thus, they are not able to get commercial benefit from the software, but you are.
2) The contributors don't give you the right to re-license the software. When this happens, you can't sell a commercial license.
The final issue is that a lot of the contributors to open source actually are doing so on the behalf of their companies. Many companies would like to contribute some feature to the open source project that they find useful so they don't have to constantly patch upstream before using a project. With AGPL, you won't get those contributors.
> The contributors give you the right to license the software how you see fit. Thus, they are not able to get commercial benefit from the software, but you are.
I'm not sure how common dual licensing is these days, but Trolltech used to use to dual license and use contributions to Qt (and KDE) as a recruiting mechanism. So there was no direct commercial gain but for many it resulted in getting something out of the exchange. There's also the resume padding and other indirect gains from contributing.
I'd be more worried that the company could go completely closed source at any point.
For example, the contributors to Qt have varied over time, but in past years major contributors have included Digia, KDAB and Blackberry. The first two did so mostly to sell consulting services, and Blackberry did so because it was a major part of their OS.
> I'd be more worried that the company could go completely closed source at any point.
Which company? I'm talking about developers who default to some license and then continue dev'ing.
Those devs can just as easily go closed source at any point with a 3-clause BSD license. In fact that is more likely as anybody can take 3-clause BSD licensed software and make it proprietary.
With 1), if the company is clearly turning a profit from a dual licensing scheme, the contributors can ask for payment structure in their CLAs. This isn't an unreasonable request if the contributions are valuable.
With 2), you may just not be able to accept the contributions upstream. This is fine though, people can still fork the project, which is better than them not being able to do anything at all if it was proprietary.
> 1) The contributors give you the right to license the software how you see fit. Thus, they are not able to get commercial benefit from the software, but you are.
Sure. But that's compared to the 3-clause BSD situation currently where no one at all is getting the commercial benefit in the majority of cases.
And developers are already used to deferring to the main developer-- who is quite often the original author. In the rare case of Paul Davis subsisting on monthly donations in a free software project (Ardour), I have a hard time believing that people aren't submitting patches because he gets money.
Redis Labs was originally using AGPL for their software before they switched to the Commons Clause. It seens companies had no issue using and selling the software. The issue was they didn't want other people to commercialize their software, which is perfectly fine by Free Software supporters.
I think a solution that actually helps the commons is to time-bomb the "Commons Clause" for a 3-5 year period, after which the software reverts to full open source (similar to the GPL Time bomb discussed some time ago: https://news.ycombinator.com/item?id=12459492 )
This way, the developers get paid fairly, for what they actually deliver, but they can't lock the users in. If the developer dies, goes bankrupt or falls into a predatory phase where it milks the product for cash without reinvesting sufficient back (Adobe), then the project can be salvaged as open source by those who use it. An even better option is to allow any commercial developer, after the 3 year period passes, the option to fork and develop it's own version with similar licensing conditions.
This will ensure a healthy, competitive environment where the software can be monetized traditionally, yet the 4 freedoms are (eventually) satisfied. As a user, this is what you care about above all else; you will pay the commercial license fee to get the bleeding edge product, knowing you are in a way "leasing to own" the software and you will be able to fork it in-house if the way you use it diverges from what the publisher will want in the future.
Am I correct in thinking that what we're missing is an "ALGPL", a version of the AGPL that only requires modifications to be distributed and not everything linking to it? At the moment the AGPL seems to be the only common license that requires modifications behind a corporate firewall to be published but the copy left nature makes it corporate cancer.
You don't have to make it available to the public if you only use it internally. You only ever have to share it with the people who use it. If it's only internally used that means you don't have to share it.
Even if it's externally used that doesn't mean it has to be freely available. If you require a paid subscription to access the AGPLed software then you only have to provide the source to those that have paid for the subscription.
> If you require a paid subscription to access the AGPLed software then you only have to provide the source to those that have paid for the subscription.
While true, there's no restriction on the subscribers making the code public.
True (and one can't add it, as the license procludes doing so), but in my experience working for a company that distributed most of its software under the A/LGPL licenses to paying customers only, they aren't really interested in doing that. We never had one of our modules being publicly distributed by a third-party.
>Well, no. The GNU Affero GPL has a clause that covers this case - if you provide a network service based on AGPLed code then you must provide the source code in a similar way to if you distributed it under a more traditional copyleft license.
>Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.
There are two things here:
1. People only get access if they access the service. I don't know how this has been tested in court, but to my IANAL ears it means opening a socket to the service.
2. You only have to distribute it if you modify the software. This is nothing to do with using AGPL code as part of the collection of services. And if you don't let users open a socket to the AGPL part then you don't need to release those parts.
I only use open source libs that's apache, mit, or BSD licensed. To use anything else you must be crazy (as this article proves). I'd rather write my own code if it's not available under one of those licenses.
I am more flexible with the software as it doesn't really matter (like databases).
If you take an image that's Creative Commons BY-SA-NC and you use it as the title image in your article and display the photographers name and even link to his or her website/original image, but your site is filled with ads you use to make money off your writing ... have you violated that license?
This is why Wikipedia doesn't allow NC works and why we have the "Open Culture" classifications for licenses types.
I feel like the Common Clause supporters are in this spot where they want to monetize and survive of their software, and I can respect that. But the spirit of the GPLv3 camp of devs is that "Fine, let other people make money off my works if they want. But they need to contribute their improvements back."
I feel like the Commons Clause is kinda a half-and-half approach that really fails on both sides of the camp. Most BSD licensed tools can be used in GPLv3 software, but (and correct me if I'm wrong) it doesn't look like Commons Clause is compatible at all.
It's kinda sad how licensing hinders using the best tools in open source development. An excellent example is Hunspell, which is a god awful spell checker that's used in everything. Aspell if superior in almost every case, and yet it can't be included in anything due to licensing:
https://penguindreams.org/blog/aspell-and-hunspell-a-tale-of...