<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>48711</bug_id>
          
          <creation_ts>2023-12-06 17:36:27 +0300</creation_ts>
          <short_desc>Добавить в hasher поддержку проверок для образов через distro_check</short_desc>
          <delta_ts>2023-12-06 18:13:32 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>hasher</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>46625</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Evgeny Sinelnikov">sin</reporter>
          <assigned_to name="Dmitry V. Levin">ldv</assigned_to>
          <cc>aen</cc>
    
    <cc>at</cc>
    
    <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>rider</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>238533</commentid>
    <comment_count>0</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2023-12-06 17:36:27 +0300</bug_when>
    <thetext>В сборочной задаче в 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 &apos;s/^install arch[[:space:]]*:[[:space:]]*\([^[:space:]]\+\).*/\1/p&apos;

Ограничения для лицензии задаются в отдельных файлах явно:
$ 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] &lt;target&gt;...

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 &lt;target&gt; as a distribution.
                           This is default behavior;
  --directories            treat &lt;target&gt; 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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238534</commentid>
    <comment_count>1</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2023-12-06 18:13:32 +0300</bug_when>
    <thetext>Лицензии сразу сделать бы в соответствии со стандартом SPDX.

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

    </bug>

</bugzilla>