summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Müller2006-12-17 14:35:17 +0100
committerLars Müller2006-12-17 14:35:17 +0100
commit84daa236af9d89355a66b9c97a6380e3193c5bd5 (patch)
tree504ef25d5a94761336068d1a20dd071c0f76977a
parentOnly try to copy from prereqfiles if the directory exists. (diff)
downloadcore-84daa236af9d89355a66b9c97a6380e3193c5bd5.tar.gz
core-84daa236af9d89355a66b9c97a6380e3193c5bd5.tar.xz
core-84daa236af9d89355a66b9c97a6380e3193c5bd5.zip
Add basic support for Ubuntu 6.10. The setup works but the install
fails. To save us from repeating the BASEURL and COMPONENTS setting we're now able to share 'global' settings across channels. This is required for a Debian based system as they use the same BASEURL. Currently it's only possible to define BASEURL or COMPONENTS global. It's still possible to overwrite any setting for a particular channel. git-svn-id: http://svn.openslx.org/svn/openslx/trunk@560 95ad53e4-c205-0410-b2fa-d234c58c8868
-rwxr-xr-xinstaller/slxossetup68
-rw-r--r--installer/systems/ubuntu610/settings10
2 files changed, 65 insertions, 13 deletions
diff --git a/installer/slxossetup b/installer/slxossetup
index 818626d9..c18763da 100755
--- a/installer/slxossetup
+++ b/installer/slxossetup
@@ -38,7 +38,7 @@ for suffix in "" local ${SLX_SYSTEM_VARIANTNAME}; do
. "${SLX_SYSTEM_CONFIG_PATH}/settings${suffix:+.$suffix}"
done
-function slxossetup_rpm()
+function slxossetup_smart()
{
SLX_METADATA_PATH="${SLX_PRIVATE_PATH}/metadata/${SLX_SYSTEM_NAME}"
SLX_STAGE1_PATH="${SLX_PRIVATE_PATH}/stage1/${SLX_SYSTEM_NAME}"
@@ -53,28 +53,53 @@ function slxossetup_rpm()
smart --data-dir="${SLX_METADATA_PATH}" \
config \
--set \
- rpm-root="${SLX_STAGE1_PATH}"
+ "${NAME_DEST_ROOT}"="${SLX_STAGE1_PATH}"
- for variable in ${!SLX_INST_SOURCE_BASEURL_*}; do
+ for variable in ${!SLX_INST_SOURCE_NAME_*}; do
# Unset SMART_* to let smart fail if they are not set for a particular
# channel; unset PACKAGEKEYS to prevent adding them multiple times.
- unset SMART_NAME SMART_TYPE PACKAGEKEYS
+ unset SMART_COMPONENTS \
+ SMART_DISTRIBUTION \
+ SMART_NAME \
+ SMART_TYPE \
+ PACKAGEKEYS
+
SMART_CHANNEL="${variable##*_}"
- SMART_BASEURL=$( eval echo \$$variable)
- SMART_NAME=$( eval echo \$SLX_INST_SOURCE_NAME_${SMART_CHANNEL})
+ SMART_BASEURL=$( eval echo \$SLX_INST_SOURCE_BASEURL_${SMART_CHANNEL})
+ SMART_NAME=$( eval echo \$$variable)
test "${SMART_NAME}" || \
SMART_NAME="${SMART_CHANNEL}"
+
SMART_TYPE=$( eval echo \$SLX_INST_SOURCE_TYPE_${SMART_CHANNEL})
+ # Use default repo type if not available from settings config file
test "${SMART_TYPE}" || \
SMART_TYPE="${REPO_TYPE}"
+
+ # Has this config distribution, components
+ SMART_DISTRIBUTION=$( eval echo \$SLX_INST_SOURCE_DISTRIBUTION_${SMART_CHANNEL})
+ SMART_COMPONENTS=$( eval echo \$SLX_INST_SOURCE_COMPONENTS_${SMART_CHANNEL})
+ # Check if one of our global settings is still undefined
+ for setting in ${GLOBAL_SETTINGS}; do
+ test $( eval echo \$SMART_${setting}) || \
+ eval SMART_${setting}=\$SLX_INST_SOURCE_${setting}
+ done
+
+ # Prefix the config name for optional parameters
+ test "${SMART_DISTRIBUTION}" && \
+ SMART_DISTRIBUTION="distribution=\"${SMART_DISTRIBUTION}\""
+ test "${SMART_COMPONENTS}" && \
+ SMART_COMPONENTS="components=\"${SMART_COMPONENTS}\""
+
PACKAGEKEYS=$( eval echo \$SLX_INST_SOURCE_PACKAGEKEYS_${SMART_CHANNEL})
- smart --data-dir="${SLX_METADATA_PATH}" \
+ eval smart --data-dir=\"${SLX_METADATA_PATH}\" \
channel \
- --add "${SMART_CHANNEL}" \
- name="${SMART_NAME}" \
- type="${SMART_TYPE}" \
- baseurl=${SMART_BASEURL} \
+ --add \"${SMART_CHANNEL}\" \
+ name=\"${SMART_NAME}\" \
+ type=\"${SMART_TYPE}\" \
+ baseurl=\"${SMART_BASEURL}\" \
+ ${SMART_DISTRIBUTION} \
+ ${SMART_COMPONENTS} \
-y
for packagekey in ${PACKAGEKEYS}; do
@@ -87,6 +112,13 @@ function slxossetup_rpm()
done
done
+ for path in ${SLX_STAGE1_CREATE_DIR}; do
+ mkdir -p "${SLX_STAGE1_PATH}/${path}"
+ done
+ for file in ${SLX_STAGE1_CREATE_FILE}; do
+ touch "${SLX_STAGE1_PATH}/${file}"
+ done
+
smart --data-dir="${SLX_METADATA_PATH}" \
update
@@ -189,11 +221,21 @@ function slxossetup()
# Inform SUSE RPMs that we're performing an installation
export YAST_IS_RUNNING="instsys"
REPO_TYPE="rpm-md"
- slxossetup_rpm
+ NAME_DEST_ROOT="rpm-root"
+ slxossetup_smart
;;
*fedora*)
REPO_TYPE="rpm-md"
- slxossetup_rpm
+ NAME_DEST_ROOT="rpm-root"
+ slxossetup_smart
+ ;;
+ *ubuntu*)
+ GLOBAL_SETTINGS="BASEURL COMPONENTS"
+ REPO_TYPE="apt-deb"
+ 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
diff --git a/installer/systems/ubuntu610/settings b/installer/systems/ubuntu610/settings
new file mode 100644
index 00000000..6e8162ac
--- /dev/null
+++ b/installer/systems/ubuntu610/settings
@@ -0,0 +1,10 @@
+SLX_INST_SOURCE_BASEURL="http://ftp-1.gwdg.de/pub/linux/debian/ubuntu"
+SLX_INST_SOURCE_COMPONENTS="main restricted multiverse universe"
+SLX_INST_SOURCE_NAME_ubuntu610="Ubuntu 6.10"
+SLX_INST_SOURCE_DISTRIBUTION_ubuntu610="edgy"
+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=""
+SLX_INSTALL_PACKAGES_MAIN="libc6 bash"