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