LINUX.ORG.RU

Как узнать, можно ли использовать код?

 ,


0

2

Предположим, дописываю я что-то в код под GPL. И нужен мне какой-нибудь алгоритм. Нахожу на github.

Как узнать, можно ли его использовать, или будут проблемы? Вот, например, Есть репо под лицензией MIT.

Какие риски использования кода из такого источника в opensource проекте?

★★★★★

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

Имплементации алгоритмов под свободной лицензией (permissive) в общем случае могут быть использованы в вирусных (copyleft) проектах.

Но в данном случае это скомунизженный код, и лицензия репы не соответствует действительности.

Т.ч. только если хочешь подложить свинью проекту в который хочешь контрибютить.

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

Но в данном случае это скомунизженный код, и лицензия репы не соответствует действительности.

А вот как это узнать в общем случае? Хорошо, здесь название слегка настораживает, а называлось бы оно PustOS…

Т.ч. только если хочешь подложить свинью проекту в который хочешь контрибютить.

Вот как не подложить свинью случайно? Как можно узнать, что выложенная библиотека под BSD или GPL действительно принадлежит тем авторам, которые её выложили?

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

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

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

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

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

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

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

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

То есть даже если с nginx всё окончится хорошо и все дистрибутивы Linux не станут запрещёнными к распространению, то потенциально может быть аналогичная проблема в части кода любого ПО с открытыми исходниками? Вплоть до ядра и gcc.

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

то потенциально может быть аналогичная проблема в части кода любого ПО с открытыми исходниками?

Почему только открытыми? Это может быть и проблемой ПО с закрытыми исходниками. Например, программист из конторы X уволился, предварительно скачав исходники некоего проприетарного ПО, устроился в контору Y и потом этот код использовал в проприетарном ПО конторы Y, выдав его за свой код.

А потом кто-то может случайно обнаружить, что в ПО X и ПО Y какие-то подозрительно похожие баги, сравнивает бинарники и в итоге оказывается что была использована общая кодовая база, хотя конторы разные, конкурируют друг с другом и друг-другу исходников официально не передавали.

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

Ну и наверняка были случаи, когда программисты нагло брали GPL код и вставляли его в некое проприетарное ПО, никому об этом факте не сообщая (в т.ч. нанимателю).

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

А потом кто-то может случайно обнаружить, что в ПО X и ПО Y какие-то подозрительно похожие баги, сравнивает бинарники и в итоге оказывается что была использована общая кодовая база, хотя конторы разные, конкурируют друг с другом и друг-другу исходников официально не передавали.

Ну вот для закрытого кода нужны похожие баги. И потом контора Y пересобирает спорный модуль с -O0 (бинарник становится абсолютно непохожим и баги другие) и заявляет, что устранила весь спорный код.

А если нелегальный код попадёт в открытый проект, то никакой автоматической обработкой не отделаешься, придётся делать достаточно трудоёмкий рефакторинг, чтобы убрать все привязки к спорному модулю. Например, разработчики OpenBSD не смогли вычистить GPL из драйвера Broadcom и удалили весь драйвер.

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

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

Я тут копался с компиляцией своей версии chromium. Там есть модуль pdfium, с котором у меня возникли проблемы - нельзя было собрать pdfium без исходников freetype.

Так вот, там есть куски кода из freetype, а именно в https://pdfium.googlesource.com/pdfium/+/refs/heads/master/core/fxge/freetype/fx_freetype.cpp#57 . Используется код из https://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/src/psnames/psmodule.c#n62 .

Копирайты не указаны.

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

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

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

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

Главное свой потом никому не показывай…

То есть OpenSource можно использовать только для игрушек некритичных приложений?

Или как-то можно риски минимизировать? На Роспатенте зарегистрировать, например? Или всё равно могут обвинить в плагиате и запретить использовать?

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

нехорошо нарушать лицензии

Что плохого в нарушении лицензии? Копирайт - форсируемый копирастами и государством способ монополизации информации, способ цензуры. Частная собственность на информацию - абсурд. Копирование - не воровство. «Упущенная прибыль» - отврвтительная лживая концепция.

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

anonymous ()

Как узнать, можно ли использовать код?

Неправильный вопрос.

Использовать можно любой код.

Правильный вопрос:

За копирование какого кода мне грозят санкции от государства, копирастов и копираст-френдли общества?

anonymous ()

Как узнать, можно ли использовать код?

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

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

это был ответ на второй вопрос

И что свидетельствует о том, что OpenSSL распространяют именно те, кто его написали? И что они не заимствовали код из какого-нибудь GPL проекта?

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

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

Так и представил себе перестрелку с ОМОНом, который пришёл провести дознание по статье 146 УК РФ.

monk ★★★★★ ()

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

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

Строго говоря даже на вполне себе твой код Вася может заявить, что это его код, а ты его украл. И доказать что это не так может быть очень проблематично…

Про свой личный код доказать можно. Если есть локальный git, по крайней мере. И даже просто вопросами по коду (почему именно так написано).

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

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

Если есть локальный git, по крайней мере

Я могу сделать там любую дату какая мне взбредет в голову. И ты будешь доказывать, что не скопировал у меня проект который ты сделал в 2014 году, т.к. я могу заявить что он был сделан в 2001 и также приложить твой git, но с перебитыми датами и юзером.

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

Ну и наверняка были случаи, когда программисты нагло брали GPL код и вставляли его в некое проприетарное ПО

А я бы тыкнул пальцем на тех копирастов которые код busybox используют в своих проприетарный прошивках.

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

Что плохого в нарушении лицензии? Копирайт - форсируемый копирастами и государством способ монополизации информации, способ цензуры. Частная собственность на информацию - абсурд. Копирование - не воровство. «Упущенная прибыль» - отврвтительная лживая концепция.

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

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

Ты обязан соблюдать лицензию Автора. Если Автор копирование запрещает, а ты копируеш, значит ты вор.

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

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

Если ты скопировал код лицензия которого запрещает копирование - ты вор.

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

Речь не про дату, а про историю.

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

Приложить сможешь только публичный git. Локальный, со всеми творческими метаниями и неработающими тестами, сможет предоставить только автор (ну или хакер, выкравший данные с рабочего компьютера автора). Но против хакера всегда можно спросить причину какого-нибудь комита. Автор помнит, почему он так делал, а мошенник — нет. Также как в школе/институте легко выяснить, кто у кого списал решение.

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

Скажем, за нарушение GPL судились с теми, кто эти драйвера использовал, а не с теми китайцами, которые их написал, нарушив лицензию.

Это как? Как засудить пользователя за использование GPL кода?

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

Про свой личный код доказать можно. Если есть локальный git, по крайней мере.

И каким боком локальный git какой-то конторы будет считаться доказательством? Время git берет с часов компьютера которые можно изменять… Вот публичные git, файловые сервера, могут считаться доказателиством.

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

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

Пользователя кода. То есть распространителя устройств.

 Upon information and belief, Defendant makes and sells various media devices and hardware (the “Infringing Products”) that contain embedded executable software (the “Firmware”).
Defendant also provides the Firmware itself for download via its website, at
http://www.myhava.com/support.html.

(c) http://torquemag-hhvm.s3.amazonaws.com/uploads/2013/03/SFLC-BusyBox-lawsuit.pdf

А в случае, если в одной программе окажется лицензированный код (который технически невозможно открыть) и GPL, пользователь кода окажется вообще в ситуации, когда ему придётся полностью приостановить деятельность пока код не будет переписан.

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

И каким боком локальный git какой-то конторы будет считаться доказательством? Время git берет с часов компьютера которые можно изменять…

Да при чём тут время? История изменения кода. Если два человека утверждают, что являются авторами текста, но у одного из них есть черновики и рукопись, это будет существенным аргументом в его пользу.

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

распространителя

Ясно, ты противник gpl, умышленно путаешь понятия. «Распространитель» - это не пользователь. «Распространитель» - это посредник. GPL не защищает посредников.

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

«Распространитель» - это не пользователь. «Распространитель» - это посредник. GPL не защищает посредников.

Это тот, кто заплатил за код. И он (а не разработчик) почему-то несёт ответственность, если разработчик напортачил с лицензиями.

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

но у одного из них есть черновики и рукопись,

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

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

Это тот, кто заплатил за код.

Где написано, что «плата» освобождает от (любой) ответственности?

GPL абсолютно перпендикулярно кто кому сколько заплатил. GPL не защищает «билеты какого-то банка», которые даже не принадлежат самим посредникам.

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

но вот художники вроде себе могут заказным письмом отправить копию собственной работы

Программист тоже может себе флэшку с исходником заказным письмом отправить.

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

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

anonymous ()