ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Gladkov <legion@altlinux.ru>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: [devel] I: license tag
Date: Tue, 19 Nov 2019 21:05:16 +0100
Message-ID: <20191119200516.6xsutqsrg3sijjy3@localhost> (raw)

Привет!

Некоторое время назад я пробовал проанализировать наши пакеты на предмет
свободности. По сути задача та же самая как и дистрибутивостроителей,
которые должны отфильтровать пакеты не предназначенные для коммерческого
использования. Иных данных о лицензиях содержимого пакета, кроме тега
License у нас нет.

Выяснилась интереснейшая вещь. В наших пакетах этот тег может содержать
всё, что угодно. Там оказывается как откровенный мусор, так и
двусмысленные названия лицензий или же вообще несуществующие лицензии
(например, мантейнер vorbisgain указывает, что лицензия "GPL 2.1", но
такой версии GPL ещё нет).

Чтобы это хоть как-то решить в сизиф отправлен sisyphus_check, который
выдаёт предупреждения относительно содержимого тега License т.к. масштаб
разрушений у нас просто огромный.

За основу была взята полиси OpenSUSE[1].

Новая проверка требует (пока не жёстко) чтобы:

* Лицензии должны быть объявлены в формате коротких имен SPDX[2] и
  присутствовать в пакете common-licenses. Пробелы в имени лицензии не
  допускается.

* Для указания совокупности лицензий в пакете используется оператор `and`.

* Альтернативные лицензии должны быть разделены оператором `or`.

* Лицензии могут быть сгруппированы. Для этого используются скобки. Такое,
  например, необходимо, если документация имеет лицензию и код
  поставляется под двойной лицензией:

  License: (GPL-2.0 or Artistic-1.0-Perl) and CC0-1.0

  Группы внутри групп не допускаются. Скобки должны быть сбалансированы.

* Исключения из лицензий тоже должны быть отдельно описаны и находится в
  пакете common-licenses. Исключения указываются после название лицензии
  через оператор `with`. Пробелы в имени исключения не допускаются.

  License: LGPL-2.1-or-later and LGPL-2.1-or-later with GCC-exception-2.0 and GPL-2.0-or-later

* Операторы `and`, `or`, `with` не могут быть указаны один за другим,
  начинать или заканчивать строку с перечислением лицензий.

Все операторы `and`, `or`, `with` могут быть указаны в любом регистре.

Проверка
--------

Проверка sisyphus_check сейчас всё-таки считает некоторые конструкции
ошибочными:

* Какие либо операторы указаны подряд или вначале или конце строки.
* Группы в группах.
* Несбаллансированные скобки.

Вот небольшая статистика по тому сколько бинарнах пакетов это затронет:

# must not follow another keyword: 7
# groups within groups are not allowed: 0
# closing bracket without opening bracket: 0
# unbalanced brackets: 152

FAQ
---

Q: Почему было взято именно полиси OpenSUSE, если исторически в наш
репозиторий пакеты портируются из Fedora ?

A: Посили Fedora[3] содержит жёсткий коротких список имён[4], который
поддерживется legal team. Короткие имена, используемые в fedora, проще, но
вместе с тем они теряют часть информации о лицензии, которую трудно
восстановить автоматически. Например, все ниже перечисленные лицензии
имеют короткое имя `BSD`:

- BSD License (no advertising)
- BSD License (two clause)
- Creative Commons BSD
- Cryptix General License
- Eclipse Distribution License 1.0
- Metasploit Framework License (post 2006)

Или `GPLv3+ with exceptions`:

- GNU General Public License v3.0 or later, with Classpath exception
- GNU General Public License v3.0 or later, with font embedding exception

Также короткие имена не стандартизованы. Поэтому такой список лицензий
сложно поддерживать. Такой формат записи сложно прверять автоматически.

Q: Как мне поправить свой пакет ?
A: Если вы не уверены как правильно указывается лицензия вы можете
посмотреть, как описывается этот тэг в OpenSUSE. Если же вашего пакета нет
в их репозитории, то пишите в devel@.

Q: Лицензии, которая используется в проекте нет в пакете common-licenses.
Что делать ?

A: Повесьте багу на пакет common-licenses и приложите текст лицензии.
Очень важно, чтобы у нас были тексты лицензий, иначе невозможно проверить
правовую информацию. Так у нас есть пакеты с лицензией `distributable not
for profit`, `Free for non-commercial use`, `no modification permitted`,
`non-military use` и т.д. Часть же лицензий не могут использоваться в
репозитории. Например, в fedora есть целый список несвободных лицензий[5].

Q: Я не знаю какая лицензия у проекта. Что делать ?
A: Пишите на legal@ или в devel@. Лицензия должна быть известна.

[1] https://en.opensuse.org/openSUSE:Packaging_guidelines#Licensing
[2] https://spdx.org/licenses/
[3] https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing
[4] https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Good_Licenses
[5] https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Bad_Licenses

-- 
Rgrds, legion



             reply	other threads:[~2019-11-19 20:05 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-19 20:05 Alexey Gladkov [this message]
2019-11-19 20:28 ` Sergey Y. Afonin
2019-11-19 20:39   ` Dmitry V. Levin
2019-11-26 16:39     ` Mikhail Efremov
2019-11-27 15:26       ` Mikhail Efremov
2019-11-28 10:52         ` Alexey Gladkov
2019-11-28 13:17           ` Mikhail Efremov
2019-11-28 14:03             ` Alexey V. Vissarionov
2019-11-28 14:11               ` Sergey V Turchin
2019-11-28 14:15                 ` Alexey V. Vissarionov
2019-11-28 14:16                   ` Michael Shigorin
2019-11-28 14:22                     ` Alexey V. Vissarionov
2019-11-28 14:22                     ` Alexey Gladkov
2019-11-28 14:20                   ` Sergey V Turchin
2019-11-28 14:20               ` Alexey Gladkov
2019-11-28 14:26                 ` Alexey V. Vissarionov
2019-11-28 14:31                   ` Alexey Gladkov
2019-11-28 14:18             ` Alexey Gladkov
2019-11-19 20:51   ` Alexey Gladkov
2019-11-19 21:07     ` Sergey Y. Afonin
2019-11-19 21:27       ` Alexey Gladkov
2019-11-20  5:57         ` Sergey Afonin
2019-11-19 21:34 ` Alexey Gladkov
2019-11-20  0:09   ` Grigory Ustinov
2019-11-20  0:43     ` Alexey Gladkov
2019-11-20 10:36 ` [devel] Q: rastertokpsl-re (was: I: license tag) Paul Wolneykien
2019-11-20 11:23   ` Alexey V. Vissarionov
2019-11-20 17:03     ` Andrey Savchenko
2019-11-21  9:18       ` Alexey V. Vissarionov
2019-11-21 12:11         ` Anton V. Boyarshinov
2019-11-20 11:37   ` Michael Shigorin
2019-11-20 16:23     ` Paul Wolneykien
2019-11-20 16:37       ` Michael Shigorin
2019-11-21  9:33       ` Paul Wolneykien
2019-11-21 20:37   ` [devel] Q: rastertokpsl-re Vitaly Lipatov
2019-11-21 22:15     ` Paul Wolneykien
2019-11-22  0:37       ` Andrey Savchenko
2019-11-22  7:44 ` [devel] I: license tag Sergey V Turchin
2019-11-22  8:49 ` Michael Shigorin
2019-11-22  9:05   ` Michael Shigorin
2019-11-22  9:20 ` [devel] LGPL-2.1-with-Qt-Company-Qt-exception-1.1 (was: license tag) Sergey V Turchin
2019-11-22 17:17   ` Alexey Gladkov
2019-11-25  7:24     ` Sergey V Turchin
2019-11-25  8:30       ` Alexey Gladkov
2019-11-25  8:35         ` Sergey V Turchin
2019-11-25  8:44           ` Alexey Gladkov
2019-11-25  8:56             ` Sergey V Turchin
2019-11-25  9:23             ` [devel] LGPL-2.1-with-Qt-Company-Qt-exception-1.1 Anton Farygin
2019-11-25  9:52               ` Alexey Gladkov
2019-11-22  9:22 ` [devel] I: license tag (BSD* и подобные) Michael Shigorin
2019-11-22 17:09   ` Alexey Gladkov
2019-11-25 14:38 ` [devel] I: license tag for ClamAV Sergey Afonin
2019-11-25 14:53   ` Alexey Gladkov
2019-11-25 15:24     ` Sergey Afonin
2019-11-25 15:47       ` Sergey Afonin
2019-11-25 15:06   ` Vladimir D. Seleznev
2019-11-26 15:44   ` Sergey Afonin
2020-01-01 19:13 ` [devel] I: license tag for Cyrus-IMAP Sergey Y. Afonin
2020-01-01 19:35   ` Alexey Gladkov
2020-01-01 20:01     ` Sergey Y. Afonin
2020-01-01 20:12       ` Alexey Gladkov
2020-01-01 20:44         ` Sergey Y. Afonin
2020-01-02  8:48           ` Andrey Savchenko
2020-01-02 11:13             ` Sergey Y. Afonin
2020-03-16 12:50           ` Sergey Afonin
2020-01-09  9:04         ` Sergey V Turchin
2020-01-10  7:39           ` Sergey V Turchin
2020-03-15 16:33 ` [devel] I: license tag Sergey Y. Afonin
2020-03-16 11:53 ` Sergey Afonin

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=20191119200516.6xsutqsrg3sijjy3@localhost \
    --to=legion@altlinux.ru \
    --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