Любой начинающий (да и не только начинающий) программист в процессе создания собственных приложений в определённый момент приходит к решению использовать стороннюю библиотеку в своём проекте. Так как существует множество вариантов лицензирования исходного кода (да и у Apple есть собственное лицензионное соглашение в отношении AppStore), нужно знать, какую библиотеку разработчик может использовать без зазрения совести, а с какой могут возникнуть юридические проблемы. Чтобы с новым приложением не случилась история, подобная шумихе вокруг VLC, надо быть осторожным в выборе сторонних библиотек и разбираться в способах их лицензирования.
GNU GPL v2 / v3 (GNU General Public License)
При использовании исходного кода, распространяемого под лицензией GPL, продукт, который использует этот код, также должен распространяться под этой лицензией. GPL даёт право использовать, распространять, модифицировать исходный код при условии, что модификации будут опубликованы под этой же лицензией. GPL запрещает ограничивать перечисленные в ней свободы, что приводит к конфликту с лицензионным соглашением Apple. Как раз из-за этого и разгорелся весь сыр-бор с VLC. Одним из ограничений, прямо противоречащих GPL, является «ограничение в пять устройств», известное всем пользователям гаджетов от Apple. Здесь можно прочитать комментарии по поводу VLC, GPL и AppStore от одного из юристов FSF (Free Software Foundation) и подробнее узнать, почему GPL и публикация в AppStore несовместимы.
В конечном итоге мы пришли к тому, что использовать в своих проектах сторонние библиотеки, распространяемые под лицензиями GPL v2 и GPL v3, мы не можем.
New BSD License
Эта лицензия — просто подарок для разработчика. Единственное, что от нас требуется при её использовании, это указать автора библиотеки, которую мы включили в свой проект, и включить в уведомление отказ от гарантий. Отказ от гарантий — это предупреждение о том, что программа распространяется «как есть» (по-английски это звучит как «as is»), и её создатель не несёт ответственности за различные убытки, понесённые в результате её использования.
Говоря простыми словами, мы включаем библиотеку в свой проект, добавляем в программу окошко «О программе» и пишем в нём полный текст Новой Лицензии BSD с указанием использованной библиотеки и её автора. Использовать код, распространяемый под лицензией BSD, можно в коммерческих и проприетарных продуктах.
Кстати говоря, тексты как старой, так и новой лицензий BSD можно посмотреть на любом устройстве под управлением iOS. Откройте настройки, перейдите в пункт Основные → Об устройстве → Копирайт и поищите слова BSD Kernel (здесь будет текст оригинальной лицензии BSD) и json-framework (здесь будет текст новой лицензии BSD).
Модификации исходного кода, распространяемого под новой лицензией BSD, публиковать необязательно (в отличие от GPL).
MIT License
Данная лицензия почти идентична новой лицензии BSD за единственным исключением: в ней отсутствует пункт, запрещающий «использование доброго имени держателя авторских прав в рекламе». В остальном она аналогична новой лицензии BSD.
Вывод — исходный код, распространяемый под данной лицензией, можно спокойно использовать в своих проектах, но нужно указывать в окошке «О программе» автора (или авторов) этого кода.
Модификации исходного кода, распространяемого под лицензией MIT, публиковать необязательно (в отличие от GPL).
LGPL (GNU Lesser General Public License)
Данная лицензия была разработана как нечто среднее между жёсткой GPL и мягкими лицензиями BSD и MIT. Она позволяет линковать объекты, созданные при компиляции кода, распространяемого под лицензией LGPL, с несвободными программами. В приложениях для iOS возможна только статическая линковка.
В отношении iOS ограничение этой лицензии состоит в том, что разработчик должен собрать статическую библиотеку и только затем включить её в свой проект. При этом все файлы, необходимые для связывания библиотеки с приложением, должны быть предоставлены в свободный доступ. Обязательным является указание автора (или авторов) такого кода и уведомление о том, что библиотека, используемая в приложении, распространяется на условиях лицензии LGPL.
Лицензия LGPL довольно запутана, поэтому не совсем понятно, можно ли использовать такой код в коммерческих и проприетарных продуктах. Автор библиотеки libsnd в вопросе о её использовании в iOS как раз ссылался на пункт о необходимых для связывания файлах. Авторы библиотеки ios-ftp-server в описании к проекту прямо указывают на возможность использования своего продукта в приложениях для iOS без необходимости распространения конечной программы под лицензией LGPL.
Если вы решите использовать код под лицензией LGPL в своём продукте, лучше предварительно проконсультироваться с юристом.
Общественное достояние (Public Domain)
Лучшая лицензия (точнее, отсутствие таковой). С кодом, распространяемым под этими условиями, можно делать что угодно. Примером может служить проект CocoaAsyncSocket.
Код, который отдан в общественное достояние, можно использовать в проектах любого типа, при этом не обязательно указывать его оригинальных авторов.
Довольно часто библиотеки с открытым исходным кодом имеют двойное лицензирование. В таком случае можно выбрать подходящую для себя систему лицензирования и следовать её условиям.
Источник: