LINUX.ORG.RU

Частичное использование кода GPL в проприетарном ПО

 


0

3

Здравствуйте, уважаемые форумчане!

Пишу приложение для Android, состоящее из нескольких небольших модулей. Недавно нашёл в сети интересный код (объёмом примерно 500-600 строк), написанный на C и распространяемый по лицензии GPL v3. Я правильно понимаю, если я сейчас перепишу этот код на Java с некоторыми изменениями и внедрю в один из своих модулей, в дальнейшем я обязан буду распространять своё приложение по GPL и, соответственно, раскрыть весь исходный код? Или потребуется раскрытие исходного кода только той части, где непосредственно используется позаимствованная часть?

Прошу извинить, если тема уже была подобная.

Ответ на: комментарий от Zmicier

Так это же ведроид

1) Монетизация в ведроидах строится в основном не на честной покупке программы, а на принципе - бесплатные трояны, ворующие личную информацию, или совальщики рекламы. Иногда сразу и то, и то :)

2) Выпуск открытого ПО на ведроидах действительно сомнительное удовольствие, потому что если ты такой в белом, то твой софт просто берут и меняют иконку и название и появляется куча программ-клонов с принципами из пункта 1.

fornlr ★★★★★ ()
Последнее исправление: fornlr (всего исправлений: 1)
Ответ на: комментарий от linearisation

Творческие способности людей, чем бы они ни были в философском или религиозном смысле, не сводятся к копипасте с последующей переработкой.

А это спорный вопрос. Недавно наткнулся на подкаст, который затрагивает эту тему -> Творчество машин, заставляет задуматься.

Nietzsche ()
Ответ на: комментарий от Zmicier

ТС говорит, что собирается переписать GPL-ный код на другом языке, т. е. по сути изучить алгоритм и написать аналог. Неужели с точки зрения GPL такая работа будет считаться производной?

(Ответ «да» прошу обосновать цитатой из GPL с пояснением.)

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от gag

Так вот все они и есть этот fair use...

Тогда давайте конкретные примеры, вот буквально с номерами строк? Хотя бы один?

Zmicier ★★★★★ ()
Ответ на: комментарий от intelfx

Неужели GPL будет считать такую работу производной?

А при чем здесь «счет» GNU GPL? Она об’ективно производная.

Ответ «да» прошу обосновать цитатой из GPL с пояснением.

Откуда она там возьмется? Зачем в типовом договоре прописывать то, на что он повлиять не в силах?

Zmicier ★★★★★ ()
Последнее исправление: Zmicier (всего исправлений: 2)
Ответ на: комментарий от Mike1991

но с одним из фильтров возникли сложности, а на просторах гитхаба нашлось решение на языке C, но с GPL v3

И как, разобрался как он работает? Тут тоже есть отличие: взять и переписать на java, как есть, и, разобравшись как работает, самому написать на java. В последнем случае, это уже больше похоже на реализацию алгоритма, который пусть и был получен реверс-инженирингом открытого кода.

gag ★★★★★ ()
Ответ на: комментарий от fornlr

твой софт просто берут и меняют иконку и название и появляется куча программ-клонов с принципами из пункта 1.

Отсыпете примеров для коллекции?

Zmicier ★★★★★ ()
Ответ на: комментарий от intelfx

Он собирается цпп на яву переписывать же.
Переписывал бы он бейсик на питоне — претензий было бы меньше.

Goury ★★★★★ ()
Ответ на: комментарий от Goury

В открытом доступе? Так весь смысл же в том, что ОП не намерен этого делать. Возможно, он считает, что он все равно обязан — я встречал такое заблуждение.

Zmicier ★★★★★ ()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от intelfx

В общем случае ТС решил просто портировать код, т.е. как можно ближе к тексту. А вот если бы он разобравшись, написал своё - тогда, мне кажется, другое дело. Ведь тогда это просто очередная реализация алгоритма, а не производная работа / заимствование кода, что, к сожалению, легко перепутать. Разве что этот алгоритм уникален и нигде не описан, а код - его единственная реализация. Тогда только плагином, как предлагали выше (и только как отдельная загрузка).

gag ★★★★★ ()
Ответ на: комментарий от gag

Разве что этот алгоритм уникален и нигде не описан, а код - его единственная реализация.

То что? Теоретически избавиться от авторского труда должно быть возможно всегда.

Тогда только плагином, как предлагали выше (и только как отдельная загрузка).

А вот здесь поподробнее, пожалуйста. По-моему, кто-то из нас чего-то не понял.

Zmicier ★★★★★ ()
Ответ на: комментарий от Zmicier

Отсыпете примеров для коллекции?

Не смогу, но даже где-то на статью натыкался.

Deadbeef вот закрытый под ведроиды

Помню есть даже несколько примеров, что реально авторы вначале имели открытый код, а потом с новых версий уже из-за этого закрывали. Может кто другой подскажет - примеры нашумевшие.

fornlr ★★★★★ ()
Ответ на: комментарий от Zmicier

А при чем здесь «счет» GNU GPL? Она об’ективно производная.

Допустим, тот GPL-код написан по алгоритму, но скромно умолчали по какому, ведь «лицензия» алгоритма не такая копилефтная как GPL. Ведь не зная о том факте, что человек использовал именно код вместо алгоритма как документацию, чтобы написать свою реализацию, невозможно судить о производности новой реализации. Обе будут реализациями алгоритма и могут казаться производными друг от друга. Т.е. даже умолчав об алгоритме автор GPL, если не он сам этот алгоритм выдумал, всё равно не сможет ничего доказать. А только это в конечном итоге и в счёт.

gag ★★★★★ ()
Ответ на: комментарий от fornlr

Deadbeef вот закрытый под ведроиды

В смысле закрылся или несвободный?

Может кто другой подскажет - примеры нашумевшие.

Был бы рад.

Zmicier ★★★★★ ()
Ответ на: комментарий от gag

В общем случае ТС решил просто портировать код, т.е. как можно ближе к тексту.

Да, совершенно верно, речь идёт именно о порте (с Си (не Си++) на Java). Ничего нового я вносить не собирался (кроме разьве что пары «косметических» изменений).

В целом ответ на свой вопрос я получил: при таком подходе будет нарушение GPL.

Спасибо всем, кто откликнулся и уделил время.

Mike1991 ()
Ответ на: комментарий от Zmicier

Разве что этот алгоритм уникален и нигде не описан, а код - его единственная реализация.

То что? Теоретически избавиться от авторского труда должно быть возможно всегда.

А тут не понял я.

Тогда только плагином, как предлагали выше (и только как отдельная загрузка).

А вот здесь поподробнее, пожалуйста. По-моему, кто-то из нас чего-то не понял.

Открытый плагин, использующий GPL-код. Вызывается закрытым приложением в отдельном процессе: https://www.gnu.org/licenses/gpl-faq.en.html#GPLPluginsInNF Или, как там дальше написано, можно даже добавить исключение для плагина, что можно напрямую линковать из закрытого кода.

Разумеется, распространяться плагин должен отдельно от закрытого кода.

gag ★★★★★ ()
Ответ на: комментарий от Zmicier

В смысле закрылся или несвободный?

На десктопах открытый, на ведроиде изначально закрытый с побольше части с использованием того же открытого кода с десктопа.

fornlr ★★★★★ ()
Ответ на: комментарий от Mike1991

Спасибо всем, кто откликнулся и уделил время.

Всегда пожалуйста.

Но обратите внимание, что с другой стороны все обычно ожидают, что и вы на их встречные вопросы тоже ответите.

Zmicier ★★★★★ ()
Ответ на: комментарий от Mike1991

Так что же за фильтр такой хитрый (всё равно по тому коду на гитхабе его пользователей не отследить)? И уговорили на открытие кода в будущем?

gag ★★★★★ ()
Ответ на: комментарий от fornlr

То есть несвободный. И с рекламой, отключаемой за плату, как пишут. Ага.

Zmicier ★★★★★ ()
Ответ на: комментарий от gag

А тут не понял я.

Да я собственно вопрос задал. Если алгоритм нигде не описан, то что?

плагин
в отдельном процессе: https://www.gnu.org/licenses/gpl-faq.en.html#GPLPluginsInNF Или, как там дальше написано

А! «Плагин» — это в формулировке вопроса так из ЧаВО так. В смысле там вопрос просто про плагин, это не термин для способа взаимодействия.

«Сборником» [0], вы хотели сказать. Но что-то я не уверен, что под «Андроидом» это удобно.

https://www.gnu.org/licenses/gpl-faq.en.html#MereAggregation

можно даже добавить исключение для плагина, что можно напрямую линковать из закрытого кода

Ха! Так это проще сразу попросить выдать в частном порядке лицензию без авторского лева.

Кстати, ОП, спрашивал, что ему делать. Вот третий вариант — написать автору фильтра и пропросить продать исключение из GNU GPL, даже если он не рекламирует такой возможности, попытка, как известно, — не пытка.

Zmicier ★★★★★ ()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от gag

Так что же за фильтр такой хитрый (всё равно по тому коду на гитхабе его пользователей не отследить)?

Ok, так и быть. Я немного слукавил, речь идёт об обработке звука, пишу что-то навроде звукового редактора (хотя там и небольшая обработка изображений тоже есть). А сложности возникли с алгоритмом реверберации. Найденное решение: https://github.com/swh/lv2/tree/master/gverb. На сколько я понял, это тоже какой-то порт с какого-то другого проекта.

Mike1991 ()
Ответ на: комментарий от Mike1991

Я немного слукавил, речь идёт об обработке звука

И лицензия немного другая — GNU GPLv2+, а не v3.

gverb

Безотносительно всего остального обращаю внимание, что из Audacity его выкинули, заменив на другой.

Zmicier ★★★★★ ()
Ответ на: комментарий от Zmicier

И лицензия немного другая — GNU GPLv2+, а не v3.

В README написано, что v3: https://github.com/swh/lv2/blob/master/README

Безотносительно всего остального обращаю внимание, что из Audacity его выкинули, заменив на другой.

Да я в курсе. Впрочем, как по мне, так неплохой алгоритм и по скорости (даже после порта на Java), и по качеству в общем-то тоже (конечно, с маленькими комнатами он не очень хорошо справляется, но это беда всех алгоритмических ревербераторов).

Mike1991 ()
Ответ на: комментарий от Zmicier

Да я собственно вопрос задал. Если алгоритм нигде не описан, то что?

Если человек придумал алгоритм, но вместо описания выкладывает только его GPL-реализацию, то это выглядит как патент на алгоритм (к которым вроде как очень негативно относятся любители свободы), пусть и копилефт патент. Т.к. известно, что любая его реализация могла быть только производной от изначального GPL-кода. Если бы его открыли под LGPL, это был бы хороший компромисс между тратой (неоплачиваемого) времени на написание документации и накладыванием слишком копилефтного GPL-«патента» на алгоритм.

что под «Андроидом» это удобно.

Надо глянуть, как там под андроидом с плагинами принято.

Вот третий вариант - написать автору фильтра и пропросить продать исключение из GNU GPL

Если ОП собирается зарабатывать, то это резонно. Проблема только в том, что если тот код уже изменялся ещё кем-то, то это будет непросто. Ещё один аргумент в пользу LGPL. Да и код лежит у некого Стива, а написали его 17 лет назад в Финляндии(?). Попробуй тут того автора разыскать.

gag ★★★★★ ()
Ответ на: комментарий от Mike1991

Ясно.

А сложности возникли с алгоритмом реверберации. Найденное решение: https://github.com/swh/lv2/tree/master/gverb.

Его тут интересно критикуют: http://wiki.audacityteam.org/wiki/GVerb#Criticisms

Выходит, эти несколько строчек действительно такие особенные. Жаль, что нет ссылок к литературе.

gag ★★★★★ ()

Я правильно понимаю, если я сейчас перепишу этот код на Java с некоторыми изменениями

Не усматриваю нарушения GPL, никто и не узнает. Делай проект спокойно.

</thread>

I-Love-Microsoft ★★★★★ ()

Переписывание кода на другом языке (и попутное его изменение) разве как-то рассматривается лицензией GPL?

unt1tled ★★★★ ()
Ответ на: комментарий от gag

Если человек придумал алгоритм, но вместо описания выкладывает только его GPL-реализацию, то это выглядит как патент на алгоритм

Ни в коем случае!

к которым вроде как очень негативно относятся любители свободы

По-моему к ним все негативно относятся. Только патентные тролли нежно любят.

пусть и копилефт патент

А это вообще какой-то нонсенс.

любая его реализация могла быть только производной от изначального GPL-кода

Почему? Во-первых, куда делась возможность независимой реализации? А во-вторых, в теории труд автора должно быть можно отделить от труда изобретателя.

Ещё один аргумент в пользу LGPL.

Не понимаю, о какой «пользе» вы говорите.

Попробуй тут того автора разыскать.

А что заставляет вас полагать, что адрес уже не рабочий? В 12-м году еще был.

Zmicier ★★★★★ ()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

А также unt1tled

Портирование кода как есть без сохранения лицензии - это официально нарушение GPL.

0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The «Program», below, refers to any such program or work, and a «work based on the Program» means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term «modification».)

Но в первой версии такого не было, кажись.

gag ★★★★★ ()
Ответ на: комментарий от gag

translated into another language

Опачки! Действительно, во второй Столман это зачем-то явно прописал, прошу прощения.

Zmicier ★★★★★ ()
Ответ на: комментарий от gag

Ничеси. Как это, интересно, доказать, если 9 программистов из 10, выполняя одну задачу, напишут на 90% одинаковый код.

unt1tled ★★★★ ()
Ответ на: комментарий от Zmicier

Чето мне последнее время так лень спорить, выдохся я... :) Я в выделенном тексте явно вижу от чего хотел защититься автор лицензии - оптическая иллюзия видимо, и ручное переписывание к этому не применить. Прошу не отвечать мне - мне реально пофиг, я предпочитаю явный LGPL код без замутов и неоднозначностей...

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от unt1tled

как доказать

Судебная экспертиза на плагиат — целая наука. Я в ней совершенно не шарю, но люди рекомендуют для беглого ознакомления книжечку:

Zeidman, Bob. The Software IP Detective’s Handbook: Measurement, Comparison, and Infringement Detection — Prentice Hall, 2011

Обязан предупредить, что говоря о свободных лицензиях автор допускает пару весьма грубых ошибок. А также имеет стойкое предубеждение против свободных программ, в чем не стесняется прямо признаваться. И, разумеется, не чурается использовать пропагандистскую терминологию. И вообще не прочь порассуждать на темы, не имеющие отношения собственно к криминалистической экспертизе (вы там даже про «ЮКОС» и Ходорковского пассаж найдете :-). Но, я полагаю, у вас достаточно критического восприятия, чтоб все это не мешало извлечь из книги рациональное зерно.

Zmicier ★★★★★ ()
Ответ на: комментарий от Mike1991

Какой?

Улавливаете ли вы, что в вашем случае GNU GPL вовсе не обяжет вас публиковать исходные тексты вашей программы в открытом доступе?

Перейду ли я на GNU GPL?

Ну и это тоже. :-)

Zmicier ★★★★★ ()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от Zmicier

Улавливаете ли вы, что в вашем случае GNU GPL не обяжет вас публиковать исходные тексты вашей программы в открытом доступе?

На сколько я понял из представленной в рунете информации по всем этим лицензиям, могут обязать пользователи, которые захотят посмотреть исходные коды (у них ведь будет на это право, потребовать от меня исходный код?). Поправьте, если я ошибаюсь.

Ну и это тоже. :-)

Пока нет. В будущем - возможно (когда программирование станет основным средством заработка, а денег от него будет хватать не только на еду (что, вполне возможно, может означать «никогда»), либо если будет мало продаж, отсутствие интереса у пользователей, можно будет перевести проект на GPL, открыть исходники, возможно кто-то заинтересуется, сделает хороший форк...).

Mike1991 ()
Ответ на: комментарий от Mike1991

могут обязать пользователи

Вас опубликовать в открытом доступе? Нет.

у них ведь будет на это право, потребовать от меня исходный код?

В зависимости от избранного вами способа реализации их права на изменение программы — либо у всякого располагающего сборкой такое право будет, либо ваши покупатели должны получать к ним доступ безо всяких требований.

По очевидным причинам, первым — распространением по требованию — почти никто не пользуется.

А потом, почему вы так беспокоитесь именно об исходниках? Стыдитесь написанного? ;-)

Zmicier ★★★★★ ()
Ответ на: комментарий от Mike1991

если будет мало продаж

Я, честно говоря, так и не уловил, почему вы уверены, что продажа свободной программы должна идти фатально хуже несвободной. То есть гипотеза-то разумная, но уверенность непонятна. Вы знаете какие-то исследования на сей счет? Мне было бы крайне интересно полистать.

Zmicier ★★★★★ ()
Последнее исправление: Zmicier (всего исправлений: 1)

Разумеется. Переписывание - создание производного продукта, это равно как и композиция с друним кодом чётко прописаны в лицензии.

anonymous ()

перепишу этот код на Java

Это будет новый код реализующий тот же алгоритм. Не слушай фанатиков.

anonymous ()

если я сейчас перепишу этот код на Java ... и внедрю в один из своих модулей ... я обязан буду распространять своё приложение по GPL

Если это будет не прямая копипаста (что теоретически возможно при переносе на жабу), а ты будешь переписывать, заглядывая в оригинал, то нет. Это новый код.

invy ★★★★★ ()
Последнее исправление: invy (всего исправлений: 2)
Ответ на: комментарий от Zmicier

А потом, почему вы так беспокоитесь именно об исходниках? Стыдитесь написанного? ;-)

И это тоже) Но в целом, как-то не очень хочется грубо говоря отдавать в общественное достояние то, на что тратил на протяжении года практически всё свободное время. Если бы это была просто какая-то небольшая полезная библиотека или утилита, написанная максимум за месяц (в свободное от основной работы время), на которой я и не стремился бы зарабатывать деньги, то конечно, я бы выполне выбрал для неё даже LGPL.

Я, честно говоря, так и не уловил, почему вы уверены, что продажа свободной программы должна идти фатально хуже несвободной.

Если GPL так хороша и продажа приложений, распространяющихся по её условиям, не хуже, чем продажа проприетарного ПО, почему скажем многие крупные производители ПО (будь то Adobe или Autodesk, например) не перешли на неё?

Mike1991 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.