Bug 48711 - Добавить в hasher поддержку проверок для образов через distro_check
Summary: Добавить в hasher поддержку проверок для образов через distro_check
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: hasher (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Dmitry V. Levin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 46625
  Show dependency tree
 
Reported: 2023-12-06 17:36 MSK by Evgeny Sinelnikov
Modified: 2023-12-06 18:13 MSK (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Evgeny Sinelnikov 2023-12-06 17:36:27 MSK
В сборочной задаче в hasher добавлена поддержка проверок для образов через distro_check, в частности лицензий из пакета distro-licenses:
#329971 EPERM #1 sisyphus hasher.git=1.7.3-alt1

В пакет distro-licenses включен скрипт проверки имени лицензии (должен быть из списка утвержденных в каталоге /usr/share/distro-licenses) и применимости лицензии на установленной системе по имени бранча и архитектуры.

Список доступных лицензий:
$ distro-license-check -l
ALT_Community_License
ALT_SP_License
ALT_Product_License
ALT_Regular_License
ALT_Simply_License
ALT_Server_License
ALT_Server_License/10.1

Назначение лицензий на продукты (образы), собираемые на сборочнице:
- ALT_Community_License - лицензия на сборки сообщества (лицензия в стиле GPL);
- ALT_SP_License - лицензия на сертифицированные продукты;
- ALT_Product_License - базовая лицензия на продукты (Workstation, Workstation K, Education, Virtualization);
- ALT_Regular_License - текущая лицензия на регулярки (в стиле GPL);
- ALT_Simply_License - лицензия на Simply;
- ALT_Server_License - лицензия на Server;
- ALT_Server_License/10.1 - лицензия на конкретный релиз выпущенного продукта ALT Server 10.1.

Для унификации ALT_Regular_License логично свести к ALT_Community_License и оставить только последнюю.

Имя бранча вычисляется такой командой:
$ rpm --eval %_priority_distbranch | cut -d _ -f 1

А архитектура вычислется такой командой (взято из недр наших shell-приложений):
$ rpm --showrc |sed -ne 's/^install arch[[:space:]]*:[[:space:]]*\([^[:space:]]\+\).*/\1/p'

Ограничения для лицензии задаются в отдельных файлах явно:
$ cat /usr/share/distro-licenses/ALT_Server_License/10.1/distbranch.list
p10
$ cat /usr/share/distro-licenses/ALT_Server_License/10.1/target.list
x86_64
aarch64

Утилита distro_check реализована по образы и подобию sisyphus_check:
$ distro_check --help

distro_check - check distribution for acceptability for Sisyphus.

This program is free software, covered by the GNU General Public License.
distro_check comes with ABSOLUTELY NO WARRANTY, see license for details.

Usage: distro_check [options] <target>...

Valid options are:
  --quiet                  try to be more quiet;
  --verbose                print a message for each action;
  --fast-check             stop checking after first error;
  --show-checks            show list of available checks;
  --license                distro license type to check;
  --distros                treat <target> as a distribution.
                           This is default behavior;
  --directories            treat <target> as a directory.
                           Distros in this directory will be checked;
  --recursive              search packages recursively;
  --show-bad-distros       print bad distributions;
  --[no-]check=LIST        change the list of checks;
  --[no-]check-license_name
  --[no-]check-license_text_all
  --[no-]check-license_text_ru

Дополнительные проверки предусмотрены в отдельный скриптах:
$ ls -1 /etc/distro_check/check.d
010-check-license_name
020-check-license_text_ru
030-check-license_text_all
Comment 1 Anton Farygin 2023-12-06 18:13:32 MSK
Лицензии сразу сделать бы в соответствии со стандартом SPDX.

И добавить версию (если нет версии, то год-номер)