I absolutely LOVE licensing. This is where all the power of the software developer lies. Licensing allows us to make money from software and form an agreement with other developers and end users.
We are here. This is why we code. To make money. We need to create something and define what we keep or distribute.
Also, quick tip for you. If you want to look up great license summaries you can open up an LLM and ask it things like “Explain the MIT license”, or “Explain the Apache License”.
In addition you can make a list of licenses and paste them in the LLM. These licenses have been around many years so the language models do a great job.
Table of Contents
What Are Licenses?
As an example of a license, I am not allowed to translate any code as a developer of an MMORPG to other video game code sources. It is in the licensing agreement that we need to attribute Darkan, make the forks open-source and never use it for commercial purposes.
On my GitHub profile I also have two machine learning projects which restricted me from publicizing their language dataset but allows me to build my own custom model.
Should I break the MMORPG agreement and copy paste my own game? Shall I host private datasets on Google Drive?
I mean we worked many hours creating the game, potentially make money and recorded responses for the dataset.
Just steal all their effort. What are the consequences of that?
No. For the sake of making my life easier I do not break licensing agreements.
I think, “what is the most pain free way to use this code”.
Majority of the time anyway, if it is on GitHub/GitLab its just an attribution license.
But, we should follow the stipulations of the owner.
Licenses Are Customizable
In the MMORPG I am a part of the owner used a General Public license and just added a section which stated you must use Darkan code for Darkan.
Simple right?
You can add a paragraph in the licensing agreement and it would hold legal weight to it.
You can take a look here:
That paragraph in the red box is all you need and you have yourself a custom contract. Now, I don’t know if that was originally in the template. But essentially that is how making a license works.
You just write it out, place it in the code source and voila, you are licensed.
If you are curious how to make the licenses so pretty, GitHub has automated license agreements which sync to your repository.
Look here:
When you pick those you get those pretty bullet points. I think they support like 20+ licenses you can try out.
Just put them in an LLM for a description.
Closed Source Licenses Must Be Made Custom
Commercial or restrictive licenses don’t have templates like open-source ones have.
So instead of copying and pasting an agreement or using automated ones on GitHub we have to write our own. Rough, I know.
But we could use existing examples.
Types you can look up are:
- EULA: For the users of the software
- Commercial licenses: For those software which cost money
- Subscription licenses: For those software which are only available by subscription like Netflix
- Perpetual licenses: For those bought for the long-term, like video games.
If you are down for this just look for companies you know with these types and parallel your license a bit. Not a complete copy obviously but something to fill in gaps.
Often we have to create a software license and an end-user license. Thinking of this gives me the chills. I LOVE IT.
By making my own subscription license I can restrict my end-users when they don’t pay up!
Okay, let’s look at open-source software…
The Most Popular License for Software
The most popular agreement is the MIT License.
When we think “open-source” this is what most people have in mind.
It is an open-source attribution-only license.
You can sell, modify, re-license, privatize or commercialize a copy of projects with this license without paying royalties.
The only thing you have to do is attribute the original creator by explaining the original license in either documentation or the source.
If want a comprehensive list and open-source license chooser, a great web app is choosealicense.com.
Anywho, I hope you learned something…
Happy coding!
Resources
Darkan MMORPG: https://darkan.org/