From 09c76cb29b61e1d523a30287f8a9bf0cb0b608e7 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Wed, 22 Jan 2025 09:34:37 +0100 Subject: 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 in Bug#1032131 --- apt-pkg/contrib/gpgv.cc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'apt-pkg') diff --git a/apt-pkg/contrib/gpgv.cc b/apt-pkg/contrib/gpgv.cc index 173bfdf22..c6eabc690 100644 --- a/apt-pkg/contrib/gpgv.cc +++ b/apt-pkg/contrib/gpgv.cc @@ -395,12 +395,20 @@ void ExecGPGV(std::string const &File, std::string const &FileGPG, } } - std::vector Parts; if (not FoundKeyring) { - Parts = GetListOfFilesInDir(_config->FindDir("Dir::Etc::TrustedParts"), std::vector{"gpg", "asc"}, true); + // Either trusted or trustedparts must exist + _error->PushToStack(); + auto Parts = GetListOfFilesInDir(_config->FindDir("Dir::Etc::TrustedParts"), std::vector{"gpg", "asc"}, true); if (auto trusted = _config->FindFile("Dir::Etc::Trusted"); not trusted.empty()) + { + apt_warning(std::cerr, statusfd, fd, "Loading %s from deprecated option Dir::Etc::Trusted\n", trusted.c_str()); Parts.push_back(trusted); + } + if (Parts.empty()) + _error->MergeWithStack(); + else + _error->RevertToStack(); for (auto &Part : Parts) { if (Debug) -- cgit v1.2.3-70-g09d2