TT#49668 Upgrade grml-scripts + grml-debootstrap when deploying Debian/buster

We seem to be hitting https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918590
which causes installations to take "forever" as soon as LVM is involved, spitting
messages like:

| WARNING: Device /dev/loop0 not initialized in udev database even after waiting 10000000 microseconds.

grml-scripts >=2.8.4 + grml-debootstrap >=0.86 provide workarounds for this,
so when we're installing Debian/buster then make sure we have
recent versions of grml-scripts (providing grml-chroot tool)
and grml-debootstrap available.

Change-Id: I07409790989445a0a30b7373a37bee3bda47ae89
changes/23/26623/3
Michael Prokop 7 years ago
parent 6898cfbc7a
commit f369b1b825

@ -206,6 +206,63 @@ install_sipwise_key() {
die "Error validating sipwise keyring for apt usage, aborting installation."
}
check_package_version() {
if [ $# -lt 2 ] ; then
die "Usage: package_upgrade <package> <version>" >&2
fi
local package_name="$1"
local required_version="$2"
local present_version
present_version=$(dpkg-query --show --showformat="\${Version}" "${package_name}")
if dpkg --compare-versions "${present_version}" lt "${required_version}" ; then
echo "${package_name} version ${present_version} is older than minimum required version ${required_version}."
return 1
fi
return 0
}
ensure_recent_package_versions() {
[[ -z "${UPGRADE_PACKAGES[*]}" ]] && return 0
echo "Ensuring packages are installed in a recent enough version: ${UPGRADE_PACKAGES[*]}"
# use temporary apt database for speed reasons
local TMPDIR
TMPDIR=$(mktemp -d)
mkdir -p "${TMPDIR}/statedir/lists/partial" "${TMPDIR}/cachedir/archives/partial"
local debsrcfile
debsrcfile=$(mktemp)
echo "deb ${SIPWISE_REPO_TRANSPORT}://${SIPWISE_REPO_HOST}/grml.org grml-testing main" >> "${debsrcfile}"
DEBIAN_FRONTEND='noninteractive' apt-get \
-o dir::cache="${TMPDIR}/cachedir" \
-o dir::state="${TMPDIR}/statedir" \
-o dir::etc::sourcelist="${debsrcfile}" \
-o dir::etc::sourceparts=/dev/null \
-o dir::etc::trusted="${SIPWISE_APT_KEY_PATH}" \
update
DEBIAN_FRONTEND='noninteractive' apt-get \
-o dir::cache="${TMPDIR}/cachedir" \
-o dir::state="${TMPDIR}/statedir" \
-o dir::etc::sourcelist="${debsrcfile}" \
-o dir::etc::sourceparts=/dev/null \
-o dir::etc::trusted="${SIPWISE_APT_KEY_PATH}" \
-y --no-install-recommends install "${UPGRADE_PACKAGES[@]}"
for pkg in "${UPGRADE_PACKAGES[@]}"; do
if is_package_installed "${pkg}"; then
echo "Package '${pkg}' was installed correctly."
else
die "Error: Package '${pkg}' was not installed correctly, aborting."
fi
done
}
install_vbox_iso() {
echo "Downloading virtualbox-guest-additions ISO"
@ -750,6 +807,24 @@ set_deploy_status "installing_sipwise_keys"
install_sipwise_key
ensure_packages_installed
case "${DEBIAN_RELEASE}" in
buster)
UPGRADE_PACKAGES=()
echo "Upgrading grml-scripts + grml-debootstrap for usage with LVM on Debian/buster"
if ! check_package_version grml-scripts 2.8.4 ; then
UPGRADE_PACKAGES+=( grml-scripts )
fi
if ! check_package_version grml-debootstrap 0.86 ; then
UPGRADE_PACKAGES+=( grml-debootstrap )
fi
ensure_recent_package_versions
;;
esac
if ! "$NGCP_INSTALLER" ; then
CARRIER_EDITION=false
PRO_EDITION=false

Loading…
Cancel
Save