Package: apt-cacher-ng
Version: 3.3.1-2
Severity: wishlist
Tags: patch

Hello,

I am rebuilding the Debian CD images. In order to keep my bandwidth to a
minimum, I am using apt-cacher-ng.
The live-wrapper script is downloading the installer, which gets an error '406:
Usage Information'

With the supplied patch (based on tag debian/3.3.1-2) I am able to run the
live-wrapper script properly.

You can verify that the patch is active:
<pre>
wget -S
"http://localhost:3142/deb.debian.org/debian/dists/buster/main/installer-
amd64/current/images/cdrom/"
</pre>
This URL is requested by the live-wrapper script.

Could you add this patch to the next release?

With kind regards,
Roland Clobus
---
The live-wrapper command that I use is:
<pre>
lwr -m http://localhost:3142/deb.debian.org/debian \
    --apt-mirror http://deb.debian.org/debian \
    --customise /home/roland/git/live-setup/available/live-customise.sh \
    --architecture amd64 \
    -d buster \
    --isolinux \
    --grub \
    --log stderr \
    --installer \
    -t live-task-standard \
    -f "" \
    --base_debs "eject pciutils usbutils keyutils keyboard-configuration
console-setup lvm2 mdadm dmsetup cryptsetup dmraid e2fsprogs btrfs-progs
xfsprogs jfsutils grub-efi-amd64 grub-efi-amd64-bin grub-pc
grub-efi-amd64-signed shim-signed" \
    --description "Unofficial Debian GNU/Linux Live 10.3 standard" \
    --volume_id "d-live 10.3 st amd64" \
    --image_output debian-live-10.3.iso
</pre>



-- Package-specific info:

-- System Information:
Debian Release: bullseye/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'testing-proposed-updates'), (500, 
'testing-debug'), (500, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.4.0-4-amd64 (SMP w/8 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages apt-cacher-ng depends on:
ii  adduser                  3.118
ii  debconf [debconf-2.0]    1.5.73
ii  dpkg                     1.19.7
ii  libbz2-1.0               1.0.8-2
ii  libc6                    2.30-2
ii  libevent-2.1-7           2.1.11-stable-1
ii  libevent-pthreads-2.1-7  2.1.11-stable-1
ii  libgcc-s1 [libgcc1]      10-20200312-2
ii  libgcc1                  1:10-20200312-2
ii  liblzma5                 5.2.4-1+b1
ii  libssl1.1                1.1.1d-2
ii  libstdc++6               10-20200312-2
ii  libsystemd0              244.3-1
ii  libwrap0                 7.6.q-30
ii  lsb-base                 11.1.0
ii  zlib1g                   1:1.2.11.dfsg-2

Versions of packages apt-cacher-ng recommends:
ii  ca-certificates  20190110

Versions of packages apt-cacher-ng suggests:
ii  avahi-daemon  0.7-5
pn  doc-base      <none>
ii  libfuse2      2.9.9-2

-- Configuration Files:
/etc/apt-cacher-ng/security.conf [Errno 13] Permission denied: 
'/etc/apt-cacher-ng/security.conf'

-- debconf information excluded
diff --git a/debian/changelog b/debian/changelog
index cc7934e..c604204 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+apt-cacher-ng (3.3.1-3~local1) UNRELEASED; urgency=medium
+
+  * Allows caching of URLs with a directory
+
+ -- Roland Clobus <rclo...@rclobus.nl>  Sat, 21 Mar 2020 11:32:36 +0100
+
 apt-cacher-ng (3.3.1-2) unstable; urgency=high
 
   * Fixes FTBFS on mipsel/mips64el
diff --git a/source/job.cc b/source/job.cc
index ee49068..367c8b4 100644
--- a/source/job.cc
+++ b/source/job.cc
@@ -553,14 +553,6 @@ void job::PrepareDownload(LPCSTR headBuf) {
                        }
                }
 
-               // entered directory but not defined as local? Then 404 it with 
hints
-               if(!theUrl.sPath.empty() && endsWithSzAr(theUrl.sPath, "/"))
-               {
-                       LOG("generic user information page for " << 
theUrl.sPath);
-                       m_eMaintWorkType=tSpecialRequest::workUSERINFO;
-                       return;
-               }
-
                m_type = GetFiletype(theUrl.sPath);
 
                if ( m_type == FILE_INVALID )
@@ -587,6 +579,13 @@ void job::PrepareDownload(LPCSTR headBuf) {
                else
                        m_sFileLoc=theUrl.sHost+theUrl.sPath;
 
+               // entered directory but not defined as local? Then download 
the index to some unique filename
+               if(!theUrl.sPath.empty() && endsWithSzAr(theUrl.sPath, "/"))
+               {
+                       m_sFileLoc += "this_is_a_directory";
+                       m_type = FILE_SOLID;
+               }
+
                bForceFreshnessChecks = ( ! cfg::offlinemode && m_type == 
FILE_VOLATILE);
 
                m_pItem.PrepareRegisteredFileItemWithStorage(m_sFileLoc, 
bForceFreshnessChecks);

Reply via email to