Differences between revisions 4 and 5
Revision 4 as of 2007-03-19 16:07:50
Size: 3319
Revision 5 as of 2009-03-16 03:29:55
Size: 3319
Editor: anonymous
Comment: converted to 1.6 markup
No differences found!

Debian CD Tester

  • Mentor: SteveMcIntyre

  • Summary: A program to sanity-check Debian CD and DVD images, like lintian/linda do for packages.

  • Required skills: Not many, to start with at least :-)

  • Description:

One of the problems we have in Debian CD and DVD production is effectively testing the images. There are a lot of potential problems with the built images and checking for all of them by hand is time-consuming and error-prone. What would be really useful is a tool that can read ISO image files and validate them.

I'm looking for somebody to write an entirely new application that will analyse a Debian CD/DVD and will tell me whether or not it's "correct". Example issues that we've had in the past are:

  • image too big to fit on the selected media type (e.g. DVD more than 4.7GB)
  • empty Packages/Packages.gz files
  • missing kernel packages needed by the installer
  • files not listed (or listed wrongly) in the md5sum.txt file
  • files listed in the Packages file but not on the CD (and vice versa)
  • missing boot files

That's just off the top of my head. I'm sure that over time we'll think of lots more things to check, and find new problems. The more automated checking we can do on the CD/DVD images, the better we can make them, and we can also reduce the manual labour needed.

Implementation language and interface

I'm not especially bothered about the programming language used, so long as the code is clear. However, you may find that a scripting language like python or perl will be easier to use than something like C/C++/Java - this is not a particularly performance-critical application, and quite a lot of the work needed is going to be parsing text files and directory structures. For that kind of thing, in my experience it can be much quicker and easier to develop scripts, plus I'd expect it'll be easier to extend them with more tests as time goes on.

I'm thinking this would be best done as a command-line tool; a GUI might sound nice, but many people (like me!) use debian-cd on remote machines to do builds and therefore a GUI is much less useful. In fact, something that can be usefully run out of cron and output logged would be great.

Guidance for potential applicants

I know the spec is a little open-ended at the moment for this project, but that's deliberate. One of the things that I really want to see in a successful project application is a fair amount of time set aside for analysis of the problem, i.e. spend at least a couple of weeks playing with the CD creation process and output to see what potential bugs you can find, on top of what I've mentioned.

I'm not necessarily expecting to see tests written that will find all possible errors, as that could take a very long time. But consideration of those errors and then a well-designed framework that allows for addition of more tests later will be very valuable.

More information - where to look

The best thing for you to look at to get a feel for what we're doing might the debian-cd package that we use to create the images, and some of the images that it produces.

would be a good place to look for the latter.