Какие лицензии с открытым исходным кодом совместимы с iPhone от Apple и его официальным магазином приложений?

Я пишу приложение для iPhone, и я хотел бы использовать стороннюю библиотеку для части его функциональности. Я намерен продавать его через App Store, и мой код не будет открытым. Какие лицензии с открытым исходным кодом позволяют создавать производные работы и публиковать их на собственных условиях Apple?


person Corey    schedule 20.01.2009    source источник


Ответы (10)


Вкратце/TL;DR:

LGPL и магазины приложений имеют несколько несовместимостей, что означает, что у вас нет прав на распространение кода LGPL в магазинах приложений с поддержкой DRM или на заблокированных устройствах.

Лучше всего искать альтернативные реализации библиотеки под другими более слабыми лицензиями, такими как лицензия Apache 2, общественная лицензия Microsoft или лицензия MIT X11.

Длиннее:

LGPL утверждает:

Может случиться так, что это требование противоречит лицензионным ограничениям других проприетарных библиотек, которые обычно не сопровождают операционную систему. Такое противоречие означает, что вы не можете использовать и их, и библиотеку вместе в исполняемом файле, который вы распространяете.

Права на статическую компоновку кода LGPL с проприетарным кодом вытекают из раздела 6 LGPL. В дополнение к предоставленным правам в этом разделе рассматриваются требования с вашей стороны по отношению к нижестоящим получателям вашего кода.

Вам следует внимательно прочитать этот раздел.

Конфликты между платой за разработку и 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 в магазине приложений или встроенной системе, вы всегда можете обратиться к первоначальным авторам кода и попросить их предоставить вам лицензию на код на других условиях.

В качестве альтернативы вы можете искать альтернативные реализации библиотеки под другими более слабыми лицензиями, такими как лицензия Apache 2, общедоступная лицензия Microsoft или лицензия MIT X11.

person miguel.de.icaza    schedule 30.01.2012
comment
Что, если программное обеспечение, которое вы хотите связать с LGPL, является GPL? Там бы не было проблем, верно? - person knocte; 25.01.2013
comment
отвечая самому себе: fsf.org/blogs/ лицензирование/ , ах! какая ловушка - person knocte; 25.01.2013
comment
@miguel.de.icaza Создатели Sparrow признали включение библиотек LGPL и разместили эту веб-страницу, которая, по их мнению, устранила любые юридические препятствия. sprw.me/lgpl.php По вашему мнению, этого достаточно? - person Danyal Aytekin; 12.04.2014
comment
Что касается комиссии Apple Developer в размере 99 долларов США: нет места тому, чтобы нижестоящий получатель заключал отдельное соглашение с Apple. В: Можно ли заключить отдельный договор на покупку компилятора или компьютера или оплату подключения к интернету? Все это необходимо для того, чтобы пользователь мог повторно связать код. Чем они отличаются от платы Apple Developer? - person tamas.kenez; 03.07.2015
comment
Это могло измениться. Apple недавно устранила необходимость развертывания программы разработчика на устройствах, поэтому любой может повторно установить связь без платы. Это означало бы, что теперь он фактически совместим с LGPL. - person Patrick Pijnappel; 20.11.2015

Что касается LGPL, я считаю, что St3fan неверен, но Луис Гербарг прав: можно использовать библиотеки LGPL в приложениях iPhone с закрытым исходным кодом, но с ограничениями.

Если вы посмотрите на http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License, вы можно прочитать: «В качестве альтернативы разрешена статически подключаемая библиотека, если предоставлен либо исходный код, либо объектные файлы, на которые можно ссылаться».

Итак, как упомянул Луис Гербарг, если вы используете библиотеку LGPL, вам разрешено хранить приложение с закрытым исходным кодом до тех пор, пока вы предоставляете свободный доступ к объектным файлам (например, *.o), которые необходимы вашим клиентам, чтобы взять ваше приложение и свяжи это.

Я подробно изучаю тему Совместимость с iPhone и LGPL здесь.


Подробные требования к вашему приложению, предъявляемые лицензией LGPL библиотеки:

г) Выполните одно из следующих действий:

0) Передавать Минимальный Соответствующий исходный код в соответствии с условиями настоящей Лицензии и Соответствующий код приложения в форме, подходящей для пользователя, и на условиях, которые позволяют пользователю рекомбинировать или повторно связывать Приложение с измененной версией Связанной версии для создания измененная Комбинированная Работа способом, указанным в разделе 6 GNU GPL для передачи Соответствующего Исходного кода.

person huyz    schedule 24.08.2009
comment
В настоящее время в магазине приложений есть ряд приложений, использующих библиотеки LGPL (среди прочего, ffmpeg). Несмотря на законность, люди этим занимаются. - person Kenny Winker; 05.11.2009
comment
Apple это не волнует (контролировать это не их работа), но разработчики ffmpeg могут отстаивать свои права в любое время. Это риск. - person Lou Franco; 23.07.2010
comment
Разработчики ffmpeg не считают использование на iPhone нарушением лицензии. - person alex strange; 24.08.2010
comment
Эта цитата из Википедии заканчивается на [нужна цитата]. Если вы погуглите эту цитату, все ссылки будут указывать на статью в Википедии. Я не хочу быть негативным, но я прочитал LGPL 2.1, и, насколько я знаю, все не так уж черно-бело; но я не могу дождаться, чтобы оказаться неправым. Вы основываете этот ответ исключительно на этой цитате? - person Steph Thirion; 27.04.2011
comment
Важно то, как правообладатели любого кода LGPL (или даже GPL), который вы хотите использовать, интерпретируют лицензию, потому что именно они смогут вытащить ваше приложение (или того хуже). Как это интерпретирует кто-то другой, совершенно не имеет значения. Итак, если вы обдумываете использование кода LGPL или даже GPL в приложении, вам нужно надеяться, что у кода есть один или несколько владельцев авторских прав, и просто вежливо попросите их. - person tml; 01.06.2011
comment
Даже высококлассные приложения используют LGPL и зарабатывают на этом кучу денег, и, похоже, это нормально — как Sparrow для iOS. sprw.me/lgpl.php - person steipete; 11.09.2012
comment
@steipete и все, кто это делает, находятся во власти владельцев авторских прав на работы владельцев лицензий LGPL. Я лично считаю, что многие выбрали LGPL, не очень хорошо понимая, как она работает, или, наоборот, еще за день до того, как iOS App Store стал актуальным (для них). Вернемся к классическому рабочему столу Windows и обычным дням Unix/Linux, до появления магазина приложений. Поэтому я думаю, что многие авторы библиотек LGPL согласны с их использованием на iOS. Но они должны заявить об этом исключении. (Как это делают некоторые.) - person Prof. Falken; 11.02.2015
comment
Похоже, ваш блог вышел из строя. Можете ли вы обновить его? - person Jeff Burdges; 12.02.2016

Apple App Store несовместим с идеей авторского лева FSF, которая присутствует во всех версиях как GPL, так и LGPL, а также GPL Affero. 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 или общественное достояние.

person Hans-Christoph Steiner    schedule 25.10.2011
comment
Я не рекомендую лоббировать Apple, чтобы изменить ограничения, потому что это невозможно. Apple должна платить зарплату обозревателям программного обеспечения и расходы на трафик загрузки приложений — даже бесплатных приложений. 100 долларов в год вполне разумно. Вместо этого вы должны лоббировать авторов библиотек, чтобы изменить лицензирование с LGPL на что-то, что не требует свободной неограниченной модификации конечного программного обеспечения пользователями. Например, год назад cocos2d перешла с лицензии LGPL на лицензию MIT. - person yakovlev; 15.11.2011
comment
Я думаю, что вы ошибочно приравниваете к вещам, которые не принадлежат друг другу. За последние десятилетия у Apple было много денег на продаже программного обеспечения без DRM. App Store и его требование DRM являются новыми. Кроме того, есть много компаний и людей, которые зарабатывают деньги, продавая программное обеспечение GPL. RedHat, Digium (Звездочка), Cygnus Solutions, MySQL и др. - person Hans-Christoph Steiner; 16.11.2011
comment
Кроме того, Apple теперь продает больше музыки без DRM, чем с DRM. - person Hans-Christoph Steiner; 02.05.2012

Я не думаю, что LGPL будет работать для приложений iPhone.

Проблема в том, что среда выполнения iPhone не позволяет вам связывать общие библиотеки (или фреймворки) с вашим приложением. Допускаются только одиночные бинарные приложения. LGPL основан на предположении, что вы связываете общую библиотеку с приложением. Прямые ссылки по-прежнему запрещены.

person Stefan Arentz    schedule 20.01.2009
comment
Прямые ссылки не запрещены LGPL. Лицензия явно разрешает статическую (прямую) связь; вам просто нужно сделать объектные файлы доступными в этом случае. - person JosephH; 11.01.2011
comment
@JosephH: Конечный пользователь также должен иметь возможность заменить библиотеку модифицированной версией. Это кажется невозможным на iPhone. - person Thilo; 22.04.2011
comment
@Thilo: Конечный пользователь может купить новый Mac и приобрести у Apple лицензию разработчика за 99 долларов, что позволит использовать все инструменты, необходимые для сборки и установки из объектных файлов на iPhone. - person hotpaw2; 22.04.2011
comment
@ hotpaw2: Так вы говорите, что он должен приобрести дополнительную лицензию, чтобы иметь возможность использовать свои права LGPL? Я не думаю, что LGPL допускает это. - person Thilo; 22.04.2011
comment
@Thilo LGPL допускает это - на других платформах нет бесплатного компилятора, вполне допустимо, что пользователь, у которого нет компилятора или других необходимых инструментов, не может скомпилировать замещающий двоичный файл. Вы отчасти правы; Положения и условия магазина приложений несовместимы с LGPL - многие авторы программного обеспечения LGPL (за исключением FSF) рассматривают это только как техническое нарушение лицензии и разрешают использование библиотек LGPL на iphone. (Это относится к LGPLv2; LGPLv3 может немного отличаться.) - person JosephH; 22.04.2011
comment
Помните, что LGPL была написана еще в 1991 году, когда, конечно, не было правилом, что компиляторы свободны, поскольку люди, похоже, думают, что это правило сегодня, если вы работаете с Linux и другими операционными системами FLOSS. В то время компиляторы для обычных настольных систем редко были бесплатными. - person tml; 28.02.2012
comment
@tml был написан людьми, которые сделали бесплатный компилятор GCC, с целью его распространения. - person Prof. Falken; 08.12.2014

Это не юридическая консультация, я не юрист, но похоже вам нужна библиотека с лицензией BSD или Apache. Это было бы так, если бы вы разрабатывали проприетарную настольную программу, в которой использовалась библиотека с открытым исходным кодом. Я не знаю, есть ли у Apple какие-либо дополнительные ограничения для приложений iPhone.

person Ryan Ahearn    schedule 20.01.2009
comment
LGPL наложит дополнительные ограничения. Поскольку телефон не поддерживает динамическую компоновку, а LGPL требует, чтобы вы могли заменить измененные копии кода, вам потребуется предоставить частично созданную копию приложения, которую кто-то может использовать для повторной компоновки с измененной версией библиотеки. - person Louis Gerbarg; 20.01.2009
comment
Спасибо за разъяснение, я удалил предложение попробовать LGPL из своего ответа. - person Ryan Ahearn; 20.01.2009

(Я не юрист.)

Связывание статических объектных файлов может решить вопрос о том, как разрешить доступ к приложению, использующему лицензионный код LGPL, без распространения частей его исходного кода, не принадлежащих LGPL.

Но похоже, что LGPL, как вариант GPL, налагает более крупную непреодолимую проблему для разработки приложений для iPhone, поскольку инструменты разработки, необходимые для создания и распространения любого приложения для iPhone, доступны только на условиях Apple, которые несовместимы с GPL. т.е. Существует плата в размере 100 долларов США в год, и существует множество условий использования этих инструментов, которые не являются частью лицензии GPL. Условия лицензии на инструменты Apple для разработчиков iPhone кажутся несовместимыми с духом, а возможно, и с буквой GPL.

person Richard Lawler    schedule 02.01.2010
comment
При всем этом следует помнить одну вещь: совершенно законно и ясно создавать приложение GPL/LGPL для iOS и распространять его за пределами App Store. Проблема именно в App Store. - person Hans-Christoph Steiner; 25.10.2011
comment
статическое связывание специально запрещено (это динамическое связывание является обходным путем, но вы не можете динамически связывать в приложении iOS), см. multinc.com/2009/08/24/ - person MoDJ; 20.06.2013

Если вы не публикуете исходный код, вы не можете использовать строгую лицензию с авторским левом. Вы ни в коем случае не можете использовать какую-либо лицензию на основе GPLv3, так как дистрибутив iPhone противоречит пункту о запрете Tivoization.

Если вы используете LGPLv2, вам придется предоставить свою программу в формате, который можно связать, что может быть или не быть приемлемым (по крайней мере, это не исходный код), и это, вероятно, будет чем-то, с чем вы не захотите иметь дело. , если только библиотека не предлагает много преимуществ.

Если в библиотеке есть один правообладатель, вы всегда можете узнать, можете ли вы получить исключение из лицензии.

У вас не будет проблем с типичными лицензиями BSD/MIT/Boost/любыми разрешающими лицензиями. Существует множество лицензий с открытым исходным кодом/Свободного программного обеспечения, а остальные вам придется прочитать и посмотреть.

person David Thornley    schedule 02.01.2010
comment
Кроме использования нельзя перелинковать программу, если она распространяется через App Store. Так что с LGPLv2 все в порядке, но только если вы распространяете приложение за пределами магазина приложений. (На практике это означает через канал взлома, поэтому на практике это означает, что нет.) - person Prof. Falken; 11.02.2015

Когда я пытаюсь перенести Fuego на iPhone, я задаю аналогичный вопрос на < href="http://sourceforge.net/mailarchive/forum.php?forum_name=fuego-devel" rel="nofollow noreferrer">список рассылки fuego. Пока я понимаю, что «LGPL не совместима с AppStore». Предыдущий вопрос также получает ответ в виде: нет.

person ohho    schedule 31.01.2011
comment
Судя по всему, так оно и есть. Но они закрыли эту лазейку в v3. - person steipete; 13.04.2011

Хорошим примером является Wunderradio. Они используют ffmpeg и другие фреймворки под лицензией LGPLv2 и предоставляют файлы .o на своем веб-сайте.

Как ни странно, они также предоставляют полный исходный код для своего приложения.

http://wunderradio.com/code.html

person steipete    schedule 12.04.2011
comment
Пример - не аргумент. Мы все можем привести примеры всех возможных вариантов (неправильного) использования лицензионного программного обеспечения. - person Prof. Falken; 08.12.2014

Люди, которые утверждают, что условия обслуживания App Store проблематичны, в частности, ежегодная плата за программу Apple Dev в размере 100 долларов, ошибаются. Эти 100 долларов даже близко не являются шоу-стопом. Для разработчиков характерно то, что они тратят так много времени на беспокойство о таких вещах ;0) Юристы тысячи лет возятся с положениями контрактов, и вряд ли стоит из-за них терять сон.

Условие: предоставьте объектные файлы и базовый файл проекта из веб-сайта, доступного по ссылке в приложении.

Вариант 1, для ковбоев: джейлбрейк официально разрешен (и бесплатен). Уже одно это снимает любые опасения по поводу совместимости между LGPL и условиями App Store. Где в LPGL указывается конкретный канал распространения? Нигде. Вы хотите обновить статически связанную библиотеку в приложении, загруженном из магазина приложений? Смирись с этим, альфа-разработчик и сделай джейлбрейк своего телефона! Тот факт, что Apple является хулиганом на игровой площадке, не заставляет вас оставаться на их карусели. Таким образом, предприимчивые разработчики могут получить ценные права на хвастовство на следующей встрече. Кроме того, тот факт, что вы взломали свой телефон, чтобы обновить библиотеку LPGL, дает вам доступ к комнате с бочонками в подвале Ричарда Столлмана!

Вариант 2, чтобы обойти это законно и добросовестно: раздел 1 LGPL v2.1 (и раздел 4 GPL v3) позволяет разработчику взимать плату за физический акт копирования библиотеки. Это предоставляет разработчику механизм перераспределения этой платы в счет платы за подписку Apple Dev в размере 99 долларов.

Как насчет ограничения в 100 устройств? Конечные пользователи, желающие обновить свой двоичный файл, обновляют коммерческое приложение, поэтому в игру вступают собственные условия лицензии разработчика приложения. Добавить ограничение в 100 устройств в пользовательское лицензионное соглашение несложно. У скольких людей более 100 устройств iOS? Даже у Джобса не было столько! Вряд ли это необоснованный предел. Учитывая, что не требуется, чтобы конечный пользователь имел право выпускать собственную модифицированную версию оригинального коммерческого приложения в дикую природу, не будет никаких оснований для жалоб, когда оно не загружается на устройство 101-го друга модификатора.

LGPL не требует, чтобы у конечного пользователя был удобный, безопасный или даже очевидный выбор. У них просто должен быть выбор, и есть 2 совершенно хороших.

person Tuique    schedule 23.07.2012
comment
Вы глубоко в либеральном толковании здесь. Все эти препятствия могут быть интерпретированы авторами библиотеки LGPL как неоправданные препятствия. - person Prof. Falken; 11.02.2015
comment
Вы оцениваете условия GPL, не принимая во внимание последующие последствия. Вы относитесь к разработчику как к отдельному человеку. Но на самом деле в процессе FOSS есть как минимум 3 основные роли. Первоначальный создатель программного обеспечения (A). Человек, который получает программное обеспечение от А и передает его (Б), и человек, который в конечном итоге получает его и хочет что-то с ним делать. Чтобы использовать код GPL с Apple, все трое должны были заплатить лицензионный сбор. Так что нет разработчика, соответствующего вашему описанию. - person ftrotter; 01.06.2018