Software License
- In Turkish
- Yazılım Lisansı
- Pronunciation
- SOFT-wair LY-sunss
In short
A software license is the legal permission that says how software may be used, modified and distributed; open source licenses can be permissive or copyleft.
What is a software license?
Code is automatically protected by copyright, so without a license nobody else may legally reuse it, even if it is public on GitHub. A license grants permissions and sets conditions. Proprietary licenses, typical for commercial software, usually allow use but forbid copying, modifying or redistributing it. Open source licenses grant those freedoms, with different conditions attached.
Permissive licenses, such as MIT, BSD and Apache 2.0, let you do almost anything, including using the code in closed-source products, as long as you keep the copyright and license notices; Apache 2.0 also includes an explicit patent grant. Copyleft licenses, such as the GPL, require that if you distribute software built from the code, you share its source under the same license. The AGPL extends this to software offered over a network, and the LGPL and MPL apply weaker, file- or library-level copyleft.
Teams track licenses because their dependencies bring obligations with them. Tools scan dependencies and flag incompatible licenses, and SPDX identifiers such as MIT or Apache-2.0 in package metadata make this automatic. Some companies avoid AGPL code entirely, and source-available licenses such as the Business Source License restrict commercial use even though the code is public.
A common misconception is that code without a license is free to use. The opposite is true: no license means all rights reserved. Another is that permissive licenses have no conditions at all; dropping the required notices is a license violation. When in doubt about obligations, especially for products, legal advice is worth getting.
Key takeaways
- A license states how software may be used, modified and distributed.
- Without a license, code is all rights reserved by default.
- Permissive licenses (MIT, BSD, Apache 2.0) require keeping notices.
- Copyleft licenses (GPL, AGPL) require sharing source under the same terms.
- Dependency licenses bring obligations; SPDX IDs help track them.
Readers ask
What is the difference between MIT and GPL?
MIT is permissive: you can use the code anywhere, including closed-source products, if you keep its notice. GPL is copyleft: if you distribute software that includes GPL code, you must release that software's source under the GPL too.
What happens if a GitHub project has no license?
Copyright law applies by default, so you don't have permission to copy, modify or distribute it, even though you can view it. You would need to ask the author for permission.
Which license should I choose for my project?
MIT or Apache 2.0 if you want maximum adoption with few conditions, the GPL if you want improvements to stay open source, and the AGPL if that should also apply to software offered as a network service.
See also
- Open SourceTeams & Process, p. 14Open source software is software whose source code is published under a license that lets anyone use, study, modify and share it.
- GitHubVersion Control, p. 25GitHub is a platform for hosting Git repositories and working on code together, with pull requests, code review, issues and the largest open-source community.
- Supply Chain AttackSecurity, p. 43A supply chain attack compromises software through something it relies on, like an open-source package, a build tool or an update server, not the app itself.
- Package ManagerProgramming Fundamentals, p. 41A package manager is a tool that installs, updates and removes software packages and their dependencies, resolving versions automatically.
- RepositoryVersion Control, p. 34A repository is the storage location for a project, holding all of its files plus the complete history of every change recorded by a version control system.
- LibraryProgramming Fundamentals, p. 34A library is a collection of ready-made code, such as functions and classes, that a program calls to do common jobs without writing that code itself.
Spotted a mistake or something missing on this page?Suggest an edit