Всем привет.
Потихоньку учусь программированию. Стал интересен вопрос лицензирования. Наконец-то за 1.5 года использования GNU/Linux прочитал GPL.
Версия 3.
Есть некоторые вопросы.
0) Принцип, что при распространении программы, в ней должно быть четко указано, что она распространяется по GPL, должна прилагаться копия GPL и должны либо прилагаться исходники, либо должна быть информация, где эти исходники можно найти, прописан только в преамбуле, в Terms and Conditions этого нет. Нет там и пункта о распространении в бинарном виде. (что если я распространяю свою программу в деб-пакете?) Конечно, в программе будет пометка о распространении по GPL, я приложу GPL и скажу, где можно найти исходники, но что, если бы я не был таким добросовестным?
В лицензии я не увидел фразу, что если я этого не сделаю, то это подсудное дело.
1)
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.
Т.е. я могу, помимо условий лицензии GPL, по своему усмотрению добавить один или несколько пунктов, описанных ниже. В частности, интересует пункт о просьбе сохранения авторства. Я потребовать, чтобы мое имя из исходника не удалялось, но если я правильно понял вторую цитату, то первый же человек, которому я передаю программу по GPL, может это требование отменить при распространении от своего имени.
Получается следующая ситуация: если распространяется точная копия, то все нормально. Если кто-то удаляет из заголовка строку
Copyright (C) <year> <name of author>
то это расторгает GPL, т.к. для применения GPL к данной программе должен быть следующий текст (см. "How to Apply These Terms to Your New Programs"):
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program 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.
This program 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/>.
А распространение не по GPL материала, полученного по GPL - это подсудное дело. (если только действует пункт 0)
)
Но если программа модифицирована, то тут начинается интересное: обязательна пометка о модификации:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
Но указания сохранить пометку об авторстве нет. Т.е. модифицирующий может заменить мою строчку
Copyright (C) <year> <name of author>
своей и, таким образом, присвоить себе авторство программы. Если модифицирующий товарищ добросовестный, он добавит вторую строчку, но если бы все товарищи были добросовестными, не писались бы лицензии.
2) Нигде не прописано точно, что нужно сделать, чтобы к программе были применимы условия GPL. В "How to Apply These Terms to Your New Programs" прописано, что нужно добавить
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program 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.
This program 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/>.
и следом идет
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
Если я пишу консольную программулину, то я обязательно должен парсить ввод командной строки в поисках show w show c? Более того, программы с GUI ведь тоже могут быть запущены из командной строки? Обязан ли я соблюдать оба пункта или достаточно одного? Четких указаний я не нашел.
Посмотрел "Справка" -> "О программе" в Eye of Gnome. Если тыкнуть в кнопочку "Лицензия", то там только текст о распространении по GPL, об отсутствии каких бы то ни было гарантий и снятии ответственности и о том, что вместе с программой должна была быть получена копия GPL. При этом не указано, где её можно достать и где можно достать исходный код программы.
3) Возможна такая дыра: допустим я, передавая программу, нарушил GPL, я негодяй, меня соответствующим образом наказывают
, но ведь программу то я передал. И получивший её имеет право делать с ней все, что захочет: распространять по какой ему вздумается лицензии, закрыть и . о О (Упаси Боже) продавать.
Эпилог этого поста.
Конечно сейчас мой быдлокод нафиг никому не нужен. Но когда-нибудь я ведь вырасту из хеллоуворлдщиков... я надеюсь.
Я знаю, что GPL в России силы не имеет, но просто интересно. Я готов отдавать сви работы людям, но хочется, чтобы не забывалось, что я автор и хочется быть уверенным что то, что я отдаю свободно, останется свободным.
Уважаемые Гуру, жду ваших разъяснений и надеюсь, что это мое недопонимание, а не дыры в GPL-3. Ну не мог Столлман допустить такие промахи - он мудрый мужик.
Ненавижу юристов >_< . Построили общество, в котором свобода творчества и та должна быть защищена лицензиями.