LINUX.ORG.RU
ФорумTalks

Вопрос по GPL


0

1

Допустим, есть некоторая функция в программе, выпущенная под GPLv3. Я беру и переписываю её в свою программу. Не просто копирую, а меняю стиль наименований переменных под свой проект и т. д. Моя программа тоже выходит под GPLv3. Я указываю, что основывался на наработках того проекта (но не пишу какие конкретно функции взял, в самой функции упоминания об авторах не осталось).

Это нормально?

★★★★★

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

Есть тут всякие разработчики синтезаторов органов

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

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

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

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

И много там кода, насколько он специфический?

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

Просто укажи автора в комментарии к этой функции. Если бы функция была моя, я бы гордился.

CYB3R ★★★★★
()

Это нормально?

Так говоришь, будто GPL-щики какие-то жуткие копирасты.

Copyright 2013 KivApple
with some parts of $PROGRAM_NAME (by $PROGRAM_AUTHOR)
Extraterrestrial ★★★★★
()
Последнее исправление: Extraterrestrial (всего исправлений: 1)

Убирать автора нельзя. ИМХО правильно будет взять эти функции, вынести их в отдельный файл отдельно от своих исходников и оставить исходные копирайт и лицензию.

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

Мне нужно не просто скопировать функции, а внести в них некоторые изменения касательно типов данных, названий переменных и т. д. В общем, интегрировать в свой проект. От исходной функции останется только алгоритм и конкретный порядок действий (и местами имена переменных).

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

KivApple ★★★★★
() автор топика

4) …conspicuously and appropriately publish on each copy an appropriate copyright notice…

5) …convey … under the terms of section 4,… also meet all of these…
5.a) The work must carry prominent notices stating that you modified it, and giving a relevant date.

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

Обсудить с автором надо затем, чтобы он мог и твои наработки отслеживать, и сам, быть может, как-то тебе помог быть в курсе своих (даже если ты зарекаешься от того что будешь что-то менять, и даже если ты готов терпеть необходимость сверяться с его наработками вручную и без уведомления об изменениях). Ведь одна из затей gpl - работать с кодом как с научными теориями, а не кирпичами.

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

jeuta ★★★★
()

Допустим, есть некоторая функция в программе, выпущенная под GPLv3

Моя программа тоже выходит под GPLv3

Условия GPL соблюдены, ни у кого к тебе никаких претензий не будет.

Я указываю, что основывался на наработках того проекта

Молодец что не забыл. На этом твои обязанности исчерпаны.

Это нормально?

Да.

no-dashi ★★★★★
()
Ответ на: комментарий от jeuta

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

Не неси фигню. Для примера, программа A содержит реализацию 5 алгоритмов сортировок, 3 алгоритмов сжатия и 4 алгоритмов шифрования, а ТС взял из того кода функцию быстрого поиcка последовательности байтов в массиве, слегка адаптировав её под свои нужбы (например, заменив uint8 на uint16). В таких случая пометки «взято оттуда-то» вполне достаточно.

no-dashi ★★★★★
()

Чужой GPL код в своей GPL программе ни как дополнительно помечать не надо. Можешь где-нибудь в read-me или в about упомянуть про автора, а можешь и не упоминать.

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

От исходной функции останется только алгоритм и конкретный порядок действий (и местами имена переменных).

Если так, то вообще вопрос, насколько тут действуют права автора исходной функции. Но я бы проявил к нему уважение, указал в комментариях.

Dobriy_i_Prostoy
()
Ответ на: комментарий от no-dashi

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

jeuta ★★★★
()

https://www.gnu.org/licenses/gpl-howto.en.html

If you have copied code from other programs covered by the same license, copy their copyright notices too. Put all the copyright notices together, right near the top of each file.

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

А я говорил про случа ТС'а:

Потому что в этой функции очень удачно реализован нужный мне алгоритм, но мне нужна лишь эта функция, а тащить весь исходник нет смысла.

no-dashi ★★★★★
()
Ответ на: комментарий от KivApple

Мне нужно не просто скопировать функции, а внести в них некоторые изменения касательно типов данных, названий переменных и т. д. В общем, интегрировать в свой проект. От исходной функции останется только алгоритм и конкретный порядок действий (и местами имена переменных).

Можно по-моему и не заморачиваться, но если хочется быть «с чистой совестью», то оставляешь комментарий перед самой функцией, в заголовке файла где она входит пишешь «функция fs_xxx взята оттуда-то и адаптирована для этого проекта» ну и упоминаешь в документации, что файлы такие-то содержат функции оттуда-то

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

Изучаешь исходники - пишешь свою реализацию. Никаких проблем в том что ты быдешь использоваться i в качестве переменной цикла возникнуть не должно.

Jetty ★★★★★
()

Based on <function> from <program> by <author>

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