On Sun, 11 Jan 2015 02:12:25 +0100 Christian Kastner <deb...@kvr.at> wrote: > adt-setup-vm creates /etc/dpkg/dpkg.cfg.d/autopkgtest on the host, > instead of in the guest, because the path is missing the $root > prefix pointing to the directory where the guest's root is mounted. > > This is very unfortunate, as that file sets force-unsafe-io for > dpkg, so this puts the host at risk to data loss.
This was introduced by the following commit, Regards,commit 86c333020caa05bcd6f964ef5fdcf2c8594065a1 Author: Martin Pitt <martin.p...@ubuntu.com> Date: Thu Oct 9 13:09:25 2014 +0200 tools/adt-setup-vm: Add setup steps that adt-buildvm-ubuntu-cloud does So that vmdebootstrap generated VMs are functionally on par with the Ubuntu cloud images: Set up serial console, dpkg unsafe-io, install some additional packages, remove unnecessary packages, bump vmalloc on i386. so it entered Jessie. I have attached a debdiff for the version in Jessie which includes the bugfix from my earlier patch, and adds a postinst in which the offending file is removed. If there's anything else I can do to help, please let me know. Regards, Christian
diff -Nru autopkgtest-3.6/debian/changelog autopkgtest-3.6+nmu1/debian/changelog --- autopkgtest-3.6/debian/changelog 2014-10-16 16:36:18.000000000 +0200 +++ autopkgtest-3.6+nmu1/debian/changelog 2015-01-11 02:44:56.000000000 +0100 @@ -1,3 +1,16 @@ +autopkgtest (3.6+nmu1) unstable; urgency=medium + + * Non-maintainer upload. + * adt-setup-vm: Add the missing $root prefix (the mountpoint of the guest's + root directory) when creating /etc/dpkg/dpkg.cfg.d/autopkgtest, otherwise + it sets unforce-safe-io on the host instead, putting it at risk of data + loss. Closes: #775076. + * Create debian/postinst and remove the file /etc/dpkg/dpkg.cfg.d/autopkgtest + if its contents are just "force-unsafe-io", indicating that this file was + generated by the above bug. + + -- Christian Kastner <deb...@kvr.at> Sun, 11 Jan 2015 02:04:19 +0100 + autopkgtest (3.6) unstable; urgency=medium [ Antonio Terceiro ] diff -Nru autopkgtest-3.6/debian/postinst autopkgtest-3.6+nmu1/debian/postinst --- autopkgtest-3.6/debian/postinst 1970-01-01 01:00:00.000000000 +0100 +++ autopkgtest-3.6+nmu1/debian/postinst 2015-01-11 02:34:02.000000000 +0100 @@ -0,0 +1,17 @@ +#!/bin/sh + +set -e + +if [ "$1" != configure ]; then + exit 0 +fi + +# If this file exists and its only content is "force-unsafe-io", then it was +# generated by #775076 and must be removed. +if [ -e /etc/dpkg/dpkg.cfg.d/autopkgtest ]; then + if [ "`cat /etc/dpkg/dpkg.cfg.d/autopkgtest`" = "force-unsafe-io" ]; then + rm -f /etc/dpkg/dpkg.cfg.d/autopkgtest + fi +fi + +#DEBHELPER# diff -Nru autopkgtest-3.6/tools/adt-setup-vm autopkgtest-3.6+nmu1/tools/adt-setup-vm --- autopkgtest-3.6/tools/adt-setup-vm 2014-10-16 16:36:18.000000000 +0200 +++ autopkgtest-3.6+nmu1/tools/adt-setup-vm 2015-01-11 01:58:38.000000000 +0100 @@ -74,7 +74,7 @@ # go-faster apt/dpkg echo "Acquire::Languages \"none\";" > "$root"/etc/apt/apt.conf.d/90nolanguages -echo 'force-unsafe-io' > /etc/dpkg/dpkg.cfg.d/autopkgtest +echo 'force-unsafe-io' > "$root"/etc/dpkg/dpkg.cfg.d/autopkgtest # auto-detect apt-cacher-ng if [ -z "${ADT_APT_PROXY:-}" ]; then