a0f747932d
Debian Stretch released as stable recently, and the init system is less tightly specified in the base dependencies (for some info, see [1]). It seems, probably unintentionally, that in the previous release systemd-sysv was brought in by debootstrap, but that is no longer happening. Add systemd as an early dependency of debian-minimal. Remove the package-installs.yaml as that happens too late (other things need to know the init system to write out service files, etc and probe for systemd utils before package-installs). As mentioned, I do not believe the "only install systemd on testing" idea was actually working here, because it was being brought in during the initial debootstrap. Update some documentation to explain what's going on [1] https://lists.debian.org/debian-boot/2015/05/msg00156.html Change-Id: Id67c0cf08728407d234976f9807d3bd71d12f758
78 lines
2.3 KiB
Bash
Executable file
78 lines
2.3 KiB
Bash
Executable file
#!/bin/bash
|
|
# Copyright (c) 2014 Hewlett-Packard Development Company, L.P.
|
|
# Copyright (c) 2016 Andreas Florath (andreas@florath.net)
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
# implied.
|
|
#
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
# dib-lint: disable=safe_sudo
|
|
|
|
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
|
|
set -x
|
|
fi
|
|
set -eu
|
|
set -o pipefail
|
|
|
|
# Writes the apt sources files.
|
|
# The description is passed in via line coded elements.
|
|
# (The approach using associative arrays for configuration faild,
|
|
# because it looks that there is no way to handle defaults in
|
|
# this case - and additionally we run with '-u'.)
|
|
function apt_sources_write {
|
|
local APT_SOURCES_CONF="$1"
|
|
|
|
sudo mkdir -p $TARGET_ROOT/etc/apt/sources.list.d
|
|
|
|
echo "${APT_SOURCES_CONF}" \
|
|
| while read line; do
|
|
local name=$(echo ${line} | cut -d ":" -f 1)
|
|
local value=$(echo ${line} | cut -d ":" -f 2-)
|
|
echo "$value" | sudo tee $TARGET_ROOT/etc/apt/sources.list.d/${name}.list
|
|
done
|
|
}
|
|
|
|
sudo mount -t proc none $TARGET_ROOT/proc
|
|
sudo mount -t sysfs none $TARGET_ROOT/sys
|
|
trap "sudo umount $TARGET_ROOT/proc; sudo umount $TARGET_ROOT/sys" EXIT
|
|
|
|
apt_get="sudo chroot $TARGET_ROOT /usr/bin/apt-get"
|
|
|
|
apt_sources_write "${DIB_APT_SOURCES_CONF}"
|
|
|
|
# Need to update to retrieve the signed Release file
|
|
$apt_get update
|
|
|
|
$apt_get clean
|
|
$apt_get dist-upgrade -y
|
|
|
|
to_install=""
|
|
|
|
# pre-stretch (9.0) brought this in via debootstrap, but init
|
|
# dependencies have narrowed in the container world, so now we add it
|
|
# explicitly here so it's brought in early.
|
|
to_install+="systemd-sysv "
|
|
|
|
# default required
|
|
to_install+="busybox sudo "
|
|
|
|
if [ "$DIB_PYTHON_VERSION" == "2" ]; then
|
|
to_install+="python "
|
|
elif [ "$DIB_PYTHON_VERSION" == "3" ]; then
|
|
to_install+="python3 "
|
|
else
|
|
echo "ERROR: DIB_PYTHON_VERSION is '$DIB_PYTHON_VERSION' but needs to be 2 or 3"
|
|
exit 1
|
|
fi
|
|
|
|
$apt_get install -y $to_install
|