[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Creating jigdo files without loal file access



Hi Patrick,

On Mon, Mar 03, 2003 at 12:37:06PM +0100, Patrick Strasser wrote:
> In short, I want to produce jigdo files for the Debian/Hurd CD set, but I
> don't have access to, don't want to setup , and don't have the space for
> a mirror.

My first reaction: This will be difficult! :) By far the easiest way to 
proceed would be to get in touch with a Debian developer who works on Hurd, 
and get him to run jigdo-file for you on one of Debian's servers.

Also note that a problem with .jigdo files for Debian is that the mirror 
contents change. As soon as a file on the CD is no longer on the mirror, 
jigdo will fail. For this reason, it is mandatory with Debian CDs to set up 
a "fallback mirror", i.e. a hardlink farm on the server which preserves 
files which would otherwise be lost because they're replaced with newer 
versions. So you'd need server access for that anyway...

> I loop-mounted an image, filtered the filelist from the Debian mirror,
> and fed this list to jigdo, which then created the .jigdo and .template
> files using only the image (as file and mounted). But my images are
> always incomplete, and getting the paths corrctly preprocessed is quite
> difficult.

That's right. :-/ One possible trick is to re-use the [Parts] section of 
existing .jigdo files. For example, if you were to release a custom version 
of an official CD, you could copy the section from the official .jigdo 
files (or even more comfortable, use "jigdo-file make-template --merge").

Unfortunately, AFAIK .jigdo files don't yet exist for Hurd, so this won't 
work in your case.

> So I thought about getting the checksums direct from the server, 
> preferebly by rsync, as rsync has to do this anyway. It would be 
> helpfull if jigdo would support some kind of "give me the remote path 
> and checksum and I will see if we can use it"-feature. Then I would just 
> feed in all files with checksum and paths and jigdo selects the 
> appropriate ones. Butt I guess, I'll have to do this externally.

Yes, sorry. But this is fairly easy with a shell script:

 - Obtain list of md5sums and paths on the server
 - Obtain list of md5sums needed by the .template of the loop-mounted image:
   "jigdo-file ls -t foo.template --hex | grep need-file" (4th column)
 - Find paths for the checksums (e.g. using the "join" utility)
 - Write out a [Parts] section. This is the only slightly difficult part 
   because you have to convert the checksums into jigdo's own format, which 
   requires either a bit of Perl/Pyhton hackery or re-running "jigdo-file 
   ls" without the --hex switch

> I just read the jigdo man page again and more concentrated. I found the
> md5sum command. I wonder if there is a way for getting something like
> this out of rsync. I found out that rsync uses at least md4, so I don't
> know if these are compatible.

They're not. :-/ IMHO you really need a little help from someone with 
access to the server.

Cheers,

  Richard

-- 
  __   _
  |_) /|  Richard Atterer     |  CS student at the Technische  |  GnuPG key:
  | \/¯|  http://atterer.net  |  Universität München, Germany  |  0x888354F7
  ¯ '` ¯



Reply to: