I've written a Xilinx JTAG programmer. It runs on Win32 and Linux
Following cables are supported:
Parallel III Digilent USB (on Linux it needs libusb, Win32 needs the original driver from digilent, utilizes full USB transfer speed!)
Following chips are implemented: Spartan-3 Family XCF Family Virtex-II Pro family
If it seems people are interested I'll clean up the code and put it up on sourceforge.net. The most interesting part is the Digilent USB driver. It could be used in other applications too :)