EDSP doc: fix typo in Request stanza description
EDSP: bump protocol version to 0.5
EDSP: add Architecture(s) multi-arch fields to the Request stanza
EDSP: add Source field to Package stanzas
EDSP: add APT-Release field to Package stanzas
add an additional test for arch specific conflicts

In bugreport #747261 I confirmed with this testcase that apt actually
supports the requested architecture-specific conflicts already since
2012 with commit cef094c2ec8214b2783a2ac3aa70cf835381eae1.

The old test only does simulations which are handy to check apt,
this one builds 'real' packages to see if dpkg agrees with us.

Git-Dch: Ignore
show upgradable packages after apt update

Closes: 748389
make test independent from the actual Install-Size

Git-Dch: Ignore
mark as Automatic/Downloadable pure as gcc suggests

Git-Dch: Ignore
Reported-By: gcc
consistently fail if Smart* packagemanager actions fail

These failure conditions come with an error message attached and the
conditions aren't workaroundable (otherwise this would have been done
instead of returning failure), so not erroring out here means that we
execute dpkg later on with a known not-working ordering adding insult
(our own error messages at the end) to injury (dpkg failure).
fix tight loop detection and temporary removes

As outlined in #748355 apt segfaulted if it encountered a loop between a
package pre-depending on a package conflicting with the previous as it
ended up in an endless loop trying to unpack 'the other package'.

In this specific case as an essential package is involved a lot of force
needs to be applied, but can also be caused by 'normal' tight loops and
highlights a problem in how we handle breaks which we want to avoid.

The fix comes in multiple entangled changes:
1. All Smart* calls are guarded with loop detection. Some already had it,
   some had parts of it, some did it incorrect, and some didn't even try.
2. temporary removes to avoid a loop (which is done if a loop is
   detected) prevent the unpack of this looping package (we tried to unpack
   it to avoid the conflict/breaks, but due to a loop we couldn't, so we
   remove/deconfigure it instead which means we can't unpack it now)
3. handle conflicts and breaks very similar instead of duplicating most
   of the code. The only remaining difference is, as it should:
   deconfigure is enough for breaks, for conflicts we need the big hammer
fix screen width detection for apt/apt-get lists

3163087b moved SigWinch(int) from apt-get.cc to private-output.cc
without moving #include <sys/ioctl.h>, making SigWinch a nop.

Closes: 748430, 747942
update Doxyfile to 1.8.7 to silence deprecation warnings

Git-Dch: ignore
(try to) fix travis-ci build failures

dpkg on Ubuntu 12.04 does not seem to support parsing arch-specific
dependencies, so we try to detect if we face such a dpkg in the test.

In the other test the order depends on libdb, which changes per arch, so
we just run it through our sorting binary and be happy (hopefully).

Git-Dch: Ignore
Merge remote-tracking branch 'mvo/debian/sid' into debian/sid
Merge EDSP 0.5 w/ multi-arch support for external solvers

"I am going to merge it tomorrow…"
if Resolver fails, do not continue even if not broken

This can happen if the request is already a well-formed request all by
itself (e.g. the package has no dependencies), but the resolver found
a reason to not accept it as solution. Our edsp 'dump' solver e.g.
shouldn't be able to trigger install, which it does otherwise.
check exit status of external solvers

Solvers are supposed to exit successfully even if they haven't found a
solution, but a solver which fails drastically (like e.g. segfaults)
should be detected and dealt with accordingly instead of ignored.
print error stack on failure of 'apt' solver

Git-Dch: ignore
without a filename we can't stat pipes

EDSP code uses pipes opened via an FD as sources and later for those
files modification times and filesize are read - but never really used
again. The result we get from FileFd is probably wrong, but as we don't
use it anyway, we just don't fallback if we have nothing to fallback to

Git-Dch: Ignore