DEV Community

Ahmad Abdulaziz
Ahmad Abdulaziz

Posted on

Let discuss Software License

software licensiing

Software licensing is one of the important things most developers neglect, especially when cloning, working or building an OSS.

  • What is Software license
  • Types
  • Why you should have one
  • And Advantages.

Top comments (1)

kspeakman profile image
Kasey Speakman • Edited

A software license is the legally defined relationship between the producer and the user of software, and allowed ways to use the software. A software license is in the legal world what an interface or protocol is in the programming world.

Most OSS licenses have some common provisions.

Use at your own risk

OSS is provided free, so it would be a pretty jerk move to sue the creator of the rm command after you accidentally deleted important documents with it. That's on you and not the creator of the tool.

Do not claim your product is made by another company (just because you use that company's OSS software).

An example is Redhat and CentOS. I believe at some point the Redhat Enterprise Linux (RHEL) sources were available as open source, but you had to buy a support contract to get access to the built installable images. So CentOS was a volunteer project to build and publish RHEL images. In order to do that they had to remove all RedHat branding. Otherwise, you might download the "volunteer-built RHEL" and then try to call Redhat support, who is actually not responsible for that. So this clause prevents such confusions.

Other restrictions

For open source there are licenses ranging from unrestricted (aside from the above points) like MIT, to very restricted such as GPL and the particularly heinous AGPL.

I'm not a lawyer, but my understanding...

With MIT, you can use the code in pretty much any way you see fit. Including directly copying and pasting the source code into your product without attribution or releasing it separately under a differently license.

Whereas on the other end of the spectrum, using AGPL libraries and products destroys all your legal freedom (good or bad) for the software you create. The AGPL license requires that all software integrating with the AGPL software must also be licensed under AGPL and the source made publicly available. Most of the time I see AGPL used, it is a corporate tactic to make a product "open source" (public code, accepting contributions) but in actuality customers are required to pay for it. Because it is untenable for most companies to make their software AGPL and public... it is equivalent to Coca-cola being legally required to publish their secret formula because they used an AGPL safe to store it. So the shtick is "You can use the Open Source version (a non-option with AGPL) or you can pay for a commercial license."