Bug#929029: unblock: apt-cacher-ng/3.2.1-1
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Please advise how to process with a required fix for the package apt-cacher-ng.
The change is a one-liner and solves the bug #928957. Without it, the
cache cleanup will fail for a lot of people in the next couple of years.
But it touches the upstream source, that's why I would like to release
it as minor upstream version (3.2.1, currently 3.2, and I am the
upstream).
I remember how you handled a similar request of mine a couple of years
ago, and this time I DEMAND a proper response here before I upload
anything. Please don't ignore it again for weeks and don't tell me that
this change is impossible to understand or to estimate WRT consequences;
it is using an already existing interface in the exact usecase it was
designed for. (see below)
Best regards,
Eduard.
diff --git a/ChangeLog b/ChangeLog
index c064c44..67e440a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,10 +1,20 @@
+apt-cacher-ng (3.2.1) MY-NAME-IS-ANYBODY-3D; urgency=low
+
+ * Fix overoptimistic guess of the SHA256SUMS file location of Debian
+ repositories, which made the expiration task fail without any way to
+ recover from it. Now ignoring a download error in this case since
+ permanent 404ing for other reasons than loss of remote content (on any
+ mirror) can be considered unlikely.
+
+ -- Eduard Bloch <blade@debian.org> Wed, 15 May 2019 20:32:44 +0200
+
apt-cacher-ng (3.2) MY-NAME-IS-ANYBODY; urgency=medium
* Maintenance release
* Basic support for FlatPak repositories
* Added flat by-hash structure to file patterns
* Allowing some Debian and Ubuntu services in default PassThroughPattern
* Various fixes in manpage and configuration examples
* Mirror database update
-- Eduard Bloch <blade@debian.org> Fri, 07 Sep 2018 12:55:46 +0200
diff --git a/source/expiration.cc b/source/expiration.cc
index 2125521..625a7be 100644
--- a/source/expiration.cc
+++ b/source/expiration.cc
@@ -799,20 +799,27 @@ bool expiration::ProcessRegular(const string & sPathAbs, const struct stat &stin
auto& flags = m_metaFilesRel[idir +"SHA256SUMS"];
/* pretend that it's there but not usable so the refreshing code will try to get at
* least one copy for that location if it's needed there
*/
if(!flags.vfile_ondisk)
{
flags.eIdxType = EIDX_SHA256DILIST;
flags.vfile_ondisk = true;
flags.uptodate = false;
+
+ // the original source context will probably provide a viable source for
+ // this URL - it might go 404 if the whole folder is missing but then the
+ // referenced content would also be outdated/gone and not worth keeping
+ // in the cache anyway
+
+ flags.forgiveDlErrors = true;
}
// and last but not least - care only about the modern version of that index
m_metaFilesRel.erase(idir + "MD5SUMS");
}
unsigned stripLen=0;
if (endsWithSzAr(sPathRel, ".head"))
stripLen=5;
else if (AddIFileCandidate(sPathRel))
{
auto &attr = SetFlags(sPathRel);
Reply to: