?

Log in

No account? Create an account

Previous Entry | Next Entry

BSD License Fears

Вопрос в треде Какая открытая лицензия нынче в моде? у nolar.

Но тут интересный момент. Кто-то может включить твой код в закрытый проект, и тебя не упомянуть. И поди ты узнай что они лицензию нарушили. Как решаются вот такие случаи? То есть я понимаю что и в случае GPL они решаются (или не решаются) точно так же. Просто интересно.


Мой ответ не влез в лимит на размер коммента, так что заодно и сделаю блог-запись из него:

Из первых рук: мои проекты берут "потому что они BSD, и можно взять", а уже потом приходят и просят их расширить, дополнить, подпилить, пофиксить, просаппортить. То есть, выбирают по критерию бесплатности и BSD'вости, а потом несут деньги по собственной инициативе. На этом можно начинать бизнес, или можно было начинать бизнес, это уже не важно. Главное, что BSD не является препятствием к приходу бабла, даже если ты напрямую бизнесом не занимаешься.

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

Моей тётушке её мама говорила, неодобрительно смотря как она прихорашивается перед свиданием:
— Встречают по одёжке, а провожают по уму.
— Мам, ну а если никто не встретит, кто провожать-то пойдёт?

Заменяем "одёжку" на "лицензию" и продолжаем вкуривать.

Для того, чтобы разговаривать о попадании твоего кода в закрытый продукт, надо заняться умножением вероятностей:
1. Вероятность того, что твой код кому-то нафиг сдался. Часто небольшая. У меня примерно 10 релизнутых опен-сорсных проектов (тех, в которые я вложил больше месяца труда, и посчитал интересными достаточно чтобы зарелизить в опен-сорс), из них только три получали фидбек в плане того, что они существенному количеству людей нужны. Статистика с остальных — это пыль, ошибка измерения.
2. Вероятность того, что твоему коду нет альтернатив с другими лицензиями, и что, если ты выкинешь какой-то финт ушами, они не заменят твой код на какой-то более бесплатный или с более сговорчивым автором. Так выкинули GIF из веба, например, потому что правообладатель взбрыкнулся.
3. Вероятность того, что кто-то решит использовать твой код в продукте, который приносит ему деньги. Ведь если код не приносит владельцу денег, то смысла думать об упущенной прибыли от того, что он "сможет" или "не сможет" включить твой код туда, нет. Все равно ты на этом не выиграешь материально.
4. Вероятность того, что зарабатывающий на продукте решит включить твой код и не написать об этом. Вероятность существует, она ненулевая, но часто "случайно-так-получилось-щаз-исправим". То есть, скорее всего они сами не подумали, что весь код, который они втащили в свой проект, нужно вписывать в свою документацию на продукт или иным способом удовлетворять требованиям лицензии. Я думаю, рано или поздно такие ситуации исправляются, особенно для тех проектов, которые получают или в какой-то момент начинают получать с этого какие-то нетривиальные бабки. В Cisco иногда происходила ревизия используемых в коде лицензий, о каком-то коде вспоминали только через несколько месяцев после того, как код втащили в репозитарий. Но вспоминали.


Личный пример. В начале 2007-го мне кто-то прислал видео с тизером "The Venice Project", на котором усмотрел мой копирайт!



Естественно, меня это заинтересовало, потому что к видео я отношения никакого не имел, и меня, конечно, никто не спрашивал, можно ли использовать моё имя в видео. Через какое-то время TechCrunch дал обьяснение феномену появления этого видео, указав что "The Venice Project" — это рабочее название, данное сервису Joost его основателями, Niklas Zennstrom и Janus Friis, которые известны тем, что они ранее основали Skype и продали его eBay'ю за два с половиной миллиарда долларов.

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

Решив разобраться в произошедшем, я в конце мая послал им email с просьбой обьяснить ситуацию. В течение нескольких дней ответили их адвокаты, сказали что "вау, у нас тут прокол такой, мы не соблюдаем условия лицензий того софта, который мы у себя использовали". И попросили таймаут. Через неделю переписки со мной и каких-то внутренних согласований они сделали страницу http://opensource.joost.com/, на которой описали вообще все лицензии и все продукты, которые они использовали в составе своего сервиса, примерно так (один из разделов):



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


Короче, произведение вероятностей говорит за то, что если у тебя нет каких-то религиозных предпочтений, лучше использовать BSD, ничего страшного не случится.


Update: Мой BSD-копирайт также появился в iPhone, iTouch, iPod'ах: http://lionet.livejournal.com/43412.html

Tags:

Comments

( 20 comments — Leave a comment )
msh
Apr. 19th, 2009 10:51 pm (UTC)
Да, опыт общения с корпоративными IP-лоерами у меня именно такой - "GPL?" "Нет!"

Даже несмотря на то, что часть проекта - opensource, сделать все зависимые от GPL части тоже GPL - никаких проблем, все равно, отказать!

То есть, до вопроса насколько нам нужен этот код просто и дело не доходит.
lionet
Apr. 19th, 2009 11:04 pm (UTC)
Ага. Опять же, скопирую свой же ответ в ноларовском треде:

Как относятся корпоративщики к заимствованию кода:

1. Если это GPL — то в жопу его сразу. Даже не вариант, за деньги-не-за-деньги, просто в жопу этот код. Даже не подумают обратиться к автору.
2. Если это BSD — возьмут без вопросов, если этот код нужен.

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

Во втором случае твой код может попасть в какие-то коммерческие разработки, и тогда об этом будут писать в сопроводительной документации (как положено по лицензии).
nealar
Apr. 20th, 2009 06:42 am (UTC)
Спасибо! Это - первый встреченный мной текст "доступно о лицензиях", не являющийся пропагандой.
lionet
Apr. 20th, 2009 07:09 am (UTC)
Спасибо, но если бы была задача написать "доступно о лицензиях", я бы, конечно, написал совсем иной степени проработанности пост... А за эту лажу в таком контексте мне как-то неловко ;)
nealar
Apr. 20th, 2009 08:49 am (UTC)
Помоему, нормально. Но тема LGPL нераскрыта.
(Deleted comment)
lionet
Apr. 20th, 2009 09:23 am (UTC)
Я не люблю LGPL. Это отступление от идеалов GPL, "поддавки" такие.

Да и какие задачи оно решает? Чтобы код юзали, но не меняли без отсылки правок назад.

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

Вместе с тем, я периодически получаю патчи на мой BSD код, демонстрирующие, что отсутствие LGPL'ности не является помехой к посылке кода автору. Да, все присылаемые патчи получаются из разряда "у меня на такой-то платформе или при таком-то компиляторе вот эта конструкция не компилируется" (у MSVC ограничение на 16 или около того вложенных структур, и прислали патчи для того чтобы это пофиксить; но я знаю что мой код "в целом" MSVC не поддерживает - если это место починить, ломается в другом - поэтому непонятно даже что с этими патчами делать), или "вот эта константа не присутствует на моём AIX 5.1".

И подобный патч:

=== main.c ===
...
+ #define EX_USAGE 65
...


Предложить этот патч засунуть куда-нибудь неудобно, применять "как есть" — идиотизм. Ни разу патчей функциональности, патчей развития, патчей добавления смысла, нетривиальных патчей не присылали. Просили сделать меня "за деньги" — сколько угодно, но сами не делали.

То есть, LGPL это для тех кто боится что за тебя кто-то твой продукт разовьёт сказочно, и при этом тебе об этом не сообщит и баблом не поделится.

Ну и кто же в это верит?

Тезис:

Автор знает свой код лучше чем вечно занятые штатные программисты. Код, принесённый в баблоимеющий корпоратив извне, используется "как есть", редко с полукосметическими изменениями. Если нужно его менять, конторе дешевле заплатить автору независимо от лицензии кода, и получить лучшее качество результата.
(Deleted comment)
nolar
Apr. 20th, 2009 01:42 pm (UTC)
Можно ли это трактовать так, что для коллективных проектов лучше GPL, для частных и персональных -- BSD/LGPL?
lionet
Apr. 20th, 2009 08:40 pm (UTC)
Что значит что с BSD лицензией "не получишь фидбека"? Лицензия же явно говорит что компания должна писать о том что использует твой код! Вот пример как Cisco использует мой код:

lionet
Apr. 20th, 2009 08:42 pm (UTC)
А то что BSD вышел ещё раньше чем Linux, и FreeBSD вышел, и все — с BSD лицензиями, и не умерли, это как обьясняется?
gvy
Mar. 14th, 2013 11:08 am (UTC)
Это как раз объясняется предельно просто -- нужен был какой-то формальный фиговый листок, под которым передать грантовые разработки.

Кстати, старая BSDL была ещё и неудачным листком -- в какой-то из веток свободных BSD однажды посчитали, какой длины список контрибуторов им надо к изданию на CD-ROM прикладывать, чтобы выполнить её условия, вышло IIRC несколько метров.

Если условия деятельности сильно отличаются от "я своё получил, дальше без разницы" -- то стоит подумать, а не переносить чужие условия на себя вслепую.

Также прокомментирую собственно статью:
> 1. Вероятность того, что твой код кому-то нафиг сдался.
> Часто небольшая.

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

Здесь GPL хороша тем, что в необходимом, достаточном и хорошо известном объёме означивает правила игры _заранее_, без уродливых спецэффектов вроде ath5k и "ну мы написали, что вы можете это использовать, но не имели в виду, что вы можете утащить это к себе под копилефт".

> Короче, произведение вероятностей говорит за то,
> что если у тебя нет каких-то религиозных предпочтений,
> лучше использовать BSD, ничего страшного не случится.

Для соло-проекта как раз лучше _не_ использовать BSD-подобные лицензии по умолчанию. Причина предельно проста: автор кода всегда может релицензировать его другим хоть также под BSDL, хоть под закрытой лицензией -- ведь Apple/Cisco/Microsoft Вас "по одёжке" встретили, а "по уму" бросили, что устраивает не всех.

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

Спасибо, в любом случае было весьма интересно и познавательно почитать; добавляю в подборку ссылок на wiki.opennet.ru.
lionet
Apr. 20th, 2009 09:06 pm (UTC)
Вот что писали в лицензии на Mosaic браузер:

 * Licensee may make derivative works.  However, if Licensee distributes    *
 * any derivative work based on or derived from the Software, then          *
 * Licensee will (1) notify NCSA regarding its distribution of the          *
 * derivative work, and (2) clearly notify users that such derivative       *
 * work is a modified version and not the original NCSA Mosaic              *
 * distributed by the UI.                                                   *


Что же сделала Microsoft с этим, когда спёрла у них код?

А вот что!



Это, конечно, не BSD лицензия. Mosaic лицензия специально пишет про то что нужно в UI что-то писать. Но что нужно для требований BSD лицензии, Microsoft тоже выполняет: как требуется по BSD лицензии, "пишет в сопроводительной документации".

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

И так же со всеми крупными компаниями. Если ты берёшь iPhone в руки, у него есть там пимпочка, нажатие на которую вызывает длиннющий список копирайтов, которые использовались в iPhone. Там и OpenSSL, и libpng, и чего только нет. Если есть под рукой - попробуй, занятное чтиво.

Так что, может быть, тебе стоит взглянуть ещё раз на твой тезис, особенно в плане "никогда не получишь".
__hedin
Oct. 18th, 2011 04:50 am (UTC)
Вот, про упоминание в UI - хорошая, годная идея для параноиков :) Буду советовать.
grez_ua
Oct. 13th, 2011 05:21 am (UTC)
Я со своим вопросом опоздал на пару лет, но разве не основное отличие лжпль в том что либу можно безмодифицированно использовать в закрытом проэкте, в то время как GPL GPL GPL GPL ?
lionet
Oct. 13th, 2011 06:11 am (UTC)
Можно; а почему LGPL а не BSD тогда?
grez_ua
Oct. 13th, 2011 06:53 am (UTC)
А вот интересный момент, если посмотреть на проблему с другой стороны.
Допустим я делаю закрытый коммерческий софт.
Если я использую либу без изменений, то как я понимаю по идее должно быть побоку лжпль, или бсд.
А вот если я таки хочу в либу внести изменения для подгонки под свой софт?
lionet
Oct. 13th, 2011 07:01 am (UTC)
Никто не мешает делать это ни в LGPL, ни в BSD. Только в LGPL больше геморроя с сопровождением получившегося кода — ты должен его зашарить по первому требованию, или изначально шарить.
blacklion
Apr. 20th, 2009 12:50 pm (UTC)
О! BSD — лицензия. GPL — вирус!
alexott
Apr. 20th, 2009 06:14 pm (UTC)
мы патчи в проекты с BSD лицензией тоже отдаем - нам легче отдать в апстрим, чем поддерживать это все самим, и тестировать на всех платформах
nskboy
Apr. 22nd, 2009 06:34 am (UTC)
Соглашусь и прошу написать про остальные лицензии человеческим языком, если несложно :)
Сам использую и коммичу изменения в сторонний BSD-based проект. И все счастливы :)
samuel_smith
Mar. 14th, 2013 08:17 am (UTC)
Очень интересный пост. По моему весьма скромному опыту фидбек зависит вовсе не от лицензии, а от "нужности" продукта. И да, в enterprise gpl действительно не любят. Ну и GPL тоже совсем не панацея - в том же андроиде ядра обычно открываются, но куча драйверов (те же вебкамеры и экран) существуют в виде загружаемых блобов с рестриктив лицензией (или вообще без неё). При этом если вендор хочет взаимодействия с community (тот же квалком) они спокойно себе создают developers portal (аврора форум) на котором делятся своими наработками вне зависимости от лицензии апстрима.
( 20 comments — Leave a comment )

Profile

lionet
Lev Walkin
Website

Latest Month

December 2016
S M T W T F S
    123
45678910
11121314151617
18192021222324
25262728293031
Powered by LiveJournal.com
Designed by yoksel