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

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

    <bug>
          <bug_id>39663</bug_id>
          
          <creation_ts>2021-02-09 12:09:05 +0300</creation_ts>
          <short_desc>Не устанавливает ядро и модули, если для установки выбрано слишком много</short_desc>
          <delta_ts>2021-04-06 18:25:36 +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>apt</component>
          <version>unstable</version>
          <rep_platform>all</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>critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Антон Мидюков">antohami</reporter>
          <assigned_to name="Ivan Zakharyaschev">imz</assigned_to>
          <cc>boyarsh</cc>
    
    <cc>glebfm</cc>
    
    <cc>imz</cc>
    
    <cc>iv</cc>
    
    <cc>klark</cc>
    
    <cc>ldv</cc>
    
    <cc>mike</cc>
    
    <cc>placeholder</cc>
    
    <cc>sem</cc>
    
    <cc>vt</cc>
    
    <cc>zerg</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>196097</commentid>
    <comment_count>0</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2021-02-09 12:09:05 +0300</bug_when>
    <thetext>Напоролся опять на эту проблему. Впервые проблема была у zerg@:
https://lists.altlinux.org/pipermail/devel-distro/2020-September/002060.html

Если в /var/lib/install3/.base:
## DOT_BASE
^kernel-(image|modules-(virtualbox-addition|virtualbox-addition-guest|vmware|scsi|drm|bcmwl|staging|rtl8188fu|rtl8192eu|rtl8723de|rtl8812au|rtl8821ce|rtl8821cu|rtl88x2bu|rtl8723bu|bcmwl|ndiswrapper|drm|drm-nouveau|drm-radeon|drm-ancient|alsa|sound|e1000e|igb|r8125|staging|kvm|virtualbox))-(std-def)$

То alterator-pkg ничего не устанавливает, что видно и без установки по требуемому месту. Достаточно удалить один из элементов, чтобы установка ядра и модулей проходила успешно.

Временным решением может быть выкидывание застарелых модулей, которых давно нет, из mkimage-profiles. Но нужно разбираться с alterator-pkg. Что это за странное ограничение?

Проблема сейчас наличествует при сборкe workstation из mkimage-profiles v1.4.5-alt1 и 1.4.6-alt1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196098</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2021-02-09 12:36:57 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #0)
&gt; Но нужно разбираться с alterator-pkg. Что это за странное ограничение?
Возможно, дело в apt -- попробуй ручками такое поставить.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196102</commentid>
    <comment_count>2</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2021-02-09 14:38:18 +0300</bug_when>
    <thetext>Есть мысль не кормить такой сложный список alterator-pkg, а преобразовывать его в нормальный при сборке. Т.е. проверять наличие пакетов в локальном репо при сборке и генерировать нормальный список пакетов для установки. Конечно, если это возможно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196103</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2021-02-09 15:00:04 +0300</bug_when>
    <thetext>Такое, конечно, можно закостылить в mkimage и даже mkimage-profiles, вот только лучше бы исправить первопричину (или задокументировать ограничение и тогда уже думать, как с ним дальше быть).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196128</commentid>
    <comment_count>4</comment_count>
    <who name="Leonid Krivoshein">klark</who>
    <bug_when>2021-02-10 02:13:38 +0300</bug_when>
    <thetext>drm и bcmwl в условии встречаются дважды, может это даёт наводку? Можно взять за правило сортировать тут этот список и убирать дубли. И что мешает упростить здесь же условие выборки? Разве данный regex не является одним из многих для выбора пакетов базовой системы? Например, так:

## DOT_BASE
^kernel-(image|modules-(virtualbox-addition|virtualbox-addition-guest|vmware|scsi|staging|alsa|sound|igb|staging|kvm|virtualbox))-(std-def)$

# Networking
^kernel-modules-(rtl8188fu|rtl8192eu|rtl8723de|rtl8812au|rtl8821ce|rtl8821cu|rtl88x2bu|rtl8723bu|r8125|e1000e|bcmwl|ndiswrapper)-(std-def)$

# DRM
^kernel-modules-(drm|drm-nouveau|drm-radeon|drm-ancient)-(std-def)$</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197491</commentid>
    <comment_count>5</comment_count>
    <who name="Leonid Krivoshein">klark</who>
    <bug_when>2021-04-04 14:25:07 +0300</bug_when>
    <thetext>(In reply to Антон Мидюков from comment #2)
&gt; Есть мысль не кормить такой сложный список alterator-pkg, а преобразовывать
&gt; его в нормальный при сборке. Т.е. проверять наличие пакетов в локальном репо
&gt; при сборке и генерировать нормальный список пакетов для установки.
Лучше переписать make_manifest() в backend3. Хотя ошибка, скорее всего, в APT&apos;е при работе с параметром --manifest, когда манифест получается слишком сложный. Это легко локализовать, но проще исправить в backend3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197546</commentid>
    <comment_count>6</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2021-04-06 11:58:07 +0300</bug_when>
    <thetext>(In reply to Антон Мидюков from comment #0)
&gt; ^kernel-(image|modules-(virtualbox-addition|virtualbox-addition-guest|vmware|scsi|drm|bcmwl|staging|rtl8188fu|rtl8192eu|rtl8723de|rtl8812au|rtl8821ce|rtl8821cu|rtl88x2bu|rtl8723bu|bcmwl|ndiswrapper|drm|drm-nouveau|drm-radeon|drm-ancient|alsa|sound|e1000e|igb|r8125|staging|kvm|virtualbox))-(std-def)$

Длина этого регулярного выражения -- ровно 300 символов. А теперь посмотрите в начало реализации команды apt-get install:

http://git.altlinux.org/gears/a/apt.git?a=blob;f=apt/cmdline/apt-get.cc;h=a26c93c2490fb76677491b21ea44f540d545c894#l1257

Я даже скопирую сюда:

[...]
for (const char **I = CmdL.FileList + 1; *I != 0; I++)
{
   // Duplicate the string
   unsigned int Length = strlen(*I);
   char S[300];
   if (Length &gt;= sizeof(S))
      continue;
   strcpy(S,*I);
[...]

То есть, все аргументы apt-get install с длиной более 300 *молча* игнорируются. Хоть бы warning написали какой.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197555</commentid>
    <comment_count>7</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2021-04-06 15:01:36 +0300</bug_when>
    <thetext>Это какой-то позор...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197558</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2021-04-06 15:52:08 +0300</bug_when>
    <thetext>(Ответ для Ivan A. Melnikov на комментарий #6)
&gt;    char S[300];
Н-да.  Предлагаю обновить как минимум до S[400], а то и до S[500].
Если уж не делать совсем как положено.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197563</commentid>
    <comment_count>9</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2021-04-06 17:16:48 +0300</bug_when>
    <thetext>(Ответ для Michael Shigorin на комментарий #8)
&gt; (Ответ для Ivan A. Melnikov на комментарий #6)
&gt; &gt;    char S[300];
&gt; Н-да.  Предлагаю обновить как минимум до S[400], а то и до S[500].
&gt; Если уж не делать совсем как положено.

Ну, надо как минимум добавить сообщение об ошибке и, пожалуй, завершение программы.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197565</commentid>
    <comment_count>10</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2021-04-06 17:33:40 +0300</bug_when>
    <thetext>(In reply to Michael Shigorin from comment #8)
&gt; Н-да.  Предлагаю обновить как минимум до S[400], а то и до S[500].
&gt; Если уж не делать совсем как положено.

[~/src/alt/apt]$ git grep -F  &apos;S[300]&apos; | wc -l
25
[~/src/alt/apt]$ git grep -F  &apos;S[400]&apos; | wc -l
10
[~/src/alt/apt]$ git grep -F  &apos;S[500]&apos; | wc -l
4

И это только S.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>