summaryrefslogtreecommitdiffstats
path: root/installer
diff options
context:
space:
mode:
authorLars Müller2006-12-15 23:51:32 +0100
committerLars Müller2006-12-15 23:51:32 +0100
commit892ab09cf49598754d9725ccb773e14e064fd111 (patch)
tree880d1c48a25c48c9f6b16063df99e0c1e4a608aa /installer
parentBusybox had broken killall - fixed. Fixed replacement bug for udhcpc (diff)
downloadcore-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-xinstaller/slxossetup25
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 | \