summaryrefslogtreecommitdiff
path: root/methods/sqv.cc
diff options
context:
space:
mode:
authorJulian Andres Klode <julian.klode@canonical.com>2025-01-22 09:34:37 +0100
committerJulian Andres Klode <julian.klode@canonical.com>2025-01-22 09:55:11 +0100
commit09c76cb29b61e1d523a30287f8a9bf0cb0b608e7 (patch)
tree9414ac9ba3395e04a55c1ebb99405f36e48ed500 /methods/sqv.cc
parent61f8f40f921cde13c5b97abbdf900646745e8e30 (diff)
sqv, gpgv: Do not fail if Dir::Etc::Trusted is set and trusted.gpg.d is missing
This should remain a warning case for now. So push the errors to a stack and see if we can find any file. Explictly warn again if Dir::Etc::trusted is set, as it is like _super_ deprecated. Reported-By: Cyril Brulebois <kibi@debian.org> in Bug#1032131
Diffstat (limited to 'methods/sqv.cc')
-rw-r--r--methods/sqv.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/methods/sqv.cc b/methods/sqv.cc
index 9dbe75994..3191752cc 100644
--- a/methods/sqv.cc
+++ b/methods/sqv.cc
@@ -132,9 +132,20 @@ bool SQVMethod::VerifyGetSigners(const char *file, const char *outfile,
};
if (keyFiles.empty())
{
+ // Either trusted or trustedparts must exist
+ _error->PushToStack();
auto Parts = GetListOfFilesInDir(_config->FindDir("Dir::Etc::TrustedParts"), std::vector<std::string>{"gpg", "asc"}, true);
if (auto trusted = _config->FindFile("Dir::Etc::Trusted"); not trusted.empty())
+ {
+ std::string s;
+ strprintf(s, "Loading %s from deprecated option Dir::Etc::Trusted\n", trusted.c_str());
+ Warning(std::move(s));
Parts.push_back(trusted);
+ }
+ if (Parts.empty())
+ _error->MergeWithStack();
+ else
+ _error->RevertToStack();
for (auto &Part : Parts)
{
if (Debug)