Bug 34865 - make-initrd не помещает модули crc32c в initrd
: make-initrd не помещает модули crc32c в initrd
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/make-initrd)
: unstable
: all Linux
: P3 major
Assigned To:
:
:
:
:
: 34854
  Show dependency tree
 
Reported: 2018-04-28 09:17 by
Modified: 2018-04-30 17:51 (History)


Attachments
Bug repport (961.61 KB, application/x-bzip)
2018-04-28 13:37, Leonid Krivoshein
no flags Details
4.16.5-un-def bug report (970.18 KB, application/x-bzip)
2018-04-28 13:51, Leonid Krivoshein
no flags Details


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2018-04-28 09:17:48
В обсуждении #34854 выяснилось, что make-initrd не помещает модули crc32c в
initrd. crc32c нужны с версии ядра 4.16 для ext4.
------- Comment #1 From 2018-04-28 11:48:30 -------
Мой патч был к make-initrd для p8, а не для Сизифа.

make-initrd оперирует списком названий модулей, который ему скармливают. Либо
определяет необходимые модули по той корневой системе, которая сейчас
подключена и зависимостям из мета-данных модулей -- как раз наш случай. То есть
в самом пакете make-initrd нет ни названий, ни списков модулей, которые должны
попадать в initramfs, а алгоритм автоугадава основывается на зависимостях,
определяемых при сборке ядра. Таким образом чинить это в пакете make-initrd --
заведомо неправильное решение. Очень неподходящее место, куда стоит прибивать
гвоздями crc32c. Если Антон Бояршинов скажет, что всё сделано правильно, тогда
поверю и разведу руками. Пока же crc32c стал единственным модулем, название
которого попало в make-initrd.
------- Comment #2 From 2018-04-28 12:09:44 -------
Леонид, бага сформулирована корректно. Как ее исправлять -- другой вопрос.
Давайте подождем, что скажет legion.
------- Comment #3 From 2018-04-28 12:21:03 -------
Наверное он скажет "man 8 depmod" :)
------- Comment #4 From 2018-04-28 12:30:51 -------
Зависимость между ext4 и crc32c не через depmod, а через произвол Редхата.

https://bugzilla.kernel.org/show_bug.cgi?id=199183#c4
------- Comment #5 From 2018-04-28 12:34:37 -------
(In reply to comment #4)
> произвол Редхата.

Хотя, редхат может и не виноват, но он упоминался с коммите. Вот кто виноват
https://en.wikipedia.org/wiki/Theodore_Ts%27o
------- Comment #6 From 2018-04-28 13:08:17 -------
Сделайте пожалуйста следующее:

$ git clone http://git.altlinux.org/people/legion/packages/make-initrd.git
$ cd make-initrd.git
$ MKLOCAL=1 make
$ sudo ./utils/make-initrd bug-report

и приложите сюда полученный архив.

Это известная проблема. Такая неявная зависимость существует c 2013 и для неё я
уже создавал механизм учёта:

http://git.altlinux.org/people/legion/packages/make-initrd.git?p=make-initrd.git;a=blob;f=kmodule.deps.d/add-deps-libcrc32c;h=ebbdc748e71f88085b78f9b134efc3225295963e;hb=HEAD

Очевидно, в ядре расширили список тех, кто неявно требует crc32c. Нужно
дополнить данный хук или создать ещё один.
------- Comment #7 From 2018-04-28 13:33:05 -------
> Так что мешает повесить багу на make-initrd с корректной формулировкой и
заголовком?

Да вот такие просьбы на фидбэк, которые начинают прилетать не по адресу.

(In reply to comment #6)
> Сделайте пожалуйста следующее:

Я лишь завел баг по приказу АЕН. Саму проблему не воспроизводил. В 34854
передал просьбу сюда ответить тех кто с ней столкнулся.

А в скрытые зависимости, добавить, думаю, нужно ext4. (Наличие драйвера
проверяется в ext4_fill_super).
------- Comment #8 From 2018-04-28 13:36:57 -------
Предполагаю, что фикс должен быть типа:

<<<
diff --git a/kmodule.deps.d/add-deps-libcrc32c
b/kmodule.deps.d/add-deps-libcrc32c
index ebbdc74..a829ec8 100755
--- a/kmodule.deps.d/add-deps-libcrc32c
+++ b/kmodule.deps.d/add-deps-libcrc32c
@@ -9,7 +9,7 @@ LIBCRC32C="$(depinfo -D "libcrc32c" 2>/dev/null |cut -f1 -d\ )"

 case "$LIBCRC32C" in
        builtin) pattern='^(xfs|btrfs) ' ;;
-       module)  pattern='^libcrc32c '   ;;
+       module)  pattern='^(ext4|libcrc32c) ' ;;
        *) exit 0 ;;
 esac

>>>
------- Comment #9 From 2018-04-28 13:37:25 -------
Created an attachment (id=7522) [details]
Bug repport
------- Comment #10 From 2018-04-28 13:39:23 -------
(В ответ на комментарий №9)
> Created an attachment (id=7522) [details] [details]
> Bug repport

Спасибо!
------- Comment #11 From 2018-04-28 13:51:57 -------
Created an attachment (id=7523) [details]
4.16.5-un-def bug report

То был отчёт до обновления ядра (для сравнения). А это уже более интересный
(4.16.5-un-def без crc32c). Вот что выводится при его создании:

$ update-kernel -t un-def

Config file: /etc/initrd.mk
Generating module dependencies on host ...
Creating initrd image ...
Adding plymouth support ...
Adding modules ...
Adding modules (preload) ...
Adding rescue modules ...
Adding module dependencies ...
Generating module dependencies in image ...
Adding modules to run inside qemu ...
Adding initrd shell support (shell mode) ...
Adding sysvinit support ...
Packed modules: 8139cp 8390 9pnet 9pnet_virtio ahci ata_generic ata_piix
autofs4 caif_virtio cdrom crc16 crypto_engine drm drm_kms_helper e100 e1000
evdev ext4 fscrypto hid hid-generic i2c-core input-leds intel-agp intel-gtt
jbd2 libahci libata mbcache mii ne2k-pci pata_acpi pcnet32 rng-core rpmsg_core
scsi_mod serio_raw sis-agp sr_mod ttm via-agp virtio virtio_balloon virtio_blk
virtio_console virtio_crypto virtio-gpu virtio_input virtio_mmio virtio_net
virtio_pci virtio_ring virtio-rng virtio_rpmsg_bus virtio_scsi
vmw_vsock_virtio_transport vmw_vsock_virtio_transport_common vringh vsock 
Sorting sysvinit services ...
Packing image to archive ...
Writing build info files ...
Compressing image ...
Adding CPU microcode ...
Installing image ...
Removing work directory ...

Image is saved as /boot/initrd-4.16.5-un-def-alt1.img
------- Comment #12 From 2018-04-28 14:04:48 -------
(В ответ на комментарий №6)
> Это известная проблема. Такая неявная зависимость существует c 2013
> и для неё я уже создавал механизм учёта:

А я вчера гадал, для чего эта хренобобина.))

> Очевидно, в ядре расширили список тех, кто неявно требует crc32c. Нужно
> дополнить данный хук или создать ещё один.

Ломают ядерщики, а чинить нам! Получается, я был неправ. В том смысле, что
предлагается чинить всё-таки средствами make-initrd.
------- Comment #13 From 2018-04-28 14:11:36 -------
Нашёл ещё одну проблему в depinfo из make-initrd. Он не учитывает softdeps.
------- Comment #14 From 2018-04-28 14:31:06 -------
(В ответ на комментарий №6)
> Сделайте пожалуйста следующее:
> ...
> и приложите сюда полученный архив.
> 

Приложенного достаточно? Просто я делал в сизифной виртуалке немного иначе. На
случай, если придётся повторить:

$ su -
# apt-get update
# apt-get install git-core /usr/bin/x86_64-alt-linux-gcc zlib-devel
libkmod-devel bzlib-devel liblzma-devel libzstd-devel help2man
# exit
$ git clone git://git.altlinux.org/people/legion/packages/make-initrd.git
$ cd make-initrd
$ MKLOCAL=1 make
$ su -
# update-kernel -t un-def
# /home/<USERNAME>/make-initrd/utils/make-initrd bug-report -k
4.16.5-un-def-alt1
------- Comment #15 From 2018-04-28 14:42:02 -------
(В ответ на комментарий №12)
> > Очевидно, в ядре расширили список тех, кто неявно требует crc32c. Нужно
> > дополнить данный хук или создать ещё один.
> 
> Ломают ядерщики, а чинить нам! Получается, я был неправ. В том смысле, что
> предлагается чинить всё-таки средствами make-initrd.

Они не ломают. Если у вас будут в initrd все модули, которые были
скомпилированы для данного ядра, то всё будет работать. Ядро запросит нужный
модуль. С точки зрения разработчиков ядра всё правильно и продолжает работать.

Трудности начинаются у проектов, которые хотят построить замыкание по
опредённым критериям. В этой области разработчики ядра помощи не обещают.

К слову, в Fedora и Ubuntu по умолчанию в initrd кладут все модули ядра. Правда
за всё нужно платить. У нас расжатый и распакованый образ initrd занимает
примерно 20М, у них столько (~23M) весит только сжатый архив.
------- Comment #16 From 2018-04-28 14:42:45 -------
(В ответ на комментарий №14)
> Приложенного достаточно? Просто я делал в сизифной виртуалке немного иначе.

Пока да. Спасибо.
------- Comment #17 From 2018-04-28 15:05:06 -------
Ну спасибо, коллеги. Рутинно обновил систему и не смог загрузится на
4.16.5-un-def.

По-моему всё предельно просто: сейчас совершенно не важно, кто виноват и как
правильно. Важно, чтоб система загружалась. Поэтому нужно вкомпилить модуль
прямо в ядро или откатится на более старое ядро, убрав проблемное из Сизифа..
------- Comment #18 From 2018-04-28 15:11:05 -------
(В ответ на комментарий №17)
> Важно, чтоб система загружалась.

Сейчас в Сизифе обходное решение предельно простое:

# echo "MODULES_ADD += crc32c" >> /etc/initrd.mk
# echo "MODULES_PRELOAD += crc32c" >> /etc/initrd.mk
# make-initrd
------- Comment #19 From 2018-04-28 15:16:08 -------
(В ответ на комментарий №17)
> Ну спасибо, коллеги. Рутинно обновил систему и не смог загрузится на
> 4.16.5-un-def.
> 
> По-моему всё предельно просто: сейчас совершенно не важно, кто виноват и как
> правильно. Важно, чтоб система загружалась. Поэтому нужно вкомпилить модуль
> прямо в ядро или откатится на более старое ядро, убрав проблемное из Сизифа..

Пожалуйста, не нужно тут этого обсуждать. Выбрать старое ядро вы можете в
загрузчике.
------- Comment #20 From 2018-04-28 17:22:00 -------
$ git grep -F 'crypto_alloc_shash("crc32c",'
arch/powerpc/crypto/crc-vpmsum_test.c:  crc32c_tfm =
crypto_alloc_shash("crc32c", 0, 0);
drivers/infiniband/hw/i40iw/i40iw_utils.c:      tfm =
crypto_alloc_shash("crc32c", 0, 0);
fs/ext4/super.c:        sbi->s_chksum_driver = crypto_alloc_shash("crc32c", 0,
0);
fs/jbd2/journal.c:              journal->j_chksum_driver =
crypto_alloc_shash("crc32c", 0, 0);
fs/jbd2/journal.c:                      journal->j_chksum_driver =
crypto_alloc_shash("crc32c",
lib/libcrc32c.c:        tfm = crypto_alloc_shash("crc32c", 0, 0);
------- Comment #21 From 2018-04-28 17:27:43 -------
Во все версии make-initrd, которые знают про возможную неявную зависимость ext4
на crc32c, нужно добавить некий Provides, например,
Provides: make-initrd-crc32c = 1

Тогда мы во все ядра, в которых есть эта неявная зависимость на crc32c,
поставим зависимость на make-initrd-crc32c >= 1

Нумерация этого Provides может пригодиться в будущем.
------- Comment #22 From 2018-04-28 17:29:11 -------
(В ответ на комментарий №20)
> $ git grep -F 'crypto_alloc_shash("crc32c",'
> fs/ext4/super.c:        sbi->s_chksum_driver = crypto_alloc_shash("crc32c", 0,
> 0);
> lib/libcrc32c.c:        tfm = crypto_alloc_shash("crc32c", 0, 0);

Именно. Но хочет он не libcrc32c, а crc16.

# modinfo ext4 |grep depends
depends:        mbcache,fscrypto,jbd2,crc16
------- Comment #23 From 2018-04-28 17:33:17 -------
(В ответ на комментарий №21)
> Во все версии make-initrd, которые знают про возможную неявную зависимость ext4
> на crc32c

Я написал хук/хак для этого.

> нужно добавить некий Provides, например,
> Provides: make-initrd-crc32c = 1

ОК. Добавлю в следующей версии.

> Тогда мы во все ядра, в которых есть эта неявная зависимость на crc32c,
> поставим зависимость на make-initrd-crc32c >= 1

Кстати, сейчас у модулей есть softdeps, которые будут учитываться в новом
make-initrd. Вы можете добавить:

softdep ext4 pre: libcrc32c
------- Comment #24 From 2018-04-28 17:34:15 -------
(In reply to comment #22)
> (В ответ на комментарий №20)
> > $ git grep -F 'crypto_alloc_shash("crc32c",'
> > fs/ext4/super.c:        sbi->s_chksum_driver = crypto_alloc_shash("crc32c", 0,
> > 0);
> > lib/libcrc32c.c:        tfm = crypto_alloc_shash("crc32c", 0, 0);
> 
> Именно. Но хочет он не libcrc32c, а crc16.

Ему нужен Synchronous Cryptographic Hash по имени "crc32c", он не знает, кто
его предоставляет, и его это не интересует.

> # modinfo ext4 |grep depends
> depends:        mbcache,fscrypto,jbd2,crc16

Это другое, см. git grep -Fw crc16 fs/ext4
------- Comment #25 From 2018-04-28 17:35:48 -------
(In reply to comment #23)
> Кстати, сейчас у модулей есть softdeps, которые будут учитываться в новом
> make-initrd. Вы можете добавить:
> 
> softdep ext4 pre: libcrc32c

Как это правильно сделать?
------- Comment #26 From 2018-04-28 18:01:21 -------
(В ответ на комментарий №25)
> Как это правильно сделать?

Вот так:

diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 7c46693..c79de2a 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -5860,5 +5860,6 @@ static void __exit ext4_exit_fs(void)
 MODULE_AUTHOR("Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger,
Theodore Ts'o and others");
 MODULE_DESCRIPTION("Fourth Extended Filesystem");
 MODULE_LICENSE("GPL");
+MODULE_SOFTDEP("pre: libcrc32c");
 module_init(ext4_init_fs)
 module_exit(ext4_exit_fs)
------- Comment #27 From 2018-04-28 18:08:54 -------
(In reply to comment #26)
> (В ответ на комментарий №25)
> > Как это правильно сделать?
> 
> Вот так:
> 
> diff --git a/fs/ext4/super.c b/fs/ext4/super.c
> index 7c46693..c79de2a 100644
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@ -5860,5 +5860,6 @@ static void __exit ext4_exit_fs(void)
>  MODULE_AUTHOR("Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger,
> Theodore Ts'o and others");
>  MODULE_DESCRIPTION("Fourth Extended Filesystem");
>  MODULE_LICENSE("GPL");
> +MODULE_SOFTDEP("pre: libcrc32c");

А почему именно libcrc32c?  libcrc32c экспортирует символ crc32c, но ext4
использует не этот символ, а crypto_alloc_shash("crc32c", 0, 0) напрямую.
Мне кажется, что softdep должен быть таким же, как и в lib/libcrc32c.c
------- Comment #28 From 2018-04-28 18:33:55 -------
(В ответ на комментарий №27)
> А почему именно libcrc32c?  libcrc32c экспортирует символ crc32c, но ext4
> использует не этот символ, а crypto_alloc_shash("crc32c", 0, 0) напрямую.
> Мне кажется, что softdep должен быть таким же, как и в lib/libcrc32c.c

Да, так правильнее.
------- Comment #29 From 2018-04-28 18:55:57 -------
Мне кажется, что MODULE_SOFTDEP("pre: crc32c") в ext4 - это abuse маханизма, и
апстримный мантейнер ext4 не согласится это добавлять.

По сути зависимость в ext4 реализована не soft, а очень даже hard.
В ядре есть механизм указать эту зависимость правильно?
------- Comment #30 From 2018-04-28 19:26:19 -------
(В ответ на комментарий №29)
> Мне кажется, что MODULE_SOFTDEP("pre: crc32c") в ext4 - это abuse маханизма, и
> апстримный мантейнер ext4 не согласится это добавлять.

Ты неправ. Инициализация опциональная, если есть фича METADATA_CSUM или
EA_INODE.

<<<
    /* Load the checksum driver */
    if (ext4_has_feature_metadata_csum(sb) ||
        ext4_has_feature_ea_inode(sb)) {
        sbi->s_chksum_driver = crypto_alloc_shash("crc32c", 0, 0);
        if (IS_ERR(sbi->s_chksum_driver)) {
            ext4_msg(sb, KERN_ERR, "Cannot load crc32c driver.");
            ret = PTR_ERR(sbi->s_chksum_driver);
            sbi->s_chksum_driver = NULL;
            goto failed_mount;
        }
    }
>>>

> По сути зависимость в ext4 реализована не soft, а очень даже hard.
> В ядре есть механизм указать эту зависимость правильно?

Это не явное указание т.к. crc32c предоставляют несколько модулей.

# grep 'alias crc32c ' modules.alias
alias crc32c crc32c_intel
alias crc32c crc32c_generic
------- Comment #31 From 2018-04-28 19:35:48 -------
(В ответ на комментарий №29)
> По сути зависимость в ext4 реализована не soft, а очень даже hard.
> В ядре есть механизм указать эту зависимость правильно?

Если я правильно понимаю, что зависимость на libcrc32c появляется автоматически
в случае явного использования crc32c. Чего-нибудь из <linux/crc32c.h>. Но я
нигде не видел зависимости именно на crc32c в modinfo.
------- Comment #32 From 2018-04-28 21:10:00 -------
(In reply to comment #30)
> (В ответ на комментарий №29)
> > Мне кажется, что MODULE_SOFTDEP("pre: crc32c") в ext4 - это abuse маханизма, и
> > апстримный мантейнер ext4 не согласится это добавлять.
> 
> Ты неправ. Инициализация опциональная, если есть фича METADATA_CSUM или
> EA_INODE.
> 
> <<<
>     /* Load the checksum driver */
>     if (ext4_has_feature_metadata_csum(sb) ||
>         ext4_has_feature_ea_inode(sb)) {
>         sbi->s_chksum_driver = crypto_alloc_shash("crc32c", 0, 0);
>         if (IS_ERR(sbi->s_chksum_driver)) {
>             ext4_msg(sb, KERN_ERR, "Cannot load crc32c driver.");
>             ret = PTR_ERR(sbi->s_chksum_driver);
>             sbi->s_chksum_driver = NULL;
>             goto failed_mount;
>         }
>     }
> >>>

Ты пропустил, что этой необязательности присвоили CVE, исправили и сбэкпортили
во все мыслимые и немыслимые ядра.
------- Comment #33 From 2018-04-28 21:10:50 -------
Коммит v4.16-rc1-18-ga45403b51582 ровно об этом.
------- Comment #34 From 2018-04-28 21:17:55 -------
(In reply to comment #31)
> (В ответ на комментарий №29)
> > По сути зависимость в ext4 реализована не soft, а очень даже hard.
> > В ядре есть механизм указать эту зависимость правильно?
> 
> Если я правильно понимаю, что зависимость на libcrc32c появляется автоматически
> в случае явного использования crc32c. Чего-нибудь из <linux/crc32c.h>. Но я
> нигде не видел зависимости именно на crc32c в modinfo.

Зависимость на libcrc32c появляется при использовании символов, предоставляемых
lib/libcrc32c.c:

$ grep EXPORT_SYMBOL lib/libcrc32c.c
EXPORT_SYMBOL(crc32c);
EXPORT_SYMBOL(crc32c_impl);

У ext4 теперь зависимость на провайдера crc32c.
Да, провайдер может быть какой угодно, но зависимость по сути жёсткая.

При этом зависимости на libcrc32c у ext4 нет не только формальной, но и
фактической.
------- Comment #35 From 2018-04-28 21:56:40 -------
(In reply to comment #32)
> Ты пропустил, что этой необязательности присвоили CVE, исправили и сбэкпортили
> во все мыслимые и немыслимые ядра.

окей, ещё не во все, пока "только" v4.17-rc1~134^2~11, v4.16.4~102,
v4.14.36~84.
------- Comment #36 From 2018-04-28 22:19:56 -------
(В ответ на комментарий №32)
> Ты пропустил, что этой необязательности присвоили CVE, исправили и сбэкпортили
> во все мыслимые и немыслимые ядра.

Да, у меня не самая свежая копия была.

> У ext4 теперь зависимость на провайдера crc32c.
> Да, провайдер может быть какой угодно, но зависимость по сути жёсткая.
> 
> При этом зависимости на libcrc32c у ext4 нет не только формальной, но и
> фактической.

Да, но я не видел, чтобы ставили зависимость на алиас crc32c. В этом наверное и
корень проблемы. Для указания алгоритма по имени сейчас используют softdep:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/cifs/cifsfs.c#n1491

Это плохой вариант, но он вроде как единственный сейчас.
------- Comment #37 From 2018-04-28 22:53:54 -------
(In reply to comment #36)
> (В ответ на комментарий №32)
> 
> > У ext4 теперь зависимость на провайдера crc32c.
> > Да, провайдер может быть какой угодно, но зависимость по сути жёсткая.
> > 
> > При этом зависимости на libcrc32c у ext4 нет не только формальной, но и
> > фактической.
> 
> Да, но я не видел, чтобы ставили зависимость на алиас crc32c. В этом наверное и
> корень проблемы. Для указания алгоритма по имени сейчас используют softdep:
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/cifs/cifsfs.c#n1491
> 
> Это плохой вариант, но он вроде как единственный сейчас.

Отправил https://lkml.kernel.org/r/20180428195044.GA14126@altlinux.org
Посмотрим, что ответят, но, видимо, завязываться на это не надо.
------- Comment #38 From 2018-04-28 23:21:39 -------
Я согласен с тем, что это никакой не softdep по смыслу.

> The softdep command allows you to specify soft, or optional, module dependencies.  modulename can be used without these optional modules installed, but usually with some features missing.
------- Comment #39 From 2018-04-28 23:26:13 -------
(В ответ на комментарий №37)
> Отправил https://lkml.kernel.org/r/20180428195044.GA14126@altlinux.org

Спасибо!

> Посмотрим, что ответят, но, видимо, завязываться на это не надо.

Конечно нельзя. Я уже закоммитил:

http://git.altlinux.org/people/legion/packages/make-initrd.git?p=make-initrd.git;a=commitdiff;h=5eebc7a50ac345402a7d8ba0a31c8e4207fd35cf

правда там с libcrc32c. Хоть и не большая ошибка, но всё-таки. Я проверил на
bug-report, что crc32c & co добавляются.
------- Comment #40 From 2018-04-28 23:42:11 -------
(В ответ на комментарий №37)
> Отправил https://lkml.kernel.org/r/20180428195044.GA14126@altlinux.org

Круто!

(В ответ на комментарий №39)
> > Посмотрим, что ответят, но, видимо, завязываться на это не надо.
> Конечно нельзя.

Выходит, make-initrd должен учитывать такие косяки с зависимостями.


> Я уже закоммитил

У меня только два практических вопроса. Как я понимаю, Алексей, Вы сами
поправите в Сизифе make-initrd? Нужно ли мне портировать это в p8? Там, где я
гвоздь не в ту дырку загнал?
------- Comment #41 From 2018-04-28 23:54:34 -------
(В ответ на комментарий №40)
> Выходит, make-initrd должен учитывать такие косяки с зависимостями.

Я не люблю людей и очень не хотел бы учитывать их косяки, но вы же сами видите,
что если этого не делать, то не система не будет грузиться )) Так что
приходится.

Задача make-initrd сделать всё, чтобы корень нашёлся и управление было передано
иниту с этого корня. Понятно, что не на всех ядрах и конфигурациях такое
возможно, но нужно стараться ))

> У меня только два практических вопроса. Как я понимаю, Алексей, Вы сами
> поправите в Сизифе make-initrd?

Да.

> Нужно ли мне портировать это в p8? Там, где я
> гвоздь не в ту дырку загнал?

Вот тут я вам ответить не могу. Там свои мантейнеры и свои начальники.
------- Comment #42 From 2018-04-28 23:58:06 -------
в p8 другой make-initrd. Лёня, можешь туда бэкпортировать нужные изменения.
------- Comment #43 From 2018-04-29 00:17:29 -------
(В ответ на комментарий №42)
> в p8 другой make-initrd. Лёня, можешь туда бэкпортировать нужные изменения.

Хорошо, сейчас сделаю сразу без test-only.
------- Comment #44 From 2018-04-29 00:37:06 -------
(In reply to comment #37)
> Отправил https://lkml.kernel.org/r/20180428195044.GA14126@altlinux.org
> Посмотрим, что ответят, но, видимо, завязываться на это не надо.

В свою очередь, отправил в
https://bugzilla.kernel.org/show_bug.cgi?id=199183#c7
------- Comment #45 From 2018-04-29 01:37:43 -------
(В ответ на комментарий №42)
> Лёня, можешь туда бэкпортировать нужные изменения.

Task #205415 готов, но нужно проверять, прежде чем апрувить. В принципе, уже не
к спеху, оно и со старым гвоздём какое-то время будет нормально работать...
------- Comment #46 From 2018-04-29 07:18:42 -------
в p8 без проверки сейчас ничего не попадает.
------- Comment #47 From 2018-04-29 16:53:20 -------
make-initrd-2.0.8-alt1 -> sisyphus:

Sun Apr 29 2018 Alexey Gladkov <legion@altlinux.ru> 2.0.8-alt1
- Add wrapper to read modalias with and without new line at the end.
- Add new way to add kernel modules into initramfs.
- Add new way how to put programs into initrd.
- Add hidden ext4 dependency (ALT#34865).
- Output information about image size.
- Require kinit-utils >= 1.5.25-alt5 (ALT#34457).
- Runtime changes:
  + Add timeout after all events to avoid race conditions.
  + Allow parameter to have more than one name in /proc/cmdline.
  + Load kernel parameters from all system configuration files.
- LUKS feature changes:
  + Make luks-dev an array.
- Ucode feature changes:
  + Add optional dependency to compress feature.
- Utilities:
  + depinfo: Add softdeps to dependencies.
- Command arguments:
  + make-initrd: Check for unknown features in config.
  + bug-report: Improve bug report creation.
  + bug-report: Add kernel modules dependencies.
- New:
  + Add modules-filesystem feature.
  + Add modules-network feature.
- Old:
  + Remove lxc feature.
------- Comment #48 From 2018-04-29 18:33:05 -------
(В ответ на комментарий №47)
> make-initrd-2.0.8-alt1 -> sisyphus:
> 
> Sun Apr 29 2018 Alexey Gladkov <legion@altlinux.ru> 2.0.8-alt1
> - Utilities:
>   + depinfo: Add softdeps to dependencies.

Вот это я в p8 не бэкпортировал. Наверное, стоит?

> - New:
>   + Add modules-filesystem feature.
>   + Add modules-network feature.

Алексей, может стоит описать на ВиКи детали и анонсировать в devel@? Очень
нужная вещь! Я бы даже предложил бэкпортировать в p8.
------- Comment #49 From 2018-04-29 21:02:19 -------
(В ответ на комментарий №48)
> (В ответ на комментарий №47)
> > make-initrd-2.0.8-alt1 -> sisyphus:
> > 
> > Sun Apr 29 2018 Alexey Gladkov <legion@altlinux.ru> 2.0.8-alt1

Блин, наша сборочница всё ещё светит полные адреса.

> > - Utilities:
> >   + depinfo: Add softdeps to dependencies.
> 
> Вот это я в p8 не бэкпортировал. Наверное, стоит?

Это к мантейнерам p8.

> > - New:
> >   + Add modules-filesystem feature.
> >   + Add modules-network feature.
> 
> Алексей, может стоит описать на ВиКи детали и анонсировать в devel@?

Может быть, но чего-то я сомневаюсь, что это интересно.
------- Comment #50 From 2018-04-29 22:10:27 -------
(In reply to comment #49)
> (В ответ на комментарий №48)
> > (В ответ на комментарий №47)
> > > make-initrd-2.0.8-alt1 -> sisyphus:
> > > 
> > > Sun Apr 29 2018 Alexey Gladkov <legion@altlinux.ru> 2.0.8-alt1
> 
> Блин, наша сборочница всё ещё светит полные адреса.

altlinux.org заменяется на altlinux, остальное остаётся как есть.
------- Comment #51 From 2018-04-30 09:28:38 -------
(В ответ на комментарий №50)
> > Блин, наша сборочница всё ещё светит полные адреса.
> 
> altlinux.org заменяется на altlinux, остальное остаётся как есть.

Ясно. Закрывать баги через changelog мне нельзя.
------- Comment #52 From 2018-04-30 09:36:57 -------
(In reply to comment #51)
> (В ответ на комментарий №50)
> > > Блин, наша сборочница всё ещё светит полные адреса.
> > 
> > altlinux.org заменяется на altlinux, остальное остаётся как есть.
> 
> Ясно. Закрывать баги через changelog мне нельзя.

Почему?
------- Comment #53 From 2018-04-30 09:53:01 -------
(В ответ на комментарий №52)
> (In reply to comment #51)
> > > altlinux.org заменяется на altlinux, остальное остаётся как есть.
> > 
> > Ясно. Закрывать баги через changelog мне нельзя.
> 
> Почему?

Эм ... ну потому что мой email светит сборочница.
Я не хочу менять домен на .org только ради неё.
------- Comment #54 From 2018-04-30 10:02:36 -------
(In reply to comment #53)
> (В ответ на комментарий №52)
> > (In reply to comment #51)
> > > > altlinux.org заменяется на altlinux, остальное остаётся как есть.
> > > 
> > > Ясно. Закрывать баги через changelog мне нельзя.
> > 
> > Почему?
> 
> Эм ... ну потому что мой email светит сборочница.
> Я не хочу менять домен на .org только ради неё.

.org лучше :)
------- Comment #55 From 2018-04-30 10:15:54 -------
(В ответ на комментарий №54)
> > Эм ... ну потому что мой email светит сборочница.
> > Я не хочу менять домен на .org только ради неё.
> 
> .org лучше :)

Чем ? Чем .ru ? )) Домен .ru у меня с 2003.
------- Comment #56 From 2018-04-30 10:17:57 -------
Не беспокойся, .ru сейчас в одинаковом статусе с .org
Да, Дима ?
------- Comment #57 From 2018-04-30 17:51:40 -------
Антон,

(В ответ на комментарий №40)
> > > - Utilities:
> > >   + depinfo: Add softdeps to dependencies.
> > Вот это я в p8 не бэкпортировал. Наверное, стоит?
> Это к мантейнерам p8.

(В ответ на комментарий №42)
> в p8 другой make-initrd. Лёня, можешь туда бэкпортировать нужные изменения.

В связи с багом #34871 и обсуждавшимися выше softdeps всё же посчитал важным
портировать новый depinfo 2.0.9 из Сизифа. Подготовил альтернативную сборку
0.8.15-alt1.M80P.7 в task #205433. Тестировать по полной лучше эту сборку, а
если не пойдёт, тогда уже старый вариант: task #205415.