Может ли программа GPLv2 полагаться на библиотеки, лицензированные Apache?

12

Может ли программное обеспечение, лицензированное по лицензии GPL (версия 2), полагаться на библиотеки, лицензированные по APLv2, не сталкиваясь с GPL? Язык здесь предлагает мне, возможно, нет.

В моем конкретном случае я смотрю на демона, который использует некоторые внешние библиотеки с лицензией APLv2.

ОБНОВЛЕНИЕ (В ответ на ответы / комментарии.)

  1. Для целей этого вопроса я не могу повторно лицензировать основную программу (демон)
  2. Основная программа была расширена функциональностью, которая использует apr-utilи, возможно, другие компоненты APLv2

У меня вопрос: могу ли я выпустить расширенный демон под GPLv2, или это то, что мне нужно оставить при себе (без распространения) и / или повторно реализовать без APLv2, если я намерен (а) выпустить это расширение, и, (б) сохранение демона GPL'd?

знак абзаца
источник
2
В документе, на который вы ссылаетесь, четко указано, что нет. Однако в большинстве GPL-кодов есть условие «или, по вашему выбору, любая более поздняя версия», что означает, что вы можете рассматривать его как GPLv3, и это нормально.
Ян Худек

Ответы:

7

Давайте сначала уточним некоторые термины. Когда FSF говорит, что лицензия совместима с GPL, это не означает, что многие люди интерпретируют это как значение. Многие интерпретируют «совместимость», чтобы означать, что две части программного обеспечения могут счастливо сосуществовать в одном приложении.

Это близко к тому, что означает FSF, но предоставление GPL с авторским левом делает вещи немного дальше.

Из FAQ по GPL , акцент мой.

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

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


Итак, давайте посмотрим на APLv2 и GPLv3.

  • APLv2_Lib + GPLv3_Lib => Комбинированная библиотека как GPLv3 - это нормально.
  • APLv2_Lib + GPLv3_Lib => Комбинированная библиотека как APLv2 не в порядке.

А Apache говорит так же и здесь :

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


Но вы работаете с демоном, который был лицензирован под GPLv2, а не v3.

FSF совершенно ясно, что то, что вы хотите сделать, не является приемлемым для публичного распространения.

Обратите внимание, что эта лицензия не совместима с GPL версии 2, поскольку в ней есть некоторые требования, которых нет в этой версии GPL. К ним относятся определенные положения о прекращении действия патента и компенсации.

Итак, чтобы ответить на ваш вопрос:

Нет , вы не можете распространять объединенный демон с использованием лицензированных материалов GPLv2 и APLv2 .
FSF явно называет эту комбинацию недопустимой для публичного распространения.

Альтернативы:

  1. Вы имеете право использовать его в частном порядке .

  2. Вы также можете переписать функциональность APLv2, а затем объединить свою новую работу с работой GPLv2.

  3. Вы могли видеть, можно ли изменить демон на GPLv3. Если это так, то вы бы могли объединить работу APLv2 с демоном GPLv3.


источник
2

Мое мнение согласуется с ФП на основании текста ссылки АФФ ФП.

ASF (Apache Software Foundation) не нравится идея, что код ASFv2 является какой-либо частью системы, использующей GPLv2, основываясь на ограниченной информации вашего случая и моем понимании различных лицензий FOSS: независимо от того, имеет ли зонтичный проект GPLv2 или зонтичный проект - GPLv2, пытающийся включить ASFv2.

Кроме того, кажется, что зонтичный проект ASFv2, имеющий код GPLv3, быть не должен, но зонтичный проект GPLv3 может иметь код ASFv2.

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

JustinC
источник