Только несколько часов тут на форуме была тема про "использование кода GPL в коммерческих целях" и куда-то подевалась. Я накатал туда целое сообщение, но оно не отправилось и весь gamedev у меня вдруг перестал работать, а тема пропала. Решил создать свою тему, чтобы отправить свои вопросы, которые я, к счастью, скопировал перед отправкой.
Где находится граница, когда считается, что я использовал или не использовал код GPL в своей программе? В каких случаях надо раскрывать исходный код и насколько?
1) Я беру готовую GPL-программу, переписываю её до неузнаваемости, в том числе и неузнаваемости исходного кода. То есть переписываю в своём стиле, всё по-своему (даже на свои велосипедные классы String и Array). Для пользователя программа будет тоже не похожа на исходную. Можно ли не открывать исходный код?
2) Я пишу 1 МБ кода сам и копирую из программы с лицензией GPL одну небольшую функцию. Что теперь, раскрывать весь исходный код?
3) Допустим, я напишу компилятор суперсложного непонятного языка, сложнее ассемблера. Я буду конвертировать исходный код программы C++ на этот язык и её скомпилирую. То есть я должен буду распространить код на своём непонятном языке и не должен буду распространять код C++?
4) Если я скомпилирую программу и раскрою ассемблерный листинг, сгенерированный компилятором? Это же тоже типа исходный код.
5) Если я напишу ОС, используя ядро Linux, но абсолютно другую, не основываясь ни на каких существующих дистрибутивах, то я должен буду раскрыть её код? Ядро Linux и так открыто, его менять не буду.
6) Допустим я напишу программу, использующую код, защищённый лицензией GPL. Допустим, я не раскрою её исходный код, и с меня потребуют это сделать (кстати, как это происходит?). Могу ли я в таком случае переписать заимствованные участки кода на свои, и не открывать код?
7) Если я подсмотрю какой-то редкий алгоритм в программе, защищённой GPL, и напишу похожий у себя?
А кто удалил ту тему??
Если это модератор - то можно ли огласить причину.
ЗЫ
Я тоже набил сообщение и не успел
> 7) Если я подсмотрю какой-то редкий алгоритм в программе, защищённой GPL, и
> напишу похожий у себя?
Алгоритмы патентуются - тут дело ещё хуже чем с ГПЛ
ЗЫ
gammaker
> сложнее ассемблера
ассемблер не сложный :))) я бы сказал что он сааамый простой - проще низкого уровня быть не может ;)
gammaker
> Ядро Linux и так открыто, его менять не буду
не получится - иначе это будет линукс очередной
>Алгоритмы патентуются - тут дело ещё хуже чем с ГПЛ
Запатентовать алгоритм, я думаю, сложнее, чем объявить код как защищённый такой лицензией.
>ассемблер не сложный :))) я бы сказал что он сааамый простой - проще низкого уровня быть не может ;)
Язык-то простой, но очень низкоуровневый. Приходится в голове держать всякие регистры, а ведь и без этого на высокоуровневом языке можно написать запутанный код.
>не получится - иначе это будет линукс очередной
Что значит не получится? По лицензии или из-за того, что на основе ядра Линукс нельзя написать ничего другого? А то, я так понимаю, ядро это что-то такое маленькое, что позволяет взаимодействовать с устройствами и запускать программы, а на его основе уже пишутся всякие дистрибутивы. Надо будет почитать поподробнее, что такое ядро Linux.
> 1) Я беру готовую GPL-программу, переписываю её до неузнаваемости, в том числе и неузнаваемости исходного кода. То есть переписываю в своём стиле, всё по-своему (даже на свои велосипедные классы String и Array). Для пользователя программа будет тоже не похожа на исходную. Можно ли не открывать исходный код?
Если переписывать программу полностью, то нафига тогда нужен GPL код? Это будет новая программа с новым кодом.
> 6) Допустим я напишу программу, использующую код, защищённый лицензией GPL. Допустим, я не раскрою её исходный код, и с меня потребуют это сделать (кстати, как это происходит?). Могу ли я в таком случае переписать заимствованные участки кода на свои, и не открывать код?
Прецеденты на эту тему в истории были. Помниться, даже Microsoft пришлось код переписывать, когда их поймали на краже GPL кода.
gammaker
Исходя из "духа" GPL примерно так:
1) Открывать
2) Открывать
3) если исходный код был на С++ под gpl и ты внес в него изменения на С++ до перевода на свой язык, то должен распостранить измененный код на С++. Если изменения вносил только в код на своем языке, то достаточно распостранить код на своем языке.
4) ты вносил изменения в код, защищенный gpl? Тогда распострани эти изменения.
5) открывать код
6) да, если ты как-то сможешь "отозвать" версии исползьующие gpl код и возместишь убытки (если конечно эти убытки с тебя потребуют).
7) если только идея взята, а реализация своя, то не открывай. Если реализация из gpl кода, то раскрывай.
И да, GPL это вирус.
>А кто удалил ту тему??
>Если это модератор - то можно ли огласить причину.
Может быть, тот, кто её создал? Хотел отписаться, а по неопытности на gamedev'е удалил.
>Если переписывать программу полностью, то нафига тогда нужен GPL код? Это будет новая программа с новым кодом.
Я имел в виду, что я буду не смотреть в чужой код, а его копировать себе и переписывать на эквивалентный мой код, который по виду не будет похож на оригинал.
>3) если исходный код был на С++ под gpl и ты внес в него изменения на С++ до перевода на свой язык, то должен распостранить измененный код на С++. Если изменения вносил только в код на своем языке, то достаточно распостранить код на своем языке.
А кто узнает, куда я вносил изменения? Результат-то в обоих случаях будет один и тот же: одинаковый код на новом языке.
>4) ты вносил изменения в код, защищенный gpl? Тогда распострани эти изменения.
То же, что и выше. Может быть, я дизассемблировал exe'шник и переделывал ассемблерный код. Откуда они узнают, что я вносил изменения на C++?
>5) открывать код
Если я напишу ОС, используя ядро Linux, но абсолютно другую, не основываясь ни на каких существующих дистрибутивах, то я должен буду раскрыть её код? Ядро Linux и так открыто, его менять не буду.
То есть, код находится в отдельной библиотеке (или как там Linux устроен), а я буду использовать его из отдельной программы, не трогая исходный код, причём ядро можно будет обновлять из внешнего источника. И это я должен тоже открывать?
А если я тогда в каком-нибудь открытом Word'е на GPL напишу документ и зашифрую его, то я тоже по идее должен его открыть? Где разница между исходным кодом и данными?
>6) да, если ты как-то сможешь "отозвать" версии исползьующие gpl код и возместишь убытки (если конечно эти убытки с тебя потребуют).
Какая разница, крутится ли в исполняемом файле написанный мной код или кем-то другим? Зачем отзывать версии и заменять их исправленными, если с точки зрения пользователя они абсолютно одинаковы?
>7) если только идея взята, а реализация своя, то не открывай. Если реализация из gpl кода, то раскрывай.
Если реализация из GPL кода менялась много раз и от неё ничего не осталось, то это считается моей реализацией? Где грань между моей изменённой реализацией и чужой?
Кто вообще занимается этим, и откуда он может появиться? Например, если я продаю свою программу с кодом из GPL (о нём никто не знает), то они могут начать расследование, использую ли я этот код? Кому это надо, ведь я никому не мешаю этим?
Дурацкая, конечно лицензия это.
gammaker
> Дурацкая, конечно лицензия это.
+1 - собственно о чем я и писал в предыдущем топике
gammaker
> Может быть, тот, кто её создал?
да я уже выяснил - это действительно был ТС
gammaker
> Кто вообще занимается этим, и откуда он может появиться?
100 пудов гмен из халфлайфа :)))))) - теперь я знаю что у него в чемоданчике - всякие копилефты
1) можно не открывать
2) придётся открывать, но возможно не весь
3) можно не открывать
4) нет, это не исходный код
5) можно не открывать
6) можешь переписать и будет всё хорошо
7) похожий - можно
для Linux'a есть программы с закрытыми исходниками и никто их не заставляет открывать исходники
в России понятия GPL не существует.
все программы (и Linux тоже) автоматически становятся пиратскими.
любое использование таких программ - преступление,
но всем похрен :D
возможно инфа устарела (должны были принять закон разрешающий использование GPL, но пока вроде не приняли)
Суть GPL в том, что если в твоем коде используется GPL-код - твой код заражается и тоже становится GPL.
- (уверенность) Финт: нет необходимости сразу же моментально открывать свой зараженный код. Если не открыл и никто не просил - тебя не засудят. Если кто-то попросил - нужно открывать.
- (неуверенность) Финт, который мешает первому финту. С бинарниками твоей программы должен лежать файл с описанием лицензии GPL, и должно быть упомянание, что в программе использовался GPL-код. Так люди должны узнавать, что код GPL'ный и они имеют право получить исходники.
Та грань, на которой твой код (скопированный "похожий" на GPL-код) превращается в GPL-код, очень размыта. По сути строка
int i = 0;
есть во многих как GPL-проектах, так и закрытых. Слышал слух, что твой "подозреваемый" код должен быть похож на оригинал на сколько-то там процентов, что бы можно было судиться.
Но о таких судебных случаях не слышал. Обычно если контору поймали на использовании GPL-кода, то поймавший просит открыть исходники, и контора соглашается.
По этому:
1) хз
2) открывать
3) если твой компилятор не использует внутри себя GPL-код - то сконвертированная GPL-программа есть производный продукт, на который лицензия не распространяется. Не нужно открывать ни код компиятора, ни код результата конвертации.
4) хз. Тут мутно. По факту твой код становится GPL. Если твой код на c++ - должен показать его в виде c++. Если он на асме - должен открыть в асме. Т.е. ты должен открыть код своей работы. хз.
5) если пишешь файловую систему, в которой используется код GPL - должен предоставить код модуля файловой системы. Если ты написал (идеальный случай) вообще всё сам, но в составе оси используется никсовая консольная программа (которую ты не переписывал), которая позволяет твоей оси переводить музыку из mp3 в wav - то это производный результат.
6) хз
7) относится к вопросу о грани "похожести".
>6) можешь переписать и будет всё хорошо
Я уж начал бояться этой лицензии. Выходит, что она не такая уж страшная. Хотя мнения разделились.
>3) можно не открывать
>3) если твой компилятор не использует внутри себя GPL-код - то сконвертированная GPL-программа есть производный продукт, на который лицензия не распространяется. Не нужно открывать ни код компиятора, ни код результата конвертации.
То есть, GPL можно обойти? И код C++ я не должен буду открывать? Ведь программу-то я буду писать на C++, потом вместо прямой компиляции я буду конвертировать его в свой язык своим конвертером и компилировать своим компилятором? Такое в самом деле возможно? Из обсуждения в начале темы мне GPL показалась защищенной "стеной", которую никак не обойти, а теперь оказывается, что в ней есть "дыры"?
>4) хз. Тут мутно. По факту твой код становится GPL. Если твой код на c++ - должен показать его в виде c++. Если он на асме - должен открыть в асме. Т.е. ты должен открыть код своей работы. хз.
А кто знает, может я его изначально на ассемблере написал?
>5) если пишешь файловую систему, в которой используется код GPL - должен предоставить код модуля файловой системы. Если ты написал (идеальный случай) вообще всё сам, но в составе оси используется никсовая консольная программа (которую ты не переписывал), которая позволяет твоей оси переводить музыку из mp3 в wav - то это производный результат.
Не понял, а по моему случаю что? Я использую уже скомпилированное ядро Linux, его не меняю. Пишу GUI и остальное, чего нет в этом ядре сам. Получается, я ничего не должен открывать, так как ядро Linux и без меня открыто, а моя программа сама не использует код GPL?
Ещё вопрос:
Если я изменю GPL-программу так, что с виду для пользователя это будет та же самая программа, но её исходный код будет переписан так, что ничего общего у этих программ кроме самого алгоритма не будет, то я должен открыть код? Программа будет поддерживать те же самые функции, что и оригинал.
fsmoke
> Алгоритмы патентуются - тут дело ещё хуже чем с ГПЛ
Как можно запатентовать алгоритм?
"5. Предоставляемая настоящим Законом правовая охрана не распространяется на идеи и принципы, лежащие в основе программы для ЭВМ или базы данных или какого-либо их элемента, в том числе на идеи и принципы организации интерфейса и << алгоритма>> ".
gammaker
> То есть, GPL можно обойти?
Вообще нет. Наверное. Сложный вопрос.
Нужно различать код и результат работы кода. GPL заражает код. Вот понравилась такая фраза:
"Если в адресном пространстве твоей проги появляется GPL-ный код, то ты обязан свою прогу лицензировать под GPL-ем" rsdn
Если у тебя есть чужая программа, которая что-то делает, и тебе нужен результат этой работы, то ты можешь вызывать из своей программы эту чужую и затем забрать у нее результат работы. Нет заражения, к коду ты не прикасался.
Если ты переделываешь GPL-код в код на своем языке - коснулся кода - заражение.
Примерно так.
правка: и не спрашивай, что происходит с лицензией винды, когда в ней запускают GPL-программу. От этого вселенная может свернуться в точку.
Вопрос разрешенности различных махинаций с интерпретацией лицензии зависит от самой интерпретации и от того, что ты имеешь под этим ввиду. Тут наверное нужно быть юристом, что бы все было точно.
Ну и уже говорили, что на территории РФ свои какие-то неувязки с этими лицензиями. Так что если вопрос касается маленьких денег - все забивают. Если деньги большие - к юристу, это их работа.
И еще тут есть инфа на понятном языке: http://habrahabr.ru/blogs/patent/131397/
зы: вот в голову пришла более упрощенная формулировка твоей лазейки:
если ты WinRar'ом запаковываешь текстовый файл с GPL-кодом, то ни WinRar, ни архив не становятся GPL. Исходный код в архиве - да, он GPL.
>правка: и не спрашивай, что происходит с лицензией винды, когда в ней запускают GPL-программу. От этого вселенная может свернуться в точку.
Ты меня заинтересовал. Расскажи. Всё равно коллапс Вселенной рано или поздно произойдёт. А если и не он, то Большой Разрыв. Вряд ли наш разговор это ускорит.
Из этой ссылки я понял, что GPL не доставит мне никаких проблем, так как я очень люблю переписывать весь код под себя, изменяя его до неузнаваемости. От старого кода останется не больше 1% сходства. Даже если мой исходный код будут смотреть (что они не должны делать, так как код закрыт), то не увидят сходства, а в машинном коде тем более. Я как переделаю всё на свои строки и массивы, сразу всё изменится. Ассемблерный код станет неузнаваемым, потому что мои строки не вызывают ни одной функции CRT и используют некоторые хитрости по управлению памяти. Этот код подставляемый, поэтому он заменит практически весь машинный код, если в нём более или менее активно используются строки.
>все программы (и Linux тоже) автоматически становятся пиратскими.
>любое использование таких программ - преступление,
Это ещё почему? Никто же не страдает от использования этих программ. На работах у себя некоторые ставят Linux, чтобы не платить за Windows и не бояться проверок.
Кстати, если поставить Windows 8 Dev. Prev. на работе, проверяющие могут придраться?
gammaker
> Это ещё почему? Никто же не страдает от использования этих программ.
суть в том, что если будет суд, то лицензия GPL для суда будет простой бумажкой ничего не значащей.
то есть, Linux на компах есть, а лицензии - нет (просто нет в природе)
но так просто к этому не придерутся
а вот если есть повод (хоть малейший) то с линуксом и всем свободным софтом могут быть проблемы
> Кстати, если поставить Windows 8 Dev. Prev. на работе,
> проверяющие могут придраться?
когда ставишь должна выводиться лицензия - её нужно читать :)
там должно быть ясно написано, что можно, а что нельзя
Тема в архиве.