We have started a project to make a Gnutella client/library portable in C++ (based on gnucleus, but without the COM).
You are welcome to contribute,
http://gnucula.sourceforge.net
It's up to you to keep the Gnutella client source closed. The project is primarily focus on Gnutella library though.