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))