Package: release.debian.org
Severity: normal
User: release.debian....@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 <bl...@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 <bl...@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 via email to