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.
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.
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
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.
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
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'
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.
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.
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.
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.