diff options
author | Lars Müller | 2006-12-15 23:51:32 +0100 |
---|---|---|
committer | Lars Müller | 2006-12-15 23:51:32 +0100 |
commit | 892ab09cf49598754d9725ccb773e14e064fd111 (patch) | |
tree | 880d1c48a25c48c9f6b16063df99e0c1e4a608aa /installer | |
parent | Busybox had broken killall - fixed. Fixed replacement bug for udhcpc (diff) | |
download | core-892ab09cf49598754d9725ccb773e14e064fd111.tar.gz core-892ab09cf49598754d9725ccb773e14e064fd111.tar.xz core-892ab09cf49598754d9725ccb773e14e064fd111.zip |
Use a temp dir to download the prerequired packages. If we can't create
a temp dir fallback to the default packages dir.
If we've used a temp dir move the packages to the default packages dir
to prevent superfluous downloads of the same packages.
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@550 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'installer')
-rwxr-xr-x | installer/slxossetup | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/installer/slxossetup b/installer/slxossetup index 14811739..10f581a5 100755 --- a/installer/slxossetup +++ b/installer/slxossetup @@ -88,9 +88,17 @@ function slxossetup_rpm_suse() # Download and unpack prerequired packages before any package installation SLX_PACKAGE_PATH="${SLX_METADATA_PATH}/packages" - test -d "${SLX_PACKAGE_PATH}" || \ - mkdir -p "${SLX_PACKAGE_PATH}" - pushd "${SLX_PACKAGE_PATH}" >/dev/null + TMP_DIR=$( mktemp -d "${SLX_METADATA_PATH}/packages.XXXXXXXX") + if test $? -ne 0; then + echo "$0: Warning, can not create temp package download directory! " + echo " Using ${SLX_PACKAGE_DOWNLOAD_PATH} instead. " + SLX_PACKAGE_DOWNLOAD_PATH="${SLX_PACKAGE_PATH}" + else + SLX_PACKAGE_DOWNLOAD_PATH="${TMP_DIR}" + fi + test -d "${SLX_PACKAGE_DOWNLOAD_PATH}" || \ + mkdir -p "${SLX_PACKAGE_DOWNLOAD_PATH}" + pushd "${SLX_PACKAGE_DOWNLOAD_PATH}" >/dev/null smart --data-dir="${SLX_METADATA_PATH}" \ download \ "${SLX_BASE_PREREQ_PACKAGES}" @@ -100,9 +108,18 @@ function slxossetup_rpm_suse() mkdir -p "${SLX_STAGE1_PATH}" pushd "${SLX_STAGE1_PATH}" >/dev/null for package in $SLX_BASE_PREREQ_PACKAGES; do - rpm2cpio ${SLX_PACKAGE_PATH}/${package}-*.rpm | \ + rpm2cpio ${SLX_PACKAGE_DOWNLOAD_PATH}/${package}-*.rpm | \ cpio -i --make-directories done + + # Move package from temp to package dir. + if test "${SLX_PACKAGE_DOWNLOAD_PATH}" != "${SLX_PACKAGE_PATH}"; then + test -d "${SLX_PACKAGE_PATH}" || \ + mkdir -p "${SLX_PACKAGE_PATH}" + mv "${SLX_PACKAGE_DOWNLOAD_PATH}/"*.rpm "${SLX_PACKAGE_PATH}/" + rmdir "${SLX_PACKAGE_DOWNLOAD_PATH}" + fi + # Cleanup etc to prevent .rpnnew files # FIXME: This should be controled by the config file. find etc/ -type f -print0 | \ |