Bug#833407: Please put adt-virt-* binaries back onto PATH

Ian Jackson ijackson at chiark.greenend.org.uk
Wed Aug 3 23:47:47 UTC 2016

Package: autopkgtest
Version: 4.0.2

I see that after installing a recent autopkgtest, I no longer have
adt-virt-schroot, adt-virt-null, etc.  I would like to suggest that
this change be reverted, for the following reasons:

My original design intent was that:

0. The autopkgtest virt server protocol is a generally useful
   protocol, both sides of which might reasonably be implemented by
   software outside of (and even unconnected with) autopkgtest.

1. Programs and packages other than autopkgtest - and even users -
   would be able to provide virt servers.  They are fairly simple to
   write (although it is somewhat easier with the the VirtSubproc
   python module).

2. Programs other than autopkgtest which could make use of the
   facilities provided by virt servers could support the adt virt
   server interface, to support a wide range of virt servers.

3. Users would be able to invoke a virt server by hand for debugging.
   (This is slightly annoying because of the url encoding, but this
   is not entirely fatal to this approach.)

4. Ultimately programs which had nothing to do with testing might
   speak the autopkgtest virt server protocol to virt servers which
   were written without testing in mind.

I see that 2 and half of 4 has already happened: sbuild has an
--adt-virt-server option.  sbuild expects to find the corresponding
program on PATH.

For 1 and the other half of 4 to work, the out-of-autopkgtest-tree
virt server ought to be on PATH, too.  And autopkgtest(1) ought to
find the server there.  Otherwise the out-of-tree server has to go in
/usr/share/autopkgtest/virt, which is not really its bailiwick.  (And
what if the virt server is a compiled machine executable and unsuitable
for /usr/share?)

I suggest that:
  - the virt servers should be moved back to /usr/bin/adt-virt-*
  - autopkgtest(1) should treat hyphen-less virt server names
    the same way as chroot does: prefix them with `adt-virt-'.

The latter is a slightly annoying wrinkle, because it means that it is
no longer possible to have a virt server whose name does not contain a
hyphen.  One possible response to this difficulty would be to:
  - declare in the virt server spec that all virt server names
    must contain hyphens
  - specify that programs which take a virt server name should
    prepend `adt-virt-' to names which do not contain a hyphen


Ian Jackson <ijackson at chiark.greenend.org.uk>   These opinions are my own.

If I emailed you from an address @fyvzl.net or @evade.org.uk, that is
a private address which bypasses my fierce spamfilter.

More information about the autopkgtest-devel mailing list