slitaz-modular rev 29

Got BACKUP_SOURCES and PACKAGES config options working right.
author Christopher Rogers <slaxemulator@gmail.com>
date Sat Feb 26 06:31:16 2011 +0000 (2011-02-26)
parents 6273083365ce
children afc5e1a66639
files mkiso.sh
line diff
     1.1 --- a/mkiso.sh	Fri Feb 25 12:01:24 2011 +0000
     1.2 +++ b/mkiso.sh	Sat Feb 26 06:31:16 2011 +0000
     1.3 @@ -40,6 +40,7 @@
     1.4  CLEAN_MODULES_DIR="no"
     1.5  CLEAN_INITRAMFS="no"
     1.6  PACKAGES_REPOSITORY="$LOCAL_REPOSITORY/packages"
     1.7 +INCOMING_REPOSITORY="$LOCAL_REPOSITORY/packages-incoming"
     1.8  SOURCES_REPOSITORY="$LOCAL_REPOSITORY/src"
     1.9  HG_LIST="flavors flavors-stable slitaz-base-files slitaz-boot-scripts slitaz-configs slitaz-dev-tools slitaz-doc slitaz-forge slitaz-pizza slitaz-tools tazlito tazpkg tazusb tazwok website wok wok-stable wok-tiny wok-undigest"
    1.10  
    1.11 @@ -274,44 +275,37 @@
    1.12  	if [ "${BACKUP_PACKAGES}" = "yes" ]; then
    1.13  		[ -d $ISODIR/boot/packages ] && rm -r $ISODIR/boot/packages
    1.14  		mkdir -p $ISODIR/boot/packages
    1.15 +		WOK=${HG_DIR}/wok/home/slitaz/repos/wok
    1.16  		info "Making cooking list based installed packages in union"
    1.17 -		tazwok gen-cooklist $ISODIR/packages-installed.list > $ISODIR/cookorder.list
    1.18 -		#[ -f $INCOMING_REPOSITORY/wok-wanted.txt ] || tazwok gen-wok-db
    1.19 -		
    1.20 -		info "Linking all installed packages to $ISODIR/boot/packages"
    1.21 -		cat $ISODIR/packages-installed.list | while read PACKAGE; do
    1.22 -			VERSION=$(grep ^VERSION= ${HG_DIR}/wok/${PACKAGE}/receipt | cut -d "=" -f2 | sed -e 's/"//g')
    1.23 -			CACHE_PACKAGE=$(find $CACHE_DIR/$(cat /etc/slitaz-release)/packages -type f -name "$PACKAGE-$VERSION.tazpkg")	
    1.24 -			if [ -f $CACHE_PACKAGE ]; then
    1.25 -				info "Copying $CACHE_PACKAGE to $ISODIR/boot/packages"
    1.26 -				ln -sf $CACHE_PACKAGE $ISODIR/boot/packages
    1.27 -			#elif [ ! -f $CACHE_PACKAGE ]; then
    1.28 -			#	info "$CACHE_PACKAGE doesn't exist. Downloading it."
    1.29 -			#	cd $CACHE_DIR/$(cat /etc/slitaz-release)/packgages
    1.30 -			#	tazpkg get $PACKAGE
    1.31 -			#	cd $WORKING
    1.32 -			#	if [ -f $CACHE_PACKAGE ]; then
    1.33 -			#		ln -sf $CACHE_PACKAGE $ISODIR/packages
    1.34 -			#	fi
    1.35 +		# this is to filter out packages build by get- 
    1.36 +		# packages that don't exist in repo or wok
    1.37 +		cat $ISODIR/packages-installed.list | while read pkg; do
    1.38 +			if [ ! -f $WOK/$pkg/receipt ]; then
    1.39 +				sed -i "s|$pkg||g" $ISODIR/packages-installed.list
    1.40  			fi
    1.41  		done
    1.42 +		tazwok gen-cooklist $ISODIR/packages-installed.list > $ISODIR/cookorder.list
    1.43 +		[ -f $INCOMING_REPOSITORY/wok-wanted.txt ] || tazwok gen-wok-db
    1.44  		
    1.45 -		cat $ISODIR/cookorder.list | while read PACKAGE; do
    1.46 -			rwanted=$(grep $'\t'$PACKAGE$ $INCOMING_REPOSITORY/wok-wanted.txt | cut -f 1)
    1.47 -			echo $rwanted | while read WANTED_PKG; do
    1.48 -				VERSION=$(grep  ^VERSION= ${HG_DIR}/wok/${WANTED_PKG}/receipt | cut -d "=" -f2 | sed -e 's/"//g')
    1.49 -				CACHE_PACKAGE=$(find $CACHE_DIR/$(cat /etc/slitaz-release)/packages -type f -name "$WANTED_PKG-$VERSION.tazpkg")
    1.50 -				if [ -f $CACHE_PACKAGE ]; then
    1.51 -					info "Copying $CACHE_PACKAGE to $ISODIR/boot/packages"
    1.52 -					ln -sf $CACHE_PACKAGE $ISODIR/boot/packages
    1.53 -				#elif [ ! -f $CACHE_PACKAGE ]; then
    1.54 -				#	info "$CACHE_PACKAGE doesn't exist. Downloading it."
    1.55 -				#	cd $CACHE_DIR/$(cat /etc/slitaz-release)/packgages &>/dev/null
    1.56 -				#	tazpkg get $PACKAGE
    1.57 -				#	cd $WORKING
    1.58 -				#	if [ -f $CACHE_PACKAGE ]; then
    1.59 -				#		ln -sf $CACHE_PACKAGE $ISODIR/packages
    1.60 -				#	fi
    1.61 +		#CACHE_REPOSITORY="/var/cache/tazpkg/$(cat /etc/slitaz-release)/packages"
    1.62 +		
    1.63 +		cat $ISODIR/cookorder.list | grep -v "^#" | while read pkg; do
    1.64 +			rwanted=$(grep $'\t'$pkg$ $INCOMING_REPOSITORY/wok-wanted.txt | cut -f 1)
    1.65 +			pkg_VERSION="$(grep -m1 -A1 ^$pkg$ $PACKAGES_REPOSITORY/packages.txt | \
    1.66 +				tail -1 | sed 's/ *//')"
    1.67 +			for wanted in $rwanted; do
    1.68 +				if [ -f $PACKAGES_REPOSITORY/$wanted-$pkg_VERSION.tazpkg ]; then
    1.69 +					ln -sf $PACKAGES_REPOSITORY/$wanted-$pkg_VERSION.tazpkg $ISODIR/boot/packages/$wanted-$pkg_VERSION.tazpkg
    1.70 +				fi
    1.71 +			done
    1.72 +			for i in $(ls $WOK/$pkg/receipt); do
    1.73 +				unset SOURCE TARBALL WANTED PACKAGE VERSION pkg_VERSION
    1.74 +				source $i
    1.75 +				pkg_VERSION="$(grep -m1 -A1 ^$PACKAGE$ $PACKAGES_REPOSITORY/packages.txt | \
    1.76 +					tail -1 | sed 's/ *//')"
    1.77 +				[ "$WGET_URL" ] || continue
    1.78 +				if [ -f $PACKAGES_REPOSITORY/$PACKAGE-$pkg_VERSION.tazpkg ]; then
    1.79 +					ln -sf $PACKAGES_REPOSITORY/$PACKAGE-$pkg_VERSION.tazpkg $ISODIR/boot/packages/$PACKAGE-$pkg_VERSION.tazpkg
    1.80  				fi
    1.81  			done
    1.82  		done
    1.83 @@ -325,24 +319,28 @@
    1.84  
    1.85  	if [ "${BACKUP_PACKAGES}" = "yes" -a "${BACKUP_SOURCES}" = "yes" ]; then
    1.86  			[ -d $SOURCES_REPOSITORY ] || mkdir -p $SOURCES_REPOSITORY
    1.87 -			[ -d $ISODIR/boot/src ] || mkdir -p $ISODIR/boot/src
    1.88 -			
    1.89 -			cat $ISODIR/cookorder.list | while read PACKAGE; do
    1.90 -				WGET_URL=$(grep  ^WGET_URL= ${HG_DIR}/wok/${PACKAGE}/receipt | cut -d "=" -f2 | sed -e 's/"//g' | head -n 1)
    1.91 -				VERSION=$(grep  ^VERSION= ${HG_DIR}/wok/${PACKAGE}/receipt | cut -d "=" -f2 | sed -e 's/"//g' | head -n 1)
    1.92 -				TARBALL=$(grep  ^TARBALL= ${HG_DIR}/wok/${PACKAGE}/receipt | cut -d "=" -f2 | sed -e 's/"//g' | head -n 1)
    1.93 -				
    1.94 -				if [ ! -f "$SOURCES_REPOSITORY/$TARBALL" ] && \
    1.95 -					[ ! -f "$SOURCES_REPOSITORY/${SOURCE:-$PACKAGE}-$VERSION.tar.lzma" ]; then
    1.96 -					tazwok get-src $PACKAGE --nounpack
    1.97 -					if [ -f "$SOURCES_REPOSITORY/$TARBALL" ]; then
    1.98 -						ln -sf $SOURCES_REPOSITORY/$TARBALL $ISODIR/sources/$TARBALL
    1.99 -					elif [ -f "$SOURCES_REPOSITORY/${SOURCE:-$PACKAGE}-$VERSION.tar.lzma" ]; then
   1.100 -						ln -sf $SOURCES_REPOSITORY/${SOURCE:-$PACKAGE}-$VERSION.tar.lzma $ISODIR/sources/${SOURCE:-$PACKAGE}-$VERSION.tar.lzma
   1.101 +			[ -d $ISODIR/boot/src ] && rm -r $ISODIR/boot/src
   1.102 +			mkdir -p $ISODIR/boot/src
   1.103 +			WOK=${HG_DIR}/wok/home/slitaz/repos/wok
   1.104 +			cat $ISODIR/cookorder.list | grep -v "^#"| while read pkg; do
   1.105 +				#rwanted=$(grep $'\t'$pkg$ $INCOMING_REPOSITORY/wok-wanted.txt | cut -f 1)
   1.106 +				for i in $(ls $WOK/$pkg/receipt); do
   1.107 +					unset SOURCE TARBALL WANTED PACKAGE VERSION 
   1.108 +					source $i
   1.109 +					{ [ ! "$TARBALL" ] || [ ! "$WGET_URL" ] ; } && continue
   1.110 +					if [ ! -f "$SOURCES_REPOSITORY/$TARBALL" ] && \
   1.111 +						[ ! -f "$SOURCES_REPOSITORY/${SOURCE:-$PACKAGE}-$VERSION.tar.lzma" ]; then
   1.112 +						tazwok get-src $PACKAGE --nounpack
   1.113 +						if [ -f "$SOURCES_REPOSITORY/$TARBALL" ]; then
   1.114 +							ln -sf $SOURCES_REPOSITORY/$TARBALL $ISODIR/sources/$TARBALL
   1.115 +						elif [ -f "$SOURCES_REPOSITORY/${SOURCE:-$PACKAGE}-$VERSION.tar.lzma" ]; then
   1.116 +							ln -sf $SOURCES_REPOSITORY/${SOURCE:-$PACKAGE}-$VERSION.tar.lzma $ISODIR/boot/src/${SOURCE:-$PACKAGE}-$VERSION.tar.lzma
   1.117 +						fi
   1.118 +					else
   1.119 +						[ -f "$SOURCES_REPOSITORY/$TARBALL" ] && ln -sf $SOURCES_REPOSITORY/$TARBALL $ISODIR/boot/src/$TARBALL
   1.120 +						[ -f "$SOURCES_REPOSITORY/${SOURCE:-$PACKAGE}-$VERSION.tar.lzma" ] && ln -sf $SOURCES_REPOSITORY/${SOURCE:-$PACKAGE}-$VERSION.tar.lzma $ISODIR/boot/src/${SOURCE:-$PACKAGE}-$VERSION.tar.lzma
   1.121  					fi
   1.122 -				else
   1.123 -					[  -f "$SOURCES_REPOSITORY/$TARBALL" ] && ln -sf $SOURCES_REPOSITORY/$TARBALL $ISODIR/sources/$TARBALL
   1.124 -				fi
   1.125 +				done
   1.126  			done
   1.127  			cd $ISODIR/boot/src
   1.128  			info "Make md5sum file for sources"