Debugging Packages on Other Architectures
Debian maintainers should periodically check their listing at http://qa.debian.org/developer.php, among other things following the "buildd" link for each package.
Suppose you find a list like this:
# 0.40-1 (powerpc) (latest build at May 8 21:34: maybe-failed) # 0.40-1 (s390) (latest build at May 8 21:37: maybe-successful) # 0.40-1 (hppa) (latest build at May 8 21:37: maybe-successful) # 0.40-1 (amd64) (latest build at May 8 21:37: maybe-successful) # 0.40-1 (mipsel) (latest build at May 8 21:38: maybe-failed) # 0.40-1 (sparc) (latest build at May 8 21:39: maybe-successful) # 0.40-1 (ia64) (latest build at May 9 00:51: maybe-successful) # 0.40-1 (alpha) (latest build at May 9 09:05: maybe-failed) # 0.40-1 (m68k) (latest build at May 9 12:36: maybe-successful) # 0.40-1 (mips) (latest build at May 9 17:07: maybe-failed) # 0.40-1 (arm) (latest build at May 9 18:28: maybe-successful
Note that builds failed on four architectures. If you don't have one of these machines, how should you track down the problem? Your first step should be to check the build log (the date is a link to the log). Next, consult the list of Developer Machines at http://db.debian.org/machines.cgi. Choose a machine with an appropriate access policy, and with one of the architectures on which the build failed.
Use ssh to log in. (The "developer only" machines should share the same userid/password as master.debian.org.) Install the sources for your package, either using "apt-get source foopackage" or use scp to send the original sources and the diff file from your home machine. You will probably soon find tools seem to be missing - like fakeroot. No problem. You just need to chroot into the right environment - for example "dchroot etch". Look in /etc/dchroot to see your choices. Within each chroot, there is a file /etc/debian_chroot, the contents of which will tell you which chroot you are in (see /etc/profile for an example of how to add this to your prompt).
For machines using schroot, you can list available schroot environments with "schroot -l", then start one with something like "schroot -c sid". This will create a custom chroot to play with. When you terminate the shell, the schroot will get removed. Use another terminal window to interact with the underlying host as needed to install packages.
Once you have figured out the problem, you can ^D out of the chroot, make a patch and scp it home, and delete any files you have created (no sense wasting disk space on a machine somebody has been nice enough to donate to the Debian project).
By the way, when you visit the http://qa.debian.org/developer.php page, you should also check out the "PTS" link for each of your packages - e.g. http://packages.qa.debian.org/g/grep.html, noting anything in the "ToDo" and "Problems" sections.