diff --git a/branches/ucs-3.2/ucs-3.2-0/base/univention-installer/scripts/14_sources_list.sh b/branches/ucs-3.2/ucs-3.2-0/base/univention-installer/scripts/14_sources_list.sh index 5309577..ac802fc 100755 --- a/branches/ucs-3.2/ucs-3.2-0/base/univention-installer/scripts/14_sources_list.sh +++ b/branches/ucs-3.2/ucs-3.2-0/base/univention-installer/scripts/14_sources_list.sh @@ -31,6 +31,7 @@ # . # update progress message +die () { echo "$*" >&2 ; exit 2 ; } . /tmp/progress.lib echo "__MSG__:$(LC_ALL=$INSTALLERLOCALE gettext "Configuring basesystem")" >&9 @@ -39,26 +40,32 @@ mkdir -m 0755 -p /instmnt/sourcedevice ## check for repository structure # old repository (DVD) if [ -d /mnt/packages ]; then - cat >/instmnt/etc/apt/sources.list <<__EOT__ -#UCS Installation - -deb file:/sourcedevice/packages ./ -__EOT__ + echo '#UCS Installation' + echo 'deb file:/sourcedevice/packages ./' else - version=`cat /mnt/.univention_install | grep VERSION | sed -e 's|VERSION=||'` + echo '#UCS Installation' + . /mnt/.univention_install || die "Failed to read .univention_installer" + major=${VERSION%.*} minor=${VERSION#*.} - repo_dir="file:/sourcedevice/mirror/${version}/maintained/ ${version}-0" - cat >/instmnt/etc/apt/sources.list <<__EOT__ -#UCS Installation + case "$(uname -m)" in + i686) ARCH=i386 ;; + x86_64) ARCH=amd64 ;; + *) die "Unknown architecture" ;; + esac -deb $repo_dir/all/ -__EOT__ - for arch in i386 amd64 extern; do - if [ -d "/mnt/mirror/${version}/maintained/${version}-0/$arch" ]; then - echo "deb $repo_dir/$arch/" >> /instmnt/etc/apt/sources.list - fi + while [ $minor -ge 0 ] + do + for dir in "/mnt/mirror/${major}.${minor}/maintained/${major}.${minor}-"[0-9]* + do + for arch in all "$ARCH" + do + [ -d "$dir/$arch" ] && + echo "deb file:/sourcedevice/mirror/${major}.${minor}/maintained ${d##*/maintained/}/$arch/" + done + done + minor=$((minor - 1)) done -fi +fi >/instmnt/etc/apt/sources.list chmod 644 /instmnt/etc/apt/sources.list rm -Rf /instmnt/etc/apt/sources.list.d