summaryrefslogtreecommitdiff
path: root/apt-pkg/deb/debmetaindex.cc
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2015-08-27 18:13:00 +0200
committerDavid Kalnischkies <david@kalnischkies.de>2015-08-27 18:16:50 +0200
commit1a3a14ac63b0c4f18de53a7bddcf79d20a5e814f (patch)
tree970faeb03bf9407e145aa607d755a08f6e8a0add /apt-pkg/deb/debmetaindex.cc
parentbf33c3bd991be704494a060730f8370fd9cad52c (diff)
sources.list and indextargets option for pdiffs
Disabling pdiffs can be useful occasionally, like if you have a fast local mirror where the download doesn't matter, but still want to use it for non-local mirrors. Also, some users might prefer it to only use it for very big indextargets like Contents.
Diffstat (limited to 'apt-pkg/deb/debmetaindex.cc')
-rw-r--r--apt-pkg/deb/debmetaindex.cc20
1 files changed, 17 insertions, 3 deletions
diff --git a/apt-pkg/deb/debmetaindex.cc b/apt-pkg/deb/debmetaindex.cc
index 69e41a6f4..78d54b04e 100644
--- a/apt-pkg/deb/debmetaindex.cc
+++ b/apt-pkg/deb/debmetaindex.cc
@@ -36,6 +36,7 @@ class APT_HIDDEN debReleaseIndexPrivate /*{{{*/
std::vector<std::string> Targets;
std::vector<std::string> Architectures;
std::vector<std::string> Languages;
+ bool UsePDiffs;
};
std::vector<debSectionEntry> DebEntries;
@@ -131,6 +132,7 @@ static void GetIndexTargetsFor(char const * const Type, std::string const &URI,
std::string const tplLongDesc = "$(SITE) " + APT_T_CONFIG(flatArchive ? "flatDescription" : "Description");
bool const IsOptional = _config->FindB(std::string("Acquire::IndexTargets::") + Type + "::" + *T + "::Optional", true);
bool const KeepCompressed = _config->FindB(std::string("Acquire::IndexTargets::") + Type + "::" + *T + "::KeepCompressed", GzipIndex);
+ bool const UsePDiffs = _config->FindB(std::string("Acquire::IndexTargets::") + Type + "::" + *T + "::PDiffs", E->UsePDiffs);
#undef APT_T_CONFIG
if (tplMetaKey.empty())
continue;
@@ -156,6 +158,10 @@ static void GetIndexTargetsFor(char const * const Type, std::string const &URI,
Options.insert(std::make_pair("REPO_URI", URI));
Options.insert(std::make_pair("TARGET_OF", Type));
Options.insert(std::make_pair("CREATED_BY", *T));
+ if (UsePDiffs)
+ Options.insert(std::make_pair("PDIFFS", "yes"));
+ else
+ Options.insert(std::make_pair("PDIFFS", "no"));
std::string MetaKey = tplMetaKey;
std::string ShortDesc = tplShortDesc;
@@ -201,12 +207,13 @@ std::vector<IndexTarget> debReleaseIndex::GetIndexTargets() const
void debReleaseIndex::AddComponent(bool const isSrc, std::string const &Name,/*{{{*/
std::vector<std::string> const &Targets,
std::vector<std::string> const &Architectures,
- std::vector<std::string> Languages)
+ std::vector<std::string> Languages,
+ bool const usePDiffs)
{
if (Languages.empty() == true)
Languages.push_back("none");
debReleaseIndexPrivate::debSectionEntry const entry = {
- Name, Targets, Architectures, Languages
+ Name, Targets, Architectures, Languages, usePDiffs
};
if (isSrc)
d->DebSrcEntries.push_back(entry);
@@ -730,12 +737,19 @@ class APT_HIDDEN debSLTypeDebian : public pkgSourceList::Type /*{{{*/
else if (optValue == false && tarItr != mytargets.end())
mytargets.erase(std::remove(mytargets.begin(), mytargets.end(), target), mytargets.end());
}
+ bool UsePDiffs = _config->FindB("Acquire::PDiffs", true);
+ {
+ std::map<std::string, std::string>::const_iterator const opt = Options.find("pdiffs");
+ if (opt != Options.end())
+ UsePDiffs = StringToBool(opt->second);
+ }
Deb->AddComponent(
IsSrc,
Section,
mytargets,
parsePlusMinusOptions("arch", Options, APT::Configuration::getArchitectures()),
- parsePlusMinusOptions("lang", Options, APT::Configuration::getLanguages(true))
+ parsePlusMinusOptions("lang", Options, APT::Configuration::getLanguages(true)),
+ UsePDiffs
);
if (Deb->SetTrusted(GetTriStateOption(Options, "trusted")) == false ||