[make-initrd] Fwd: [#269003] TESTED make-initrd.git=2.14.1-alt1

Leonid Krivoshein klark.devel at gmail.com
Mon Apr 5 23:33:14 MSK 2021


Алексей, привет!


Снова я, и снова про pipelinie. :-)

Очень черновая сборка для обсуждения готова. Она не для того, чтобы её 
апстримить. Образы (любые -- live, altinst, rescue) с этим уже можно 
собирать. Несколько дней бодались с одной проблемой и наконец удалось её 
победить. Но сейчас немного о другом -- мысли и пожелания вокруг pipeline...

1. Фича pipeline делалась на замену пропагатора видимо без учёта 
особенностей его работы. Разница оказалась ощутимой и для бесшовного 
перехода из stage1 в stage2 без необходимости править нынешние профили 
дистрибутивов, приходится идти на компромиссы и ухищрения. Менять stage2 
под pipeline вообще не вариант -- мы даже не знаем, где, когда и что 
выстрелит, и как это тестировать.

2. В интерфейс pipeline не выведена уже реализованная в make-initrd 
возможность работы с /proc/cmdline. Имею ввиду общие параметры, такие 
как lowmem, live или rescue. У каждой фичи -- свои аргументы. Пока не 
удалось побороть эту проблему, мой "config" оказался нерабочим. Может, 
нужно просто инклюдить какой-то файл?

3. /dev/pipeline/* -- длинные пути в mtab, не только монтируемые 
каталоги, но и устройства. Даже если это имеет право на жизнь в stage1, 
при переходе в stage2 оно должно умереть, как и не секьюрно 
смонтированный /dev/pipeline, куда можно загружать даже ISO'шки. :-) 
Вместо передачи dev и каталогов можно передавать симлинки на них (в 
дополнение), да и сам devname вместо dev передавать куда правильней, 
по-моему.

4. Сделать замену пропагатора одним большим монолитным куском в рамках 
pipeline нельзя. Как сейчас -- гармоничнее и можно чередовать куски из 
"пропагаторного стека" с нативными. Но есть проблемы [1] и [2]. 
Пропагатор монтирует всё внахлёст в /image, /root и /dev/ramN, при это 
он ещё отмонтирует и много чего другого делает, что не вписывается в 
парадигму pipeline.

5. Исходная идея pipeline -- организовать цепочку с входом и выходом у 
каждого элемента. А как быть в ситуациях, когда ты заказал дождаться 4х 
устройств? Выход ведь будет только у одного. Если именовать всю 
pipeline, сделать таких цепочек несколько и в каждой сделать свой 
waitpipe, можно строить более сложную логику загрузки их разных 
устройств и типов источников, синхронизируя события в других цепочках.

6. Я бы облегчил возможность определение одной pipeline
с: pipeline=waitdev,mountfs,mountfs,rootfs waitdev=/dev/name mounfs=ISO 
mountfs=squash
до: pipeline=waitdev=/dev/name,mountfs=ISO,mountfs=squash,rootfs
т.е.: pipeline=step1[=arg1[:arg2...]][,step2[=arg1[:arg2...]]...] и 
регистрировал бы их автоматически.
Возможно, это также поможет решить проблему [2].

7. Интерактивный ввод-вывод на этапе работы pipelined невозможен, разве 
что перенаправить ограниченный код в /dev/console. У пропагатора по ходу 
это было востребовано, что логично. Ну, хотя бы индикация загрузки 
больших образов, запрос режимов и источников загрузки. Хотелось бы во 
время работы шага прервать "фоновое" выполнение и перейти в интерактив, 
потом вернуться обратно.


В целом, хотелось услышать твоё мнение, чего с этим делать дальше? 
Строить ли рядышком с готовыми кусками шаги пропагаторного стека, как 
сейчас в черновом варианте, делать замену пропагатора отдельной фичей 
make-initrd или дождёшься (разрешишь) когда я перелопачу pipeline под 
новый лад и чуть больше адаптирую под пропагатор?




-------- Перенаправленное сообщение --------
Тема: 	[#269003] TESTED make-initrd.git=2.14.1-alt1
Дата: 	Mon, 5 Apr 2021 18:07:38 +0000
От: 	Girar awaiter (klark) <girar-builder at altlinux.org>
Отвечать: 	klark at altlinux.org
Кому: 	Leonid Krivoshein <klark at altlinux.org>
Копия: 	Alexey Gladkov <legion at altlinux.org>, 
girar-builder-sisyphus at altlinux.org, sisyphus-incominger at lists.altlinux.org



http://git.altlinux.org/tasks/269003/logs/events.1.1.log

subtask name aarch64 armh i586 ppc64le x86_64
#100 make-initrd 1:08 1:31 1:07 1:22 1:05

2021-Apr-05 18:00:48 :: test-only task #269003 for sisyphus started by 
klark:
#100 build 2.14.1-alt1 from /people/klark/packages/make-initrd.git 
fetched at 2021-Apr-05 18:00:47
2021-Apr-05 18:00:50 :: [x86_64] #100 make-initrd.git 2.14.1-alt1: build 
start
2021-Apr-05 18:00:50 :: [armh] #100 make-initrd.git 2.14.1-alt1: build start
2021-Apr-05 18:00:50 :: [aarch64] #100 make-initrd.git 2.14.1-alt1: 
build start
2021-Apr-05 18:00:50 :: [i586] #100 make-initrd.git 2.14.1-alt1: build start
2021-Apr-05 18:00:50 :: [ppc64le] #100 make-initrd.git 2.14.1-alt1: 
build start
2021-Apr-05 18:01:55 :: [x86_64] #100 make-initrd.git 2.14.1-alt1: build OK
2021-Apr-05 18:01:57 :: [i586] #100 make-initrd.git 2.14.1-alt1: build OK
2021-Apr-05 18:01:58 :: [aarch64] #100 make-initrd.git 2.14.1-alt1: build OK
2021-Apr-05 18:02:12 :: [ppc64le] #100 make-initrd.git 2.14.1-alt1: build OK
2021-Apr-05 18:02:21 :: [armh] #100 make-initrd.git 2.14.1-alt1: build OK
2021-Apr-05 18:03:05 :: #100: make-initrd.git 2.14.1-alt1: build check OK
2021-Apr-05 18:03:05 :: build check OK
warning (#100): make-initrd-devmapper-2.14.1-alt1.x86_64.rpm should be 
.noarch.rpm
warning (#100): make-initrd-luks-2.14.1-alt1.x86_64.rpm should be 
.noarch.rpm
warning (#100): make-initrd-lvm-2.14.1-alt1.x86_64.rpm should be .noarch.rpm
warning (#100): make-initrd-mdadm-2.14.1-alt1.x86_64.rpm should be 
.noarch.rpm
warning (#100): make-initrd-multipath-2.14.1-alt1.x86_64.rpm should be 
.noarch.rpm
warning (#100): make-initrd-nfs-2.14.1-alt1.x86_64.rpm should be .noarch.rpm
warning (#100): make-initrd-plymouth-2.14.1-alt1.x86_64.rpm should be 
.noarch.rpm
2021-Apr-05 18:03:15 :: noarch check OK
2021-Apr-05 18:03:17 :: plan: src +1 -1 =17879, aarch64 +9 -9 =29722, 
armh +9 -9 =27791, i586 +10 -10 =30615, ppc64le +9 -9 =29607, x86_64 +10 
-10 =31101
#100 make-initrd 2.14.0-alt1 -> 2.14.1-alt1
Sun Apr 04 2021 Leonid Krivoshein <klark at altlinux> 2.14.1-alt1
- Feature pipeline: introduce propagator compatibity layer. WIP!
2021-Apr-05 18:03:53 :: patched apt indices
2021-Apr-05 18:04:02 :: created next repo
2021-Apr-05 18:04:11 :: duplicate provides check OK
2021-Apr-05 18:04:36 :: dependencies check OK
2021-Apr-05 18:04:58 :: [x86_64 i586 aarch64 ppc64le armh] ELF symbols 
check OK
warning [i586]: make-initrd=2.14.1-alt1: circular dependencies on 
bootloader-utils=0.5.3-alt1
warning [x86_64]: make-initrd=2.14.1-alt1: circular dependencies on 
bootloader-utils=0.5.3-alt1
2021-Apr-05 18:05:13 :: [i586] #100 make-initrd: install check OK
2021-Apr-05 18:05:14 :: [x86_64] #100 make-initrd: install check OK
warning [aarch64]: make-initrd=2.14.1-alt1: circular dependencies on 
bootloader-utils=0.5.3-alt1
2021-Apr-05 18:05:15 :: [aarch64] #100 make-initrd: install check OK
warning [ppc64le]: make-initrd=2.14.1-alt1: circular dependencies on 
bootloader-utils=0.5.3-alt1
2021-Apr-05 18:05:18 :: [ppc64le] #100 make-initrd: install check OK
2021-Apr-05 18:05:21 :: [x86_64] #100 make-initrd-debuginfo: install 
check OK
2021-Apr-05 18:05:21 :: [i586] #100 make-initrd-debuginfo: install check OK
warning [armh]: make-initrd=2.14.1-alt1: circular dependencies on 
bootloader-utils=0.5.3-alt1
2021-Apr-05 18:05:24 :: [aarch64] #100 make-initrd-debuginfo: install 
check OK
2021-Apr-05 18:05:24 :: [armh] #100 make-initrd: install check OK
2021-Apr-05 18:05:28 :: [x86_64] #100 make-initrd-devmapper: install 
check OK
2021-Apr-05 18:05:28 :: [i586] #100 make-initrd-devmapper: install check OK
2021-Apr-05 18:05:29 :: [ppc64le] #100 make-initrd-debuginfo: install 
check OK
2021-Apr-05 18:05:31 :: [aarch64] #100 make-initrd-devmapper: install 
check OK
2021-Apr-05 18:05:34 :: [x86_64] #100 make-initrd-luks: install check OK
2021-Apr-05 18:05:35 :: [i586] #100 make-initrd-luks: install check OK
2021-Apr-05 18:05:38 :: [armh] #100 make-initrd-debuginfo: install check OK
2021-Apr-05 18:05:38 :: [aarch64] #100 make-initrd-luks: install check OK
2021-Apr-05 18:05:38 :: [ppc64le] #100 make-initrd-devmapper: install 
check OK
2021-Apr-05 18:05:41 :: [x86_64] #100 make-initrd-lvm: install check OK
2021-Apr-05 18:05:42 :: [i586] #100 make-initrd-lvm: install check OK
2021-Apr-05 18:05:46 :: [aarch64] #100 make-initrd-lvm: install check OK
2021-Apr-05 18:05:47 :: [x86_64] #100 make-initrd-mdadm: install check OK
2021-Apr-05 18:05:47 :: [ppc64le] #100 make-initrd-luks: install check OK
2021-Apr-05 18:05:48 :: [i586] #100 make-initrd-mdadm: install check OK
2021-Apr-05 18:05:50 :: [armh] #100 make-initrd-devmapper: install check OK
2021-Apr-05 18:05:53 :: [aarch64] #100 make-initrd-mdadm: install check OK
2021-Apr-05 18:05:53 :: [x86_64] #100 make-initrd-multipath: install 
check OK
2021-Apr-05 18:05:55 :: [i586] #100 make-initrd-multipath: install check OK
2021-Apr-05 18:05:57 :: [ppc64le] #100 make-initrd-lvm: install check OK
x86_64: make-initrd-nfs=2.14.1-alt1 post-install unowned files:
/usr/share/make-initrd
/usr/share/make-initrd/features
2021-Apr-05 18:05:58 :: [x86_64] #100 make-initrd-nfs: install check OK
i586: make-initrd-nfs=2.14.1-alt1 post-install unowned files:
/usr/share/make-initrd
/usr/share/make-initrd/features
2021-Apr-05 18:05:59 :: [i586] #100 make-initrd-nfs: install check OK
2021-Apr-05 18:06:00 :: [aarch64] #100 make-initrd-multipath: install 
check OK
2021-Apr-05 18:06:02 :: [armh] #100 make-initrd-luks: install check OK
aarch64: make-initrd-nfs=2.14.1-alt1 post-install unowned files:
/usr/share/make-initrd
/usr/share/make-initrd/features
2021-Apr-05 18:06:05 :: [aarch64] #100 make-initrd-nfs: install check OK
2021-Apr-05 18:06:06 :: [ppc64le] #100 make-initrd-mdadm: install check OK
2021-Apr-05 18:06:07 :: [x86_64] #100 make-initrd-plymouth: install check OK
2021-Apr-05 18:06:10 :: [i586] #100 make-initrd-plymouth: install check OK
2021-Apr-05 18:06:14 :: [armh] #100 make-initrd-lvm: install check OK
2021-Apr-05 18:06:15 :: [aarch64] #100 make-initrd-plymouth: install 
check OK
2021-Apr-05 18:06:15 :: [ppc64le] #100 make-initrd-multipath: install 
check OK
ppc64le: make-initrd-nfs=2.14.1-alt1 post-install unowned files:
/usr/share/make-initrd
/usr/share/make-initrd/features
2021-Apr-05 18:06:21 :: [ppc64le] #100 make-initrd-nfs: install check OK
2021-Apr-05 18:06:24 :: [x86_64] #100 make-initrd-ucode: install check OK
2021-Apr-05 18:06:25 :: [armh] #100 make-initrd-mdadm: install check OK
2021-Apr-05 18:06:28 :: [i586] #100 make-initrd-ucode: install check OK
2021-Apr-05 18:06:35 :: [ppc64le] #100 make-initrd-plymouth: install 
check OK
2021-Apr-05 18:06:37 :: [armh] #100 make-initrd-multipath: install check OK
armh: make-initrd-nfs=2.14.1-alt1 post-install unowned files:
/usr/share/make-initrd
/usr/share/make-initrd/features
2021-Apr-05 18:06:44 :: [armh] #100 make-initrd-nfs: install check OK
2021-Apr-05 18:07:00 :: [armh] #100 make-initrd-plymouth: install check OK
2021-Apr-05 18:07:13 :: [x86_64-i586] generated apt indices
2021-Apr-05 18:07:13 :: [x86_64-i586] created next repo
2021-Apr-05 18:07:20 :: [x86_64-i586] dependencies check OK
2021-Apr-05 18:07:20 :: gears inheritance check OK
2021-Apr-05 18:07:20 :: srpm inheritance check OK
girar-check-perms: access to make-initrd DENIED for klark: does not 
belong to approved builders list: legion check-subtask-perms: #100: 
make-initrd: Operation not permitted
2021-Apr-05 18:07:20 :: acl check IGNORED
2021-Apr-05 18:07:27 :: created contents_index files
2021-Apr-05 18:07:35 :: created hash files: aarch64 armh i586 ppc64le 
src x86_64
2021-Apr-05 18:07:38 :: task #269003 for sisyphus TESTED



More information about the Make-initrd mailing list