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}"