]> git.saurik.com Git - apt.git/commit - test/integration/test-bug-738785-switch-protocol
provide a public interface for acquiring changelogs
authorDavid Kalnischkies <david@kalnischkies.de>
Sat, 13 Jun 2015 09:13:45 +0000 (11:13 +0200)
committerDavid Kalnischkies <david@kalnischkies.de>
Mon, 15 Jun 2015 12:39:37 +0000 (14:39 +0200)
commitd56e2917f27a722b54685de13aeb1bb7592fc61b
tree2ab5e8f7704050189851e0ba6b9cce97a129b7ce
parentd2cb5b153fb13d587b1ff632cab34ce0c403326e
provide a public interface for acquiring changelogs

Provided is a specialized acquire item which given a version can figure
out the correct URI to try by itself and if not provides an error
message alongside with static methods to get just the URI it would try
to download if it should just be displayed or similar such.

The URI is constructed as follows:
Release files can provide an URI template in the "Changelogs" field,
otherwise we lookup a configuration item based on the "Label" or
"Origin" of the Release file to get a (hopefully known) default value
for now. This template should contain the string CHANGEPATH which is
replaced with the information about the version we want the changelog
for (e.g.  main/a/apt/apt_1.1). This middleway was choosen as this path
part was consistent over the three known implementations (+1 defunct),
while the rest of the URI varies widely between them.

The benefit of this construct is that it is now easy to get changelogs
for Debian packages on Ubuntu and vice versa – even at the moment where
the Changelogs field is present nowhere. Strictly better than what
apt-get had before as it would even fail to get changelogs from
security… Now it will notice that security identifies as Origin: Debian
and pick this setting (assuming again that no Changelogs field exists).
If on the other hand security would ship its changelogs in a different
location we could set it via the Label option overruling Origin.

Closes: 687147, 739854, 784027, 787190
12 files changed:
apt-pkg/acquire-item.cc
apt-pkg/acquire-item.h
apt-pkg/init.cc
cmdline/apt-get.cc
doc/apt-get.8.xml
doc/apt.conf.5.xml
doc/examples/configure-index
test/integration/framework
test/integration/test-apt-get-changelog
test/integration/test-bug-722207-print-uris-even-if-very-quiet
test/integration/test-bug-738785-switch-protocol
vendor/ubuntu/apt.conf-01-vendor-ubuntu