summaryrefslogtreecommitdiffstats
path: root/installer
diff options
context:
space:
mode:
Diffstat (limited to 'installer')
-rwxr-xr-xinstaller/slxossetup337
-rw-r--r--installer/systems/opensuse102/settings82
-rw-r--r--installer/systems/opensuse102/settings.local.example2
-rw-r--r--installer/systems/suse101/settings84
-rw-r--r--installer/systems/suse101/settings.local.example2
-rw-r--r--installer/systems/ubuntu610/settings2
6 files changed, 478 insertions, 31 deletions
diff --git a/installer/slxossetup b/installer/slxossetup
index 64f44fc5..d02089b4 100755
--- a/installer/slxossetup
+++ b/installer/slxossetup
@@ -1,4 +1,4 @@
-#! /bin/bash
+#! /bin/sh
#
# slxossetup - OpenSLX script for OS setup
#
@@ -9,13 +9,15 @@
: ${SLX_CONFIG_PATH:=/etc/opt/openslx}
: ${SLX_PRIVATE_PATH:=/var/opt/openslx}
+: ${SLX_BOOTSTRAP_PATH:="/slxbootstrap"}
+: ${SLX_STAGE1_FINAL_PATH:="/slxfinal"}
SLX_SYSTEM_NAME=$1
test "$2" && \
SLX_OSSETUP_MODE=$2 ||
SLX_OSSETUP_MODE="install"
-PATH="/bin:/usr/bin"
+PATH="/sbin:/bin:/usr/bin:/usr/sbin"
for binary in smart; do
if ! type -p "${binary}" >/dev/null; then
@@ -39,29 +41,316 @@ for dir in . ${SLX_CONFIG_PATH}; do
fi
done
+for dir in ${SLX_CONFIG_PATH} .; do
+ for file in settings.default settings.local; do
+ file="${dir}/${file}"
+ test -f "${file}" && \
+ . "${file}"
+ done
+done
+
+SLX_BUSYBOX_CHROOT_NAME="busybox_chroot"
+
# Read config files for a particular system
for suffix in "" local ${SLX_SYSTEM_VARIANTNAME}; do
test -f "${SLX_SYSTEM_CONFIG_PATH}/settings${suffix:+.$suffix}" && \
. "${SLX_SYSTEM_CONFIG_PATH}/settings${suffix:+.$suffix}"
done
-function install_prereq_file()
+function setup_busybox_init()
+{
+ for dir in ${SLX_STAGE1_PATH}; do
+ if test -d "${dir}"; then
+ echo "$0: Error, ${dir} already exists! "
+ exit 1
+ fi
+ done
+}
+
+function setup_busybox_chroot()
+{
+ local dir file PERL_PATH BUSYBOX_PATH BUSYBOX_LINKS_PATH REQUIRED_LIBS
+
+ BUSYBOX_PATH="${SLX_SHARE_PATH}/busybox/busybox"
+ BUSYBOX_LINKS_PATH="${SLX_SHARE_PATH}/busybox/busybox.links"
+
+ case "${REPO_TYPE}" in
+ *deb*)
+ PERL_PATH=$( type -p perl)
+ if test -z "${PERL_PATH}"; then
+ echo "$0: Error, perl is not in your path, $PATH."
+ exit 1
+ fi
+ test -d "${CHROOT_DIR}/usr/bin/" || \
+ mkdir -p "${CHROOT_DIR}/usr/bin/"
+ cp -p "${PERL_PATH}" "${CHROOT_DIR}/usr/bin/"
+ ;;
+ esac
+
+ test -d "${CHROOT_DIR}/bin" || \
+ mkdir -p "${CHROOT_DIR}/bin"
+ cp -p "${BUSYBOX_PATH}" "${CHROOT_DIR}/bin/"
+
+ REQUIRED_LIBS=$( for file in ${CHROOT_DIR}/bin/* ${CHROOT_DIR}/usr/bin/*; do
+ test -e $file || \
+ continue
+ ${SLX_BIN_PATH}/slxldd $file;
+ done)
+
+ for file in ${REQUIRED_LIBS}; do
+ test -e "${CHROOT_DIR}/${file}" && \
+ continue
+ dir="${CHROOT_DIR}/${file%/*}"
+ test -d "${dir}" || \
+ mkdir -p "${dir}"
+ cp -p "${file}" "${dir}/"
+ done
+
+ while read file; do
+ dir="${CHROOT_DIR}/${file%/*}"
+ test -d "${dir}" || \
+ mkdir -p "${dir}"
+ ln -s "/bin/busybox" "${CHROOT_DIR}/${file}"
+ done <"${BUSYBOX_LINKS_PATH}"
+
+ test -d "${CHROOT_DIR}/etc" || \
+ mkdir -p "${CHROOT_DIR}/etc"
+ cp -p /etc/resolv.conf "${CHROOT_DIR}/etc/"
+
+ # FIXME this might not be enough to satisfy the resolver
+ for file in /lib/libnss_dns* /lib/libresolv*; do
+ test -e "${file}" || \
+ continue
+ dir="${CHROOT_DIR}/${file%/*}"
+ test -d "${dir}" || \
+ mkdir -p "${dir}"
+ cp -p "${file}" "${dir}/"
+ done
+}
+
+function setup_busybox_stage1_config()
+{
+ local key value CONFIG_FILE
+
+ CONFIG_FILE="${CHROOT_DIR}/etc/slxbootstrap.conf"
+
+ test -d "${CHROOT_DIR}/etc" || \
+ mkdir -p "${CHROOT_DIR}/etc"
+
+ echo "# OpenSLX bootstrap configuration file" >"${CONFIG_FILE}"
+
+ for key in \
+ SLX_BASE_BOOTSTRAP_PACKAGES \
+ SLX_BASE_PREREQ_PACKAGES \
+ SLX_STAGE1_FINAL_PATH \
+ SLX_INST_ARCH \
+ SLX_INSTALL_FAKE_FILE \
+ SLX_INST_SOURCE_BASEURL \
+ SLX_INST_SOURCE_DISTRIBUTION \
+ SLX_INST_SOURCE_PACKAGEKEYS \
+ SLX_INST_SOURCE_PACKAGE_SUBDIR; do
+ value=$( eval echo \$$key)
+ test "${value}" || \
+ continue
+ echo $key=\"$value\" >>"${CONFIG_FILE}"
+ done
+
+ test -d "${CHROOT_DIR}/bin" || \
+ mkdir -p "${CHROOT_DIR}/bin"
+ cp -p "${SLX_SHARE_PATH}"/busybox/slx* "${CHROOT_DIR}/bin"
+}
+
+function setup_busybox_install_prereq_file()
{
- # Install prerequired files
if test -d "${SLX_SYSTEM_CONFIG_PATH}/prereqfiles"; then
- cp -pr "${SLX_SYSTEM_CONFIG_PATH}"/prereqfiles/* "${SLX_STAGE1_PATH}"
+ test -d "${CHROOT_DIR}/etc/prereqfiles/" || \
+ mkdir -p "${CHROOT_DIR}/etc/prereqfiles/"
+ cp -pr "${SLX_SYSTEM_CONFIG_PATH}"/prereqfiles/* "${CHROOT_DIR}/etc/prereqfiles/"
find "${SLX_STAGE1_PATH}" -type d -name .svn -print0 | \
xargs -0 rm -rf
fi
- test -x "${SLX_SYSTEM_CONFIG_PATH}"/scripts/postprereq && \
- "${SLX_SYSTEM_CONFIG_PATH}"/scripts/postprereq "${SLX_STAGE1_PATH}"
+ if test -x "${SLX_SYSTEM_CONFIG_PATH}/scripts/postprereq"; then
+ test -d "${CHROOT_DIR}/bin" ||
+ mkdir -p "${CHROOT_DIR}/bin"
+ cp -p "${SLX_SYSTEM_CONFIG_PATH}"/scripts/postprereq "${CHROOT_DIR}/bin/"
+ fi
+}
- for file in ${SLX_INSTALL_FAKE_FILE}; do
- dir="${file%/*}"
- test -d "${SLX_STAGE1_PATH}/${dir}" || \
- mkdir -p "${SLX_STAGE1_PATH}/${dir}"
- touch "${SLX_STAGE1_PATH}/${file}"
+function setup_bootstrap_1b()
+{
+ chroot "${CHROOT_DIR}" /bin/slxbootstrap
+}
+
+function setup_bootstrap_1c()
+{
+ local packagekey
+
+ case "${SLX_SYSTEM_BASENAME}" in
+ *ubuntu*)
+ test -d "${SLX_STAGE1_FINAL_PATH}" || \
+ mkdir -p "${SLX_STAGE1_FINAL_PATH}"
+
+ DEBOOTSTRAP_DIR="${SLX_BOOTSTRAP_PATH}/usr/lib/debootstrap" \
+ chroot "${CHROOT_DIR}" /bin/ash \
+ "${SLX_BOOTSTRAP_PATH}/usr/sbin/debootstrap" \
+ ${SLX_INST_ARCH:+--arch $SLX_INST_ARCH} \
+ "${SLX_INST_SOURCE_DISTRIBUTION}" \
+ "${SLX_BOOTSTRAP_PATH}/${SLX_STAGE1_FINAL_PATH}" \
+ "${SLX_INST_SOURCE_BASEURL}"
+ ;;
+ *suse*)
+ test -d "${CHROOT_DIR}/${SLX_BOOTSTRAP_PATH}/etc" || \
+ mkdir "${CHROOT_DIR}/${SLX_BOOTSTRAP_PATH}/etc"
+ touch "${CHROOT_DIR}/${SLX_BOOTSTRAP_PATH}/etc/mtab"
+ for packagekey in ${SLX_INST_SOURCE_PACKAGEKEYS}; do
+ chroot "${CHROOT_DIR}/${SLX_BOOTSTRAP_PATH}" \
+ /bin/rpm --root="${SLX_STAGE1_FINAL_PATH}" --import "${packagekey}"
+ done
+ chroot "${CHROOT_DIR}/${SLX_BOOTSTRAP_PATH}" \
+ /bin/rpm --root="${SLX_STAGE1_FINAL_PATH}" -ivh *.rpm
+ cp -p /etc/resolv.conf "${CHROOT_DIR}/${SLX_BOOTSTRAP_PATH}/${SLX_STAGE1_FINAL_PATH}/etc/"
+ ;;
+ esac
+ mv "${CHROOT_DIR}/${SLX_BOOTSTRAP_PATH}/${SLX_STAGE1_FINAL_PATH}/"* "${SLX_STAGE1_PATH}/"
+ rm -rf ${CHROOT_DIR}
+}
+
+function setup_package_sources()
+{
+ case "${SLX_SYSTEM_BASENAME}" in
+ *ubuntu*)
+ SOURCES_LIST="${SLX_STAGE1_PATH}/etc/apt/sources.list"
+ rm -f "${SOURCES_LIST}"
+ ;;
+ esac
+ # Add available installation sources to an installed system.
+ # For systems using apt we're able to do this from outside.
+ for variable in ${!SLX_INST_SOURCE_NAME_*}; do
+ # Unset INST_SOURCE_* to let smart fail if they are not set for a particular
+ # channel; unset PACKAGEKEYS to prevent adding them multiple times.
+ unset INST_SOURCE_COMPONENTS \
+ INST_SOURCE_DISTRIBUTION \
+ INST_SOURCE_NAME \
+ INST_SOURCE_PRIORITY \
+ INST_SOURCE_TYPE \
+ PACKAGEKEYS
+
+ INST_SOURCE_CHANNEL="${variable##*_}"
+ INST_SOURCE_BASEURL=$( eval echo \$SLX_INST_SOURCE_BASEURL_${INST_SOURCE_CHANNEL})
+ INST_SOURCE_NAME=$( eval echo \$$variable)
+ test "${INST_SOURCE_NAME}" || \
+ INST_SOURCE_NAME="${INST_SOURCE_CHANNEL}"
+
+ INST_SOURCE_TYPE=$( eval echo \$SLX_INST_SOURCE_TYPE_${INST_SOURCE_CHANNEL})
+ # Use default repo type if not available from settings config file
+ test "${INST_SOURCE_TYPE}" || \
+ INST_SOURCE_TYPE="${REPO_TYPE}"
+
+ # Has this config distribution, components
+ INST_SOURCE_DISTRIBUTION=$( eval echo \$SLX_INST_SOURCE_DISTRIBUTION_${INST_SOURCE_CHANNEL})
+ INST_SOURCE_COMPONENTS=$( eval echo \$SLX_INST_SOURCE_COMPONENTS_${INST_SOURCE_CHANNEL})
+ INST_SOURCE_PRIORITY=$( eval echo \$SLX_INST_SOURCE_PRIORITY_${INST_SOURCE_CHANNEL})
+ # Check if one of our global settings is still undefined
+ for setting in ${GLOBAL_SETTINGS}; do
+ test "$( eval echo \$INST_SOURCE_${setting})" || \
+ eval INST_SOURCE_${setting}=\$SLX_INST_SOURCE_${setting}
+ done
+
+ echo "$0: Adding installation source name=\"${INST_SOURCE_NAME}\", baseurl=\"${INST_SOURCE_BASEURL}\". "
+
+ case "${SLX_SYSTEM_BASENAME}" in
+ *ubuntu*)
+ echo "deb ${INST_SOURCE_BASEURL} ${INST_SOURCE_DISTRIBUTION} ${INST_SOURCE_COMPONENTS}" \
+ >>${SOURCES_LIST}
+ # FIXME Add feature to sort the lines by given (?) priority.
+ ;;
+ *suse*)
+ # Prefix the config name for optional parameters
+ test "${INST_SOURCE_PRIORITY}" && \
+ INST_SOURCE_PRIORITY="priority=\"${INST_SOURCE_PRIORITY}\""
+
+ eval LC_ALL=POSIX chroot ${SLX_STAGE1_PATH} smart \
+ channel \
+ --add \"${INST_SOURCE_CHANNEL}\" \
+ name=\"${INST_SOURCE_NAME}\" \
+ type=\"${INST_SOURCE_TYPE}\" \
+ baseurl=\"${INST_SOURCE_BASEURL}\" \
+ ${INST_SOURCE_PRIORITY} \
+ -y
+ ;;
+ esac
+ done
+}
+
+# Install all available updates for an installed system.
+# Before we have to ensure to have the install sources up to date.
+function update_system()
+{
+ if test -z "${SLX_STAGE1_PATH}"; then
+ echo "Error: SLX_STAGE1_PATH is not set."
+ exit 1
+ fi
+
+ case "${SLX_SYSTEM_BASENAME}" in
+ *ubuntu*)
+ : ${SLX_STAGE1_UPDATE_OPTIONS:=-y}
+ : ${SLX_STAGE1_UPGRADE_OPTIONS:=-y}
+ chroot "${SLX_STAGE1_PATH}" apt-get update "${SLX_STAGE1_UPDATE_OPTIONS}"
+ chroot "${SLX_STAGE1_PATH}" apt-get upgrade "${SLX_STAGE1_UPGRADE_OPTIONS}"
+ ;;
+ *suse*)
+ : ${SLX_STAGE1_UPGRADE_OPTIONS:=-y}
+ LC_ALL=POSIX chroot "${SLX_STAGE1_PATH}" smart upgrade --update "${SLX_STAGE1_UPGRADE_OPTIONS}"
+ ;;
+ esac
+}
+
+function install_slxselection()
+{
+ if test -z "${SLX_STAGE1_PATH}"; then
+ echo "Error: SLX_STAGE1_PATH is not set."
+ exit 1
+ fi
+
+ local packagelist variable
+ for variable in ${!SLX_INSTALL_PACKAGES_*}; do
+ packagelist="${packagelist} $( eval echo \$$variable)"
done
+ test -z "${packagelist}" && \
+ return
+
+ case "${SLX_SYSTEM_BASENAME}" in
+ *ubuntu*)
+ : ${SLX_STAGE1_INSTALL_OPTIONS:=-y}
+ chroot "${SLX_STAGE1_PATH}" apt-get install "${SLX_STAGE1_INSTALL_OPTIONS}" ${packagelist}
+ ;;
+ *suse*)
+ : ${SLX_STAGE1_UPGRADE_OPTIONS:=-y}
+ LC_ALL=POSIX chroot "${SLX_STAGE1_PATH}" smart install "${SLX_STAGE1_UPGRADE_OPTIONS}" ${packagelist}
+ ;;
+ esac
+}
+
+function slxossetup_busybox()
+{
+ local CHROOT_DIR
+
+ setup_busybox_init
+ if test -z "${SLX_STAGE1_PATH}" -o -z "${SLX_BUSYBOX_CHROOT_NAME}"; then
+ echo "Error: SLX_STAGE1_PATH or SLX_BUSYBOX_CHROOT_NAME is not set."
+ exit 1
+ fi
+ CHROOT_DIR="${SLX_STAGE1_PATH}/${SLX_BUSYBOX_CHROOT_NAME}"
+ setup_busybox_chroot
+ setup_busybox_stage1_config
+ setup_busybox_install_prereq_file
+
+ setup_bootstrap_1b
+ setup_bootstrap_1c
+
+ setup_package_sources
+ update_system
+ install_slxselection
}
function install_prereq_packages()
@@ -128,6 +417,7 @@ function install_prereq_packages()
if test "${BOOTSTRAP_PATH}" -a -x "${BOOTSTRAP_PATH}/usr/sbin/debootstrap"; then
DEBOOTSTRAP_DIR="${BOOTSTRAP_PATH}/usr/lib/debootstrap" \
"${BOOTSTRAP_PATH}/usr/sbin/debootstrap" \
+ ${SLX_INST_ARCH:+--arch $SLX_INST_ARCH} \
"${SLX_INST_SOURCE_DISTRIBUTION}" \
"${SLX_STAGE1_PATH}" \
"${SLX_INST_SOURCE_BASEURL}"
@@ -159,9 +449,6 @@ function install_prereq_packages()
function slxossetup_smart()
{
- SLX_METADATA_PATH="${SLX_PRIVATE_PATH}/metadata/${SLX_SYSTEM_NAME}"
- SLX_STAGE1_PATH="${SLX_PRIVATE_PATH}/stage1/${SLX_SYSTEM_NAME}"
-
for dir in ${SLX_METADATA_PATH} ${SLX_STAGE1_PATH}; do
if test -d "${dir}"; then
echo "$0: Error, ${dir} already exists! "
@@ -281,20 +568,28 @@ function slxossetup_smart()
done
}
+function slxossetup_init()
+{
+ SLX_METADATA_PATH="${SLX_PRIVATE_PATH}/metadata/${SLX_SYSTEM_NAME}"
+ SLX_STAGE1_PATH="${SLX_PRIVATE_PATH}/stage1/${SLX_SYSTEM_NAME}"
+}
+
function slxossetup()
{
+ slxossetup_init
+
case "${SLX_SYSTEM_BASENAME}" in
*suse*)
# Inform SUSE RPMs that we're performing an installation
+ # This is only important in stage 1c
export YAST_IS_RUNNING="instsys"
+ GLOBAL_SETTINGS="BASEURL PACKAGEKEYS"
REPO_TYPE="rpm-md"
NAME_DEST_ROOT="rpm-root"
- slxossetup_smart
;;
*fedora*)
REPO_TYPE="rpm-md"
NAME_DEST_ROOT="rpm-root"
- slxossetup_smart
;;
*ubuntu*)
GLOBAL_SETTINGS="BASEURL COMPONENTS DISTRIBUTION"
@@ -302,13 +597,17 @@ function slxossetup()
NAME_DEST_ROOT="deb-root"
SLX_STAGE1_CREATE_DIR="/var/lib/dpkg/updates"
SLX_STAGE1_CREATE_FILE="/var/lib/dpkg/available /var/lib/dpkg/status"
- slxossetup_smart
;;
*) echo "$0: Error, unkown system ${SLX_SYSTEM_BASENAME}" ;;
esac
+
+ case "${SLX_OSSETUP_MODE}" in
+ install) slxossetup_busybox ;;
+ package-source) setup_package_sources ;;
+ esac
}
case "${SLX_OSSETUP_MODE}" in
- install) slxossetup ;;
+ install|package-source) slxossetup ;;
*) echo "Usage: $0 system-name [install]" ;;
esac
diff --git a/installer/systems/opensuse102/settings b/installer/systems/opensuse102/settings
index 6e07b1de..3464be0f 100644
--- a/installer/systems/opensuse102/settings
+++ b/installer/systems/opensuse102/settings
@@ -1,5 +1,6 @@
-SLX_INST_SOURCE_BASEURL_opensuse102="http://ftp.gwdg.de/pub/opensuse/distribution/10.2/repo/oss"
-SLX_INST_SOURCE_PACKAGEKEYS_opensuse102="
+SLX_INST_SOURCE_BASEURL="http://ftp.gwdg.de/pub/opensuse/distribution/10.2/repo/oss"
+SLX_INST_SOURCE_PACKAGE_SUBDIR="suse"
+SLX_INST_SOURCE_PACKAGEKEYS="
gpg-pubkey-0dfb3188-41ed929b.asc
gpg-pubkey-307e3d54-44201d5d.asc
gpg-pubkey-3d25d3d9-36e12d04.asc
@@ -11,6 +12,79 @@ SLX_INST_SOURCE_NAME_opensuse102="openSUSE 10.2"
SLX_INST_SOURCE_TYPE_opensuse102="yast2"
SLX_INST_SOURCE_BASEURL_opensuse102update="http://ftp.gwdg.de/pub/suse/update/10.2"
SLX_INST_SOURCE_NAME_opensuse102update="openSUSE 10.2 updates"
-SLX_BASE_PREREQ_PACKAGES="glibc"
+SLX_BASE_PREREQ_PACKAGES="
+i586/bzip2-1.0.3-36.i586.rpm
+i586/glibc-2.5-25.i586.rpm
+i586/popt-1.7-304.i586.rpm
+i586/rpm-4.4.2-76.i586.rpm
+i586/zlib-1.2.3-33.i586.rpm
+"
+SLX_BASE_BOOTSTRAP_PACKAGES="
+i586/aaa_base-10.2-38.i586.rpm
+i586/aaa_skel-2006.5.19-20.i586.rpm
+i586/audit-libs-1.2.6-20.i586.rpm
+i586/bash-3.1-55.i586.rpm
+i586/blocxx-1.0.0-36.i586.rpm
+i586/coreutils-6.4-10.i586.rpm
+i586/cpio-2.6-40.i586.rpm
+i586/cracklib-2.8.9-20.i586.rpm
+i586/cyrus-sasl-2.1.22-28.i586.rpm
+i586/db-4.4.20-16.i586.rpm
+i586/diffutils-2.8.7-38.i586.rpm
+i586/e2fsprogs-1.39-21.i586.rpm
+i586/file-4.17-23.i586.rpm
+i586/filesystem-10.2-22.i586.rpm
+i586/fillup-1.42-138.i586.rpm
+i586/findutils-4.2.28-24.i586.rpm
+i586/gawk-3.1.5-41.i586.rpm
+i586/gdbm-1.8.3-261.i586.rpm
+i586/gpg-1.4.5-24.i586.rpm
+i586/grep-2.5.1a-40.i586.rpm
+i586/gzip-1.3.5-178.i586.rpm
+i586/info-4.8-43.i586.rpm
+i586/insserv-1.04.0-42.i586.rpm
+i586/irqbalance-0.09-80.i586.rpm
+i586/kernel-default-2.6.18.2-34.i586.rpm
+i586/libacl-2.2.34-33.i586.rpm
+i586/libattr-2.4.28-38.i586.rpm
+i586/libcom_err-1.39-21.i586.rpm
+i586/libgcc41-4.1.2_20061115-5.i586.rpm
+i586/libstdc++41-4.1.2_20061115-5.i586.rpm
+i586/libvolume_id-103-12.i586.rpm
+i586/libxcrypt-2.4-30.i586.rpm
+i586/libzio-0.2-20.i586.rpm
+i586/limal-1.2.9-5.i586.rpm
+i586/limal-bootloader-1.2.4-6.i586.rpm
+i586/limal-perl-1.2.9-5.i586.rpm
+i586/logrotate-3.7.4-21.i586.rpm
+i586/mdadm-2.5.3-17.i586.rpm
+i586/mingetty-0.9.6s-107.i586.rpm
+i586/mkinitrd-1.2-149.i586.rpm
+i586/mktemp-1.5-763.i586.rpm
+i586/module-init-tools-3.2.2-62.i586.rpm
+i586/ncurses-5.5-42.i586.rpm
+i586/net-tools-1.60-606.i586.rpm
+i586/openldap2-client-2.3.27-25.i586.rpm
+i586/openssl-0.9.8d-17.i586.rpm
+i586/openSUSE-release-10.2-35.i586.rpm
+i586/pam-0.99.6.3-24.i586.rpm
+i586/pciutils-2.2.4-13.i586.rpm
+i586/pcre-6.7-21.i586.rpm
+i586/perl-5.8.8-32.i586.rpm
+i586/perl-Bootloader-0.4.5-3.i586.rpm
+i586/perl-gettext-1.05-31.i586.rpm
+i586/permissions-2006.11.13-5.i586.rpm
+i586/readline-5.1-55.i586.rpm
+i586/reiserfs-3.6.19-37.i586.rpm
+i586/sed-4.1.5-21.i586.rpm
+i586/sysvinit-2.86-47.i586.rpm
+i586/udev-103-12.i586.rpm
+i586/util-linux-2.12r-61.i586.rpm
+noarch/pciutils-ids-2006.11.18-2.noarch.rpm
+noarch/suse-build-key-1.0-707.noarch.rpm
+i586/rpm-python-4.4.2-76.i586.rpm
+i586/python-xml-2.5-19.i586.rpm
+i586/python-2.5-19.i586.rpm
+i586/smart-0.42-43.i586.rpm
+"
SLX_BASE_PREREQ_CLEANUP_PATH="etc"
-SLX_INSTALL_PACKAGES_MAIN="kernel-default bash"
diff --git a/installer/systems/opensuse102/settings.local.example b/installer/systems/opensuse102/settings.local.example
index f3c01c8f..0e58992e 100644
--- a/installer/systems/opensuse102/settings.local.example
+++ b/installer/systems/opensuse102/settings.local.example
@@ -3,7 +3,7 @@
# It's also possible to define addditional values here.
# Use a local installation source.
-SLX_INST_SOURCE_BASEURL_opensuse102="ftp://gab/pub/opensuse/distribution/10.2/repo/oss"
+SLX_INST_SOURCE_BASEURL="ftp://gab/pub/opensuse/distribution/10.2/repo/oss"
SLX_INST_SOURCE_BASEURL_opensuse102update="ftp://gab/pub/suse/update/10.2"
# Add more packages.
diff --git a/installer/systems/suse101/settings b/installer/systems/suse101/settings
index 375a69b1..121f2b27 100644
--- a/installer/systems/suse101/settings
+++ b/installer/systems/suse101/settings
@@ -1,5 +1,6 @@
-SLX_INST_SOURCE_BASEURL_suse101="http://ftp.gwdg.de/pub/opensuse/distribution/SL-10.1/inst-source"
-SLX_INST_SOURCE_PACKAGEKEYS_suse101="
+SLX_INST_SOURCE_BASEURL="http://ftp.gwdg.de/pub/opensuse/distribution/SL-10.1/inst-source"
+SLX_INST_SOURCE_PACKAGE_SUBDIR="suse"
+SLX_INST_SOURCE_PACKAGEKEYS="
gpg-pubkey-0dfb3188-41ed929b.asc
gpg-pubkey-1d061a62-427a396f.asc
gpg-pubkey-307e3d54-44201d5d.asc
@@ -10,6 +11,79 @@ SLX_INST_SOURCE_NAME_suse101="SUSE Linux 10.1"
SLX_INST_SOURCE_TYPE_suse101="yast2"
SLX_INST_SOURCE_BASEURL_suse101update="http://ftp.gwdg.de/pub/suse/update/10.1"
SLX_INST_SOURCE_NAME_suse101update="SUSE Linux 10.1 updates"
-SLX_BASE_PREREQ_PACKAGES="glibc"
-SLX_BASE_PREREQ_CLEANUP_PATH="etc"
-SLX_INSTALL_PACKAGES_MAIN="kernel-default bash"
+SLX_BASE_PREREQ_PACKAGES="
+i586/bzip2-1.0.3-15.i586.rpm
+i586/glibc-2.4-31.1.i586.rpm
+i586/popt-1.7-268.i586.rpm
+i586/rpm-4.4.2-43.4.i586.rpm
+i586/zlib-1.2.3-13.i586.rpm
+"
+SLX_BASE_BOOTSTRAP_PACKAGES="
+i586/aaa_base-10.1-41.i586.rpm
+i586/aaa_skel-2006.5.19-0.2.i586.rpm
+i586/ash-1.6.1-13.i586.rpm
+i586/audit-libs-1.1.3-23.3.i586.rpm
+i586/bash-3.1-24.3.i586.rpm
+i586/blocxx-1.0.0-15.i586.rpm
+i586/coreutils-5.93-20.i586.rpm
+i586/cpio-2.6-17.i586.rpm
+i586/cracklib-2.8.6-12.i586.rpm
+i586/cyrus-sasl-2.1.21-18.i586.rpm
+i586/db-4.3.29-13.i586.rpm
+i586/diffutils-2.8.7-15.i586.rpm
+i586/e2fsprogs-1.38-25.i586.rpm
+i586/expat-2.0.0-11.i586.rpm
+i586/file-4.16-15.4.i586.rpm
+i586/filesystem-10.1-5.i586.rpm
+i586/fillup-1.42-116.i586.rpm
+i586/findutils-4.2.27-12.i586.rpm
+i586/gawk-3.1.5-18.i586.rpm
+i586/gdbm-1.8.3-241.i586.rpm
+i586/gpg-1.4.2-23.7.i586.rpm
+i586/grep-2.5.1a-18.i586.rpm
+i586/gzip-1.3.5-159.5.i586.rpm
+i586/info-4.8-20.i586.rpm
+i586/insserv-1.04.0-18.i586.rpm
+i586/irqbalance-0.09-58.i586.rpm
+i586/kernel-default-2.6.16.21-0.25.i586.rpm
+i586/libacl-2.2.34-12.i586.rpm
+i586/libattr-2.4.28-14.i586.rpm
+i586/libcom_err-1.38-25.i586.rpm
+i586/libgcc-4.1.0-25.i586.rpm
+i586/libstdc++-4.1.0-25.i586.rpm
+i586/libxcrypt-2.4-10.i586.rpm
+i586/libzio-0.1-15.i586.rpm
+i586/limal-1.1.6-8.i586.rpm
+i586/limal-bootloader-1.1.2-7.i586.rpm
+i586/limal-perl-1.1.6-8.i586.rpm
+i586/logrotate-3.7.3-11.i586.rpm
+i586/mdadm-2.2-30.i586.rpm
+i586/mingetty-0.9.6s-86.i586.rpm
+i586/mkinitrd-1.2-106.19.i586.rpm
+i586/mktemp-1.5-742.i586.rpm
+i586/module-init-tools-3.2.2-32.13.i586.rpm
+i586/ncurses-5.5-16.i586.rpm
+i586/net-tools-1.60-581.i586.rpm
+i586/openldap2-client-2.3.19-18.i586.rpm
+i586/openssl-0.9.8a-18.10.i586.rpm
+i586/pam-0.99.3.0-29.3.i586.rpm
+i586/pciutils-2.2.1-14.i586.rpm
+i586/pcre-6.4-12.i586.rpm
+i586/perl-5.8.8-12.i586.rpm
+i586/perl-Bootloader-0.2.27-0.4.i586.rpm
+i586/perl-gettext-1.05-11.i586.rpm
+i586/permissions-2006.2.24-8.i586.rpm
+i586/python-2.4.2-18.i586.rpm
+i586/python-elementtree-1.2.6-18.i586.rpm
+i586/python-xml-2.4.2-18.i586.rpm
+i586/readline-5.1-22.i586.rpm
+i586/reiserfs-3.6.19-17.i586.rpm
+i586/rpm-python-4.4.2-40.i586.rpm
+i586/sed-4.1.4-15.i586.rpm
+i586/smart-0.41-23.2.i586.rpm
+i586/suse-release-10.1-9.i586.rpm
+i586/sysvinit-2.86-19.i586.rpm
+i586/udev-085-30.15.i586.rpm
+i586/util-linux-2.12r-35.i586.rpm
+noarch/suse-build-key-1.0-685.noarch.rpm
+"
diff --git a/installer/systems/suse101/settings.local.example b/installer/systems/suse101/settings.local.example
index 026258ad..838e771b 100644
--- a/installer/systems/suse101/settings.local.example
+++ b/installer/systems/suse101/settings.local.example
@@ -3,7 +3,7 @@
# It's also possible to define addditional values here.
# Use a local installation source.
-SLX_INST_SOURCE_BASEURL_suse101="ftp://gab/pub/opensuse/distribution/SL-10.1/inst-source"
+SLX_INST_SOURCE_BASEURL="ftp://gab/pub/opensuse/distribution/SL-10.1/inst-source"
SLX_INST_SOURCE_BASEURL_suse101update="ftp://gab/pub/suse/update/10.1"
# Add more packages.
diff --git a/installer/systems/ubuntu610/settings b/installer/systems/ubuntu610/settings
index 4c246b59..40c5c4d3 100644
--- a/installer/systems/ubuntu610/settings
+++ b/installer/systems/ubuntu610/settings
@@ -6,5 +6,5 @@ SLX_INST_SOURCE_NAME_ubuntu610updates="Ubuntu 6.10 updates"
SLX_INST_SOURCE_DISTRIBUTION_ubuntu610updates="edgy-updates"
SLX_INST_SOURCE_NAME_ubuntu610security="Ubuntu 6.10 security"
SLX_INST_SOURCE_DISTRIBUTION_ubuntu610security="edgy-security"
-SLX_BASE_PREREQ_PACKAGES="debootstrap"
+SLX_BASE_PREREQ_PACKAGES="pool/main/d/debootstrap/debootstrap_0.3.3.0ubuntu7_all.deb"
SLX_INSTALL_PACKAGES_MAIN="kaddressbook kmail kontact korganizer"