cookutils rev 506 slitaz-tank

cook: Fix getsrc function to only extract sources once.
author Christopher Rogers <slaxemulator@gmail.com>
date Mon Jun 25 06:19:46 2012 +0000 (2012-06-25)
parents 090c28f00d6d
children 0b6c1c223f1c
files cook
line diff
     1.1 --- a/cook	Sat Jun 23 21:22:14 2012 +0000
     1.2 +++ b/cook	Mon Jun 25 06:19:46 2012 +0000
     1.3 @@ -144,6 +144,7 @@
     1.4  	install=$pkgdir/install
     1.5  	pkgsrc="${SOURCE:-$PACKAGE}-${KBASEVER:-$VERSION}"
     1.6  	lzma_tarball="$pkgsrc.tar.lzma"
     1.7 +	orig_tarball="$TARBALL"
     1.8  	if [ "$PATCH" ]; then
     1.9  		[ "${PTARBALL}" ] || PTARBALL="$(basename $PATCH)"
    1.10  	fi
    1.11 @@ -276,46 +277,40 @@
    1.12  	# Get source tarball and make sure we have source dir named:
    1.13  	# $PACKAGE-$VERSION to be standard in receipts. Here we use tar.lzma
    1.14  	# tarball if it exists.
    1.15 -	if [ ! "$WANTED" ] && [ "$TARBALL" ]; then
    1.16 +	look_for_cookopt !unpack && unpack="no"
    1.17 +	look_for_cookopt !repack_src && LZMA_SRC=""
    1.18 +	if [ ! "$WANTED" ] && [ "$TARBALL" ] && [ ! "$unpack" ] && [ ! "$cook_code" ]; then
    1.19  		[ -d $tmpsrc ] && rm -rf $tmpsrc
    1.20  		mkdir -p $tmpsrc && cd $tmpsrc
    1.21  	fi
    1.22  	
    1.23 -	if [ "$WGET_URL" ] && [ -f "$SRC/$TARBALL" ]; then
    1.24 +	if [ "$WGET_URL" ] && [ ! -f "$SRC/$TARBALL" ]; then
    1.25 +		separator && download
    1.26 +	fi
    1.27 +	
    1.28 +	if [ "$WGET_URL" ] && [ -f "$SRC/$TARBALL" ] && [ ! "$unpack" ] && [ ! "$cook_code" ]; then
    1.29 +		[ "$TARBALL" = "$lzma_tarball" ] && LZMA_SRC=""
    1.30  		if [ "$1" = "--extract" ]; then
    1.31 -			[ -d $basesrc ] && rm -rf $basesrc
    1.32 -			mkdir -p $tmpsrc && cd $tmpsrc
    1.33 -			extract_source
    1.34 -			extract_path
    1.35 -		fi
    1.36 -		[ "$TARBALL" = "$lzma_tarball" ] && LZMA_SRC=""
    1.37 -	else
    1.38 -		separator && download
    1.39 +			extract_source || exit 1
    1.40 +			if [ ! -f "$SRC/$lzma_tarball" ] && [ "$LZMA_SRC" ]; then
    1.41 +				echo -e "Repacking source."
    1.42 +				repack_source || exit 1
    1.43 +			fi
    1.44 +			extract_path || exit 1
    1.45 +			if [ -f $SRC/$TARBALL ]; then
    1.46 +				[ -d $tmpsrc ] && rm -rf $tmpsrc
    1.47 +			fi
    1.48 +		fi		
    1.49  	fi
    1.50  	
    1.51  	# This is to make sure if PATCH equals something it will be downloaded
    1.52  	# checks are done in download functions
    1.53 -	if [ "$PATCH" ]; then
    1.54 +	if [ "$PATCH" ] && [ ! "$cook_code" ]; then
    1.55  		if [ ! -f "$SRC/$PTARBALL" ]; then
    1.56  			separator && download
    1.57  		fi
    1.58  	fi
    1.59  	
    1.60 -	look_for_cookopt !repack_src && LZMA_SRC=""
    1.61 -	if [ "$LZMA_SRC" ]; then
    1.62 -		echo -e "Repacking source."
    1.63 -		set_paths
    1.64 -		mkdir -p $tmpsrc && cd $tmpsrc
    1.65 -		extract_source || exit 1
    1.66 -		repack_source || exit 1
    1.67 -		if [ "$1" = "--extract" ]; then
    1.68 -			extract_path
    1.69 -		fi
    1.70 -		if [ -f $SRC/$TARBALL ]; then
    1.71 -			[ -d $tmpsrc ] && rm -rf $tmpsrc
    1.72 -		fi
    1.73 -	fi
    1.74 -	
    1.75  	echo -e "Tarball: $SRC/$TARBALL"
    1.76  	[ "$PATCH" ] && echo -e "Patch: $SRC/$PTARBALL"
    1.77  }
    1.78 @@ -411,7 +406,6 @@
    1.79  			mv tmp-1 tmp/$pkgsrc
    1.80  		fi
    1.81  	fi
    1.82 -	ORIG_TARBALL=$TARBALL
    1.83  	if [ -d "$tmpsrc/$pkgsrc" ]; then
    1.84  		gettext "Repacking source is enabled:"; echo " LZMA_SRC"
    1.85  		TARBALL=$lzma_tarball
    1.86 @@ -422,7 +416,7 @@
    1.87  		tar -c * | lzma e $SRC/$TARBALL -si $LZMA_SET_DIR
    1.88  		if [ $REMOVE_ORIG_TARBALL ]; then
    1.89  			if [ -f $SRC/$TARBALL ]; then
    1.90 -				[ -f $SRC/$ORIG_TARBALL ] && rm -f $SRC/$ORIG_TARBALL
    1.91 +				[ -f $SRC/$orig_tarball ] && rm -f $SRC/$orig_tarball
    1.92  			fi
    1.93  		fi
    1.94  	fi
    1.95 @@ -782,16 +776,6 @@
    1.96  	[ ! -s "$CACHE/installed.cook.diff" ] && \
    1.97  		busybox diff $CACHE/installed.list $CACHE/installed.cook > $CACHE/installed.cook.diff
    1.98  	deps=$(cat $CACHE/installed.cook.diff | grep ^+[a-zA-Z0-9] | wc -l)
    1.99 -	
   1.100 -	if [ ! "$WANTED" ] && [ "$TARBALL" ] && [ ! -d "$src" ]; then
   1.101 -		look_for_cookopt !unpack && unpack="no"
   1.102 -		if [ ! "$unpack" ] && [ "$cook_code" = "" ]; then
   1.103 -			extract_source || exit 1
   1.104 -			look_for_cookopt !repack_src && LZMA_SRC=""
   1.105 -			[ "$LZMA_SRC" ] && repack_source
   1.106 -			extract_path
   1.107 -		fi
   1.108 -	fi
   1.109  
   1.110  	# Execute receipt rules.
   1.111  	if [ $(grep ^compile_rules $receipt) ] && [ "$cook_code" = "" ]; then