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

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

    <bug>
          <bug_id>39604</bug_id>
          
          <creation_ts>2021-01-26 15:44:15 +0300</creation_ts>
          <short_desc>grub-efi не является noarch и содержит модули для ненужной архитектуры</short_desc>
          <delta_ts>2021-01-26 17:01:40 +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>grub-efi</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>LATER</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vitaly Lipatov">lav</reporter>
          <assigned_to name="Николай Костригин">nickel</assigned_to>
          <cc>nickel</cc>
    
    <cc>placeholder</cc>
    
    <cc>rider</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>195734</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2021-01-26 15:44:15 +0300</bug_when>
    <thetext>grub-efi содержит модули для разных архитектур, в частност, каталоги i386-efi и x86_64-efi. Некорректно использует для этого каталог %_libdir/grub

Например, в Fedora есть
grub2-efi-x64
grub2-efi-ia32

с файлами, которые у нас в
/usr/lib64/efi/grubia32.efi
/usr/lib64/efi/grubx64.efi

а также
grub2-pc-modules.noarch
grub2-ppc64-modules.noarch
grub2-ppc64le-modules.noarch
grub2-efi-x64-modules.noarch
grub2-efi-aa64-modules.noarch
grub2-efi-ia32-modules.noarch

с модулями.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195736</commentid>
    <comment_count>1</comment_count>
    <who name="Николай Костригин">nickel</who>
    <bug_when>2021-01-26 15:58:23 +0300</bug_when>
    <thetext>Дело в том, что и ia32 и x64 принадлежат, как правило, платформе x86_64 и используются только на ней (про исключения, вопплощенные в железе - планшеты i586/ia32, я слышал но вживую не видел).
К примеру, машины, на которые производитель устанавливал ради экономии памяти и дискового пространства Windows10 32-bit (и как следствие UEFI ia32, так как только она по спецификации может загружать 32-bit код) были построены на базе Atom z8xxx (x86_64).

Действительно ли так критично хранить их раздельно?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195738</commentid>
    <comment_count>2</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2021-01-26 16:35:40 +0300</bug_when>
    <thetext>Я подозреваю, что модули для других архитектур тоже появятся. Было бы странным носить их все вместе.

Получается, проблема в существовании 64-битного железа, у которого UEFI ia32?

Конечно, мне кажется, что наличие ia32 в отдельном пакете помогло бы обрабатывать эту ситуацию в инсталляторе.

Тем не менее, очень странно хранить 32-битные модули в /usr/lib64.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195742</commentid>
    <comment_count>3</comment_count>
    <who name="Николай Костригин">nickel</who>
    <bug_when>2021-01-26 17:01:40 +0300</bug_when>
    <thetext>(Ответ для Vitaly Lipatov на комментарий #2)
&gt; Я подозреваю, что модули для других архитектур тоже появятся. Было бы
&gt; странным носить их все вместе.

Никто не собирается носить их вместе. И aa64 (хоть там пока и путаница с именованием EFI-бинарника, будем исправлять), и ppc64le (ieee1275) ходят сами по себе.

&gt; Получается, проблема в существовании 64-битного железа, у которого UEFI ia32?

Ну, в общем-то, да.

&gt; Конечно, мне кажется, что наличие ia32 в отдельном пакете помогло бы
&gt; обрабатывать эту ситуацию в инсталляторе.
&gt; 
&gt; Тем не менее, очень странно хранить 32-битные модули в /usr/lib64.

Это несоответствие можно исправить, но нужно посмотреть, как оно отразится на mkimage и mkimage-profiles.
При переносе бинарника EFI ia32 в /usr/lib/efi, нужно будет править процедуру подписи pesign. 
Если это сейчас ничему срочному не мешает - займусь этим позже.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>