From: David Kalnischkies <david@kalnischkies.de>
Date: Wed, 2 Dec 2015 11:43:33 +0000 (+0100)
Subject: use @CHANGEPATH@ as placeholder in changelog URI templates
X-Git-Tag: 1.1.4~7
X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/430481e794a3fa2e75022c67e129b54d192ad54c

use @CHANGEPATH@ as placeholder in changelog URI templates

This should make it more obvious that CHANGEPATH is a placeholder which
apt will replace with a package specific path rather than a string
constant.

Mail-Reference: <87d1upgvaf.fsf@deep-thought.43-1.org>
Mail-Archive: https://lists.debian.org/debian-dak/2015/12/msg00005.html
---

diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc
index 189d1e06b..e0f02b8e2 100644
--- a/apt-pkg/acquire-item.cc
+++ b/apt-pkg/acquire-item.cc
@@ -3178,7 +3178,7 @@ std::string pkgAcqChangelog::URI(std::string const &Template,
 	 char const * const Component, char const * const SrcName,
 	 char const * const SrcVersion)
 {
-   if (Template.find("CHANGEPATH") == std::string::npos)
+   if (Template.find("@CHANGEPATH@") == std::string::npos)
       return "";
 
    // the path is: COMPONENT/SRC/SRCNAME/SRCNAME_SRCVER, e.g. main/a/apt/1.1 or contrib/liba/libapt/2.0
@@ -3190,7 +3190,7 @@ std::string pkgAcqChangelog::URI(std::string const &Template,
    if (Component != NULL && strlen(Component) != 0)
       path = std::string(Component) + "/" + path;
 
-   return SubstVar(Template, "CHANGEPATH", path);
+   return SubstVar(Template, "@CHANGEPATH@", path);
 }
 									/*}}}*/
 // AcqChangelog::Failed - Failure handler				/*{{{*/
diff --git a/apt-pkg/acquire-item.h b/apt-pkg/acquire-item.h
index d77b5f9ef..134bbab7e 100644
--- a/apt-pkg/acquire-item.h
+++ b/apt-pkg/acquire-item.h
@@ -1103,7 +1103,7 @@ class pkgAcqChangelog : public pkgAcquire::Item
 
    /** returns the URI to the changelog of this version
     *
-    *  \param Template URI where CHANGEPATH has to be filled in
+    *  \param Template URI where @CHANGEPATH@ has to be filled in
     *  \param Component in which the package resides, can be empty
     *  \param SrcName is the source package name
     *  \param SrcVersion is the source package version
diff --git a/apt-pkg/init.cc b/apt-pkg/init.cc
index eab198fac..c35477bf6 100644
--- a/apt-pkg/init.cc
+++ b/apt-pkg/init.cc
@@ -116,10 +116,10 @@ bool pkgInitConfig(Configuration &Cnf)
    Cnf.CndSet("Acquire::IndexTargets::deb-src::Sources::flatDescription", "$(RELEASE) Sources");
    Cnf.CndSet("Acquire::IndexTargets::deb-src::Sources::Optional", false);
 
-   Cnf.CndSet("Acquire::Changelogs::URI::Origin::Debian", "http://metadata.ftp-master.debian.org/changelogs/CHANGEPATH_changelog");
-   Cnf.CndSet("Acquire::Changelogs::URI::Origin::Tanglu", "http://metadata.tanglu.org/changelogs/CHANGEPATH_changelog");
-   Cnf.CndSet("Acquire::Changelogs::URI::Origin::Ubuntu", "http://changelogs.ubuntu.com/changelogs/pool/CHANGEPATH/changelog");
-   Cnf.CndSet("Acquire::Changelogs::URI::Origin::Ultimedia", "http://packages.ultimediaos.com/changelogs/pool/CHANGEPATH/changelog.txt");
+   Cnf.CndSet("Acquire::Changelogs::URI::Origin::Debian", "http://metadata.ftp-master.debian.org/changelogs/@CHANGEPATH@_changelog");
+   Cnf.CndSet("Acquire::Changelogs::URI::Origin::Tanglu", "http://metadata.tanglu.org/changelogs/@CHANGEPATH@_changelog");
+   Cnf.CndSet("Acquire::Changelogs::URI::Origin::Ubuntu", "http://changelogs.ubuntu.com/changelogs/pool/@CHANGEPATH@/changelog");
+   Cnf.CndSet("Acquire::Changelogs::URI::Origin::Ultimedia", "http://packages.ultimediaos.com/changelogs/pool/@CHANGEPATH@/changelog.txt");
 
    bool Res = true;
 
diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml
index e6cbc8bc4..54f1de22f 100644
--- a/doc/apt.conf.5.xml
+++ b/doc/apt.conf.5.xml
@@ -657,7 +657,7 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
 	  or <literal>Acquire::Changelogs::URI::Override::Origin::<replaceable>ORIGIN</replaceable></literal>.
 
 	  The value should be a normal URI to a text file, expect that package specific data is
-	  replaced with the placeholder <literal>CHANGEPATH</literal>. The
+	  replaced with the placeholder <literal>@CHANGEPATH@</literal>. The
 	  value for it is: 1. if the package is from a component (e.g. <literal>main</literal>)
 	  this is the first part otherwise it is omitted, 2. the first letter of source package name,
 	  expect if the source package name starts with '<literal>lib</literal>' in which case it will
diff --git a/doc/examples/configure-index b/doc/examples/configure-index
index 1339335fa..db85654ca 100644
--- a/doc/examples/configure-index
+++ b/doc/examples/configure-index
@@ -298,8 +298,8 @@ Acquire
      "fr";
   };
 
-  // Location of the changelogs with the placeholder CHANGEPATH (e.g. "main/a/apt/apt_1.1")
-  Changelogs::URI::Origin::Debian "http://metadata.ftp-master.debian.org/changelogs/CHANGEPATH_changelog";
+  // Location of the changelogs with the placeholder @CHANGEPATH@ (e.g. "main/a/apt/apt_1.1")
+  Changelogs::URI::Origin::Debian "http://metadata.ftp-master.debian.org/changelogs/@CHANGEPATH@_changelog";
 };
 
 // Directory layout
diff --git a/doc/po/apt-doc.pot b/doc/po/apt-doc.pot
index da32a7269..2b277b11d 100644
--- a/doc/po/apt-doc.pot
+++ b/doc/po/apt-doc.pot
@@ -3498,7 +3498,7 @@ msgid ""
 "<literal>Acquire::Changelogs::URI::Override::Origin::<replaceable>ORIGIN</replaceable></literal>.  "
 "The value should be a normal URI to a text file, expect that package "
 "specific data is replaced with the placeholder "
-"<literal>CHANGEPATH</literal>. The value for it is: 1. if the package is "
+"<literal>@CHANGEPATH@</literal>. The value for it is: 1. if the package is "
 "from a component (e.g. <literal>main</literal>)  this is the first part "
 "otherwise it is omitted, 2. the first letter of source package name, expect "
 "if the source package name starts with '<literal>lib</literal>' in which "
diff --git a/doc/po/de.po b/doc/po/de.po
index 58d54976d..953e8804f 100644
--- a/doc/po/de.po
+++ b/doc/po/de.po
@@ -5057,7 +5057,7 @@ msgid ""
 "replaceable></literal> or <literal>Acquire::Changelogs::URI::Override::"
 "Origin::<replaceable>ORIGIN</replaceable></literal>.  The value should be a "
 "normal URI to a text file, expect that package specific data is replaced "
-"with the placeholder <literal>CHANGEPATH</literal>. The value for it is: 1. "
+"with the placeholder <literal>@CHANGEPATH@</literal>. The value for it is: 1. "
 "if the package is from a component (e.g. <literal>main</literal>)  this is "
 "the first part otherwise it is omitted, 2. the first letter of source "
 "package name, expect if the source package name starts with '<literal>lib</"
diff --git a/doc/po/es.po b/doc/po/es.po
index 1fbe79554..a8191e2b2 100644
--- a/doc/po/es.po
+++ b/doc/po/es.po
@@ -5099,7 +5099,7 @@ msgid ""
 "replaceable></literal> or <literal>Acquire::Changelogs::URI::Override::"
 "Origin::<replaceable>ORIGIN</replaceable></literal>.  The value should be a "
 "normal URI to a text file, expect that package specific data is replaced "
-"with the placeholder <literal>CHANGEPATH</literal>. The value for it is: 1. "
+"with the placeholder <literal>@CHANGEPATH@</literal>. The value for it is: 1. "
 "if the package is from a component (e.g. <literal>main</literal>)  this is "
 "the first part otherwise it is omitted, 2. the first letter of source "
 "package name, expect if the source package name starts with '<literal>lib</"
diff --git a/doc/po/fr.po b/doc/po/fr.po
index 2cb53680b..f4c2e0ecd 100644
--- a/doc/po/fr.po
+++ b/doc/po/fr.po
@@ -5047,7 +5047,7 @@ msgid ""
 "replaceable></literal> or <literal>Acquire::Changelogs::URI::Override::"
 "Origin::<replaceable>ORIGIN</replaceable></literal>.  The value should be a "
 "normal URI to a text file, expect that package specific data is replaced "
-"with the placeholder <literal>CHANGEPATH</literal>. The value for it is: 1. "
+"with the placeholder <literal>@CHANGEPATH@</literal>. The value for it is: 1. "
 "if the package is from a component (e.g. <literal>main</literal>)  this is "
 "the first part otherwise it is omitted, 2. the first letter of source "
 "package name, expect if the source package name starts with '<literal>lib</"
diff --git a/doc/po/it.po b/doc/po/it.po
index 56ceb1ccc..e3e767c55 100644
--- a/doc/po/it.po
+++ b/doc/po/it.po
@@ -5074,7 +5074,7 @@ msgid ""
 "replaceable></literal> or <literal>Acquire::Changelogs::URI::Override::"
 "Origin::<replaceable>ORIGIN</replaceable></literal>.  The value should be a "
 "normal URI to a text file, expect that package specific data is replaced "
-"with the placeholder <literal>CHANGEPATH</literal>. The value for it is: 1. "
+"with the placeholder <literal>@CHANGEPATH@</literal>. The value for it is: 1. "
 "if the package is from a component (e.g. <literal>main</literal>)  this is "
 "the first part otherwise it is omitted, 2. the first letter of source "
 "package name, expect if the source package name starts with '<literal>lib</"
diff --git a/doc/po/ja.po b/doc/po/ja.po
index b007e0dd9..8dd876b0e 100644
--- a/doc/po/ja.po
+++ b/doc/po/ja.po
@@ -4883,7 +4883,7 @@ msgid ""
 "replaceable></literal> or <literal>Acquire::Changelogs::URI::Override::"
 "Origin::<replaceable>ORIGIN</replaceable></literal>.  The value should be a "
 "normal URI to a text file, expect that package specific data is replaced "
-"with the placeholder <literal>CHANGEPATH</literal>. The value for it is: 1. "
+"with the placeholder <literal>@CHANGEPATH@</literal>. The value for it is: 1. "
 "if the package is from a component (e.g. <literal>main</literal>)  this is "
 "the first part otherwise it is omitted, 2. the first letter of source "
 "package name, expect if the source package name starts with '<literal>lib</"
diff --git a/doc/po/nl.po b/doc/po/nl.po
index f461a9ca8..7a9c9fbae 100644
--- a/doc/po/nl.po
+++ b/doc/po/nl.po
@@ -5138,7 +5138,7 @@ msgid ""
 "replaceable></literal> or <literal>Acquire::Changelogs::URI::Override::"
 "Origin::<replaceable>ORIGIN</replaceable></literal>.  The value should be a "
 "normal URI to a text file, expect that package specific data is replaced "
-"with the placeholder <literal>CHANGEPATH</literal>. The value for it is: 1. "
+"with the placeholder <literal>@CHANGEPATH@</literal>. The value for it is: 1. "
 "if the package is from a component (e.g. <literal>main</literal>)  this is "
 "the first part otherwise it is omitted, 2. the first letter of source "
 "package name, expect if the source package name starts with '<literal>lib</"
diff --git a/doc/po/pl.po b/doc/po/pl.po
index 91017eb96..cef4ca893 100644
--- a/doc/po/pl.po
+++ b/doc/po/pl.po
@@ -4720,7 +4720,7 @@ msgid ""
 "replaceable></literal> or <literal>Acquire::Changelogs::URI::Override::"
 "Origin::<replaceable>ORIGIN</replaceable></literal>.  The value should be a "
 "normal URI to a text file, expect that package specific data is replaced "
-"with the placeholder <literal>CHANGEPATH</literal>. The value for it is: 1. "
+"with the placeholder <literal>@CHANGEPATH@</literal>. The value for it is: 1. "
 "if the package is from a component (e.g. <literal>main</literal>)  this is "
 "the first part otherwise it is omitted, 2. the first letter of source "
 "package name, expect if the source package name starts with '<literal>lib</"
diff --git a/doc/po/pt.po b/doc/po/pt.po
index 01f6bd864..a74cab262 100644
--- a/doc/po/pt.po
+++ b/doc/po/pt.po
@@ -5028,7 +5028,7 @@ msgid ""
 "replaceable></literal> or <literal>Acquire::Changelogs::URI::Override::"
 "Origin::<replaceable>ORIGIN</replaceable></literal>.  The value should be a "
 "normal URI to a text file, expect that package specific data is replaced "
-"with the placeholder <literal>CHANGEPATH</literal>. The value for it is: 1. "
+"with the placeholder <literal>@CHANGEPATH@</literal>. The value for it is: 1. "
 "if the package is from a component (e.g. <literal>main</literal>)  this is "
 "the first part otherwise it is omitted, 2. the first letter of source "
 "package name, expect if the source package name starts with '<literal>lib</"
diff --git a/doc/po/pt_BR.po b/doc/po/pt_BR.po
index 39944e99b..312ab815d 100644
--- a/doc/po/pt_BR.po
+++ b/doc/po/pt_BR.po
@@ -3467,7 +3467,7 @@ msgid ""
 "replaceable></literal> or <literal>Acquire::Changelogs::URI::Override::"
 "Origin::<replaceable>ORIGIN</replaceable></literal>.  The value should be a "
 "normal URI to a text file, expect that package specific data is replaced "
-"with the placeholder <literal>CHANGEPATH</literal>. The value for it is: 1. "
+"with the placeholder <literal>@CHANGEPATH@</literal>. The value for it is: 1. "
 "if the package is from a component (e.g. <literal>main</literal>)  this is "
 "the first part otherwise it is omitted, 2. the first letter of source "
 "package name, expect if the source package name starts with '<literal>lib</"
diff --git a/test/integration/test-apt-get-changelog b/test/integration/test-apt-get-changelog
index 1c0c45c61..0a7cf662e 100755
--- a/test/integration/test-apt-get-changelog
+++ b/test/integration/test-apt-get-changelog
@@ -34,17 +34,17 @@ testsuccessequal "'http://changelogs.ubuntu.com/changelogs/pool/main/f/foo/foo_1
 'http://changelogs.ubuntu.com/changelogs/pool/main/libb/libbar/libbar_1.0/changelog' libbar.changelog" aptget changelog foo libbar --print-uris
 
 testsuccessequal "'http://localhost:${APTHTTPPORT}/main/f/foo/foo_1.0.changelog' foo.changelog
-'http://localhost:${APTHTTPPORT}/main/libb/libbar/libbar_1.0.changelog' libbar.changelog" aptget changelog foo libbar --print-uris -o Acquire::Changelogs::URI::Label::Debian="http://localhost:${APTHTTPPORT}/CHANGEPATH.changelog"
+'http://localhost:${APTHTTPPORT}/main/libb/libbar/libbar_1.0.changelog' libbar.changelog" aptget changelog foo libbar --print-uris -o Acquire::Changelogs::URI::Label::Debian="http://localhost:${APTHTTPPORT}/@CHANGEPATH@.changelog"
 
 sed -i '/^Origin: / a\
-Changelogs: http://example.org/CHANGEPATH-changelog' $(find rootdir/var/lib/apt/lists -name '*Release')
+Changelogs: http://example.org/@CHANGEPATH@-changelog' $(find rootdir/var/lib/apt/lists -name '*Release')
 rm -f rootdir/var/cache/apt/*.bin
 
 testsuccessequal "'http://example.org/main/f/foo/foo_1.0-changelog' foo.changelog
-'http://example.org/main/libb/libbar/libbar_1.0-changelog' libbar.changelog" aptget changelog foo libbar --print-uris -o Acquire::Changelogs::URI::Label::Debian="http://localhost:${APTHTTPPORT}/CHANGEPATH.changelog"
+'http://example.org/main/libb/libbar/libbar_1.0-changelog' libbar.changelog" aptget changelog foo libbar --print-uris -o Acquire::Changelogs::URI::Label::Debian="http://localhost:${APTHTTPPORT}/@CHANGEPATH@.changelog"
 
 testsuccessequal "'http://localhost:${APTHTTPPORT}/main/f/foo/foo_1.0.changelog' foo.changelog
-'http://localhost:${APTHTTPPORT}/main/libb/libbar/libbar_1.0.changelog' libbar.changelog" aptget changelog foo libbar --print-uris -o Acquire::Changelogs::URI::Override::Label::Debian="http://localhost:${APTHTTPPORT}/CHANGEPATH.changelog"
+'http://localhost:${APTHTTPPORT}/main/libb/libbar/libbar_1.0.changelog' libbar.changelog" aptget changelog foo libbar --print-uris -o Acquire::Changelogs::URI::Override::Label::Debian="http://localhost:${APTHTTPPORT}/@CHANGEPATH@.changelog"
 
 releasechanger 'Changelogs' 'no'
 if [ "$(id -u)" = '0' ]; then
@@ -57,11 +57,11 @@ fi
 sed -i '/^Changelogs: / d' $(find rootdir/var/lib/apt/lists -name '*Release')
 releasechanger 'Label' 'Testcases'
 
-echo "Acquire::Changelogs::URI::Label::Testcases \"http://localhost:${APTHTTPPORT}/CHANGEPATH/change.txt\";" > rootdir/etc/apt/apt.conf.d/changelog.conf
+echo "Acquire::Changelogs::URI::Label::Testcases \"http://localhost:${APTHTTPPORT}/@CHANGEPATH@/change.txt\";" > rootdir/etc/apt/apt.conf.d/changelog.conf
 testsuccessequal "'http://localhost:${APTHTTPPORT}/main/f/foo/foo_1.0/change.txt' foo.changelog
 'http://localhost:${APTHTTPPORT}/main/libb/libbar/libbar_1.0/change.txt' libbar.changelog" aptget changelog foo libbar --print-uris
 
-echo "Acquire::Changelogs::URI::Label::Testcases \"http://localhost:${APTHTTPPORT}/pool/CHANGEPATH/changelog\";" > rootdir/etc/apt/apt.conf.d/changelog.conf
+echo "Acquire::Changelogs::URI::Label::Testcases \"http://localhost:${APTHTTPPORT}/pool/@CHANGEPATH@/changelog\";" > rootdir/etc/apt/apt.conf.d/changelog.conf
 testsuccessequal "'http://localhost:${APTHTTPPORT}/pool/main/f/foo/foo_1.0/changelog' foo.changelog" aptget changelog foo --print-uris
 
 
@@ -97,11 +97,11 @@ testfilestats 'foo.changelog' '%U:%G:%a' '=' "${TEST_DEFAULT_USER}:${TEST_DEFAUL
 testfileequal 'foo.changelog' "$(cat  ../aptarchive/pool/main/f/foo/foo_1.0/changelog)"
 rm -f foo.changelog
 
-# no CHANGEPATH in the URI
+# no @CHANGEPATH@ in the URI
 testequal 'E: Failed to fetch changelog:/foo.changelog  Changelog unavailable for foo=1.0
 ' aptget changelog foo -qq -d -o Acquire::Changelogs::URI::Label::Testcases="http://localhost:${APTHTTPPORT}/change.txt"
 testfailure test -e foo.changelog
 
 testequal "E: Failed to fetch http://localhost:${APTHTTPPORT}/does/not/exist/main/f/foo/foo_1.0/change.txt  Changelog unavailable for foo=1.0 (404  Not Found)
-" aptget changelog foo -qq -d -o Acquire::Changelogs::URI::Label::Testcases="http://localhost:${APTHTTPPORT}/does/not/exist/CHANGEPATH/change.txt"
+" aptget changelog foo -qq -d -o Acquire::Changelogs::URI::Label::Testcases="http://localhost:${APTHTTPPORT}/does/not/exist/@CHANGEPATH@/change.txt"
 testfailure test -e foo.changelog
diff --git a/test/integration/test-bug-738785-switch-protocol b/test/integration/test-bug-738785-switch-protocol
index 2f8a7ae5d..0e84f55d9 100755
--- a/test/integration/test-bug-738785-switch-protocol
+++ b/test/integration/test-bug-738785-switch-protocol
@@ -22,7 +22,7 @@ testsuccess aptget update -o Debug::Acquire::http=1 -o Debug::Acquire::https=1 -
 msgtest 'Test that the webserver does not answer' 'http requests'
 downloadfile "http://localhost:${APTHTTPPORT}/pool/main/a/apt/apt_1.0/changelog" changelog >/dev/null 2>&1 && msgfail || msgpass
 
-echo "Acquire::Changelogs::URI::Label::Testcases \"http://localhost:${APTHTTPPORT}/redirectme/pool/CHANGEPATH/changelog\";" > rootdir/etc/apt/apt.conf.d/changelog.conf
+echo "Acquire::Changelogs::URI::Label::Testcases \"http://localhost:${APTHTTPPORT}/redirectme/pool/@CHANGEPATH@/changelog\";" > rootdir/etc/apt/apt.conf.d/changelog.conf
 testsuccessequal "'http://localhost:${APTHTTPPORT}/redirectme/pool/main/a/apt/apt_1.0/changelog' apt.changelog" aptget changelog apt --print-uris
 
 cd downloaded