GPL jest niezrozumiała, fakt. I w kilku miejscach jest tak niezrozumiała, że do dziś nie wiem jaka jest prawidłowa interpretacja. Dlatego poważnie zastanów się czy chcesz GPL i jakie to będzie miało konsekwencje. Rozważ też licencje bardziej liberalne, np. MIT.
W programie umieszczam info na jakiej jest wydany licencji, oraz moje imię i nazwisko oraz odnośnik do "strony autora" na której umieszczę również kod programu. W program wbudowałem moduł sprawdzający czy jest to aktualna wersja w razie co wyświetla się stosowana informacja o możliwości pobrania nowej wersji ze strony autora. Czy ten moduł aktualizacji w takiej formie jest zgodny z licencją?
Oczywiście, licencja nie mówi absolutnie nic, że program nie może się kontaktować ze stroną autora i sprawdzać aktualizacji. Jak się komuś nie będzie podobać, to weźmie i sobie skasuje.
Program jest napisany w visual c++ 2008 czy na każdym pliku kodu źródłowego muszę zamieszczać informacje że jest na takiej i takiej licencji oraz imię i nazwisko autora czy wystarczy dodać jakieś ReadMe z tymi informacjami?
Wiele aplikacji ma dodany krótki nagłówek o tym, że kod danego pliku jest na licencji GPL, który może mieć np. taką postać i jest umieszczony w każdym pliku źródłowym:
#region License
/**
* Copyright © Marcin Badurowicz 2007-2008 <ktos at ktos dot info>
* http://www.ktos.info
* Version: $Revision: 1.7 $
*
* This file is part of Urania.
*
* Urania is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 3 of
* the License, or (at your option) any later version.
*
* Urania is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
#endregion
Umieszczenie takiego nagłówka w każdym pliku powoduje, że każdy plik jest wyraźnie objęty licencją. BTW, ten konkretny nagłówek zezwala na użycie wersji 3 lub jakiejkolwiek wersji późniejszej. Oczywiście, możesz zamiast tego dodać plik readme z informacjami i np. listą plików, aby dokładnie było widać które pliki są na tej licencji, ewentualnie zastosować krótki nagłówek tylko z odnośnikiem gdzie znajduje się licencja - spójrz na koniec licencji http://www.gnu.org/licenses/gpl.html
Do programu, zarówno w wersji binarnej, jak i źródłowej, powinna być dołączona pełna, angielska, wersja licencji GPL, w pliku np. o nazwie LICENSE lub COPYING.
Jeżeli napiszę nowa wersje programu to mogę bezpiecznie usunąć kod starej wersji z serwera i dać kod nowej wersji?
Tak. Ale może się znaleźć ktoś, kto poprosi o dostęp do starszych źródeł. Trzymanie starszych wersji nie jest dużym problemem, możesz je archiwizować.
Jeżeli ktoś zmieni mój program i wprowadzi jakieś zmiany i mi się te zmiany spodobają i wprowadzę je do swojego programu tylko w innej formie to autorem tych zmian nadal jestem ja tak?
Jeśli skopiujesz żywe kawałki kodu z "forka" swojego programu do swojego programu, to autorem tych zmian jest autor "forka". Dodaj go do odpowiednich Copyrightów. Jeśli natomiast tylko "inspirujesz" się zmianami, bez korzystania z kodu wersji zmodyfikowanej, w zasadzie ty jesteś nowym autorem zmian. Choć możesz np. umieścić podziękowanie w pliku readme.
Korzystanie z NET Framework i standardowych bibliotek c++ nie stoi na przeszkodzie użycia tej licencji?
Nie ma problemu.
Dodatkowo: "Gdy program jest interaktywny, zwykle dobrze jest zrobić go tak, by podczas uruchamiania się wyświetlał krótkie powiadomienie o prawach autorskich i zezwoleniu na kopiowanie." wzięte z http://www.gnu.org/licenses/gpl-howto.pl.html. http://www.gnu.org/licenses/gpl-howto.html - angielska wersja tego poradnika jest nieco lepsza.