В разработке ПО часто является разумным использовать уже готовые фреймворки и библиотеки для решения тех или иных задач. Важно помнить, что несмотря на статус open source, использование чужого кода несет права и обязанности. Вы часто можете взять чужие исходники, использовать их но вы обязаны соблюдать требования которые они возлагают на разработчика.
Так недавняя история с использованием чужого кода в одном из проектов крупного интернет холдинга привела к маленькому, но неприятному скандалу1. Хотя с подобные инциденты случаются периодически у многих разработчиков.
Итак, лицензии делаться на два типа: разрешительные и copyleft (антоним copyright2) или вирусные . К разрешительному типу относятся:
- Лицензия BSD (Berkeley Software Distribution(BSD)licenses)
- Лицензия MIT
- Лицензия Apache
Лицензии этого типа позволяют изменять код, распространять, и даже продавать его. Можно внедрять, подключать программынй код под этими лицензиями без ограничений или явно выраженного разрешения. Единственное требование — указание авторства используемых библиотек в явном виде, как правило это можно вынести в отдельный раздел программы.
К лицензиям типа копилефт относится в частности GPL лицензия.
Отличие копилефт от разрешительных лицензий заключается в наличии “вирусного” эффекта — любое ПО которое использует исходники под копилефт лицензией автоматически должно распространяться под той же самой лицензией. Изменение не допускается. То есть, любая программа которая содержит код распространяемый по GPL сама должна распространяться по этой же лицензии.
Не-вирусные лицензии не вынуждают производный код быть так open source.
Некоторый софт выходит под двойными лицензиями: одновременно разрешительными и копилефт. Это позволяет выбрать нужную лицензию для вашего продукта.