see http://www.gnu.org/copyleft/gpl.html