Какие лицензии с открытым исходным кодом совместимы с iPhone Apple и его официальным магазином приложений?
Я пишу приложение для iPhone, и я хотел бы использовать стороннюю библиотеку для части ее функциональности. Я намерен продать его через App Store, и мой код не будет открыт. Какие лицензии с открытым исходным кодом позволяют делать производные работы и публиковать их в соответствии с собственными условиями Apple?
В Short / TL; DR:
В магазинах LGPL и приложениях есть несколько несовместимостей, что означает, что у вас нет прав на распространение кода LGPL в AppStores с поддержкой DRM или заблокированных устройств.
Лучше всего искать альтернативные варианты реализации библиотеки под другими лицензиями laxer, такими как лицензия Apache 2, общедоступная лицензия Microsoft или лицензия MIT X11.
Longer:
LGPL заявляет:
Может случиться так, что это требование противоречит лицензионным ограничениям других проприетарных библиотек, которые обычно не сопровождают операционную систему. Такое противоречие означает, что вы не можете использовать их и Библиотеку вместе в исполняемом файле, который вы распространяете.
Права на статичное связывание кода LGPL с проприетарным кодом приведены в разделе 6 LGPL. В дополнение к правам, предоставленным в этом разделе, рассматриваются требования с вашей стороны к получателям вашего кода.
Вы должны прочитать этот раздел в деталях.
Конфликты между Pay-for-Development и LGPL
Заявочные магазины, которые требуют от пользователей платить за вход в программу и получение сертификатов ключей, профили и инструменты для развертывания на устройстве, прямо противоречат LGPL.
LGPL требует, чтобы конечный пользователь мог извлекать ваши объектные файлы и библиотеку с открытым исходным кодом (плюс инструменты, см. Раздел ниже) и создавать код, который работает. Нет места для того, чтобы получатель в низовьях должен был заключить отдельное соглашение с Apple, Microsoft, Amazon или Google, чтобы иметь возможность развернуть рабочую версию кода на своем собственном оборудовании.
В частности, этот раздел имеет значение:
Вы не можете налагать никаких дополнительных ограничений на осуществление получателями прав, предоставленных в настоящем документе. Вы не несете ответственность за обеспечение соблюдения третьими лицами этой Лицензии.
Вам не нужно предоставлять пользователям право публиковать ваше приложение в AppStore, но вы должны предоставить пользователям право развернуть ваше приложение с модифицированной версией кода LGPL на своих собственных устройствах, поэтому любая программа или устройство разработчика, которые требуют дополнительные платежи за развертывание противоречат LGPL.
Распространение объектных файлов
Вы должны убедиться, что условия результирующего исполняемого файла позволяют получателю вносить изменения в код LGPL и вызывать из него новые рабочие биты кода. Это на практике означает, что вам необходимо распространять объектные файлы вашей программы, чтобы третья сторона могла повторно связать ваше приложение с модифицированной версией библиотеки, чтобы исправить ошибки, улучшить ее каким-то образом или предоставить свои собственные функции.
Вы можете уйти от этого, разместив объектные файлы на своем веб-сайте и предоставив проект, чтобы третьи стороны могли перенаправить приложение. Не отменяет вашу лицензию на LGPL.
Права на обратную инженерию
Это еще одно требование из раздела 6.
Это может быть в прямом противоречии с условиями различных магазинов приложений, но вам нужно проверить точные условия использования магазина приложений, который вы используете (Apple, Amazon, Android или другие третьи стороны).
Уведомление и реклама
В рамках требований к LGPL-коду приложение, которое отправляется нисходящему пользователю, должно поставляться с лицензией LGPL и указывать на эту лицензию в любых местах приложения, которые отображают любые уведомления об авторских правах. Некоторые хранилища приложений публикуют это на сайте хранилища приложений, в то время как другие могут иметь информацию об авторском праве на самом исполняемом файле.
Распределение измененного кода LGPL
Это очень легко выполнить, вам просто нужно распространять копию кода LGPL на своем веб-сайте (есть дополнительные сведения об этом в лицензии о том, сколько времени вам нужно, чтобы сохранить ansible код).
Требования, которые вы не можете выполнить
Одной из основных проблем с LGPL и использованием статических библиотек в приложениях, распространяемых через магазины приложений, является требование о том, чтобы вы распространяли инструменты и скрипты, необходимые для восстановления конечным пользователем программного обеспечения.
Для некоторых встроенных системных сценариев вам потребуется, чтобы разработчик встроенной системы раскрывал свои инструменты разработчика и API для всех конечных пользователей, и это может быть невозможно. Неясно, может ли что-то вроде iPhone или Windows SDK свободно перераспределиться для выполнения обязательств в этом случае, вы можете обсудить с вашими адвокатами и узнать, насколько вам комфортно с учетом требований.
Что ты можешь сделать
Если вам абсолютно необходимо использовать какой-либо код LGPL в AppStore или встроенной системе, вы всегда можете обратиться к оригинальным авторам кода и попросить предоставить вам лицензию на код под разными условиями.
Кроме того, вы можете искать альтернативные варианты реализации библиотеки под другими лицензиями laxer, такими как лицензия Apache 2, публичная лицензия Microsoft или лицензия MIT X11.
Что касается LGPL, я считаю, что St3fan неверен, но Луи Гербарг прав: можно использовать библиотеки LGPL в приложениях с закрытым исходным кодом iPhone, но с ограничениями.
Если вы посмотрите на http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License , вы можете прочитать «Альтернативно, статически связанная библиотека разрешена, если предоставляется исходный код или связанные объектные файлы».
Так как Луи Гербарг упомянул, если вы используете библиотеку LGPL, вам разрешено хранить ваше приложение с закрытым исходным кодом до тех пор, пока вы свободно предоставляете объект (например, * .o) файлы, которые необходимы для ваших клиентов, чтобы принять ваше приложение и ссылку.
Я углубляюсь в тему совместимости iPhone и LGPL .
Подробные требования к вашему приложению, установленные лицензией LGPL библиотеки:
d) Выполните одно из следующих действий:
0) Передача Минимального Соответствующего Источника в соответствии с условиями настоящей Лицензии и Соответствующим Кодексом Приложения в форме, подходящей для и по условиям, которые позволяют, пользователю рекомбинировать или повторно использовать Приложение с модифицированной версией Связанной версии, чтобы создать модифицированной комбинированной работы, в соответствии с разделом 6 GNU GPL для передачи соответствующего источника.
Я не думаю, что LGPL будет работать для приложений iPhone.
Проблема в том, что среда выполнения iPhone не позволяет вам связывать общие библиотеки (или фреймворки) с вашим приложением. Разрешены только одно бинарные приложения. LGPL основан на предположении, что вы объединяете общую библиотеку с приложением. Прямая связь по-прежнему запрещена.
Apple App Store несовместим с идеей copyleft FSF, которая присутствует во всех версиях как GPL, так и LGPL, а также Affero GPL. Apple App Store не позволяет пользователям принимать бесплатные программы, изменять их, а затем запускать на своих устройствах свободно. Они требуют, чтобы вы использовали DRM, платите 100 долларов в год, соглашаетесь на их дополнительные условия и т. Д. Существует довольно хорошая запись об этом здесь: http://michelf.com/weblog/2011/gpl-ios-app- магазин/
Полностью законно распространять программное обеспечение GPL / LGPL для iOS за пределами App Store, проблема заключается в Apple App Store. Поэтому я рекомендую лоббировать Apple, чтобы изменить свои ограничения. Mac OS X и iOS даже в основном полагаются на программное обеспечение GPL / LGPL (например, gcc и многие другие), поэтому Apple пользуется свободой, но тем не менее она лишает пользователей такой же свободы.
Что касается лицензий, с которыми совместим App Store, вам нужно будет использовать разрешительные лицензии, такие как BSD, MIT, Apache или public domain.
Это не юридическая консультация, я не юрист, но похоже, что вам нужна библиотека с лицензией BSD или Apache. Это было бы так, если бы вы разрабатывали проприетарную настольную программу, использующую библиотеку с открытым исходным кодом. Я не знаю, есть ли у Apple дополнительные ограничения для iPhone-приложений.
(Я не юрист.)
Связывание статического объектного файла может решить вопрос о том, как разрешить доступное приложение, использующее лицензионный код LGPL, без распространения части исходного кода, отличного от LGPL’d.
Но похоже, что LGPL, как вариант для GPL, накладывает большую непреодолимую проблему для разработки iPhone-приложений, поскольку инструменты разработки, необходимые для создания и распространения любого приложения для iPhone, доступны только на условиях Apple, которые несовместимы с GPL. то есть. Существует плата в размере 100 долларов США в год, и существует множество условий использования этих инструментов, которые не являются частью лицензии GPL. Условия лицензии для инструментов разработчика iPhone от Apple, по-видимому, несовместимы с духом и, возможно, также буквой GPL.
Если вы не выпускаете исходный код, вы не можете использовать строгую лицензию на копилефт. Вы не можете использовать какую-либо лицензию на основе GPLv3 в любом случае, так как распространение iPhone конфликтует с предложением no-Tivoization.
Если вы используете LGPLv2, вам придется предоставить свою программу в связанном формате, что может быть или не быть приемлемым (по крайней мере, это не исходный код), и это, вероятно, будет тем, с чем вы не хотите иметь дело , если библиотека не принесет большой пользы.
Если в библиотеке есть один владелец авторских прав, вы всегда можете увидеть, можете ли вы получить исключение лицензии.
У вас не будет проблем с типичными лицензиями BSD / MIT / Boost / any permissive. Там есть много лицензий Open Source / Free Software, а для остальных вам придется их прочитать и посмотреть.
Когда я пытаюсь передать Fuego на iPhone , я задал аналогичный вопрос в списке рассылки fuego . До сих пор я понимаю: «LGPL несовместим с AppStore». Предыдущий вопрос также получает ответ как: нет.
Хорошим примером является Wunderradio. Они используют ffmpeg и другие лицензированные frameworks LGPLv2 и предоставляют файлы .o на своем веб-сайте.
Как ни странно, они также предоставляют полный исходный код для своего приложения.
Люди, которые утверждают, что условия обслуживания в App Store являются проблематичными, в частности годовая программа Apple Dev $ 100, ошибочны. То, что $ 100 даже не близко к showstopper. Обычно разработчики тратят столько времени на беспокойство по поводу таких вещей: 0) Адвокаты занимались обработкой контрактов в течение тысяч лет, и это вряд ли стоит потерять сон.
Предварительное условие: предоставить объектные файлы и базовый файл проекта из веб-сайта, доступного по ссылке в приложении.
Вариант 1 для ковбоев: джейлбрейк официально является законным (и бесплатным). Это само по себе не вызывает проблем с совместимостью между LGPL и условиями в App Store. Где LPGL указывает конкретный канал распространения? Нигде. Вы хотите обновить статически связанную библиотеку в приложении, загруженном через магазин приложений? Сосать его, альфа-дэвен и джейлбрейк ваш телефон! Просто потому, что Apple – хулиган на детской площадке, не заставляет вас оставаться на карусели. Таким образом, предприимчивые разработчики могут получить ценные права на похвалы на следующей встрече. Плюс тот факт, что вы джейлбрейк вашего телефона, чтобы обновить библиотеку LPGL, дает вам доступ к комнате кег в подвале Ричарда Столлмана!
Вариант 2 для юридической и юридической защиты: Раздел 1 LGPL v2.1 (и раздел 4 GPL v3) позволяет разработчику взимать плату за физический акт копирования библиотеки. Это дает возможность разработчику повторно назначить эту плату в размере $ 99 Apple Dev.
Как насчет предела 100 устройств? Конечные пользователи, которые хотят обновить свои двоичные файлы, обновляют коммерческое приложение, поэтому в лицензии появляются собственные условия лицензии разработчика. Тривиально добавить ограничение на 100 устройств для пользовательского лицензионного соглашения. Сколько людей владеет более чем 100 устройствами iOS? Даже Джобс не обладал этим множеством! Это едва ли необоснованный предел. Учитывая, что нет требования, чтобы конечный пользователь был допущен к выпуску собственной модифицированной версии исходного коммерческого приложения в дикую природу, не будет никаких оснований для жалоб, когда он не загрузит устройство 101-го друга модификатора.
В LGPL нет требования, что конечный пользователь должен иметь удобный, безрисковый или даже очевидный выбор. У них просто должен быть выбор, и есть 2 совершенно хороших.