From 19fd68ea3f8b9671266750a8230768559d6d8986 Mon Sep 17 00:00:00 2001 From: Katharina Drexel Date: Thu, 1 Apr 2021 09:31:29 +0200 Subject: MultiMirror boot for mmdebstrap. Signed-off-by: Katharina Drexel --- share/scripts/debconf | 121 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 120 insertions(+), 1 deletion(-) diff --git a/share/scripts/debconf b/share/scripts/debconf index 13209ca..07d9a88 100755 --- a/share/scripts/debconf +++ b/share/scripts/debconf @@ -372,6 +372,114 @@ EOF export DEBCONF_SYSTEMRC } +Prepare_sourceslist () +{ + PARENT_AREA="$(echo ${PARENT_ARCHIVE_AREAS} | sed -e 's|,| |g')" + PARENT_DIST="$(echo ${PARENT_DISTRIBUTION} | sed -e 's|-backports||')" + + case "${PARENT_DIST}" in + buster) + UPDATES="${PARENT_DIST}/updates" + ;; + + *) + UPDATES="${PARENT_DIST}-security" + ;; + esac + + DEBIAN_SOURCES="${DEBCONF_TMPDIR}/debian.sources" + DIST="$(echo ${DISTRIBUTION} | sed -e 's|-backports||')" + +cat > "${DEBIAN_SOURCES}" << EOF +# /etc/apt/sources.list.d/debian.sources + +Types: deb +URIs: ${PARENT_MIRROR} +Suites: ${PARENT_DIST} +Components: ${PARENT_AREA} +PDiffs: no +EOF + + if [ -n "${PARENT_MIRROR_SECURITY}" ] + then +cat >> "${DEBIAN_SOURCES}" << EOF + +Types: deb +URIs: ${PARENT_MIRROR_SECURITY} +Suites: ${UPDATES} +Components: ${PARENT_AREA} +PDiffs: no +EOF + fi + + case "${DIST}" in + engywuck*) + RELNR=5 + ;; + + fuchur*) + RELNR=6 + ;; + esac + + case "${MODE}" in + progress-linux) + PROGRESS_SOURCES="${DEBCONF_TMPDIR}/progress-linux.sources" + PROGRESS_KEY="${DEBCONF_TMPDIR}/progress-linux-${RELNR}-${DIST}-archive-key.pub" + wget -O "${PROGRESS_KEY}" "https://deb.progress-linux.org/packages/project/pgp/progress-linux-${RELNR}-${DIST}-archive-key.pub" + + for ARCHIVE in ${ARCHIVES} + do + case "${ARCHIVE}" in + *-extras) + if [ -z "${EXTRAS}" ] + then + EXTRAS="${ARCHIVE}" + else + EXTRAS="${EXTRAS} ${ARCHIVE}" + fi + ;; + + *) + if [ -z "${BASE_ARCHIVES}" ] + then + BASE_ARCHIVES="${ARCHIVE}" + else + BASE_ARCHIVES="${BASE_ARCHIVES} ${ARCHIVE}" + fi + ;; + esac + done + +cat > "${PROGRESS_SOURCES}" << EOF +Types: deb +URIs: ${MIRROR} +Suites: ${BASE_ARCHIVES} +Components: main contrib non-free +PDiffs: no +Signed-By: ${PROGRESS_KEY} +EOF + + if [ -n "${EXTRAS}" ] + then +cat >> "${PROGRESS_SOURCES}" << EOF + +Types: deb +URIs: ${MIRROR} +Suites: ${EXTRAS} +Components: main contrib non-free restricted +PDiffs: no +Signed-By: ${PROGRESS_KEY} +EOF + fi + ;; + + *) + PROGRESS_SOURCES="" + ;; + esac +} + Debootstrap () { DIRECTORY="${1}" @@ -404,7 +512,7 @@ Debootstrap () mmdebstrap) mmdebstrap --verbose --arch=${ARCHITECTURE} --components=${PARENT_ARCHIVE_AREAS} \ - --mode=root --include=${INCLUDE} ${PARENT_DISTRIBUTION} "${DIRECTORY}" ${PARENT_MIRROR} + --mode=root --include=${INCLUDE} ${PARENT_DISTRIBUTION} "${DIRECTORY}" ${DEBIAN_SOURCES} ${PROGRESS_SOURCES} ;; *) @@ -442,6 +550,11 @@ EOF case "${MODE}" in progress-linux) + if [ -f "${DIRECTORY}"/etc/apt/sources.list.d/[[:digit:]]*progress-linux.sources ] + then + rm -f "${DIRECTORY}"/etc/apt/sources.list.d/[[:digit:]]*progress-linux.sources + fi + cat > "${DIRECTORY}/progress-linux.cfg" << EOF progress-linux progress-linux/archives multiselect $(echo ${ARCHIVES} | sed -e 's| |, |g') progress-linux progress-linux/archive-areas multiselect $(echo ${ARCHIVE_AREAS} | sed -e 's|,| |g') @@ -1183,6 +1296,12 @@ SYSTEM="${MACHINES}/${NAME}" ## Generic parts if [ ! -e "${CACHE}/${DISTRIBUTION}_${ARCHITECTURE}" ] then + case "${BOOTSTRAP}" in + *mmdebstrap) + Prepare_sourceslist + ;; + esac + Debootstrap "${CACHE}/${DISTRIBUTION}_${ARCHITECTURE}.tmp" Configure_apt "${CACHE}/${DISTRIBUTION}_${ARCHITECTURE}.tmp" Deconfigure_system "${CACHE}/${DISTRIBUTION}_${ARCHITECTURE}.tmp" -- cgit v1.2.3