tazlito rev 11
pave the road to flavors. Misc fixes: lzma, typos
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Tue Dec 11 19:14:12 2007 +0100 (2007-12-11) |
parents | f3fd2701605e |
children | 15a98c96f18f |
files | doc/tazlito.html tazlito |
line diff
1.1 --- a/doc/tazlito.html Tue Dec 04 12:36:02 2007 +0100 1.2 +++ b/doc/tazlito.html Tue Dec 11 19:14:12 2007 +0100 1.3 @@ -51,14 +51,14 @@ 1.4 automatiquement par Tazlito, il spécifie le nom de l'image ISO, le nom du 1.5 volume, le préparateur, le chemin vers le repositoire des paquets et celui 1.6 vers la distribution. Tazlito permet aussi de configurer un répertoire 1.7 -contenant des fichiers additionnels, qui seront copier dans le LiveCD lors 1.8 +contenant des fichiers additionnels, qui seront copiés dans le LiveCD lors 1.9 de la génération de la distribution. 1.10 </p> 1.11 <p> 1.12 Tazlito fait partie des outils SliTaz (slitaz-tools), distribué sous licence 1.13 -libre GNU gpl v3, installé par défaut sur SliTaz et installé/testé avec succès 1.14 +libre GNU gpl v3, installé par défaut sur SliTaz et installé/testé avec succés 1.15 sur Debian GNU/Linux. Vous trouverez aussi un complément d'informations au 1.16 -sujet de création de sa propre version du LiveCD, via le livre de cuisine 1.17 +sujet de la création de votre propre version du LiveCD, via le livre de cuisine 1.18 (Cookbook) de SliTaz (http://www.slitaz.org/doc/cookbook/). 1.19 </p> 1.20 1.21 @@ -73,7 +73,7 @@ 1.22 </pre> 1.23 <h3><font color="#6c0023">stats</font></h3> 1.24 <p> 1.25 -Stats affiche les variables de configurations, le chemim vers les différents 1.26 +Stats affiche les variables de configuration, le chemin vers les différents 1.27 fichiers et répertoires et les informations sur l'image ISO : 1.28 </p> 1.29 <pre> 1.30 @@ -82,8 +82,8 @@ 1.31 <h3><font color="#6c0023">gen-config</font></h3> 1.32 <p> 1.33 La commande 'gen-config' vous permet de générer une fichier de configuration 1.34 -prête à être édité. Par défaut le fichier est créé dans le répertoire courant 1.35 -et peut aussi être dans un autre répertoire si spécifié : 1.36 +prêt à être édité. Par défaut le fichier est créé dans le répertoire courant 1.37 +et peut aussi l'être dans un autre répertoire si spécifié : 1.38 </p> 1.39 <pre> 1.40 # tazlito gen-config 1.41 @@ -100,7 +100,7 @@ 1.42 <h3><font color="#6c0023">gen-iso</font></h3> 1.43 <p> 1.44 La commande 'gen-iso' pour <em>Generate ISO</em> permet de générer une nouvelle 1.45 -image ISO du LiveCD suite à des modifications et ajouter dans le sysstème 1.46 +image ISO du LiveCD suite à des modifications et ajouter dans le système 1.47 racine du cdrom. Pour fonctionner cette commande a besoin d'un répertoire 1.48 contenant la structure du système Live, cette structure peur facilement être 1.49 construite avec la commande 'extract-distro', modifiée et reconstruite via : 1.50 @@ -110,7 +110,7 @@ 1.51 </pre> 1.52 <h3><font color="#6c0023">gen-initiso</font></h3> 1.53 <p> 1.54 -La commande 'gen-initiso' va faire le même travil que 'gen-iso' mais en 1.55 +La commande 'gen-initiso' va faire le même travail que 'gen-iso' mais en 1.56 reconstruisant préalablement l'initramfs compressé du système. L'initramfs 1.57 contient tous le système racine de la distribution et doit être reconstruite 1.58 en cas de modifications sur les fichiers. 1.59 @@ -132,10 +132,10 @@ 1.60 <h3><font color="#6c0023">gen-distro</font></h3> 1.61 <p> 1.62 La commande <em>Generate Distribution</em> permet de générer la structure du 1.63 -système Live et une image ISO via une liste paquets. Pour fonctionner, cette 1.64 +système Live et une image ISO via une liste de paquets. Pour fonctionner, cette 1.65 commande a besoin d'une liste de paquets, d'un répertoire contenant tous les 1.66 paquets (.tazpkg) de la liste et d'un répertoire pour générer la distribution. 1.67 -Le chemin vers les différents répertoires sont a configurer dans le fichier de 1.68 +Le chemin vers les différents répertoires sont à configurer dans le fichier de 1.69 configuration utilisé et les paquets peuvent être téléchargés depuis les 1.70 miroirs de SliTaz ou générés par Tazwok. Pour générer une distro : 1.71 </p> 1.72 @@ -144,7 +144,7 @@ 1.73 </pre> 1.74 <h3><font color="#6c0023">clean-distro</font></h3> 1.75 <p> 1.76 -Supprime tous les fichiers généré ou extrait de la structure du LiveCD : 1.77 +Supprime tous les fichiers générés ou extraits de la structure du LiveCD : 1.78 </p> 1.79 <pre> 1.80 # tazlito clean-distro
2.1 --- a/tazlito Tue Dec 04 12:36:02 2007 +0100 2.2 +++ b/tazlito Tue Dec 11 19:14:12 2007 +0100 2.3 @@ -20,6 +20,8 @@ 2.4 TOP_DIR=`pwd` 2.5 INITRAMFS=rootfs.gz 2.6 LZMA_INITRAMFS=rootfs.lz 2.7 +LOCALSTATE=/var/lib/tazpkg 2.8 +INSTALLED=$LOCALSTATE/installed 2.9 2.10 # Try to include config file, continue if command is gen-config or exit. 2.11 # The main config used by default is in /etc/tazlito. 2.12 @@ -98,6 +100,15 @@ 2.13 fi 2.14 } 2.15 2.16 +# Check for the rootfs tree. 2.17 +check_rootfs() 2.18 +{ 2.19 + if [ ! -d "$ROOTFS" ] ; then 2.20 + echo -e "\nUnable to find a distro rootfs to check.\n" 2.21 + exit 0 2.22 + fi 2.23 +} 2.24 + 2.25 # Check for the boot dir into the root CD tree. 2.26 verify_rootcd() 2.27 { 2.28 @@ -133,11 +144,9 @@ 2.29 # Use lzma if installed 2.30 if [ -x /usr/bin/lzma ]; then 2.31 echo -n "Generating cpio archive... " 2.32 - find . -print | cpio -o -H newc > ../rootfs.cpio 2.33 + find . -print | cpio -o -H newc | lzma e -si -so > $DISTRO/$LZMA_INITRAMFS 2.34 cd $DISTRO 2.35 - lzma e $ROOTFS.cpio $LZMA_INITRAMFS 2.36 - rm rootfs.cpio 2.37 - cp $LZMA_INITRAMFS $ROOTCD/boot 2.38 + mv $LZMA_INITRAMFS $ROOTCD/boot 2.39 # Remove eventual gziped initramfs and sed isolinux.cfg for the path 2.40 # to lzma rootfs ($LZMA_INITRAMFS) 2.41 rm -f $ROOTCD/boot/$INITRAMFS 2.42 @@ -146,7 +155,7 @@ 2.43 echo -n "Generating gziped initramfs... " 2.44 find . -print | cpio -o -H newc | gzip -9 > $DISTRO/$INITRAMFS 2.45 cd $DISTRO 2.46 - cp $INITRAMFS $ROOTCD/boot 2.47 + mv $INITRAMFS $ROOTCD/boot 2.48 fi 2.49 } 2.50 2.51 @@ -160,9 +169,9 @@ 2.52 echo "Packages : `ls -1 $ROOTFS/var/lib/tazpkg/installed | wc -l`" 2.53 echo "Rootfs size : `du -sh $ROOTFS`" 2.54 if [ -f $LZMA_INITRAMFS ]; then 2.55 - echo "Initramfs size : `du -sh $LZMA_INITRAMFS`" 2.56 + echo "Initramfs size : `du -sh $ROOTCD/boot/$LZMA_INITRAMFS`" 2.57 else 2.58 - echo "Initramfs size : `du -sh $INITRAMFS`" 2.59 + echo "Initramfs size : `du -sh $ROOTCD/boot/$INITRAMFS`" 2.60 fi 2.61 echo "ISO image size : `du -sh $ISO_NAME.iso`" 2.62 echo "================================================================================" 2.63 @@ -244,7 +253,6 @@ 2.64 # a empty config file and sed it. 2.65 # 2.66 if [ -f "tazlito.conf" ] ; then 2.67 - continue 2.68 rm tazlito.conf 2.69 else 2.70 if test $(id -u) = 0 ; then 2.71 @@ -260,17 +268,17 @@ 2.72 echo -e "\033[1mConfiguring :\033[0m `pwd`/tazlito.conf" 2.73 echo "================================================================================" 2.74 # ISO name. 2.75 - echo -n "ISO name : " ; read anser 2.76 - sed -i s#'ISO_NAME=\"\"'#"ISO_NAME=\"$anser\""# tazlito.conf 2.77 + echo -n "ISO name : " ; read answer 2.78 + sed -i s#'ISO_NAME=\"\"'#"ISO_NAME=\"$answer\""# tazlito.conf 2.79 # Volum name. 2.80 - echo -n "Volum name : " ; read anser 2.81 - sed -i s/'VOLUM_NAME=\"SliTaz\"'/"VOLUM_NAME=\"$anser\""/ tazlito.conf 2.82 + echo -n "Volum name : " ; read answer 2.83 + sed -i s/'VOLUM_NAME=\"SliTaz\"'/"VOLUM_NAME=\"$answer\""/ tazlito.conf 2.84 # Packages repository. 2.85 - echo -n "Packages repository : " ; read anser 2.86 - sed -i s#'PACKAGES_REPOSITORY=\"\"'#"PACKAGES_REPOSITORY=\"$anser\""# tazlito.conf 2.87 + echo -n "Packages repository : " ; read answer 2.88 + sed -i s#'PACKAGES_REPOSITORY=\"\"'#"PACKAGES_REPOSITORY=\"$answer\""# tazlito.conf 2.89 # Distro path. 2.90 - echo -n "Distro path : " ; read anser 2.91 - sed -i s#'DISTRO=\"\"'#"DISTRO=\"$anser\""# tazlito.conf 2.92 + echo -n "Distro path : " ; read answer 2.93 + sed -i s#'DISTRO=\"\"'#"DISTRO=\"$answer\""# tazlito.conf 2.94 echo "================================================================================" 2.95 echo "Config file is ready to use." 2.96 echo "You can now extract an ISO or generate a distro." 2.97 @@ -336,14 +344,13 @@ 2.98 cp -a $TMP_DIR/boot/isolinux $TARGET/rootcd/boot 2.99 status 2.100 echo -n "Copying the rootfs..." 2.101 - cp $TMP_DIR/boot/rootfs.gz $TARGET/rootcd/boot 2.102 - cp $TMP_DIR/boot/rootfs.gz $TARGET/rootfs 2.103 + cp $TMP_DIR/boot/rootfs.?z $TARGET/rootcd/boot 2.104 status 2.105 # Exract initramfs. 2.106 cd $TARGET/rootfs 2.107 echo -n "Extracting the rootfs... " 2.108 - gzip -d rootfs.gz && cpio -id < rootfs 2.109 - rm rootfs 2.110 + ( zcat ../rootcd/boot/rootfs.gz 2>/dev/null || \ 2.111 + lzma d ../rootcd/boot/rootfs.lz -so ) | cpio -id 2.112 # Umount and remove temp directory and cd to $TARGET to get stats. 2.113 umount $TMP_DIR && rm -rf $TMP_DIR 2.114 cd .. 2.115 @@ -410,6 +417,7 @@ 2.116 sleep 2 2.117 for pkg in $LIST 2.118 do 2.119 + local here=`pwd` 2.120 # First copy and extract the package in tmp dir. 2.121 pkg=${pkg%.tazpkg} 2.122 mkdir -p $TMP_DIR 2.123 @@ -417,21 +425,21 @@ 2.124 echo "" 2.125 echo -n "Installing $PACKAGE... " 2.126 cpio -id < $pkg.tazpkg && rm -f $pkg.tazpkg 2.127 - gzip -d fs.cpio.gz 2.128 echo -n "Extracting the file system... " 2.129 - cpio -id < fs.cpio && rm fs.cpio 2.130 + zcat fs.cpio.gz | cpio -id && rm fs.cpio.gz 2.131 # Copy all packages fs and receipt to the rootfs. 2.132 echo -n "Copying files to the rootfs..." 2.133 cp -a fs/* $ROOTFS 2.134 . $PWD/receipt 2.135 - mkdir -p $ROOTFS/var/lib/tazpkg/installed/$PACKAGE 2.136 + mkdir -p $ROOTFS$INSTALLED/$PACKAGE 2.137 # Copy the receipt, list of files and description if exist. 2.138 - cp receipt $ROOTFS/var/lib/tazpkg/installed/$PACKAGE 2.139 - cp files.list $ROOTFS/var/lib/tazpkg/installed/$PACKAGE 2.140 + cp receipt $ROOTFS$INSTALLED/$PACKAGE 2.141 + cp files.list $ROOTFS$INSTALLED/$PACKAGE 2.142 if [ -f "description.txt" ] ; then 2.143 - cp description.txt $ROOTFS/var/lib/tazpkg/installed/$PACKAGE 2.144 + cp description.txt $ROOTFS$INSTALLED/$PACKAGE 2.145 fi 2.146 status 2.147 + cd $here 2.148 # Remove tmp dir to get a empty one for the next package. 2.149 rm -rf $TMP_DIR 2.150 done 2.151 @@ -440,7 +448,8 @@ 2.152 # Copy all files from $ADDFILES/rootfs to the rootfs. 2.153 if [ -d "$ADDFILES/rootfs" ] ; then 2.154 echo -n "Copying addfiles content to the rootfs... " 2.155 - cp -a $ADDFILES/rootfs/* $ROOTFS && status 2.156 + cp -a $ADDFILES/rootfs/* $ROOTFS 2.157 + status 2.158 fi 2.159 echo "Root file system is generated..." 2.160 # Root CD part. 2.161 @@ -453,14 +462,15 @@ 2.162 echo -n "Moving the boot directory..." 2.163 mv $ROOTFS/boot $ROOTCD 2.164 cd $ROOTCD/boot 2.165 - mv vmlinuz-* bzImage 2.166 + ln vmlinuz-* bzImage 2.167 status 2.168 fi 2.169 cd $DISTRO 2.170 # Copy all files from $ADDFILES/rootcd to the rootcd. 2.171 if [ -d "$ADDFILES/rootcd" ] ; then 2.172 echo -n "Copying addfiles content to the rootcd... " 2.173 - cp -a $ADDFILES/rootcd/* $ROOTCD && status 2.174 + cp -a $ADDFILES/rootcd/* $ROOTCD 2.175 + status 2.176 fi 2.177 # Initramfs and ISO image stuff. 2.178 gen_initramfs 2.179 @@ -479,14 +489,17 @@ 2.180 echo -n "Removing the rootfs..." 2.181 rm -f $DISTRO/$INITRAMFS 2.182 rm -f $DISTRO/$LZMA_INITRAMFS 2.183 - rm -rf $ROOTFS && status 2.184 + rm -rf $ROOTFS 2.185 + status 2.186 fi 2.187 if [ -d "$ROOTCD" ] ; then 2.188 echo -n "Removing the rootcd..." 2.189 - rm -rf $ROOTCD && status 2.190 + rm -rf $ROOTCD 2.191 + status 2.192 fi 2.193 echo -n "Removing eventual ISO image..." 2.194 - rm -f $DISTRO/$ISO_NAME.iso && status 2.195 + rm -f $DISTRO/$ISO_NAME.iso 2.196 + status 2.197 fi 2.198 echo "================================================================================" 2.199 echo "" 2.200 @@ -541,16 +554,13 @@ 2.201 check-distro) 2.202 # Check for a few LiveCD needed files not installed by packages. 2.203 # 2.204 - if [ ! -d "$ROOTFS" ] ; then 2.205 - echo -e "\nUnable to find a distro rootfs to check.\n" 2.206 - exit 0 2.207 - fi 2.208 + check_rootfs 2.209 echo "" 2.210 echo -e "\033[1mChecking distro :\033[0m $ROOTFS" 2.211 echo "================================================================================" 2.212 # SliTaz release info. 2.213 if [ ! -f "$ROOTFS/etc/slitaz-release" ]; then 2.214 - echo "Missing release info : /var/lib/tazpkg/mirror" 2.215 + echo "Missing release info : /etc/slitaz-release" 2.216 else 2.217 release=`cat $ROOTFS/etc/slitaz-release` 2.218 echo -n "Release : $release" 2.219 @@ -599,8 +609,8 @@ 2.220 echo "ISO image : $iso" 2.221 echo "================================================================================" 2.222 echo "" 2.223 - echo -n "Burn ISO image (y/N) ? "; read anser 2.224 - if [ "$anser" == "y" ]; then 2.225 + echo -n "Burn ISO image (y/N) ? "; read answer 2.226 + if [ "$answer" == "y" ]; then 2.227 echo "" 2.228 echo "Starting Wodim to burn the iso..." && sleep 2 2.229 echo "================================================================================"