ENES

Software license

The legal terms that say what you may and may not do with a piece of software.

A scale from closed to open: a proprietary license that only lets you use the program, a copyleft license like GPL that lets you change and share it if you keep it open, and a permissive license like MIT that allows almost anything

A software license is the permission slip that comes with a program. Software is protected by copyright, like a book or a song, so by default you cannot copy, change or redistribute it. The license is the author's statement of which of those things you are allowed to do, and under what conditions.

Proprietary licenses, the long agreements you click through when installing Windows or Photoshop (an EULA, end-user license agreement), usually let you run the program and little else: no peeking at the source code, no copying, often a limit on how many computers. You are renting the right to use it, not buying the program.

Open source licenses go the other way and let anyone read, change and share the code, with different strings attached. Permissive licenses like MIT, Apache 2.0 or BSD ask for little more than keeping the author's name and the license text; you can even put the code inside a closed commercial product. Copyleft licenses like the GPL add one important condition: if you distribute a modified version, you must share your changes under the same license. Linux uses the GPL, which is why its improvements keep flowing back.

For companies this is not a formality. Mixing GPL code into a product you sell, or using a library whose license forbids commercial use, can mean having to publish your own code or facing a lawsuit. That is why many teams scan their dependencies' licenses automatically.

Keep in mind

Go deeper

Related terms

More in Software