Fritzing was mentioned in the first response.It is also under GNU license.The fun about Fritzing is that you can build your hardware on to a virtual breadboard, and the program will generate schematics for that.It is also possible to design your print with it.I just tried that, have Fritzing since i started playing with Arduino stuff e few months back.So for small stuff, Fritzing is easy to get started with, i don't know about more advanced functions.