[devel] mysql-workbench-community, License tag
Andrey Savchenko
bircoph на altlinux.org
Вт Мар 17 01:01:55 MSK 2020
On Sun, 15 Mar 2020 22:58:49 +0100 Alexey Gladkov wrote:
> On Sun, Mar 15, 2020 at 11:36:09PM +0400, Sergey Y. Afonin wrote:
[...]
> > Откуда может быть понятно при таком пересислении, что отдельные лицензии
> > касаются не всего кода, а отдельных компонент?
>
> Этот тег агрегирует правовую информацию. Если в пакете часть кода под GPL,
> другой по BSD, то это GPL and BSD. Потому что при использовании всего
> контента пакета вам необходимо принять обе лицензии.
Тут всё сложнее, даже если забыть про двойное лицензирование или
кодогенерацию. Лицензии на исходные файлы и на получившиеся
бинарники — это в общем случае разные вещи. Если говорить про
бинарные файлы, то в результате комбинирования BSD и GPL получается
строго GPL. С юридической точки зрения происходит
перелицензирование BSD кода под GPL, что разрешается, т.к. эти
лицензии совместимы в порядке наследования BSD -> GPL, но обратное
делать нельзя. А вот исходники как были под BSD и GPL, так и
остаются (если никто не менял явно лицензии исходников).
В 2018 в Калуге я делал доклад на тему того, как устроено это всё,
включая механизм совместимости лицензий:
http://0x1.tv/Уязвимости_в_лицензиях_СПО_(Андрей_Савченко,_OSSDEVCONF-2018)
В частности, там есть слайд с механизмом зависимостей между
основными лицензиями:
http://0x1.tv/img_auth.php/f/ff/Уязвимости_в_лицензиях_СПО_(Андрей_Савченко%2C_OSSDEVCONF-2018).pdf#page=11
Предположим, у нас есть пакет foo с бинарником foobin, подпакетом
libfoo с libfoo и libfoo-devel с хедерами и симлинками.
И предположим, что в этом пакете есть три лицензии на разные части
кода, такие что: libfoo собирается из LGPLv2.1 и BSD кода, при этом
BSD попадает в хедеры, а при сборке foobin также испольуется GPLv3
код. Тогда у разных (под)пакетов будут разные лицензии):
foo (rpm) - GPLv3
libfoo - LGPLv2.1
libfoo-devel - LGPLv2.1 + BSD
foo (srpm) - GPLv3 + LGPLv2.1 + BSD
На данный момент единственный способ известный мне способ указать
разные лицензии для rpm и srpm — это паковать все файлы в подпакеты,
оставив основной rpm чисто виртуальным. Не лучшее решение, но наша
архитектура сборки пакетов лучшего не позволяет.
Ещё раз повторю главную мораль этого упражнения: за редкими
случаями двойного лицензирования у конкретного бинарника есть
только *одна* лицензия, даже если он собран из зоопарка совместимых
лицензий, которая определяется порядком совместимости. Если же
лицензии не совместимы, то распространять такой бинарник нельзя
и в репозитории ему не место. А вот исходники (в т.ч. и хедеры
библиотек) сохраняют все оригинальные лицензии.
В реальной жизни всё сложнее, т.к. помимо упомянутых двойных
лицензий и кодогенераторов есть ещё зависимость лицензии от
опций сборки пакета (привет ffmpeg).
> Некоторый код подразумевает двойное лицензирование, тогда это, например,
> GPL or MPL.
>
> Бывают и более сложные ситуации, которые нужно обсуждать.
>
> В некоторых случаях проще вынести в отдельный пакет код под лицензией,
> отличной от основного проекта.
>
> > И я не вижу примеров такого заполения License в других дистрибутивах.
>
> Suse занимается таким заполнением, но у них тоже это не автоматизировано и
> встречаются ошибки. Redhat занимается этим, но у них теряется часть
> информации.
Ещё Debian следит. В Gentoo проделана просто огромная работа, в т.ч.
и по условным зависимостях в лицензиях (т.е. лицензия пакета может
зависеть от того, как его собрали), например:
https://gitweb.gentoo.org/repo/gentoo.git/tree/media-video/ffmpeg/ffmpeg-4.2.2.ebuild
LICENSE="
!gpl? ( LGPL-2.1 )
gpl? ( GPL-2 )
amr? (
gpl? ( GPL-3 )
!gpl? ( LGPL-3 )
)
gmp? (
gpl? ( GPL-3 )
!gpl? ( LGPL-3 )
)
libaribb24? (
gpl? ( GPL-3 )
!gpl? ( LGPL-3 )
)
encode? (
amrenc? (
gpl? ( GPL-3 )
!gpl? ( LGPL-3 )
)
)
samba? ( GPL-3 )
"
У нас тоже есть ручки (defined, enabled), так что такие вещи тоже
следует учитывать.
Best regards,
Andrew Savchenko
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 833 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20200317/f1106f32/attachment.bin>
Подробная информация о списке рассылки Devel