1
0
mirror of synced 2026-02-08 00:31:28 +00:00
Files
xen-tools.xen-tools/hooks/debian/20-setup-apt
Axel Beckert eab2940bf6 Reimplement $dist/updates vs $dist-security more backwards-compatible
This reverts most code, but not the implemented functionality of
commit 2fba5cb90e.

Requiring a config file change to still be able to install old
distributions would make a bump of the major version necessary
according to Semantic Versioning. Let's avoid that:

The list of distributions with the old path scheme is finite and will
never change again. Hence it's ok and especially backwards compatible
to hardcode this list in hooks/debian/20-setup-apt.

It's also less and more obvious (but not necessarily easier to read)
code. But it's all in one place and not scattered over three files.
And it's just one line instead like a dozen or two dozens.

Closes: #972749 (kinda again)
2020-12-19 07:38:37 +01:00

129 lines
2.8 KiB
Bash
Executable File

#!/bin/sh
#
# This script sets up the /etc/apt/sources.list for APT, and it disables
# TLS where appropriate.
#
# Steve
# --
#
prefix=$1
#
# Source our common functions
#
if [ -e /usr/share/xen-tools/common.sh ]; then
. /usr/share/xen-tools/common.sh
else
. ./hooks/common.sh
fi
#
# Log our start
#
logMessage Script $0 starting
#
# Attempt to auto-magically detect the use of a Proxy for apt-get, and
# replicate that setup in our new guest via apt-config dump and save
# the setting to the proxy guess file.
#
if [ ${apt_proxy} ]; then
echo "Acquire::http::Proxy \"${apt_proxy}\";" > ${prefix}/etc/apt/apt.conf.d/01proxy
else
logMessage The use of a proxy detected.
apt-config dump | grep -i Acquire::HTTP::Proxy > ${prefix}/etc/apt/apt.conf.d/01proxy
fi
#
# Setup the sources.list file for new installations of Debian GNU/Linux.
#
cat <<E_O_APT > ${prefix}/etc/apt/sources.list
#
# /etc/apt/sources.list
#
#
# ${dist}
#
deb ${mirror} ${dist} main contrib non-free
deb-src ${mirror} ${dist} main contrib non-free
E_O_APT
#
# If the host system has security support then enable that here, too,
# except if we're installing Debian Unstable.
#
if ( test "${dist}" "!=" "sid" && test "${dist}" "!=" "unstable" && \
test -e /etc/apt/sources.list && \
grep ^deb.*security -r /etc/apt/sources.list /etc/apt/sources.list.d >/dev/null 2>/dev/null ) ; then
if echo "${dist}" | egrep -q '\b(sarge|etch|lenny|squeeze|wheezyjessie|stretch|buster)\b'; then
cat <<E_O_APT >> ${prefix}/etc/apt/sources.list
#
# Security updates
#
deb http://security.debian.org/ ${dist}/updates main contrib non-free
deb-src http://security.debian.org/ ${dist}/updates main contrib non-free
E_O_APT
else
cat <<E_O_APT >> ${prefix}/etc/apt/sources.list
#
# Security updates
#
deb http://security.debian.org/ ${dist}-security main contrib non-free
deb-src http://security.debian.org/ ${dist}-security main contrib non-free
E_O_APT
fi
else
cat <<E_O_APT >> ${prefix}/etc/apt/sources.list
#
# Security updates - Uncomment to enable.
#
# deb http://security.debian.org/ ${dist}-security main contrib non-free
# deb-src http://security.debian.org/ ${dist}-security main contrib non-free
E_O_APT
fi
#
# Now that the sources have been setup make sure the system is up to date.
#
chroot ${prefix} /usr/bin/apt-get update
#
# For all systems after Sarge we install libc6-xen on i386
#
# For Sarge we don't have that option, so we disable TLS the hard way.
#
if [ "${arch}" = "i386" ]; then
if [ "${dist}" = 'sarge' ]; then
logMessage "Disabling TLS"
mv ${prefix}/lib/tls ${prefix}/lib/tls.disabled
mkdir ${prefix}/lib/tls
else
logMessage "Installing xen-aware libc6"
installDebianPackage ${prefix} libc6-xen
fi
fi
#
# Log our finish
#
logMessage Script $0 finished