From a8c8c61711961da826b23e182bced86f29e75d5b Mon Sep 17 00:00:00 2001 From: Andreas Florath Date: Sun, 17 Jul 2016 19:03:55 +0200 Subject: [PATCH] Fix packaging problems for Debian This patch solves three issues with Debian packaging / apt: o When building 'testing' only default apt sources is included - backports, updates and security are skipped because they do not exists. o The default release for Debian was `unstable`: this is now fixed to `stable`. o Starting a Debian Stretch VM that was build with diskimage-builder does not work, because some mandatory packages are missing. This patch fixes this problem: it adds the mandatory packages and the test case. Change-Id: If49b5b162c4da1e074e9b19324839bc59d87dc57 Signed-off-by: Andreas Florath --- elements/debian-minimal/element-deps | 1 + .../environment.d/10-debian-minimal.bash | 4 ++-- elements/debian-minimal/package-installs.yaml | 2 ++ elements/debian-minimal/pkg-map | 14 ++++++++++++++ .../test-elements/stable-build-succeeds/README.rst | 1 + .../environment.d/10-set-distro.bash | 2 ++ .../testing-build-succeeds/README.rst | 1 + .../environment.d/10-set-distro.bash | 2 ++ elements/debootstrap/root.d/08-debootstrap | 3 ++- tests/run_functests.sh | 3 +++ 10 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 elements/debian-minimal/package-installs.yaml create mode 100644 elements/debian-minimal/pkg-map create mode 100644 elements/debian-minimal/test-elements/stable-build-succeeds/README.rst create mode 100755 elements/debian-minimal/test-elements/stable-build-succeeds/environment.d/10-set-distro.bash create mode 100644 elements/debian-minimal/test-elements/testing-build-succeeds/README.rst create mode 100755 elements/debian-minimal/test-elements/testing-build-succeeds/environment.d/10-set-distro.bash diff --git a/elements/debian-minimal/element-deps b/elements/debian-minimal/element-deps index cba86060f..4867362bd 100644 --- a/elements/debian-minimal/element-deps +++ b/elements/debian-minimal/element-deps @@ -1 +1,2 @@ debootstrap +pkg-map diff --git a/elements/debian-minimal/environment.d/10-debian-minimal.bash b/elements/debian-minimal/environment.d/10-debian-minimal.bash index e92bace4e..3f2200226 100644 --- a/elements/debian-minimal/environment.d/10-debian-minimal.bash +++ b/elements/debian-minimal/environment.d/10-debian-minimal.bash @@ -1,5 +1,5 @@ export DISTRO_NAME=debian -export DIB_RELEASE=${DIB_RELEASE:-unstable} +export DIB_RELEASE=${DIB_RELEASE:-stable} export DIB_DISTRIBUTION_MIRROR=${DIB_DISTRIBUTION_MIRROR:-http://httpredir.debian.org/debian} export DIB_DEBIAN_COMPONENTS=${DIB_DEBIAN_COMPONENTS:-main} export DIB_DEBIAN_COMPONENTS_WS=${DIB_DEBIAN_COMPONENTS//,/ } @@ -11,7 +11,7 @@ updates:deb ${DIB_DISTRIBUTION_MIRROR} ${DIB_RELEASE}-updates ${DIB_DEBIAN_COMPO security:deb http://security.debian.org/ ${DIB_RELEASE}/updates ${DIB_DEBIAN_COMPONENTS_WS} " -if [ "${DIB_RELEASE}" = "unstable" ]; then +if [ "${DIB_RELEASE}" = "testing" -o "${DIB_RELEASE}" = "unstable" ]; then DIB_APT_SOURCES_CONF_DEFAULT="default:deb ${DIB_DISTRIBUTION_MIRROR} ${DIB_RELEASE} ${DIB_DEBIAN_COMPONENTS_WS}" fi diff --git a/elements/debian-minimal/package-installs.yaml b/elements/debian-minimal/package-installs.yaml new file mode 100644 index 000000000..d86cad09c --- /dev/null +++ b/elements/debian-minimal/package-installs.yaml @@ -0,0 +1,2 @@ +systemd: +systemd-sysv: diff --git a/elements/debian-minimal/pkg-map b/elements/debian-minimal/pkg-map new file mode 100644 index 000000000..281ae60d5 --- /dev/null +++ b/elements/debian-minimal/pkg-map @@ -0,0 +1,14 @@ +{ + "release": { + "debian": { + "testing": { + "systemd": "systemd", + "systemd-sysv": "systemd-sysv" + } + } + }, + "default": { + "systemd": "", + "systemd-sysv": "" + } +} diff --git a/elements/debian-minimal/test-elements/stable-build-succeeds/README.rst b/elements/debian-minimal/test-elements/stable-build-succeeds/README.rst new file mode 100644 index 000000000..3217c8458 --- /dev/null +++ b/elements/debian-minimal/test-elements/stable-build-succeeds/README.rst @@ -0,0 +1 @@ +Verify we can build a debian-minimal stable image. diff --git a/elements/debian-minimal/test-elements/stable-build-succeeds/environment.d/10-set-distro.bash b/elements/debian-minimal/test-elements/stable-build-succeeds/environment.d/10-set-distro.bash new file mode 100755 index 000000000..16e4cd98b --- /dev/null +++ b/elements/debian-minimal/test-elements/stable-build-succeeds/environment.d/10-set-distro.bash @@ -0,0 +1,2 @@ +export DISTRO_NAME=debian +export DIB_RELEASE=stable diff --git a/elements/debian-minimal/test-elements/testing-build-succeeds/README.rst b/elements/debian-minimal/test-elements/testing-build-succeeds/README.rst new file mode 100644 index 000000000..3217c8458 --- /dev/null +++ b/elements/debian-minimal/test-elements/testing-build-succeeds/README.rst @@ -0,0 +1 @@ +Verify we can build a debian-minimal stable image. diff --git a/elements/debian-minimal/test-elements/testing-build-succeeds/environment.d/10-set-distro.bash b/elements/debian-minimal/test-elements/testing-build-succeeds/environment.d/10-set-distro.bash new file mode 100755 index 000000000..ee73f2f12 --- /dev/null +++ b/elements/debian-minimal/test-elements/testing-build-succeeds/environment.d/10-set-distro.bash @@ -0,0 +1,2 @@ +export DISTRO_NAME=debian +export DIB_RELEASE=testing diff --git a/elements/debootstrap/root.d/08-debootstrap b/elements/debootstrap/root.d/08-debootstrap index d76cb6726..bf94feb15 100755 --- a/elements/debootstrap/root.d/08-debootstrap +++ b/elements/debootstrap/root.d/08-debootstrap @@ -59,9 +59,10 @@ else # Have to --include=python because of dib-run-parts # Have to --include=sudo for pre-install.d use of sudoers files + # Have to --include=busybox because initramfs needs it sudo sh -c "http_proxy=$http_proxy debootstrap --verbose \ --variant=minbase \ - --include=python,sudo,$KERNEL_PACKAGE \ + --include=python,sudo,busybox,$KERNEL_PACKAGE \ --components=${DIB_DEBIAN_COMPONENTS} \ --arch=${ARCH} \ $KEYRING_OPT \ diff --git a/tests/run_functests.sh b/tests/run_functests.sh index 6eb272603..f43c1e2f7 100755 --- a/tests/run_functests.sh +++ b/tests/run_functests.sh @@ -18,6 +18,9 @@ DEFAULT_SKIP_TESTS=( fedora/build-succeeds # in non-voting gentoo/build-succeeds + # good to have the test case around - but because of changes + # in testing does not work always. + debian-minimal/testing-build-succeeds ) # run_disk_element_test