it might be a clever thing to do, but let me tell you that with all the 2000 source packages we compiled on the Hurd in the last three years, the most time consuming and annoying ones where those which did not use autoconf, automake, or, horror!, did not use GNU make (but pmake or imake or things like that), but provided their own clever system. And of course, repeating all the wrong assumptions and bugs that I have already fixed in a dozen other, similarly broken build system written by likely-minded people who also thought it would be a clever idea and they could do better than the autoconf/automake maintainers.
The setup like the one in cdrtools with all the mostly identical RULES/ and DEFAULT/ files is the horror of my dreams. This is because I spent lots of wasted hours in such systems, trying to understand what the hell this or that variable does exactly (btw, the worst package of this kind was still XFree86, which is a mix of everything and little documentation of the variables. The best package of this sort is exim, which was quite easy to port because it is consequently feature based, and documents the variables).
What do you call a non-trivial program? I can give some packages ported anyhow: XFree86, ssh, emacs, vim, ruby, python, TeX, ...=20
ssh would be a at the border to a non trivial program, while emacs is a trivial program from portability perspective.
And this although emacs does use some very sophisticated things, including frobbing the malloc implementation, dumping itself to an executable, and other funky stuff. When it doesn't work (as one emacs20 version), it takes some time to fix it.
I don't know your measure of triviality. Certainly the port of XFree86 was non-trivial (see above). The port of ruby was non-trivial (among others, because it assumes that errno fits into 31 bits). The ruby maintainer gladly helped out here, although he probably doesn't use the Hurd himself. The port of TeX was relatively trivial.
Interestingly, the port of dpkg was non-trivial, there were several bugs. Also, the port of gdb was non-trivial, it required lots of work by Mark Kettenis. The port of python was also non-trivial, there were a couple of subtle bugs which were hard to find (but easy to fix).
Kerberos was not trivial at all. Same for postgresql, which I had to stall because we don't have SysV semaphores and shared memory yet (which means postgresql compiles, but the server doesn't run).
The port of perl was not easy, because the Debian packaging assumed Linux throughout, and again there were a couple of bugs, partly in the Hurd (we fixed all of them). The port of the Boehm garbage collector was not trivial, because it required some information about the stack setup. The port of exim was not trivial, because it tried to close all file descriptors before exec, and the Hurd declared an insane number of available file descriptors at that time (because this is one area where POSIX is broken, we changed the Hurd to have a small soft limit of fds, although there is no such limit in the Hurd). Philip Hazel, the exim maintainer, changed all code to keep track of the open file descriptors, just to make it work on the Hurd. And this although he probably doesn't use the Hurd either. Oh, and at the time I did it, the port of slang wasn't so easy for me. tcl/tk was also not so easy to port because of the broken build system. Interestingly, fortune was easy to fix, but the bug was not easy to spot (it was a hardcoded open (foo, 0) instead O_RDONLY, which is 1 on the Hurd).
cron was not easy to port, because the code is so ancient by todays standards, and has all the hard limits that we want to avoid. Same for things like netutils, which lead to a fork and the development of GNU inetutils.
I am by now only 15% through the packages list, and I probably forgot a lot of packages which I ported in a few hours or couple of days. Note that not all of the above was done by me, I gave a couple of names, but there were some more. Not all ports were done by GNU/Hurd people (see upstream authors above).
This point about what trivial or non-trivial programs have been ported is just so silly.
Thanks, Marcus