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

Reply via email to