ALT Linux Team development discussions
 help / color / mirror / Atom feed
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 --]

      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