From: Andrey Savchenko <bircoph@altlinux.org>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] mysql-workbench-community, License tag
Date: Tue, 17 Mar 2020 01:01:55 +0300
Message-ID: <20200317010155.790c4a4feddcb30a45ac8bd4@altlinux.org> (raw)
In-Reply-To: <20200315215849.djuukobq3luvas6e@comp-core-i7-2640m-0182e6>
[-- Attachment #1: Type: text/plain, Size: 6379 bytes --]
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
[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]
prev parent reply other threads:[~2020-03-16 22:01 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-15 16:42 Sergey Y. Afonin
2020-03-15 18:43 ` Andrey Savchenko
2020-03-15 19:36 ` Sergey Y. Afonin
2020-03-15 21:58 ` Alexey Gladkov
2020-03-15 22:51 ` Dmitry V. Levin
2020-03-16 5:46 ` Sergey Afonin
2020-03-16 8:10 ` Dmitry V. Levin
2020-03-16 10:52 ` Sergey Afonin
2020-03-16 11:16 ` Alexey Gladkov
2020-03-16 11:37 ` Sergey Afonin
2020-03-16 12:16 ` Sergey Afonin
2020-03-16 12:27 ` Sergey Afonin
2020-03-16 14:40 ` Alexey Gladkov
2020-03-16 22:14 ` Andrey Savchenko
2020-03-16 23:03 ` Alexey Gladkov
2020-03-17 6:24 ` Ivan A. Melnikov
2020-03-17 10:37 ` Alexey Gladkov
2020-03-17 13:31 ` Sergey Afonin
2020-03-17 16:40 ` [devel] License tag for source packages Dmitry V. Levin
2020-03-17 16:56 ` Andrey Savchenko
2020-03-17 20:06 ` Dmitry V. Levin
2020-03-17 20:52 ` Leonid Krivoshein
2020-03-17 22:16 ` Andrey Savchenko
2020-03-17 22:31 ` Dmitry V. Levin
2020-03-17 22:48 ` Leonid Krivoshein
2020-03-18 8:49 ` Andrey Savchenko
2020-03-17 22:56 ` Alexey Gladkov
2020-03-17 23:10 ` Dmitry V. Levin
2020-03-18 8:45 ` Andrey Savchenko
2020-03-18 9:45 ` Sergey Afonin
2020-03-20 8:17 ` Sergey Afonin
2020-03-18 10:50 ` Dmitry V. Levin
2020-03-18 20:04 ` Andrey Savchenko
2020-03-18 20:08 ` [devel] License tag for source packages (и лишние сущности) Michael Shigorin
2020-03-18 20:11 ` Dmitry V. Levin
2020-03-18 20:14 ` Michael Shigorin
2020-03-18 20:22 ` Dmitry V. Levin
2020-03-18 20:35 ` Andrey Cherepanov
2020-03-18 12:42 ` [devel] License tag for source packages Alexey Gladkov
2020-03-17 21:07 ` Leonid Krivoshein
2020-03-17 21:50 ` Andrey Savchenko
2020-03-18 8:16 ` Alexey V. Vissarionov
2020-03-18 9:32 ` Andrey Savchenko
2020-03-18 12:23 ` Alexey Gladkov
2020-03-18 16:21 ` Anton Farygin
2020-03-18 16:35 ` Alexey Gladkov
2020-03-18 16:48 ` Anton Farygin
2020-03-18 17:04 ` Alexey Gladkov
2020-03-19 4:05 ` Anton Farygin
2020-03-19 9:52 ` Alexey Gladkov
2020-03-21 21:21 ` Dmitry V. Levin
2020-03-21 21:59 ` Vladimir D. Seleznev
2020-03-22 8:50 ` Andrey Savchenko
2020-03-23 11:53 ` Sergey V Turchin
2020-03-22 15:12 ` Alexey Gladkov
2020-03-25 8:17 ` Pavel Isopenko
2020-03-25 8:22 ` Andrey Savchenko
2020-03-25 8:32 ` Sergey Afonin
2020-03-25 9:32 ` Alexey V. Vissarionov
2020-03-25 9:46 ` Sergey Afonin
2020-03-25 10:02 ` Alexey V. Vissarionov
2020-03-25 8:33 ` Sergey Afonin
2020-03-25 9:55 ` [devel] License tag Sergey Afonin
2020-03-25 10:07 ` Alexey V. Vissarionov
2020-03-25 14:06 ` Sergey Afonin
2020-03-25 10:12 ` [devel] nfdump Dmitry V. Levin
2020-03-25 10:23 ` Sergey Afonin
2020-04-03 11:07 ` [devel] License tag Sergey Afonin
2020-04-03 12:27 ` Andrey Savchenko
2020-04-03 14:15 ` Sergey Y. Afonin
2020-04-03 14:28 ` Vladimir D. Seleznev
2020-04-03 14:34 ` Sergey Y. Afonin
2020-03-16 5:43 ` [devel] mysql-workbench-community, " Sergey Afonin
2020-03-16 22:01 ` Andrey Savchenko [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200317010155.790c4a4feddcb30a45ac8bd4@altlinux.org \
--to=bircoph@altlinux.org \
--cc=devel@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git