Ничего добавить к объяснениям в уже приведенных ответах, но вот инструкции о том, как формировать заголовки исходного файла ( источник ):
2.2 Добавление GPL-модификаций в разрешительно-лицензированные файлы
Более сложный случай возникает, когда разработчик вносит изменяемые авторским правом изменения в файл с разрешающей лицензией, который разработчик включает в программу GPL. Разработчики в этой ситуации обычно применяют GPL к своим модификациям. (Однако разработчик может вместо этого внести новый код на разрешающих условиях, таких как разрешающая лицензия, которая управляет неизмененным файлом. Мы обсуждаем этот случай в п. 2.3.)
Несмотря на то, что разрешительная лицензия внешнего проекта предоставляет законное разрешение на включение кода из этого проекта в проект GPL, разработчик проекта GPL должен, тем не менее, соблюдать требование сохранения уведомления в разрешающей лицензии. В проекте, в котором используется метод «файл за файлом», разработчик, который вносит изменения в файл с разрешающей лицензией и защищенный авторским правом, должен поместить новое уведомление об авторском праве и уведомление о разрешении выше существующего и должен четко указать, что разработчик изменил файл. Верх файла будет выглядеть следующим образом:
/*
* 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.
*/
Очень важно, чтобы разработчик сохранил все уведомление об авторских правах, уведомление о разрешении и отказ от гарантийных обязательств в том виде, в каком они появились в исходном коде, как того требует разрешительная лицензия. Иногда мы видим, что уведомления GPL смешиваются с разрешающими уведомлениями о лицензиях - запутанная практика, которая скрывает как происхождение кода, так и точные разрешения, которые были предоставлены различными правообладателями, перечисленными в уведомлениях. Когда разные правообладатели публикуют свои вклады на разных условиях, должны быть указаны условия, которые каждый наложил на свой конкретный вклад. Мы рекомендуем сделать четкое разделение и использовать отступы, как в примере выше.
Такой способ организации уведомлений в файле позволяет разработчикам удобно выбирать, вносить ли вклад на разрешающих условиях или в соответствии с GPL. Если они хотят сделать свои вклады доступными на разрешающих условиях, они могут добавить свои уведомления об авторских правах в нижнюю группу. Если они хотят внести свой вклад в соответствии с GPL, они могут добавить свои уведомления об авторских правах вверху. Однако обратите внимание, что в одном исходном файле, как правило, очень трудно, и часто совершенно невозможно, определить, какие части такого файла охватываются разрешающими терминами. Если цель состоит в том, чтобы сделать дополнительный код доступным только на разрешающих условиях, следует использовать метод, описанный в п. 2.3.