summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xinit_buildsystem27
1 files changed, 26 insertions, 1 deletions
diff --git a/init_buildsystem b/init_buildsystem
index d4a87ff..8238f60 100755
--- a/init_buildsystem
+++ b/init_buildsystem
@@ -770,7 +770,18 @@ else
url="$SRC"
case "$url" in
zypp://* | http://* | https://* | ftp://* | ftps://*)
- downloadpkg "$url"
+ cachedir="$(getcachedir "$url")"
+ pkgname="$(basename "$url")"
+ pkgname=${pkgname/%.pkg.tar.?z/.arch}
+ rpmpkg="$cachedir/$pkgname"
+ if [ -e $rpmpkg ]
+ then
+ rpm -K --nosignature "$rpmpkg" > $rpmpkg.v || echo "$PKG $SRC" >>${RPMLIST}.download
+ rpm -K --nosignature "$rpmpkg" > $rpmpkg.v && downloadpkg "$url"
+ rm -f $rpmpkg.v
+ else
+ echo "$PKG $SRC" >>${RPMLIST}.download
+ fi
;;
*)
echo "unsupported url for '$PKG': $url" >&2
@@ -783,6 +794,19 @@ else
ln -s "$SRC" "$BUILD_ROOT/.init_b_cache/rpms/$PKG.${SRCSUF##*.}"
PACKAGES_TO_INSTALL="$PACKAGES_TO_INSTALL $PKG"
done < $RPMLIST
+ if [ -e ${RPMLIST}.download ]
+ then
+ PACKAGES_TO_DOWNLOAD=`cat ${RPMLIST}.download|awk '{print $2}'`
+ progress_setup PACKAGES_TO_DOWNLOAD
+ while read PKG SRC ; do
+ progress_step PACKAGES_TO_DOWNLOAD
+ downloadpkg "$SRC"
+ rm -f "$BUILD_ROOT/.init_b_cache/rpms/$PKG.${SRC##*.}"
+ ln -s "$SRC" "$BUILD_ROOT/.init_b_cache/rpms/$PKG.${SRC##*.}"
+ done < ${RPMLIST}.download
+ rm ${RPMLIST}.download -f
+ printf "\n"
+ fi
test -n "$PACKAGES_TO_CBPREINSTALL" && echo "cbpreinstall: $PACKAGES_TO_CBPREINSTALL"
test -n "$PACKAGES_TO_CBINSTALL" && echo "cbinstall : $PACKAGES_TO_CBINSTALL"
@@ -852,6 +876,7 @@ if test ! -f $BUILD_ROOT/var/lib/rpm/packages.rpm -a ! -f $BUILD_ROOT/var/lib/rp
progress_step PACKAGES_TO_PREINSTALL_FILTERED
preinstall ${PKG##*/}
done
+ printf "\n"
if test -n "$PREPARE_VM" ; then
PACKAGES_TO_VMINSTALL_FILTERED=`reorder $PACKAGES_TO_VMINSTALL_FILTERED`
progress_setup PACKAGES_TO_VMINSTALL_FILTERED