slitaz-modular rev 41
Update mkiso.sh.
author | Christopher Rogers <slaxemulator@gmail.com> |
---|---|
date | Sun Mar 27 00:35:50 2011 +0000 (2011-03-27) |
parents | ee5105a66d4a |
children | 9ccc271eda01 |
files | mkiso.sh |
line diff
1.1 --- a/mkiso.sh Sun Mar 27 00:23:55 2011 +0000 1.2 +++ b/mkiso.sh Sun Mar 27 00:35:50 2011 +0000 1.3 @@ -1,6 +1,7 @@ 1.4 #!/bin/bash 1.5 1.6 . /etc/slitaz/slitaz.conf 1.7 +. /etc/slitaz/tazwok.conf 1.8 1.9 QUIET="y" 1.10 FORCE="y" 1.11 @@ -42,6 +43,7 @@ 1.12 PKGISO_DIR="$ISODIR/$MIRROR_DIR/packages" 1.13 SRCISO_DIR="$ISODIR/$MIRROR_DIR/src" 1.14 BACKUP_ALL="no" 1.15 +KEY_FILES="init liblinuxlive linuxrc" 1.16 CLEAN_MODULES_DIR="no" 1.17 CLEAN_INITRAMFS="no" 1.18 PACKAGES_REPOSITORY="$LOCAL_REPOSITORY/packages" 1.19 @@ -76,8 +78,15 @@ 1.20 if [ -d ${MODULES_DIR}/overlay ]; then 1.21 rm -rf ${MODULES_DIR}/overlay 1.22 cp -rf ${PROFILE}/overlay ${MODULES_DIR} 1.23 + cp -af ${BASEDIR}/initramfs/* ${MODULES_DIR}/overlay 1.24 else 1.25 cp -rf ${PROFILE}/overlay ${MODULES_DIR} 1.26 + cp -af ${BASEDIR}/initramfs/* ${MODULES_DIR}/overlay 1.27 + fi 1.28 + 1.29 + if [ -f ${MODULES_DIR}/overlay/etc/local-mirror.conf ]; then 1.30 + sed -i "s|^#PKGDIR|PKGDIR=/packages|g" ${MODULES_DIR}/overlay/etc/local-mirror.conf 1.31 + sed -i "s|^#SRCDIR|SRCDIR=/src|g" ${MODULES_DIR}/overlay/etc/local-mirror.conf 1.32 fi 1.33 1.34 if [ "${QUIET}" = "y" ]; then 1.35 @@ -149,19 +158,21 @@ 1.36 rm -f $INITRAMFS/boot/vmlinuz* 1.37 if [ -f $INITRAMFS/boot/gpxe ]; then 1.38 cp -a $INITRAMFS/boot/gpxe $ISODIR/boot/gpxe 1.39 + rm -f $INITRAMFS/boot/gpxe 1.40 fi 1.41 #fi 1.42 - 1.43 if [ -d $BASEDIR/initramfs ]; then 1.44 - cp -af $BASEDIR/initramfs/* $INITRAMFS 1.45 + for i in $KEY_FILES; do 1.46 + if [ -f $BASEDIR/initramfs/$i ]; then 1.47 + cp -af $BASEDIR/initramfs/$i $INITRAMFS 1.48 + fi 1.49 + done 1.50 fi 1.51 1.52 - if [ -f $INITRAMFS/etc/local-mirror.conf ]; then 1.53 - sed -i "s|^#PKGDIR|PKGDIR=/packages|g" $INITRAMFS/etc/local-mirror.conf 1.54 - sed -i "s|^#SRCDIR|SRCDIR=/src|g" $INITRAMFS/etc/local-mirror.conf 1.55 + if [ -f $INITRAMFS/liblinuxlive ]; then 1.56 + sed -i "s|^#MIRROR|MIRROR=$MIRROR_DIR|g" $INITRAMFS/liblinuxlive 1.57 fi 1.58 - 1.59 - sed -i "s|^#MIRROR|MIRROR=$MIRROR_DIR|g" $INITRAMFS/liblinuxlive 1.60 + 1.61 } 1.62 1.63 copy_hg() { 1.64 @@ -225,6 +236,15 @@ 1.65 } 1.66 1.67 union () { 1.68 + if [ "$BASE_MODULES" != "" ]; then 1.69 + UNION_MODULES="$BASE_MODULES $MODULES" 1.70 + elif [ "$MODULES" != "" ]; then 1.71 + UNION_MODULES="$MODULES" 1.72 + else 1.73 + error "Error: no modules assigned in config for profile." 1.74 + exit 1 1.75 + fi 1.76 + 1.77 mkdir -p $WORKING 1.78 mkdir -p $UNION 1.79 mkdir -p $LOG 1.80 @@ -247,12 +267,6 @@ 1.81 # This will be copyed to /mnt/memory/changes on boot 1.82 initramfs 1.83 1.84 - if [ $BASE_MODULES ]; then 1.85 - UNION_MODULES="$BASE_MODULES $MODULES" 1.86 - else 1.87 - UNION_MODULES="$MODULES" 1.88 - fi 1.89 - 1.90 mount -t aufs -o br:${LASTBR}=rw aufs ${UNION} 1.91 if [ $? -ne 0 ]; then 1.92 error "Error mounting $union." 1.93 @@ -276,14 +290,12 @@ 1.94 info "Adding $LASTBR as lower branch of union." 1.95 mount -t aufs -o remount,mod:${LASTBR}=rr+wh aufs $UNION 1.96 LASTBR="$MODULES_DIR/${mod}" 1.97 - 1.98 1.99 slitaz_union 1.100 done 1.101 - 1.102 + 1.103 if [ -d ${UNION}/${INSTALLED} ]; then 1.104 - find ${UNION}/${INSTALLED} -type d | sort > $ISODIR/packages-installed.list 1.105 - sed -i "s|${UNION}/${INSTALLED}/||g" $ISODIR/packages-installed.list 1.106 + ls ${UNION}/${INSTALLED} | sort > $ISODIR/packages-installed.list 1.107 fi 1.108 1.109 info "Unmounting union" 1.110 @@ -310,25 +322,38 @@ 1.111 tazwok gen-cooklist $ISODIR/packages-installed.list > $ISODIR/cookorder.list 1.112 [ -f $INCOMING_REPOSITORY/wok-wanted.txt ] || tazwok gen-wok-db 1.113 1.114 - #CACHE_REPOSITORY="/var/cache/tazpkg/$(cat /etc/slitaz-release)/packages" 1.115 - 1.116 + CACHE_REPOSITORY="$CACHE_DIR/$(cat /etc/slitaz-release)/packages" 1.117 + 1.118 cat $ISODIR/cookorder.list | grep -v "^#" | while read pkg; do 1.119 rwanted=$(grep $'\t'$pkg$ $INCOMING_REPOSITORY/wok-wanted.txt | cut -f 1) 1.120 pkg_VERSION="$(grep -m1 -A1 ^$pkg$ $PACKAGES_REPOSITORY/packages.txt | \ 1.121 tail -1 | sed 's/ *//')" 1.122 + incoming_pkg_VERSION="$(grep -m1 -A1 ^$pkg$ $INCOMING_REPOSITORY/packages.txt | \ 1.123 + tail -1 | sed 's/ *//')" 1.124 for wanted in $rwanted; do 1.125 - if [ -f $PACKAGES_REPOSITORY/$wanted-$pkg_VERSION.tazpkg ]; then 1.126 + if [ -f $INCOMING_REPOSITORY/$wanted-$incoming_pkg_VERSION.tazpkg ]; then 1.127 + ln -sf $INCOMING_REPOSITORY/$wanted-$incoming_pkg_VERSION.tazpkg $PKGISO_DIR/$wanted-$incoming_pkg_VERSION.tazpkg 1.128 + elif [ -f $PACKAGES_REPOSITORY/$wanted-$pkg_VERSION.tazpkg ]; then 1.129 ln -sf $PACKAGES_REPOSITORY/$wanted-$pkg_VERSION.tazpkg $PKGISO_DIR/$wanted-$pkg_VERSION.tazpkg 1.130 + elif [ -f $CACHE_REPOSITORY/$Wanted-$pkg_VERSION.tazpkg ]; then 1.131 + ln -sf $CACHE_REPOSITORY/$wanted-$pkg_VERSION.tazpkg $PKGISO_DIR/$wanted-$pkg_VERSION.tazpkg 1.132 fi 1.133 done 1.134 + 1.135 for i in $(ls $WOK/$pkg/receipt); do 1.136 - unset SOURCE TARBALL WANTED PACKAGE VERSION pkg_VERSION 1.137 + unset SOURCE TARBALL WANTED PACKAGE VERSION pkg_VERSION COOK_OPT 1.138 source $i 1.139 pkg_VERSION="$(grep -m1 -A1 ^$PACKAGE$ $PACKAGES_REPOSITORY/packages.txt | \ 1.140 tail -1 | sed 's/ *//')" 1.141 + incoming_pkg_VERSION="$(grep -m1 -A1 ^$pkg$ $INCOMING_REPOSITORY/packages.txt | \ 1.142 + tail -1 | sed 's/ *//')" 1.143 [ "$WGET_URL" ] || continue 1.144 - if [ -f $PACKAGES_REPOSITORY/$PACKAGE-$pkg_VERSION.tazpkg ]; then 1.145 + if [ -f $INCOMING_REPOSITORY/$PACKAGE-$incoming_pkg_VERSION.tazpkg ]; then 1.146 + ln -sf $INCOMING_REPOSITORY/$PACKAGE-$incoming_pkg_VERSION.tazpkg $PKGISO_DIR/$PACKAGE-$incoming_pkg_VERSION.tazpkg 1.147 + elif [ -f $PACKAGES_REPOSITORY/$PACKAGE-$pkg_VERSION.tazpkg ]; then 1.148 ln -sf $PACKAGES_REPOSITORY/$PACKAGE-$pkg_VERSION.tazpkg $PKGISO_DIR/$PACKAGE-$pkg_VERSION.tazpkg 1.149 + elif [ -f $CACHE_REPOSITORY/$PACKAGE-$pkg_VERSION.tazpkg ]; then 1.150 + ln -sf $CACHE_REPOSITORY/$PACKAGE-$pkg_VERSION.tazpkg $PKGISO_DIR/$PACKAGE-$pkg_VERSION.tazpkg 1.151 fi 1.152 done 1.153 done 1.154 @@ -348,7 +373,7 @@ 1.155 cat $ISODIR/cookorder.list | grep -v "^#"| while read pkg; do 1.156 #rwanted=$(grep $'\t'$pkg$ $INCOMING_REPOSITORY/wok-wanted.txt | cut -f 1) 1.157 for i in $(ls $WOK/$pkg/receipt); do 1.158 - unset SOURCE TARBALL WANTED PACKAGE VERSION 1.159 + unset SOURCE TARBALL WANTED PACKAGE VERSION COOK_OPT 1.160 source $i 1.161 { [ ! "$TARBALL" ] || [ ! "$WGET_URL" ] ; } && continue 1.162 if [ ! -f "$SOURCES_REPOSITORY/$TARBALL" ] && \ 1.163 @@ -424,10 +449,16 @@ 1.164 } 1.165 1.166 imgcommon () { 1.167 + for MOD in ${BASE_MODULES}; do 1.168 + if [ -d "${MODULES_DIR}/${MOD}" ]; then 1.169 + _mksquash "${MODULES_DIR}/${MOD}" "$ISODIR/$CDNAME/base" /var/lib/tazpkg/installed 1.170 + fi 1.171 + done 1.172 + 1.173 if [ "${MODULES}" != "" ]; then 1.174 for MOD in ${MODULES}; do 1.175 if [ -d "${MODULES_DIR}/${MOD}" ]; then 1.176 - _mksquash "${MODULES_DIR}/${MOD}" "$ISODIR/$CDNAME/base" /var/lib/tazpkg/installed 1.177 + _mksquash "${MODULES_DIR}/${MOD}" "$ISODIR/$CDNAME/modules" /var/lib/tazpkg/installed 1.178 fi 1.179 done 1.180 fi 1.181 @@ -506,9 +537,11 @@ 1.182 fi 1.183 1.184 info "Creating ISO image..." 1.185 - genisoimage -R -J -f -o $IMGNAME -b boot/isolinux/isolinux.bin \ 1.186 + genisoimage -R -l -f -o $IMGNAME -b boot/isolinux/isolinux.bin \ 1.187 -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \ 1.188 - -V "SliTaz" -input-charset iso8859-1 -boot-info-table $ISODIR 1.189 + -uid 0 -gid 0 \ 1.190 + -udf -allow-limited-size -iso-level 3 \ 1.191 + -V "SliTaz" -input-charset utf-8 -boot-info-table $ISODIR 1.192 if [ -x /usr/bin/isohybrid ]; then 1.193 info "Creating hybrid ISO..." 1.194 isohybrid "${IMGNAME}"