Можно ли связать библиотеку GPL из приложения с закрытым исходным кодом?


34

Хорошо, прежде чем все будут кричать о дублирующих вопросах, да, я уже видел несколько подобных вопросов здесь. Но никто не отвечает на вопрос.

Если я ссылаюсь на библиотеку под GPL без изменения этой библиотеки, нужно ли мне выпускать исходный код?

По этому вопросу ответ - да!

Но этот ответ меня не устраивает. Ответ в основном говорит о том, что я не могу использовать код GPL, не сделав свой код открытым исходным кодом.

Но если предыдущее верно, то это будет означать, что ни один человек или организация никогда не смогут выпустить какое-либо проприетарное программное обеспечение для Linux. Что должно быть не так. Просто потому, что для того, чтобы какое-либо приложение могло сделать что-то полезное, открыть файлы, записать на консоль, создать TCP-соединения, приложение должно быть связано с тем, libcчто написано под GPL.

Поэтому мой вопрос заключается в следующем: если GPL заявляет, что, как и во всех предыдущих ответах на сайте, это так, что программа, которая ссылается на другую программу GPL, должна быть самой GPL, как можно создавать / выпускать / продавать любое проприетарное приложение? вообще что работает на линуксе? Поскольку, как я описал выше, это приложение должно быть похоже на код GPL только для запуска в Linux.

Более практический пример говорит, что я ссылаюсь на разделяемую библиотеку, которая написана под GPL в приложении не-GPL, заставит ли это приложение не стать под GPL? Более конкретно, если я использую библиотеку GPL без ее изменения, а затем распространяю эту библиотеку как .soили .dll, потребует ли мое приложение открытого исходного кода?


9
Вы продолжаете задавать один и тот же вопрос в надежде на другой ответ. Вы не можете использовать GPL в не-GPL-совместимом программном обеспечении. Смертельно просто.
Эндрю Т Финнелл

1
Он действительно? Вот это да. Ответ прост; почему бы вам не связаться с авторами программы GPL и не спросить, возражают ли они? Если они говорят, что это хорошо, это здорово! Если они возражают, то попытка подкрепить их юридическими подробностями сделает вас очень непопулярным, независимо от того, насколько «правильным» вы себя чувствуете.
Джеймс

3
@James: Если они выбрали GPL, это довольно сильное заявление они делают ум. Люди, которые не возражают, выбирают MIT, BSD или LGPL. Редко можно увидеть библиотеку под полной лицензией GPL. Когда вы делаете, вы можете быть почти уверены, что это было сделано намеренно.
Ян Худек

@Jan Возможно, зависит от приложения и предполагаемого использования Джона-Чарльза. Но я просто думаю, что странно, как JC подходит к этому. Джей просто пытается получить ответ, который хочет? На этом сайте есть много вопросов, которые можно решить, просто поговорив с ними, чтобы они громко кричали. :-)
Джеймс

@JanHudec: я согласен. Я утверждал, что некоторые IP нашей компании могут быть выпущены в виде библиотеки под GPL, поскольку это было бы бесполезно для наших конкурентов и все же очень полезно для нашего сообщества.
MSalters

Ответы:


33

Если вы ссылаетесь на библиотеку GPL, то вы создали производную работу, и ваш код должен быть GPL - это отличается от кода L GPL, который, в частности, позволяет динамически связывать код с другой лицензией. Все системные библиотеки, включая libc, являются LGPL.

Существует также специальное исключение для заголовков ядра Linux и libgcc (библиотеки, неявно вызываемой компилятором).


19
Нет libc LGPL - вы можете ссылаться на программы LGPL. Существует также общее исключение для вызовов ядра / системы, поэтому нет никаких аргументов относительно того, что является вызовом системы или библиотеки
Мартин Беккет

6
LGPL не является новой лицензией, она была впервые выпущена в 1991 году. Libc всегда была LGPL.
FigBug

4
@ john-charles - вот почему LGPL был изобретен еще в 1991 году с gplv2. AsLinux (и другие ядра FOSS) стали популярными - и именно поэтому он изначально назывался Library-GPL - существовал опасение, что каждый поставщик компиляторов будет изобиловать libc, если коммерческие приложения не смогут использовать gcc.
Мартин Беккет

1
@MartinBeckett Это FSF мнение (вы не можете связаться с лицензией GPL код , если вы не лицензировать ваши под GPL), однако это не подлежит сомнению. Не было никакого серьезного иска (о котором я знаю, если я ошибаюсь, пожалуйста, исправьте меня), чтобы подтвердить мнение FSF о связывании.
Стефф

2
@ john-charles - да, все обычное право проверяется в судах, но существует довольно много прецедентного права об авторском праве. Если я утверждаю, что моя неизмененная копия DVD Бэтмена не является производным произведением, и поэтому я могу продать столько, сколько захочу - MPAA вряд ли согласится! GNU copyleft использует авторское право для принудительного применения лицензионного соглашения - одна из причин, по которой он никогда не проверялся в суде, заключается в том, что все всегда соглашались
Мартин Беккет

7

В общем случае вы правы в том, что вы не можете ссылаться на библиотеку GPL, распространять свой код, а затем не выпускать свой код как GPL.

Тем не менее, существует исключение System Library, которое позволяет людям связываться с библиотеками Linux и по-прежнему выпускать свой продукт под лицензиями не-GPL.

Другое исключение - когда две лицензии совместимы друг с другом. Проверьте совместимую с FSF страницу лицензии для дальнейшего чтения.

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

К сожалению, слишком много возможностей, чтобы иметь жесткое и быстрое правило. Без дополнительных подробностей в вашем вопросе, ваш ответ «вероятно, не может, но, возможно, вы можете».


1
SLE также отвечает на вопрос о программе, являющейся производной работой компилятора, поскольку она содержит синтаксический анализатор, сгенерированный компилятором
Мартин Беккет

3
Нет, SLE позволяет разрабатывать код GPL с использованием несвободного набора инструментов и стандартного времени выполнения, например, Visual Studio. Это никогда не позволяет связывать несвободные приложения с библиотекой GPL.
Ян Худек

1
Вывод программы GPL не распространяется на GPL. См. Gnu.org/licenses/gpl-faq.html#GPLOutput
Maximus Minimus

-1

Короткий ответ: никто не знает. (Это обсуждение о GPL, а не LGPL.)

В GPL есть смутные формулировки о «Производных работах», которые разные люди интерпретируют по-разному. Похоже, консенсус заключается в том, что статическое связывание нарушает, а вызов через системные прерывания (например, в ядро ​​Linux) - нет. Последнее основано главным образом на том факте, что такие компании, как Oracle, поставляют Linux и на них не было предъявлено обвинение - это не ясно в лицензии.

Динамическое связывание неясно, вероятно, 70/30 говорят, что оно нарушает. Вызов программы с использованием каналов или удаленных вызовов процедур, вероятно, 30/70 не нарушает, хотя это, по сути, одно и то же. Вызов через COM или использование Java Jar совершенно неясен.

В принципе, если есть какие-либо сомнения, и вы не любите адвокатов, тогда держитесь подальше от GPL.


1
GPL на самом деле не так уж и расплывчато, и есть хорошо обсуждаемое прецедентное право вокруг вопроса о том, что является производной работой, а что нет. Разница между интерфейсом системного вызова Linux и libc заключается в том, что первый необходим для создания рабочего программного обеспечения (что было подтверждено как исключение из авторского права), а второй - нет (вы можете реализовать свой собственный). Это не имеет никакого отношения к тому, как вызываются операции, что не имеет юридического значения. Я думаю, это не юридическая консультация.
Жюль

«70/30 говорят, что нарушает» и «30/70 не нарушает» - это намеренно, что соотношение нарушает / не нарушает то же самое? «хотя это, по сути, одно и то же» предполагает, что оно должно было быть другим.
Матеуш Конечны
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.