Bug 11370

Summary: Тип образа на выходе для каждой компоненты (стадии)
Product: Sisyphus Reporter: Andriy Stepanov <stanv>
Component: mkimageAssignee: Alexey Gladkov <legion>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: glebfm, ldv, legion, mike, rider, zerg
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
пример патча
none
biostest.tar.gz
none
IMAGE_TYPE and TO_ISOLINUX derectives together none

Description Andriy Stepanov 2007-04-05 15:28:48 MSD
Идея заключается чтобы для каждой компоненты-стадии
(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."
Comment 1 Andriy Stepanov 2007-04-05 16:09:51 MSD
Created attachment 1886 [details]
пример патча
Comment 2 Anton Farygin 2007-04-05 16:11:06 MSD
Пример выглядит вполне рабочим. 2lakostis: просьба приложить этот патч, нужно
для сборки средств тестирования железа (firmwarekit) для серверного и
десктопного дистрибутивов.
Comment 3 Sergey V Turchin 2007-04-05 17:04:35 MSD
И строки для isolinux.cfg.in туда же:
label firmware
  kernel alt0/vmlinuz
  append initrd=biostest splash=verbose biostest showopts
Comment 4 Sergey V Turchin 2007-04-06 17:10:20 MSD
Created attachment 1890 [details]
biostest.tar.gz

Пример компоненты
Comment 5 Sergey V Turchin 2007-04-06 17:14:46 MSD
Так же нужно, чтобы OUT от компоненты можно было укладывать в /isolinux 
создавамого образа.
При этом прифиль содержит компоненты livecd и biostest.
У меня затерлись данные в /isolinux от 1-й, если 2 компоненты туда хотят 
положить файлы.
Comment 6 Andriy Stepanov 2007-04-23 17:10:38 MSD
Created attachment 1922 [details]
IMAGE_TYPE and TO_ISOLINUX derectives together

Для компоненты можно указывать тип образа на выходе:
IMAGE_TYPE="cpio"
и возможность помещения выходного образа в каталог isolinux:
TO_ISOLINUX="yes"
(чтоб была возможность обращения из isolinux.cfg, при загрузке)
Comment 7 Mikhail Gusarov 2008-06-13 13:00:39 MSD

    
Comment 8 Michael Shigorin 2009-02-14 18:39:20 MSK
Предлагаю оставить spt в покое, а дорабатывать при необходимости -- mkimage.
Comment 9 Michael Shigorin 2009-02-16 14:25:45 MSK
По факту я уже не интересуюсь spt.
Comment 10 Michael Shigorin 2009-08-28 05:04:23 MSD
apparently wontfix
Comment 11 Sergey V Turchin 2009-08-28 14:33:40 MSD
На всякий случай перевешу, чтоб выяснить, есть ли уже такой функционал и нужен ли он вообще, если нет.

Это было нужно для создания специального образа для утилиты тестирования оборудования (уже забыл, как называется), чтоб прямо с DVD ее запускать

P.S.
Детали у Stanv (он пока в отпуске)
Comment 12 Alexey Gladkov 2009-08-28 14:42:37 MSD
В mkimage каждая стадия имеет свой тип. Из того что я понял, всё это уже есть в mkimage.