# HG changeset patch # User Christopher Rogers # Date 1340605186 0 # Node ID 755379070a00f3994ea4772a6815b9d78af81bf1 # Parent 090c28f00d6da5942adc71794f4018148cf73a72 cook: Fix getsrc function to only extract sources once. diff -r 090c28f00d6d -r 755379070a00 cook --- a/cook Sat Jun 23 21:22:14 2012 +0000 +++ b/cook Mon Jun 25 06:19:46 2012 +0000 @@ -144,6 +144,7 @@ install=$pkgdir/install pkgsrc="${SOURCE:-$PACKAGE}-${KBASEVER:-$VERSION}" lzma_tarball="$pkgsrc.tar.lzma" + orig_tarball="$TARBALL" if [ "$PATCH" ]; then [ "${PTARBALL}" ] || PTARBALL="$(basename $PATCH)" fi @@ -276,46 +277,40 @@ # Get source tarball and make sure we have source dir named: # $PACKAGE-$VERSION to be standard in receipts. Here we use tar.lzma # tarball if it exists. - if [ ! "$WANTED" ] && [ "$TARBALL" ]; then + look_for_cookopt !unpack && unpack="no" + look_for_cookopt !repack_src && LZMA_SRC="" + if [ ! "$WANTED" ] && [ "$TARBALL" ] && [ ! "$unpack" ] && [ ! "$cook_code" ]; then [ -d $tmpsrc ] && rm -rf $tmpsrc mkdir -p $tmpsrc && cd $tmpsrc fi - if [ "$WGET_URL" ] && [ -f "$SRC/$TARBALL" ]; then + if [ "$WGET_URL" ] && [ ! -f "$SRC/$TARBALL" ]; then + separator && download + fi + + if [ "$WGET_URL" ] && [ -f "$SRC/$TARBALL" ] && [ ! "$unpack" ] && [ ! "$cook_code" ]; then + [ "$TARBALL" = "$lzma_tarball" ] && LZMA_SRC="" if [ "$1" = "--extract" ]; then - [ -d $basesrc ] && rm -rf $basesrc - mkdir -p $tmpsrc && cd $tmpsrc - extract_source - extract_path - fi - [ "$TARBALL" = "$lzma_tarball" ] && LZMA_SRC="" - else - separator && download + extract_source || exit 1 + if [ ! -f "$SRC/$lzma_tarball" ] && [ "$LZMA_SRC" ]; then + echo -e "Repacking source." + repack_source || exit 1 + fi + extract_path || exit 1 + if [ -f $SRC/$TARBALL ]; then + [ -d $tmpsrc ] && rm -rf $tmpsrc + fi + fi fi # This is to make sure if PATCH equals something it will be downloaded # checks are done in download functions - if [ "$PATCH" ]; then + if [ "$PATCH" ] && [ ! "$cook_code" ]; then if [ ! -f "$SRC/$PTARBALL" ]; then separator && download fi fi - look_for_cookopt !repack_src && LZMA_SRC="" - if [ "$LZMA_SRC" ]; then - echo -e "Repacking source." - set_paths - mkdir -p $tmpsrc && cd $tmpsrc - extract_source || exit 1 - repack_source || exit 1 - if [ "$1" = "--extract" ]; then - extract_path - fi - if [ -f $SRC/$TARBALL ]; then - [ -d $tmpsrc ] && rm -rf $tmpsrc - fi - fi - echo -e "Tarball: $SRC/$TARBALL" [ "$PATCH" ] && echo -e "Patch: $SRC/$PTARBALL" } @@ -411,7 +406,6 @@ mv tmp-1 tmp/$pkgsrc fi fi - ORIG_TARBALL=$TARBALL if [ -d "$tmpsrc/$pkgsrc" ]; then gettext "Repacking source is enabled:"; echo " LZMA_SRC" TARBALL=$lzma_tarball @@ -422,7 +416,7 @@ tar -c * | lzma e $SRC/$TARBALL -si $LZMA_SET_DIR if [ $REMOVE_ORIG_TARBALL ]; then if [ -f $SRC/$TARBALL ]; then - [ -f $SRC/$ORIG_TARBALL ] && rm -f $SRC/$ORIG_TARBALL + [ -f $SRC/$orig_tarball ] && rm -f $SRC/$orig_tarball fi fi fi @@ -782,16 +776,6 @@ [ ! -s "$CACHE/installed.cook.diff" ] && \ busybox diff $CACHE/installed.list $CACHE/installed.cook > $CACHE/installed.cook.diff deps=$(cat $CACHE/installed.cook.diff | grep ^+[a-zA-Z0-9] | wc -l) - - if [ ! "$WANTED" ] && [ "$TARBALL" ] && [ ! -d "$src" ]; then - look_for_cookopt !unpack && unpack="no" - if [ ! "$unpack" ] && [ "$cook_code" = "" ]; then - extract_source || exit 1 - look_for_cookopt !repack_src && LZMA_SRC="" - [ "$LZMA_SRC" ] && repack_source - extract_path - fi - fi # Execute receipt rules. if [ $(grep ^compile_rules $receipt) ] && [ "$cook_code" = "" ]; then