truncating /dev/null to zero is always successful

Calling truncate on /dev/null can happen by the download methods if they
are instructed to download a file to /dev/null (as testcases are only
interested in the status code, but do not support HEAD requests yet)

So just ignore truncate calls on the /dev/null file as it is always
empty anyway, so truncating to zero isn't a problem.

Git-Dch: Ignore
webserver: spurious newline after data confuses curl

Webserver wrongly sends an additional newline after the data which
causes curl to believe that the next request on this socket has no
header data and so includes all headers in the data output.

Git-Dch: Ignore
tests: enhance https support in the testcases

Git-Dch: Ignore
webserver: implement ~user access to ~user/public_html/

pretty much useless for the testcases, but handy to test the webserver
itself in 'real world' environments

Git-Dch: Ignore
webserver: add directoryIndex support defaulting to index.html

Git-Dch: Ignore
webserver: strip parameters from filename

Again, not (currently) used by the tests itself, but in interactive
usage of the webserver itself.

Git-Dch: Ignore
webserver: use pthreads to handle multiple clients

Clients like browsers prefer to open many connections and keep them open
for a while, so that pages with lot of subelements would take a while to
load (if at all), by using threads as all servers do some way or another
we can resolve this. libapt is not intended to be pthread-safe and stuff
like the storage of the last return code doesn't make too much sense if
multiple clients interact with us, but it is good enough for now and an
other interesting (mis)use of libapt in general.

Git-Dch: Ignore
tests: rm pkgcache.bin in 719263 test

As testcases are running really fast it can happen that files which are
changed in reality are considered unchanged as the modify time isn't
changed. What we could do is disable those caches by default, but some
tests actually depend on those and deriving too much from the default by
default (pun intended) is not a good idea for tests after all.

Git-Dch: Ignore
tests: add a webserverconfig method to abstract config

The URI to use to set a config option is a bit arcane to write/remember
and checking if the setting was successful doubly so.

Git-Dch: Ignore
merge ubuntus apport reporting changes to reduce diff

apport reporting is still disabled by default, but it is available in
Debian/experimental at the moment and a diff is not a good idea anyway.
enable NOISE for build logs to enable analyse

It was enabled for a (long) while in Ubuntu, but it shouldn't hurt to
enable it in Debian as well – especially now that Debian has automatic
analyses of the buildlogs which don't work that well without the 'noise'
introduce a vendor system to change sources.list

Many derivatives make quiet a few simple changes to apt introducing
silly diffs just to change examples and co making it harder for
them to update apt and harder for us to merge real changes back.

First stop: doc/examples/sources.list
add a vendor specific file to have configurable entities

manpages sometimes refer to distro-specific things like the name of the
package providing the achive-keyring. Having a central place to
configure this helps in having it consistent in the manpages and allows
to load this info from other places in the buildsystem as well later.
use a substvar to set the archive-keyring in debian/control

Adds a small helper to extract the small information bits we store in
apt-vendor.ent and uses it in debian/rules to set apt:keyring as a
substvar for debian/control populated with the &keyring-package; info
cherry-pick ubuntus (disabled) net-update fixes

With the net-update command a special keyring can be downloaded and
imported into apt, which must be signed by a master key. Its is
currently disabled because of security problems with it – and the only
known user before that was Ubuntu.
generate apt-key script with vendor info about keys

The apt-key script uses quiet a few keyring files for operation which
are specific to the distribution it is build on and is hence one of the
most patched parts – even if it is not that often used anymore now that
a fragment directory for trusted.gpg exists.
drop old /var/state to /var/lib transition artefacts

Regardless of when this transition was, it is so long ago that everyone
who would still need this has a million other problems to deal with now
so lets just drop this code.
prepare-release: declare the packages needed as source build deps.
* enable release based selection for deb-src (closes: 731102)
* document Dpkg::Progress-Fancy (closes: 726169), thanks to James McCoy