Hacker News new | past | comments | ask | show | jobs | submit login

The license these businesses should be using is AGPL, clean and simple.

Run the software under AGPL and dual license it under a closed or restricted usage license if a customer doesn't want to use the AGPL license.

Instead we have people electing to create restrictive licenses with varying degrees of "use the software however you like unless we don't like you or your business" baked into them.

The dual full free + restrictive license model has worked very well in the past for FOSS based companies. Let people who are fine contributing back to your project and/or open their project up use it however they please and let everyone who doesn't like those terms pay for it like standard commercial software instead.




I like the idea, will have to read AGPL. In my mind an ideal version would be, when translated from legalese:

If your business is just an extension of the underlying software (the source) and you don't want to open source your part of the work, then pay a commercial license.

If your business uses the software (the source) just as an ancillary part most probably you're ok to source back any improvements back and keep them open source (no need to pay). If it's ancillary and you need to keep them closed, then pay for licensing anyway.

The only thing I don't understand but seen many time mentioned is the "infecting" nature of the GPL licensing?


The "infection" is the feature that makes GPL and AGPL useful. The basic idea is that if you are interfacing with the (A)GPL licensed software you are extending it's functionality and must comply with the license. The difference is that the interfacing with GPL is statically linking against the project. With AGPL the interfacing is also interfacing over the network. What this means is that software that clients or peers interacting with the software need to be available to the user. An additional stipulation for AGPL is that all necessary infrastructure to host the service be open sourced as well.

The reason for this is to prevent people from creating wrappers that allow them to profit off the licensed software without contributing back or open sourcing. The key thing to note is that you don't have to upstream changes. You only have to provide the source to users (and the license protections extend to them). This means you can still sell GPL and AGPL software but you do have to provide full usage permissions to the user once they've bought the product.

As a side note: I've always found it amusing that government contractors have traditionally been very afraid of (A)GPL despite being required to provide (A)GPL-esque usage permissions to the customer/government. Most of this I imagine is due to a fundamental misunderstanding that providing source to the user doesn't mean publicly make source available for everyone.

Now if you have an AGPL or GPL licensed dependency and you want to dual(+commercial) license your project, you have to work out a commercial license agreement with the dependency's maintainer. If a project has (A)GPL dependencies and doesn't have a commercial license but you'd like to use one, you'd have to work out commercial licenses with the project and all the dependencies (or have the project maintainer work said license out).

This infection effectively enforces users to either share their software or "pay" for all of it which is arguably a good thing for the health of the ecosystem as a whole. If (A)GPL+commercial licensure was standard practice, we likely wouldn't be seeing the [OpenSSL/xkcd-2347](https://xkcd.com/2347/) issue keep popping up time and again.

TLDR: The "infection" forces users/developers to either respect the "free" terms or pay for the full value of the software.


Can you think of any successful AGPL + commercial license examples? I like the idea


Off a quick google search Ghostscript, Bitwarden, Berkeley DB, and Instructure Canvas.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: