Nic do dodania do wyjaśnień w już udzielonych odpowiedziach, ale oto instrukcje, jak kształtować nagłówki plików źródłowych ( źródło ):
2.2 Dodawanie modyfikacji GPL do plików licencjonowanych zezwalających
Bardziej skomplikowany przypadek występuje, gdy programista dokonuje zmian praw autorskich do pliku na licencji zezwalającego, który programista włącza do programu na licencji GPL. Programiści w takiej sytuacji zwykle stosują GPL do swoich modyfikacji. (Jednak deweloper może zamiast tego wnieść nowy kod na dozwolonych warunkach, takich jak licencja na zezwolenie, która reguluje niezmodyfikowany plik. Omawiamy tę sprawę w § 2.3.)
Mimo że licencja zezwalająca na projekt zewnętrzny przyznaje prawne zezwolenie na włączenie kodu z tego projektu do projektu GPL, twórca projektu GPL musi mimo to spełnić wymóg zachowania zawiadomienia w licencji zezwalającej. W projekcie korzystającym z metody „plik po pliku” programista, który dokonuje modyfikacji praw autorskich do pliku licencjonowanego zezwalającego, powinien umieścić nowe powiadomienie o prawach autorskich i powiadomienie o pozwoleniu powyżej istniejącego i wyjaśnić, że twórca zmodyfikował plik. Góra pliku pojawi się w następujący sposób:
/*
* Copyright (c) 2007 GPL Project Developer Who Made Changes
*
* This file is free software: you may copy, redistribute and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 2 of the License, or (at your
* option) any later version.
*
* This file 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 .
*
* This file incorporates work covered by the following copyright and
* permission notice:
*
* Copyright (c) YEARS_LIST, Permissive Contributor1
* Copyright (c) YEARS_LIST, Permissive Contributor2
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose with or without fee is hereby granted, provided
* that the above copyright notice and this permission notice appear
* in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
Bardzo ważne jest, aby deweloper zachował całą informację o prawach autorskich, zezwolenie i zrzeczenie się gwarancji, tak jak pojawiły się w oryginalnym kodzie, zgodnie z wymogami dozwolonej licencji. Czasami widzimy, że powiadomienia GPL są pomieszane z dopuszczającymi ogłoszeniami licencyjnymi - myląca praktyka, która zaciemnia zarówno pochodzenie kodu, jak i dokładne uprawnienia przyznane przez różnych właścicieli praw autorskich wymienionych w ogłoszeniach. Gdy różni właściciele praw autorskich udostępnili swój wkład na różnych warunkach, należy określić warunki, które każdy umieścił na jego konkretnym wkładzie. Zalecamy wyraźne oddzielenie i użycie wcięć, jak w powyższym przykładzie.
Ten sposób organizowania powiadomień w pliku ułatwia programistom wybór, czy wnieść wkład na warunkach dozwolonych, czy na licencji GPL. Jeśli chcą udostępnić swój wkład na warunkach dozwolonych, mogą dodać swoje uwagi dotyczące praw autorskich do niższej grupy. Jeśli chcą wziąć udział w GPL, mogą dodać swoje uwagi dotyczące praw autorskich u góry. Należy jednak pamiętać, że w jednym pliku źródłowym określenie, które części takiego pliku są objęte dozwolonymi warunkami, jest zwykle bardzo trudne i często całkowicie niemożliwe. Jeżeli celem jest udostępnienie dodatkowego kodu wyłącznie na warunkach dozwolonych, należy zastosować metodę opisaną w § 2.3.