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
Pass struct IndexTarget/indexRecords to pkgAcqIndex{,Merge}Diffs

If one of the pkgAcqIndex{,Merge}Diffs fails, they will run
pkgAcqIndex() which needs the IndexTarget/indexRecords data.
So we pass it along.
Add new pkgAcqBaseIndex as base class for pkgAcq{DiffIndex,IndexMerge,pkgAcqBaseIndex, pkgAcqIndex}
Merge remote-tracking branch 'donkult/debian/experimental' into debian/experimental

Conflicts:
	apt-pkg/acquire-item.cc
	apt-pkg/acquire-item.h
Never parse Version/Architecture tags in a Translation-$lang file

Version/Architecture information in a Translation-$lang file is
not allowed, so don't try to parse it. This is a fix for a bugreport
where a Translation-en file contained the content of the regular
Packages file (probably due to local FS corruption). This lead to
strange error messages on file download.

Thanks to Thomas Reusch for the report.
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
Implement simple by-hash for apt update

This implements a apt update schema that get the indexfiles by the
hash instead of the name. The rational is that updates to the archive
servers/mirrors are not atomic so the client may have the previous
version of the Release file when the server updates to a new
Release file and new Packages/Sources/Translations indexes. By
keeping the files around by their hash we can still get the previous
indexfile without a hashsum mismatch.

Enable with APT::Acquire::By-Hash=1
add TODO
Add APT::Acquire::$(host)::By-Hash=1 knob, add Acquire-By-Hash to Release file

The by-hash can be configured on a per-hostname basis and a Release
file can indicate that it has by-hash support via a new flag.

The location of the hash now matches the AptByHash spec
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
move ByHash into its own function
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