7

I am working on a not open source project. As I truly respect the ideas behind the free software movement, I would like to also make my own works open source whenever possible. However, I am not the sole owner of the piece and thus I must take into consideration the business interests of the company as well.

The software in question is a web application which would be used within an organization or provided to the organization as a service (which our company is doing).

So I would need to find a license which would make it impossible for somebody else to offer it as a service, but would still allow others to use it in some other way (for instance as a self-hosted version or at least have access to the source code). I see it is not very open-source-minded, but still better than 100% proprietary code which it currently is.

I am therefore wondering if there are any licence which would be more restrictive than GPLv3, but would still qualify as free software. For instance, is there such a license which would require not only the source code to be public, but also all the data which flows through the application to be public? Would it be free software? How hard would it be to create such a license by oneself without juridical background?

Also, are there any good licenses in between free software and full proprietary options? For instance, something which would allow the use of software for none-commercial purposes only? In other fields the Creative Commons Attribution-NonCommercial is widely used, but I have header it is not recommended for software. What other options there are?

4
  • 6
    These two requirements are totally contradictory: "make it technically impossible for somebody else to offer it as a service" and "allow others to use it in some other way (for instance as a self-hosted version or at least have access to the source code)" – Jozef Izso Feb 14 at 16:21
  • @JozefIzso Yes, thank you! I will update the wording to be more clear. – Eerik Sven Puudist Feb 14 at 16:23
  • 2
    According to the FSF, "Free software is software that gives you the user the freedom to share, study and modify it." There can be a debate over who the "user" is in a web service scenario -- is it the entity running the software on their web server, or the ones accessing it via their web clients? -- but whomever that is, if they are denied access to the software source or do not have the right to create and use a modified version of the software then that software is not "free" by this definition. – John Bollinger Feb 14 at 17:34
  • It's unclear what exactly you want the license to allow or not. You mention "impossible for somebody else to offer it as a service" and "all the data which flows through the application to be public", which is very different. Please clarify what you are looking for. – sleske Feb 15 at 7:41
29

There is no free software / open source license that will satisfy your requirements. These licenses generally focus on the freedoms of end users, they are not trying to restrict anyone. The freedom to use software for any purpose (including to compete with your offerings) is considered essential.

Using a freedom-preserving license with the purpose of restricting freedoms can work to some degree, but it will generally end with disappointment. It's perfectly acceptable if your software won't be open source, as long as it's not misleadingly labelled.

The AGPL is a copyleft license that is useful for preserving end user freedom in the context of SaaS software. If the software operator modifies the software, they must make the source code available to all remote users. This license used to be popular in the “we're open source but don't want SaaS competition” space. But that doesn't work: this license doesn't prevent SaaS offerings at all. It merely requires that users get access to the source code, but only if the source code was modified.

The Cryptographic Autonomy License (CAL) is an extension of this approach. It also enables the user to get access to their data stored by an SaaS offering, so that they could actually migrate to a self-hosted solution. While this limits lock-in effects of SaaS, this too doesn't prevent SaaS competition.

The CC-BY-NC / CC-BY-SA-NC licenses are not considered free or open source. They are very good licenses for creative works, but have two problems: They are less suitable for computer programs because they do not differentiate between the source code and other forms of the program. And the exact scope of the “NonCommercial” clause is fairly unclear.

There are other licenses that provide for some openness without the freedoms implied by open source. Those are sometimes called source-available. One of those approaches is to publish without any license, all rights reserved (see: what is the default license?). The SSPL is a non-free license that strongly discourages SaaS use, but is otherwise like the GPL. The Business Source License allows only non-production use, but automatically converts into an open-source license at some point in the future.

Could you create a suitable license yourself? I would beg you not to. Open source licenses have to consider copyright and contract law. They generally have to work in international jurisdictions, not just the legal system at home. They have to be good for the duration of copyright, which is often over a century in total. Drafting a good license is difficult.

There are many licenses that were written by well-intentioned amateurs, but this might introduce important oversights or even fatal flaws in their license mechanisms. Sometimes, they may fail to properly impose some license condition. Or they are written so unclearly that they might not be granting the rights they intend to grant. Sometimes, these licenses are created by recombining phrases and sections from existing licenses in a cargo-cult fashion, without understanding their connections. Such DIY licenses are often called a crayon license.

If you would like to create open source code without jeopardizing commercial interests, it might be better to move away from the license question to the question which parts can be published freely. Some parts of your software might be actually valuable to you – the functionality that sets you apart from competitors. And some code is unique to your situation – it doesn't matter if it's open source or not because it's useless to anyone else. However, there may be some modules that are useful but not particularly valuable to you, for example a configuration library or some frontend widget. Open-sourcing those might be possible without significant problems. You are most likely already making use of many open source tools and libraries. Instead of creating a new project, you could also consider with the maintenance of those (since this will ultimately also benefit you), or you could upstream new features that would help you with your work.

1
  • Surely any license that makes it commercially unviable to host the software as SaaS is the most restrictive, for this purpose. – user253751 Feb 15 at 9:21
3

The GNU Affero General Public License v3.0 is a step in the right direction, but unfortunately doesn't hit the mark completely. Although it does mandate that users who interact with the licensed material via network are given the right to receive a copy of the source code, it doesn't mandate publishing the data.

3

The developers behind the Timescale database are attempting to do something in this direction with their license, see e.g. the post on their blog. I am unable to judge, whether this has any chance of surviving in a legal court, but I think it is an interesting attempt anyway ...

2

According to this page [1], these are the most restrictive:

  • European Union Public License 1.1
  • European Union Public License 1.2
  • GNU Affero General Public License v3.0
  • Open Software License 3.0

Personally, I use Open Software License 3.0 with my projects.

  1. https://choosealicense.com/appendix
0

You fear that the competence will take your software as it is, and make a competing product.

But in practice this is not viable if it is under the Affero License, as by just creating a service connected to the Internet they would need to publish their software. Hence you could borrow it too.

In reality libre technology forks gets traction only if who creates them goes purposely against the wishes of most of its users, by blocking important contributions to its code.

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.