Идея заключается чтобы для каждой компоненты-стадии (boot, disk, install2, live, rescue,.....) можно было указывать в ее конфигурацонном файле ($IDENT/config) тип желаемого образа на выходе (tgz, tbz2, cpio, squashfs) например: IMAGE_TYPE="cpio" Вот наброс патча: --- spt 2007-03-14 03:35:43 +0300 +++ my-spt 2007-04-05 13:38:20 +0400 @@ -37,8 +37,10 @@ create_image() { Verbose "Creating image for \`$IDENT'." + [ -n "$IMAGE_TYPE" ] || IMAGE_TYPE="$image_type" + Verbose "image type: \`$IMAGE_TYPE'." - case "$image_type" in + case "$IMAGE_TYPE" in squashfs) init_chroot_progs "squashfsprogs" cp -a "$tmpdir/.archive.tar" "$chroot/tmp/" @@ -57,6 +59,20 @@ mkiso= cat "$tmpdir/.archive.tar" | gzip -f9 > "$workdir/$OUT.tar.gz" ;; + cpio) + init_chroot_progs "cpio findutils" + cp -a "$tmpdir/.archive.tar" "$chroot/tmp/" +cat >"$tmpdir/script" <<'__EOF__' +mkdir -p /tmp/.archive +tar -C /tmp/.archive -xf /tmp/.archive.tar +cd /tmp/.archive +find . | cpio -o -H newc > /.image +__EOF__ + chroot_exec "$tmpdir/script" + mv -f -- "$chroot/.image" "$outdir/$OUT" + gzip "$outdir/$OUT" + mv "$outdir/$OUT.gz" "$outdir/$OUT" + ;; *) Fatal 'Unsupported image type.' ;; @@ -115,7 +132,7 @@ if [ -n "$HOOKPKGS" ]; then Verbose "Installation packages for hook" - hsh-install "$workdir" $verbose $quiet $excludedocs ${number:+--number="$number"} $HOOKPKGS + hsh-install "$workdir" $verbose $quiet $excludedocs ${number:+--number="$number"} --save-fakeroot $HOOKPKGS fi packages="$profile_dir/$IDENT/packages" @@ -151,12 +168,12 @@ runto_components() { local cmd comp - local IDENT VENDOR COPYONLY INSTALLDIR NOIMAGE EXTRAOPTS FILES OUT + local IDENT VENDOR COPYONLY INSTALLDIR NOIMAGE EXTRAOPTS FILES OUT IMAGE_TYPE cmd="$1" && shift for comp in $COMPONENTS; do - IDENT="packages" VENDOR="ALTLinux" COPYONLY= INSTALLDIR= NOIMAGE= EXTRAOPTS= FILES= OU T= + IDENT="packages" VENDOR="ALTLinux" COPYONLY= INSTALLDIR= NOIMAGE= EXTRAOPTS= FILES= OU T= IMAGE_TYPE= . "$profile_dir/$comp/config" || Fatal "File \`$profile_dir/$comp/config' not found."
Created attachment 1886 [details] пример патча
Пример выглядит вполне рабочим. 2lakostis: просьба приложить этот патч, нужно для сборки средств тестирования железа (firmwarekit) для серверного и десктопного дистрибутивов.
И строки для isolinux.cfg.in туда же: label firmware kernel alt0/vmlinuz append initrd=biostest splash=verbose biostest showopts
Created attachment 1890 [details] biostest.tar.gz Пример компоненты
Так же нужно, чтобы OUT от компоненты можно было укладывать в /isolinux создавамого образа. При этом прифиль содержит компоненты livecd и biostest. У меня затерлись данные в /isolinux от 1-й, если 2 компоненты туда хотят положить файлы.
Created attachment 1922 [details] IMAGE_TYPE and TO_ISOLINUX derectives together Для компоненты можно указывать тип образа на выходе: IMAGE_TYPE="cpio" и возможность помещения выходного образа в каталог isolinux: TO_ISOLINUX="yes" (чтоб была возможность обращения из isolinux.cfg, при загрузке)
Предлагаю оставить spt в покое, а дорабатывать при необходимости -- mkimage.
По факту я уже не интересуюсь spt.
apparently wontfix
На всякий случай перевешу, чтоб выяснить, есть ли уже такой функционал и нужен ли он вообще, если нет. Это было нужно для создания специального образа для утилиты тестирования оборудования (уже забыл, как называется), чтоб прямо с DVD ее запускать P.S. Детали у Stanv (он пока в отпуске)
В mkimage каждая стадия имеет свой тип. Из того что я понял, всё это уже есть в mkimage.