From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=zFEhaaqH89HfEuuK4ohzxPZOfAFvbhmEqzspQXjzObQ=; b=E50OFAaCU7jZPSX6w2DC/e98fbZeLHJhfQibzUqgNY9HhvYFwt/ZFf1pi2gUkHsExX AKZumb547fRQSsWQJsx5FJkIGLDkVulWxz3lE8L+RUudCysoRUqZplqY2yobAA40vR/A GJELj+fwplw9hc12Z37868161O4zE53GnBj8Mk5CU19fitsqxaKFg210nlPBXv+T0rHC Ns560OWo5SizS3yA/MuObjzICNq9ByfAhpTyPfWGceneIG74J+ye0AudXjl1KsgGQtpF qDkG5RKhCD8s+C/Hj85UzeyiYEG2SHyj3vigAwqb6Et08vZBRdGzs2u1kozMHovb1sou H9RA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=zFEhaaqH89HfEuuK4ohzxPZOfAFvbhmEqzspQXjzObQ=; b=enUBI8XZHjmdc8dUxH2FeEHx8qnEs6eqeHVxivVlQkaG0lNXQxt6rnXxYDsXiIuBRc 8GzmX3FJ4tm2ckUWy1QNrpikUTXdapoRaX8q86ODonA0IsDRV0bTPUGcjb6k9unGemHL DEtGgwvx/RGtAQ0Uxz5FbYsAuK4Ja9/o+OP5LYJQnYZckxcaUTZ8GcxqgxMl3Q1lB+bI Bt/q9L/ZJBdXu86Sg36yOyNkIhc7LUI7zbdZNnF/XE8WtKjRH0mxp7x4+yhQtZmsuDS1 OLT2O4ZzvBwbkHat5+nV0qLiEhI9H9uxGefKobJj7UIRyyEmPf2oQId2hh9GVkbPfG+7 XGpg== X-Gm-Message-State: AOAM533JUTAYq/fNxV6x2NuTRR4i2/GdFjOG7PdXnWLvusYZjADYMuBw 1d2LskxF1RUYMWF++YnrQG6oH9cLNiQ= X-Google-Smtp-Source: ABdhPJyAc5oYV5Aw7kdYtyAuOdJ2J0eRe4EmgyNDy3lz5TOb4UhksEYE8OiJ+GZvLEWCato4eDm/ww== X-Received: by 2002:a2e:a5c8:: with SMTP id n8mr24703692ljp.307.1635241148681; Tue, 26 Oct 2021 02:39:08 -0700 (PDT) To: make-initrd@lists.altlinux.org References: <20211024171959.6D48CA5E20@lists.altlinux.org> <20211026090823.wvxgqcpz3chr47du@example.org> From: Leonid Krivoshein Message-ID: Date: Tue, 26 Oct 2021 12:39:07 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <20211026090823.wvxgqcpz3chr47du@example.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: ru Subject: Re: [make-initrd] [PATCH v6 01/22] separate new feature of bootchain-core from pipeline X-BeenThere: make-initrd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: make-initrd@lists.altlinux.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Oct 2021 09:39:13 -0000 Archived-At: List-Archive: Привет! 26.10.2021 12:08, Alexey Gladkov пишет: > On Sun, Oct 24, 2021 at 08:19:59PM +0300, Leonid Krivoshein wrote: >> Pipeline live as an add-in over bootchain-core for backward >> compatibility with already existing solutions. >> For bootchain-core it is planned to implement a number of >> new features to cover the tasks of bootloading the installer >> and live systems. >> >> Signed-off-by: Leonid Krivoshein >> --- >> features/bootchain-core/README.md | 82 +++++++++++++++++++ >> features/bootchain-core/config.mk | 8 ++ >> .../data/etc/initrd/cmdline.d/bootchain-core} | 3 +- >> .../data/etc/rc.d/init.d/bootchain} | 8 +- >> .../udev/rules.d/50-bootchain-waitdev.rules} | 2 +- >> .../data/lib/bootchain}/getimage | 2 +- >> .../data/lib/bootchain}/mountfs | 2 +- >> .../data/lib/bootchain}/overlayfs | 2 +- >> .../data/lib/bootchain}/rootfs | 2 +- >> .../data/lib/bootchain}/waitdev | 4 +- >> .../data/lib/initrd/cmdline.d/bootchain | 6 ++ >> .../data/lib/initrd/cmdline.d/pipeline | 2 +- >> .../lib/uevent/filters/bootchain-waitdev} | 4 +- >> .../data/sbin/bootchain-sh-functions} | 12 +-- >> .../data/sbin/chaind} | 22 ++--- >> features/bootchain-core/rules.mk | 4 + >> features/pipeline/config.mk | 9 +- >> features/pipeline/rules.mk | 6 -- >> 18 files changed, 134 insertions(+), 46 deletions(-) >> create mode 100644 features/bootchain-core/README.md >> create mode 100644 features/bootchain-core/config.mk >> rename features/{pipeline/data/etc/initrd/cmdline.d/pipeline => bootchain-core/data/etc/initrd/cmdline.d/bootchain-core} (63%) >> rename features/{pipeline/data/etc/rc.d/init.d/pipeline => bootchain-core/data/etc/rc.d/init.d/bootchain} (83%) >> rename features/{pipeline/data/etc/udev/rules.d/50-pipeline-waitdev.rules => bootchain-core/data/etc/udev/rules.d/50-bootchain-waitdev.rules} (77%) >> rename features/{pipeline/data/lib/pipeline => bootchain-core/data/lib/bootchain}/getimage (93%) >> rename features/{pipeline/data/lib/pipeline => bootchain-core/data/lib/bootchain}/mountfs (91%) >> rename features/{pipeline/data/lib/pipeline => bootchain-core/data/lib/bootchain}/overlayfs (95%) >> rename features/{pipeline/data/lib/pipeline => bootchain-core/data/lib/bootchain}/rootfs (86%) >> rename features/{pipeline/data/lib/pipeline => bootchain-core/data/lib/bootchain}/waitdev (83%) >> create mode 100755 features/bootchain-core/data/lib/initrd/cmdline.d/bootchain >> rename features/{pipeline => bootchain-core}/data/lib/initrd/cmdline.d/pipeline (64%) >> rename features/{pipeline/data/lib/uevent/filters/pipeline-waitdev => bootchain-core/data/lib/uevent/filters/bootchain-waitdev} (77%) >> rename features/{pipeline/data/sbin/pipeline-sh-functions => bootchain-core/data/sbin/bootchain-sh-functions} (70%) >> rename features/{pipeline/data/sbin/pipelined => bootchain-core/data/sbin/chaind} (78%) >> create mode 100644 features/bootchain-core/rules.mk >> >> diff --git a/features/bootchain-core/README.md b/features/bootchain-core/README.md >> new file mode 100644 >> index 0000000..ce2bf98 >> --- /dev/null >> +++ b/features/bootchain-core/README.md >> @@ -0,0 +1,82 @@ >> +# Feature: bootchain-core >> + >> +`bootchain-core` - it's a fork and further development the original >> +feature of `pipeline`. This feature allow us to consistently setup >> +steps-scripts one by one. For details about `pipeline` you can see >> +in ../features/pipeline/README.md. >> + >> +In fork process `pipeline` was divided by three parts: >> + >> +- `bootchain-core` - the main functional of feature `pipeline`, common >> + API and daemon. >> +- `bootchain-getimage` - method to networking boot from ISO-image with >> + the wget utility. >> +- `bootchain-waitdev` - method to boot from specified local media. >> + >> +The future work with `bootchain` allowed us to create a few modules. >> +They are expected to be upstream soon. This divide on modules allow >> +us to optimize fill in `initramfs` only which we are need. >> + >> +## Main components of bootchain-core >> + >> +- `/sbin/bootchain-sh-functions` - common API and evolution >> + of `pipeline-sh-functions`. >> +- `/sbin/chaind` - daemon, evolution of `pipelined`. >> +- `/etc/rc.d/init.d/bootchain` - sysvinit start script. >> + >> +## Reasons of making fork and rename pipeline >> + >> +- A set of `bootchain` modules was developed in order to create a >> + replacement in stage1 programs `propagator`, fully integrated into >> + the run-time `make-initrd`. In the original version, the `pipeline` >> + feature did not satisfy this need. At an early stage of development, >> + it was not yet known what functionality `bootchain` would eventually >> + have, how far it would go from the fork and be able to whether to be >> + fully compatible with it. >> +- For some time, the development of `bootchain` was carried out independently >> + of the main project `make-initrd`. To build and test bootable disks with >> + `make-initrd` and `bootchain` so that `bootchain` does not depend on >> + `make-initrd` versions, so that not intersect with the `pipeline` features >> + built into the `make-initrd` and so as not to interfere the author of >> + `make-initrd`, the `pipeline` feature had to be copied under a different >> + name, giving it a more appropriate name at the same time. >> +- The result of the completed step is not always used next. Steps-scripts >> + they can use the results not only of the previous one, but also of any >> + earlier one the completed step. So it's not a pipeline in its purest >> + form, but rather a chain loading steps, the sequence of actions performed. >> + >> +## External elements of the bootchain (steps-scripts) >> + >> +- `mountfs` - mounts a file or device from the result of the previous or other >> + specified step. >> +- `overlayfs` - combines one or more elements of the boot chain using overlayfs. >> +- `rootfs` - forces the daemon to use the result of the previous element as the >> + found root of stage 2. >> + >> +## Boot parameters >> + >> +- `bootchain=name1[,name2][,name3]` - defines the initial state of the boot >> + chains, i.e. the steps that the daemon must go through one by one. These can >> + be both built-in pseudo-steps and real scripts of the actions performed. The >> + names these steps are listed separated by commas. >> +- `pipeline=name1[,name2][,name3]` - alias for `bootchain=...`. >> +- `mountfs=target` - specifies the file or device to be mounted. >> +- `overlayfs=list` - defines the list of elements to combine. >> + >> +## bootchain-sh-functions API >> + >> +- check_parameter() - checks that the required parameter is not empty, otherwise >> + it exits via fatal(). >> +- get_parameter() - outputs the value of the parameter of the current step by >> + the index $callnum. >> +- resolve_target() - output the path to a file, directory or device, depending >> + on from the parameter. >> +- run() - run an external command. >> + >> +## Example >> + >> +Cmdline: root=pipeline pipeline=getimage,mountfs,overlayfs,rootfs getimage=http://ftp.altlinux.org/pub/people/mike/iso/misc/vi-20140918-i586.iso mountfs=rescue >> + >> +Following these parameters, the daemon loads the image "vi-20140918-i586.iso", >> +mounts it via the loop device, mounts the "rescue" file from it as squashfs of >> +the root system, makes it writable using overlayfs and tries to boot from it. >> diff --git a/features/bootchain-core/config.mk b/features/bootchain-core/config.mk >> new file mode 100644 >> index 0000000..33e66ed >> --- /dev/null >> +++ b/features/bootchain-core/config.mk >> @@ -0,0 +1,8 @@ >> +$(call feature-requires,depmod-image add-udev-rules) >> + >> +BOOTCHAIN_CORE_DATADIR = $(FEATURESDIR)/bootchain-core/data >> + >> +BOOTCHAIN_CORE_RULES = \ >> + *-cdrom_id.rules >> + >> +BOOTCHAIN_CORE_MODULES = isofs squashfs overlay >> diff --git a/features/pipeline/data/etc/initrd/cmdline.d/pipeline b/features/bootchain-core/data/etc/initrd/cmdline.d/bootchain-core >> similarity index 63% >> rename from features/pipeline/data/etc/initrd/cmdline.d/pipeline >> rename to features/bootchain-core/data/etc/initrd/cmdline.d/bootchain-core >> index 4200d57..8af3a20 100644 >> --- a/features/pipeline/data/etc/initrd/cmdline.d/pipeline >> +++ b/features/bootchain-core/data/etc/initrd/cmdline.d/bootchain-core >> @@ -1,4 +1,5 @@ >> -register_parameter string PIPELINE >> +register_parameter string BOOTCHAIN >> +register_alias BOOTCHAIN PIPELINE >> register_array string GETIMAGE >> register_array string MOUNTFS >> register_array string OVERLAYFS >> diff --git a/features/pipeline/data/etc/rc.d/init.d/pipeline b/features/bootchain-core/data/etc/rc.d/init.d/bootchain >> similarity index 83% >> rename from features/pipeline/data/etc/rc.d/init.d/pipeline >> rename to features/bootchain-core/data/etc/rc.d/init.d/bootchain >> index 89d9de5..1be6d39 100755 >> --- a/features/pipeline/data/etc/rc.d/init.d/pipeline >> +++ b/features/bootchain-core/data/etc/rc.d/init.d/bootchain >> @@ -1,6 +1,6 @@ >> #!/bin/bash >> ### BEGIN INIT INFO >> -# Provides: pipeline >> +# Provides: bootchain >> # Required-Start: uevent udev >> # Should-Start: >> # Required-Stop: >> @@ -13,14 +13,14 @@ >> . /.initrd/initenv >> . /etc/init.d/template >> >> -NAME=pipelined >> +NAME=chaind >> PIDFILE="/var/run/$NAME.pid" >> ARGS="--lockfile $LOCKFILE --pidfile $PIDFILE --name $NAME --displayname $NAME" >> >> prepare() { >> local dir i n >> >> - dir=/.initrd/pipeline/waitdev >> + dir=/.initrd/bootchain/waitdev >> mkdir -p -- "$dir" >> >> i=0 >> @@ -32,7 +32,7 @@ prepare() { >> >> start() { >> RETVAL=0 >> - if [ "${ROOT-}" = pipeline ]; then >> + if [ "${ROOT-}" = bootchain ] || [ "${ROOT-}" = pipeline ]; then >> prepare >> start_daemon --background $ARGS "$NAME" >> RETVAL=$? >> diff --git a/features/pipeline/data/etc/udev/rules.d/50-pipeline-waitdev.rules b/features/bootchain-core/data/etc/udev/rules.d/50-bootchain-waitdev.rules >> similarity index 77% >> rename from features/pipeline/data/etc/udev/rules.d/50-pipeline-waitdev.rules >> rename to features/bootchain-core/data/etc/udev/rules.d/50-bootchain-waitdev.rules >> index e473deb..e4b8616 100644 >> --- a/features/pipeline/data/etc/udev/rules.d/50-pipeline-waitdev.rules >> +++ b/features/bootchain-core/data/etc/udev/rules.d/50-bootchain-waitdev.rules >> @@ -1 +1 @@ >> -SUBSYSTEM=="block", ACTION!="remove", RUN+="/lib/uevent/filters/pipeline-waitdev" >> +SUBSYSTEM=="block", ACTION!="remove", RUN+="/lib/uevent/filters/bootchain-waitdev" >> diff --git a/features/pipeline/data/lib/pipeline/getimage b/features/bootchain-core/data/lib/bootchain/getimage >> similarity index 93% >> rename from features/pipeline/data/lib/pipeline/getimage >> rename to features/bootchain-core/data/lib/bootchain/getimage >> index 409ad14..1f141ac 100755 >> --- a/features/pipeline/data/lib/pipeline/getimage >> +++ b/features/bootchain-core/data/lib/bootchain/getimage >> @@ -1,6 +1,6 @@ >> #!/bin/bash -efu >> >> -. pipeline-sh-functions >> +. bootchain-sh-functions >> >> check_parameter GETIMAGE >> url="$(get_parameter GETIMAGE)" >> diff --git a/features/pipeline/data/lib/pipeline/mountfs b/features/bootchain-core/data/lib/bootchain/mountfs >> similarity index 91% >> rename from features/pipeline/data/lib/pipeline/mountfs >> rename to features/bootchain-core/data/lib/bootchain/mountfs >> index d15ae91..45ffa68 100755 >> --- a/features/pipeline/data/lib/pipeline/mountfs >> +++ b/features/bootchain-core/data/lib/bootchain/mountfs >> @@ -1,6 +1,6 @@ >> #!/bin/bash -efu >> >> -. pipeline-sh-functions >> +. bootchain-sh-functions >> >> check_parameter MOUNTFS >> param="$(get_parameter MOUNTFS)" >> diff --git a/features/pipeline/data/lib/pipeline/overlayfs b/features/bootchain-core/data/lib/bootchain/overlayfs >> similarity index 95% >> rename from features/pipeline/data/lib/pipeline/overlayfs >> rename to features/bootchain-core/data/lib/bootchain/overlayfs >> index 23b869b..58261cc 100755 >> --- a/features/pipeline/data/lib/pipeline/overlayfs >> +++ b/features/bootchain-core/data/lib/bootchain/overlayfs >> @@ -1,6 +1,6 @@ >> #!/bin/bash -efu >> >> -. pipeline-sh-functions >> +. bootchain-sh-functions >> >> target="$(get_parameter OVERLAYFS)" >> >> diff --git a/features/pipeline/data/lib/pipeline/rootfs b/features/bootchain-core/data/lib/bootchain/rootfs >> similarity index 86% >> rename from features/pipeline/data/lib/pipeline/rootfs >> rename to features/bootchain-core/data/lib/bootchain/rootfs >> index e4b2ca9..6ac64a6 100755 >> --- a/features/pipeline/data/lib/pipeline/rootfs >> +++ b/features/bootchain-core/data/lib/bootchain/rootfs >> @@ -1,6 +1,6 @@ >> #!/bin/bash -efu >> >> -. pipeline-sh-functions >> +. bootchain-sh-functions >> >> [ -n "$prevdir" ] || >> fatal "no previous step to use as rootfs" >> diff --git a/features/pipeline/data/lib/pipeline/waitdev b/features/bootchain-core/data/lib/bootchain/waitdev >> similarity index 83% >> rename from features/pipeline/data/lib/pipeline/waitdev >> rename to features/bootchain-core/data/lib/bootchain/waitdev >> index f818cc5..74af6ea 100755 >> --- a/features/pipeline/data/lib/pipeline/waitdev >> +++ b/features/bootchain-core/data/lib/bootchain/waitdev >> @@ -1,12 +1,12 @@ >> #!/bin/bash -efu >> >> -. pipeline-sh-functions >> +. bootchain-sh-functions >> >> check_parameter WAITDEV >> devspec="$(get_parameter WAITDEV)" >> >> while [ -n "$devspec" ]; do >> - envfile="/.initrd/pipeline/waitdev/$callnum" >> + envfile="/.initrd/bootchain/waitdev/$callnum" >> >> if [ -s "$envfile" ]; then >> devfile= >> diff --git a/features/bootchain-core/data/lib/initrd/cmdline.d/bootchain b/features/bootchain-core/data/lib/initrd/cmdline.d/bootchain >> new file mode 100755 >> index 0000000..b692f6d >> --- /dev/null >> +++ b/features/bootchain-core/data/lib/initrd/cmdline.d/bootchain >> @@ -0,0 +1,6 @@ >> +#!/bin/bash -efu >> + >> +. /.initrd/initenv >> + >> +[ "${ROOT-}" != bootchain ] || >> + echo bootchain > /etc/initrd/method >> diff --git a/features/pipeline/data/lib/initrd/cmdline.d/pipeline b/features/bootchain-core/data/lib/initrd/cmdline.d/pipeline >> similarity index 64% >> rename from features/pipeline/data/lib/initrd/cmdline.d/pipeline >> rename to features/bootchain-core/data/lib/initrd/cmdline.d/pipeline >> index ac65b68..21b164c 100755 >> --- a/features/pipeline/data/lib/initrd/cmdline.d/pipeline >> +++ b/features/bootchain-core/data/lib/initrd/cmdline.d/pipeline >> @@ -3,4 +3,4 @@ >> . /.initrd/initenv >> >> [ "${ROOT-}" != pipeline ] || >> - echo pipeline > /etc/initrd/method >> + echo bootchain > /etc/initrd/method >> diff --git a/features/pipeline/data/lib/uevent/filters/pipeline-waitdev b/features/bootchain-core/data/lib/uevent/filters/bootchain-waitdev >> similarity index 77% >> rename from features/pipeline/data/lib/uevent/filters/pipeline-waitdev >> rename to features/bootchain-core/data/lib/uevent/filters/bootchain-waitdev >> index d975006..272aee7 100755 >> --- a/features/pipeline/data/lib/uevent/filters/pipeline-waitdev >> +++ b/features/bootchain-core/data/lib/uevent/filters/bootchain-waitdev >> @@ -3,8 +3,8 @@ >> . /.initrd/initenv >> . initrd-sh-functions >> >> -mkdir -p -- /.initrd/pipeline/waitdev >> -cd /.initrd/pipeline/waitdev >> +mkdir -p -- /.initrd/bootchain/waitdev >> +cd /.initrd/bootchain/waitdev/ >> >> i=0 >> while [ "$i" -lt "${WAITDEV:-0}" ]; do >> diff --git a/features/pipeline/data/sbin/pipeline-sh-functions b/features/bootchain-core/data/sbin/bootchain-sh-functions >> similarity index 70% >> rename from features/pipeline/data/sbin/pipeline-sh-functions >> rename to features/bootchain-core/data/sbin/bootchain-sh-functions >> index 662d069..fa6201f 100644 >> --- a/features/pipeline/data/sbin/pipeline-sh-functions >> +++ b/features/bootchain-core/data/sbin/bootchain-sh-functions >> @@ -1,13 +1,13 @@ >> #!/bin/bash -efu >> >> -if [ -z "${__pipeline_sh_functions-}" ]; then >> -__pipeline_sh_functions=1 >> +if [ -z "${__bootchain_sh_functions-}" ]; then >> +__bootchain_sh_functions=1 >> >> . /.initrd/initenv >> . shell-signal >> >> -handlerdir="/lib/pipeline" >> -mntdir="/dev/pipeline" >> +handlerdir=/lib/bootchain >> +[ "${ROOT-}" = pipeline ] && mntdir=/dev/pipeline || mntdir=/dev/bootchain >> >> check_parameter() >> { >> @@ -29,7 +29,7 @@ resolve_target() >> '') >> ;; >> pipe[0-9]|pipe[0-9][0-9]|pipe[0-9][0-9][0-9]) >> - target="$mntdir/dst/$target" >> + target="$mntdir/dst/step${target:4}" >> ;; > Тут явно что-то не то. > > Ты переименовал pipe* в step* и сделал это изменение для сохранения > обратной совместимости. Только что будет если в качестве аргумента этой > функции передадут новое имя step* ? Очевидно, сейчас не будет реакции на step*. > Кажется, потерян ещё один кейс: > > step[0-9]|step[0-9][0-9]|step[0-9][0-9][0-9]) > target="$mntdir/dst/$target" > ;; Не потерян. Сначала тоже думал именно так реализовать, потом сделал немного иначе. В следующих коммитах это будет видно. Работает прямая адресация, как раньше -- pipe* и потом добавится step-, адресация в обратную сторону относительно текущего шага. С минусом интуитивно понятней. Если хочешь, давай сделаем алиас step = pipe для прямой адресации. >> *) >> if [ -z "${prevdir-}" ]; then >> @@ -48,4 +48,4 @@ run() >> "$@" >> } >> >> -fi # __pipeline_sh_functions >> +fi # __bootchain_sh_functions >> diff --git a/features/pipeline/data/sbin/pipelined b/features/bootchain-core/data/sbin/chaind >> similarity index 78% >> rename from features/pipeline/data/sbin/pipelined >> rename to features/bootchain-core/data/sbin/chaind >> index 1d30061..d401101 100755 >> --- a/features/pipeline/data/sbin/pipelined >> +++ b/features/bootchain-core/data/sbin/chaind >> @@ -21,7 +21,7 @@ exit_handler() >> set_cleanup_handler exit_handler >> echo "$$" >"$pidfile" >> >> -. pipeline-sh-functions >> +. bootchain-sh-functions >> >> >> [ "${RDLOG-}" != 'console' ] || >> @@ -35,22 +35,22 @@ mkdir -p -- "$mntdir" >> mountpoint -q "$mntdir" || >> mount -t tmpfs tmpfs "$mntdir" ||: >> >> -pipenum=0 >> -pipe="$PIPELINE" >> +stepnum=0 >> +chainsteps="$BOOTCHAIN" >> datadir= >> destdir= >> >> -while [ -n "$pipe" ]; do >> - name="${pipe%%,*}" >> +while [ -n "$chainsteps" ]; do >> + name="${chainsteps%%,*}" >> exe="$handlerdir/$name" >> >> if [ -x "$exe" ]; then >> eval "callnum=\"\${callnum_$name:-0}\"" >> >> - datadir="$mntdir/src/pipe$pipenum" >> - destdir="$mntdir/dst/pipe$pipenum" >> + datadir="$mntdir/src/step$stepnum" >> + destdir="$mntdir/dst/step$stepnum" >> >> - [ "$pipenum" != 0 ] || >> + [ "$stepnum" != 0 ] || >> prevdir="" >> >> mkdir -p -- "$datadir" "$destdir" >> @@ -80,8 +80,8 @@ while [ -n "$pipe" ]; do >> eval "callnum_$name=\"\$callnum\"" >> fi >> >> - pipe="${pipe#$name}" >> - pipe="${pipe#,}" >> + chainsteps="${chainsteps#$name}" >> + chainsteps="${chainsteps#,}" >> >> - pipenum=$(($pipenum + 1)) >> + stepnum=$(($stepnum + 1)) >> done >> diff --git a/features/bootchain-core/rules.mk b/features/bootchain-core/rules.mk >> new file mode 100644 >> index 0000000..724a0b0 >> --- /dev/null >> +++ b/features/bootchain-core/rules.mk >> @@ -0,0 +1,4 @@ >> +MODULES_TRY_ADD += $(BOOTCHAIN_CORE_MODULES) >> + >> +PUT_UDEV_RULES += $(BOOTCHAIN_CORE_RULES) >> +PUT_FEATURE_DIRS += $(BOOTCHAIN_CORE_DATADIR) >> diff --git a/features/pipeline/config.mk b/features/pipeline/config.mk >> index 9172528..3ff29ac 100644 >> --- a/features/pipeline/config.mk >> +++ b/features/pipeline/config.mk >> @@ -1,8 +1 @@ >> -$(call feature-requires,depmod-image add-udev-rules) >> - >> -PIPELINE_DATADIR = $(FEATURESDIR)/pipeline/data >> - >> -PIPELINE_RULES = \ >> - *-cdrom_id.rules >> - >> -PIPELINE_MODULES = isofs squashfs overlay >> +$(call feature-requires,bootchain-core) >> diff --git a/features/pipeline/rules.mk b/features/pipeline/rules.mk >> index 3ccd260..e69de29 100644 >> --- a/features/pipeline/rules.mk >> +++ b/features/pipeline/rules.mk >> @@ -1,6 +0,0 @@ >> -MODULES_TRY_ADD += $(PIPELINE_MODULES) >> - >> -PUT_UDEV_RULES += $(PIPELINE_RULES) >> - >> -PUT_FEATURE_DIRS += $(PIPELINE_DATADIR) >> -PUT_FEATURE_FILES += $(PIPELINE_FILES) >> -- >> 2.24.1 >> >> _______________________________________________ >> Make-initrd mailing list >> Make-initrd@lists.altlinux.org >> https://lists.altlinux.org/mailman/listinfo/make-initrd >> -- Best regards, Leonid Krivoshein.