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

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

    <bug>
          <bug_id>40551</bug_id>
          
          <creation_ts>2021-07-21 10:03:15 +0300</creation_ts>
          <short_desc>installkernel пытается создать initramfs и настроить загрузчик при вызове из Makefile ядра</short_desc>
          <delta_ts>2021-09-29 19:29:51 +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>bootloader-utils</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Sheplyakov">asheplyakov</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>aen</cc>
    
    <cc>at</cc>
    
    <cc>boyarsh</cc>
    
    <cc>glebfm</cc>
    
    <cc>iv</cc>
    
    <cc>ldv</cc>
    
    <cc>nir</cc>
    
    <cc>placeholder</cc>
    
    <cc>sbolshakov</cc>
    
    <cc>sem</cc>
    
    <cc>sin</cc>
    
    <cc>slazav</cc>
    
    <cc>vitty</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>200764</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2021-07-21 10:03:15 +0300</bug_when>
    <thetext>Собираю ядро для arm64 платы, и устанавливаю его во временную директорию. Вот так:

git clone --depth=1 -b baikalm-5.10.y git://github.com/altlinux/linux-be-m1000.git
cd linux-be-m1000
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j`nproc` baikal_minimal_defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j`nproc` all
rm -rf _inst
mkdir -p -m755 _inst
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_PATH=`pwd`/_inst/boot INSTALL_MOD_PATH=`pwd`/_inst install modules_install

Ожидаемый результат: 
1. Ядро (vmlinuz), его System.map и config скопированы в директорию _inst/boot
2. Модули скопированы в _inst/lib/modules/$kernel_version
3. (Не обязательно) Вычислены зависимости модулей, что-нибудь вроде
   depmod -b `pwd/_inst -F _inst/boot/System.map-${kernel_version} $kernel_version


Наблюдаемый результат:
Дополнительно к ожидаемым действиям installkernel пытается
1. Прописать собранное ядро в grub.cfg на локальной (x86_64) системе
2. Создать initramfs (из x86_64 бинарников, ха-ха)

Эти действия не только неправильны, но и потенциально разрушительны.
Например, если кто-то сделает `sudo make install ...`, то получит сломанный grub.cfg (который по умолчанию грузит ядро для другой архитектуры)

Предлагаемые изменения:

Не трогать загрузчик, и не создавать initramfs, если 

а) installkernel вызван из Makefile ядра (с 3 или более аргументами), либо
б) installkernel вызван из Makefile ядра (с 3 или более аргументами), и $BOOTDIR != /boot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200765</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2021-07-21 10:11:31 +0300</bug_when>
    <thetext>#279869 BUILDING #1 [locked] [test-only] sisyphus bootloader-utils.git=0.5.3-alt2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201126</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2021-08-01 20:48:46 +0300</bug_when>
    <thetext>#279869 EPERM #2 sisyphus bootloader-utils.git=0.5.3-alt2

Importance: major, т.к. сборка ядер (для arm/arm64) - и без того не совсем простой процесс - требует лишних телодвижений.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203204</commentid>
    <comment_count>3</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2021-09-24 12:45:22 +0300</bug_when>
    <thetext>Уважаемые мейнтенеры bootloader-utils!

Пожалуйста, сделайте что нибуть с этим. Этот баг мешает разрабатывать ядра для систем на mipsel и riscv64.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203208</commentid>
    <comment_count>4</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2021-09-24 13:15:25 +0300</bug_when>
    <thetext>(Ответ для Ivan A. Melnikov на комментарий #3)
&gt; Уважаемые мейнтенеры bootloader-utils!
&gt; 
&gt; Пожалуйста, сделайте что нибуть с этим. Этот баг мешает разрабатывать ядра
&gt; для систем на mipsel и riscv64.

ssh git task show 279869
id=279869 locked=no shared=no fail_early=yes test_only=no repo=sisyphus owner=asheplyakov state=EPERM try=3 iter=1 age=4w build_time=2021-Aug-24/08:09:05
 100:dir=/people/asheplyakov/packages/bootloader-utils.git
 100:tag_name=0.5.3-alt2
 100:tag_id=5a6374e63d1f3bf1943690f3b236c9e49c567db5
 100:tag_author=Alexey Sheplyakov &lt;asheplyakov@altlinux.org&gt;
 100:fetched=2021-07-21T07:07:54
 100:userid=asheplyakov
 100:approved_by=sin boyarsh 
 100:pkgname=bootloader-utils

Я одобрил задание, что ещё надо сделать?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203209</commentid>
    <comment_count>5</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2021-09-24 13:16:36 +0300</bug_when>
    <thetext>(Ответ для Anton V. Boyarshinov на комментарий #4)

&gt; Я одобрил задание, что ещё надо сделать?
PS уже довольно давно как одобрил, уже не помню когда именно</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203270</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2021-09-27 11:51:14 +0300</bug_when>
    <thetext>(In reply to Anton V. Boyarshinov from comment #5)

&gt; &gt; Я одобрил задание, что ещё надо сделать?

Спасибо. Больше ничего не надо.

&gt; PS уже довольно давно как одобрил, уже не помню когда именно

Я пропустил уведомление (почему-то оно попало в spam).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203363</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Sheplyakov">asheplyakov</who>
    <bug_when>2021-09-29 19:29:51 +0300</bug_when>
    <thetext>Исправлено в версии 0.5.3-alt2</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>