Sorry, this is quite long and I know how hard it can be to follow these things, but please stick with it, because I think (1) I show there is a problem with debmirror (also in wheezy) with the new repo layout, and also (2) makes me wonder if something is amiss with the upstream repo layout.
Firstly, > > does one really need wheezy to mirror wheezy? :-( > > No, you can install debmirror 2.14~bpo60+1 from squeeze-backports. Unfortunately, that did not work. debian.org has got: gnocchi# rsync --no-motd rsync://ftp2.de.debian.org/debian/dists/wheezy/main/ | grep 'Contents.*gz$' -rw-rw-r-- 22187746 2013/03/26 15:13:33 Contents-amd64.gz -rw-rw-r-- 21899285 2013/03/26 15:13:31 Contents-armel.gz -rw-rw-r-- 21789382 2013/03/26 15:13:26 Contents-armhf.gz -rw-rw-r-- 22364910 2013/03/26 15:13:33 Contents-i386.gz ... gnocchi# Whereas, when I run the backported debmirror, it downloads: gnocchi# dpkg -l debmirror | grep debmirror +++-=========================-=========================-================================================================== ii debmirror 1:2.14~bpo60+1 Debian partial mirror script, with ftp and package pool support gnocchi# gnocchi# debmirror --rsync-options="-aIL --partial --no-motd --chmod=u=rw,go=r,D+x" --i18n --ignore-release-gpg --getcontents --nosource --method=rsync --host=ftp2.de.debian.org --root=:debian --arch=i386,amd64 --dist=wheezy --section=main,contrib,non-free,main/debian-installer --di-dist=dists --di-arch=arches . gnocchi# gnocchi# ls dists/wheezy/main/ | grep Contents <===== Contents-*.gz (at this level) still missing! gnocchi# gnocchi# ls dists/wheezy/main/ binary-amd64 binary-i386 debian-installer i18n installer-amd64 installer-i386 gnocchi# > It is also easy to pull the debmirror script from Wheezy/Sid and copy > it onto the Squeeze system. That is I do. I tried that and the result was the same, but it's the same version, so no surprise there. I realise I need to amend what I said in my first post: debmirror *is* working sufficiently for me to able to install a machine pointed at my mirror, but apt-file is failing to update, as per the OP's report: root@orzo:~# apt-file update Ignoring source without Contents File: http://gnocchi.pasta.net/debian-wheezy.orzo/dists/wheezy/main/Contents-amd64.gz root@orzo:~# and it is failing because debmirror is not getting that file. So: wheezy's apt-file is not working with a mirror constructed with *any* debmirror with the current repo layout. The files apt-get needs *are* on the upstream site, but debmirror is not getting them. Secondly, Using ftp, I was able to see where the Contents-*.gz symlinks in the parent directory pointed to, and I see they point to the same-named files in the main/ subdirectory: ncftp /debian/dists/wheezy > ls -l lrwxrwxrwx 1 1176 1176 22 Mar 26 10:04 ChangeLog -> ChangeLog.201303261004 -rw-r--r-- 22 1176 1176 0 Mar 26 10:04 ChangeLog.201303241004 -rw-r--r-- 1 1176 1176 2958 Mar 24 22:05 ChangeLog.201303242205 -rw-r--r-- 1 1176 1176 1609 Mar 25 10:04 ChangeLog.201303251004 -rw-r--r-- 1 1176 1176 956 Mar 25 22:04 ChangeLog.201303252204 -rw-r--r-- 22 1176 1176 0 Mar 26 10:04 ChangeLog.201303261004 lrwxrwxrwx 1 1176 1176 22 Mar 26 2011 Contents-amd64.gz -> main/Contents-amd64.gz lrwxrwxrwx 1 1176 1176 22 Mar 26 2011 Contents-armel.gz -> main/Contents-armel.gz lrwxrwxrwx 1 1176 1176 22 Dec 7 2011 Contents-armhf.gz -> main/Contents-armhf.gz lrwxrwxrwx 1 1176 1176 21 Mar 26 2011 Contents-i386.gz -> main/Contents-i386.gz lrwxrwxrwx 1 1176 1176 21 Mar 26 2011 Contents-ia64.gz -> main/Contents-ia64.gz lrwxrwxrwx 1 1176 1176 31 Mar 26 2011 Contents-kfreebsd-amd64.gz -> main/Contents-kfreebsd-amd64.gz lrwxrwxrwx 1 1176 1176 30 Mar 26 2011 Contents-kfreebsd-i386.gz -> main/Contents-kfreebsd-i386.gz lrwxrwxrwx 1 1176 1176 23 Mar 26 2011 Contents-mipsel.gz -> main/Contents-mipsel.gz lrwxrwxrwx 1 1176 1176 21 Mar 26 2011 Contents-mips.gz -> main/Contents-mips.gz lrwxrwxrwx 1 1176 1176 24 Mar 26 2011 Contents-powerpc.gz -> main/Contents-powerpc.gz lrwxrwxrwx 1 1176 1176 21 Mar 26 2011 Contents-s390.gz -> main/Contents-s390.gz lrwxrwxrwx 1 1176 1176 22 Dec 7 2011 Contents-s390x.gz -> main/Contents-s390x.gz lrwxrwxrwx 1 1176 1176 22 Mar 26 2011 Contents-sparc.gz -> main/Contents-sparc.gz drwxr-sr-x 32 1176 1176 4096 Mar 26 14:36 contrib -rw-r--r-- 1 1176 1176 224254 Mar 26 14:23 InRelease drwxr-sr-x 45 1176 1176 4096 Mar 26 14:14 main drwxr-sr-x 32 1176 1176 4096 Mar 26 14:36 non-free -rw-r--r-- 1 1176 1176 223371 Mar 26 14:23 Release -rw-r--r-- 1 1176 1176 836 Mar 26 14:23 Release.gpg ncftp /debian/dists/wheezy > So I guess I could make symlinks in my own mirror, pointing from what is missing to what exists (i.e. the other way round to upsteam): gnocchi# pwd /pub/mirrors/debian-wheezy gnocchi# ls -l total 12 drwxr-xr-x 3 root root 4096 Mar 26 15:53 dists drwxr-sr-x 5 10000 10000 4096 Dec 19 2000 pool drwxr-sr-x 3 10000 10000 4096 Nov 18 2008 project gnocchi# cd dists/ testing/ wheezy/ gnocchi# cd dists/wheezy/ Contents-amd64.gz Release contrib/ non-free/ Contents-i386.gz Release.gpg main/ gnocchi# cd dists/wheezy/main/ gnocchi# ls binary-amd64 binary-i386 debian-installer i18n installer-amd64 installer-i386 gnocchi# ln -s ../Contents-* . gnocchi# and then things work on my apt-file client: root@orzo:~# apt-file update Ignoring source without Contents File: http://gnocchi.pasta.net/debian-wheezy.orzo/dists/wheezy/main/Contents-amd64.gz root@orzo:~# apt-file update Downloading complete file http://gnocchi.pasta.net/debian-wheezy.orzo/dists/wheezy/main/Contents-amd64.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 21.1M 100 21.1M 0 0 7575k 0 0:00:02 0:00:02 --:--:-- 7624k root@orzo:~# Okay, but back to debian.org: That those Contents-*gz symlinks on debian.org point to the file in the *main* subdirectory, does rather make me think that apt-file won't *ever* be able to find anything out about the files that are in the *other* sections, i.e. non-free and contrib directories. A stupid test: I look for a package in non-free: gnocchi# zcat dists/wheezy/non-free/binary-amd64/Packages.gz | grep Package | head -1 Package: abs-guide gnocchi# I ask the client to tell me what files are in that package: root@orzo:~# apt-file list abs-guide root@orzo:~# Okay, sure I didn't make the Contents-*.gz symlink in non-free, but if I make the same symlink as before then that would (1) tell it about files it already knows about because of the main/Contents-*.gz symlink, and (2) might just make it think that main's files were also in non-free. Err ... So debmirror (1) converts the dists/wheezy/Contents-*.gz symlinks into the file that that points to - i.e. dists/wheezy/main/Contents-*.gz, and (2) fails to get the ones in all the dists/wheezy/<section> directories. So: in addition to breaking apt-get, it also means that I simply don't have Contents-*.gz files for non-free and contrib on my mirror. That can't be right? What other tools use the Contents-*.gz files? It can't only be apt-file that this is breaking. HTH Alexis -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org