tazlito rev 337
Fix multi-rootfs packaging
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Tue Feb 18 17:14:31 2014 +0100 (2014-02-18) |
parents | b095e74f0f66 |
children | 2939bfe5b2e9 |
files | tazlito |
line diff
1.1 --- a/tazlito Sun Feb 16 18:04:47 2014 +0100 1.2 +++ b/tazlito Tue Feb 18 17:14:31 2014 +0100 1.3 @@ -1923,7 +1923,7 @@ 1.4 fi 1.5 # Start generation. 1.6 newline 1.7 - echo -e "\033[1mTazlito generating a distro\033[0m" 1.8 + boldify "Tazlito generating a distro" 1.9 separator 1.10 # Misc checks 1.11 [ -n "$PACKAGES_REPOSITORY" ] || PACKAGES_REPOSITORY="." 1.12 @@ -1979,7 +1979,7 @@ 1.13 fi 1.14 fi 1.15 1.16 - # Root fs stuff. 1.17 + # Rootfs stuff. 1.18 echo "Preparing the rootfs directory..." 1.19 mkdir -p $ROOTFS 1.20 for pkg in $LIST 1.21 @@ -2006,7 +2006,7 @@ 1.22 mv $pkg.tazpkg $PACKAGES_REPOSITORY 1.23 fi 1.24 if [ ! -f $PACKAGES_REPOSITORY/$pkg.tazpkg ]; then 1.25 - echo "Missing package $pkg." 1.26 + echo "Missing package: $pkg" 1.27 cleanup 1.28 exit 1 1.29 fi 1.30 @@ -2076,7 +2076,6 @@ 1.31 fi 1.32 1.33 # Execute the custom_rules found in receipt. 1.34 - # 1.35 if [ -s $TOP_DIR/receipt ]; then 1.36 if grep -q ^custom_rules $TOP_DIR/receipt; then 1.37 echo -e "Executing: custom_rules\n" 1.38 @@ -2085,6 +2084,7 @@ 1.39 fi 1.40 fi 1.41 1.42 + # Multi-rootfs 1.43 if [ -s /etc/tazlito/rootfs.list ]; then 1.44 FLAVOR_LIST="$(awk '{ for (i = 2; i <= NF; i+=2) \ 1.45 printf("%s ",$i) }' < /etc/tazlito/rootfs.list)" 1.46 @@ -2098,29 +2098,46 @@ 1.47 last=$ROOTFS 1.48 while read flavor; do 1.49 n=$(($n+1)) 1.50 - echo "Building $flavor rootfs..." 1.51 + newline 1.52 + boldify "Building $flavor rootfs..." 1.53 [ -s $TOP_DIR/$flavor.flavor ] && 1.54 cp $TOP_DIR/$flavor.flavor . 1.55 - [ -s $flavor.flavor ] || download $flavor.flavor 1.56 - zcat < $flavor.flavor | cpio -i \ 1.57 + if [ ! -s $flavor.flavor ]; then 1.58 + # We may have it in $FLAVORS_REPOSITORY 1.59 + if [ -d "$FLAVORS_REPOSITORY/$flavor" ]; then 1.60 + tazlito pack-flavor $flavor 1.61 + else 1.62 + download $flavor.flavor 1.63 + fi 1.64 + fi 1.65 + echo -n "Extracting $flavor.pkglist and $flavor.rootfs..." 1.66 + zcat < $flavor.flavor | cpio -i --quiet \ 1.67 $flavor.pkglist $flavor.rootfs 1.68 sed 's/.*/&.tazpkg/' < $flavor.pkglist \ 1.69 > $DISTRO/list-packages0$n 1.70 + status 1.71 mkdir ${ROOTFS}0$n 1.72 - cd $PACKAGES_REPOSITORY 1.73 - yes y | tazpkg install-list \ 1.74 - $DISTRO/list-packages0$n --root=${ROOTFS}0$n 1.75 + # Install packages 1.76 + cd ${PACKAGES_REPOSITORY} 1.77 + for pkg in $(cat $DISTRO/list-packages0$n) 1.78 + do 1.79 + echo -n "Installing package: $pkg" 1.80 + yes y | tazpkg -i $pkg --root=${ROOTFS}0$n 2>&1 >> $log || exit 1 1.81 + status 1.82 + done 1.83 rm -rf ${ROOTFS}0$n/boot ${ROOTFS}0$n/var/lib/tazpkg/packages.* 1.84 - status 1.85 + 1.86 cd $DISTRO 1.87 + 1.88 if [ -s $flavor.rootfs ]; then 1.89 echo -n "Adding $flavor rootfs extra files..." 1.90 zcat < $flavor.rootfs | \ 1.91 ( cd ${ROOTFS}0$n ; cpio -idmu ) 1.92 fi 1.93 - # BUGGY 1.94 - echo "Moving $flavor.pkglist to rootfs" 1.95 - mv $flavor.pkglist ${ROOTFS}0$n/etc/tazlito/distro-packages.list 1.96 + 1.97 + echo -n "Moving list-packages0$n to rootfs0$n" 1.98 + mv $DISTRO/list-packages0$n ${ROOTFS}0$n/etc/tazlito/distro-packages.list 1.99 + status 1.100 rm -f $flavor.flavor install-list 1.101 mergefs ${ROOTFS}0$n $last 1.102 last=${ROOTFS}0$n 1.103 @@ -2130,7 +2147,7 @@ 1.104 i=$(($n+1)) 1.105 while [ $n -gt 0 ]; do 1.106 mv ${ROOTFS}0$n ${ROOTFS}$i 1.107 - echo "Compression ${ROOTFS}0$n ($(du -hs ${ROOTFS}$i | awk '{ print $1 }')) ..." 1.108 + echo "Compressing ${ROOTFS}0$n ($(du -hs ${ROOTFS}$i | awk '{ print $1 }'))..." 1.109 gen_initramfs ${ROOTFS}$i 1.110 n=$(($n-1)) 1.111 i=$(($i-1))