Можно ли закрыть обратно открытый исходный код? +22




Эта концепция кажется довольно простой для любого человека, некоторое время работавшего с открытым исходным кодом: проект, однажды выпущенный в виде открытого кода, остаётся открытым навсегда. Конечно, разработчик может решить, что будущие версии проекта будут закрытыми, и иногда такое случалось, но то, что уже выпущено на свободу, отозвать обратно не получится. У интернета нет кнопки «удалить»; опубликовав свой код, и дав миллионам людей потенциальную возможность скачать его, загнать джина обратно в бутылку не получится.

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

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

Действительно ли невозможно отозвать исходный код, отправленный в проект, выпущенный под такой свободной и открытой лицензией, как GPL? А если можно, то что тогда будет? Что случится, если окажется, что миллиарды устройств, исполняющие у себя ядро Linux, нарушают интеллектуальные права одного разработчика? Эти вопросы крайне важны для интернета и, вероятно, даже нашего образа жизни. Однако ответы на них найти не так легко, как вам могло бы показаться.

Копилефт и права на владение


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

Это порождает концепцию двойного лицензирования: единственный автор программы может выпустить её под несколькими лицензиями одновременно, причём обычно одна из них позволяет делать с программой больше остальных. К примеру, версия программы для Windows может иметь закрытый код, а для Linux – открытый, даже если сам код программ не отличается. Чаще это используется для того, чтобы под одной лицензией программу использовали в коммерческих целях, а под другой, более свободной – в личных.

У некоторых проектов с открытым кодом, обычно больших и имеющих поддержку корпораций, иногда встречается Contributor License Agreement. Этот документ описывает все необходимые дополнительные требования и правила по добавлению кода в проект, и обычно содержит пункт, объясняющий, что человек, вносящий код, передаёт право на него владельцу проекта. К примеру, вот часть такой лицензии от Google:
По правилам и условиям данного соглашения вы передаёте Google и получателям ПО, распространяемого компанией, бессрочные, всемирные, не эксклюзивные, бесплатные, не требующие отчислений, безотзывные права на воспроизведение, создание производных работ, публичную демонстрацию, публичное исполнение, повторное лицензирование и распространение вашего вклада и производных работ от него.

Стоит отметить, что Linux не использует такое соглашение, поэтому права на любой внесённый разработчиком код остаются за ним.

Репутационные потери


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


Эрик Рэймонд

Эрик Рэймонд, один из основателей инициативы открытого кода, Open Source Initiative, и автор трилогии "Собор и Базар", считает, что у них такое право есть. В записи в списке рассылки Linux Kernel Эрик, в частности, обращается к угрозе, сделанной некоторыми разработчиками, по поводу отзыва их исходного кода из ядра:

Для начала позвольте мне подтвердить, что это не пустая угроза. При основании Open Source Initiative я изучал связанные с этим законы. В США существует прецедентное право, подтверждающее, что репутационные потери, связанные с преобразованием прав участника проекта под GPL, могут рассматриваться в суде. Я не знаю о существовании прецедентного права вне США, но в странах, соблюдающих Бернскую конвенцию без поправок США на «моральные права» [после присоединения к Конвенции США заявили, что моральные права уже защищаются положениями о клевете и, соответственно, не требуют дополнительного регулирования / прим. перев.], эта статья конвенции, вероятно, ещё больше упрочит позицию противников в суде.

Секция 6 Бернской конвенции поясняет, что изначальный автор работы, даже передав свои права другому лицу или организации, может возражать против её использования, если ему кажется, что её используют «в ущерб его чести и репутации». Так что, в теории, недовольны разработчик должен лишь убедить судью, что руководители проекта навредили его репутации, допустим, публично забанив за нарушение правил поведения, в результате чего тот может обязать проект прекратить использовать их код вне зависимости от использовавшейся лицензии.

Критика


Но остаётся вопрос того, может ли разработчик реально «отозвать» права, переданные по GPL? Если мы говорим о GPLv2, которой следует Linux, то наиболее подходящий пункт содержится в секции 4.
При этом действие лицензии, предоставленной вами третьим лицам, получившим от вас копии или права согласно этой лицензии, не будет прекращено, пока эти лица будут полностью соблюдать её условия.

Интересно, что в GPLv3 правила сильно ужесточились:
Все права, предоставленные согласно Данной лицензии предоставляются на срок действия авторского права на Программу, и не могут быть отозваны при условии, что установленные условия соблюдены.

Некоторые считают, что это отличие может оказаться критически важным. Юридически «отзыв» обычно означает, что соглашение было отозвано тем, кто его предлагал (тут – изначальный разработчик), а «прекращение» просто означает конец действия соглашения. В результате остаётся пространство для интерпретаций, и в принципе, можно утверждать, что поскольку в GPLv2 не указано, что разработчик не может отзывать свои права, эта возможность сохраняется.

Неизученные территории


С учётом оценки Эрика Рэймонда, по которой разработчик может заявлять о том, что проект, в котором он участвует, порочит его репутацию, и того факта, что в текущей лицензии Linux разработчикам напрямую не запрещено отзывать свой вклад, ситуация становится туманной, и пока никто ни в чём не уверен. Мы находимся в неизведанной местности, и старые предположения могут не выдержать юридической экспертизы.

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

С практической точки зрения, даже если бы человек смог защитить свою точку зрения в суде, требуя удалить свою часть кода из Linux, это было бы физически невозможно сделать. И тогда вместо возможности удалить код из устройств, которые с этого момента нарушают авторские права, упомянутый разработчик, скорее всего, получит некоторое денежное вознаграждение. Что всё равно станет ужасным прецедентом для открытого сообщества: обиделся – получил компенсацию.

В итоге, разговоры об отзыве лицензий на открытый код ошибочны. Перефразируя Иена Малькольма, персонажа «Парка Юрского периода»: обиженные разработчики так заняты размышлениями о том, могут они это сделать или нет, что у них не остаётся времени подумать о том, должны ли они это делать вообще. После появления легального прецедента, по которому разработчик может отозвать свой код из открытого проекта, открытое сообщество будет разрушено. У открытого ПО ушли десятилетия на то, чтобы достичь сегодняшнего процветания, но поспешные действия нескольких несчастных разработчиков могут утащить его обратно в область идей, которые лишь хочется воплотить в жизнь.

Вы можете помочь и перевести немного средств на развитие сайта



Комментарии (32):

  1. EmmGold
    /#19236275

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

  2. Akuma
    /#19236387

    Так много текста. Все гораздо проще. Этот фото Бейонсе которое удалили из интернета.
    Вы можете сделать новое фото и больше никому его не показывать, то старое фото отобрать не получится.
    Здесь так же — выпустили версию с открытыми исходниками? «Забудьте» о ней и выпускайте следующую версию без публикации исходников. Максимум, что случится — это негатив со стороны некоторых пользователей.

    • Sap_ru
      /#19237689

      Но тогда нужно будет прекратить распространение, например, ядра. Либо проделать большую работу по переходу на новую лицензию. Просто так сказать «а теперь мы под GPLv3» нельзя — разработчик на давал на это разрешения. Более того, даже если так сделать, то практически везде суды признают такую смену лицензии незаконной, как сделку, единственной или основной целью которой является ущемление прав одного из участников сделки.
      Выглядит так, как будто действительно можно запретить распространение кода. Более того любой форк, который использовал этот код, должен был принять условия лицензии, так что и форки в общем случае не помогут (по крайне мере, нужно будет изменить тот самый изначальный код).

  3. betrachtung
    /#19236897

    После появления легального прецедента, по которому разработчик может отозвать свой код из открытого проекта, открытое сообщество будет разрушено. У открытого ПО ушли десятилетия на то, чтобы достичь сегодняшнего процветания, но поспешные действия нескольких несчастных разработчиков могут утащить его обратно в область идей, которые лишь хочется воплотить в жизнь.
    Я не знаю, возможно ли отозвать свой код из открытого проекта. Я не знаю, стоит ли разработчикам это делать. Но вот цитируемый мною текст является дичайшим передёргиванием.
    Дискуссия о возможности отзыва кода — это как раз попытка найти способ противостоять разрушению СПО в целом и GNU/Linux в частности. Сейчас, в условиях фактической атаки на сообщество, отзыв кода может оказаться тем, что его спасёт (или тем, что его добьёт, тут уж не мне судить).

    • AEP
      /#19237123

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

    • dinoth
      /#19240389

      Итог дискуссии можно свести к тому, что если что-то не нравится — то придется идти в суд и доказывать, что переданный код был использован «в ущерб его чести и репутации».

      Есть стойкое ощущение, что до этого не дойдет.

  4. amarao
    /#19236919 / +1

    Вся эта драма феерически осложняется тем, что не понятно какой юрисдикцией пользоваться. Европа? Штаты? РФ? Узбекистан?

    • nfw
      /#19239961

      На самом деле, ничего сложного.
      https://www.linuxfoundation.org/about/contact/


      Main Office
      1 Letterman Drive
      Building D, Suite D4700
      San Francisco, CA 94129
      Phone/Fax: +1 415 723 9709

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

      • amarao
        /#19241759

        linux foundation не обладает копирайтом, а только трейдмарком. Т.е. при решении вопроса об авторских правах на Linux у linux foundation будет либо статус ответчика, либо amicus curiae.

  5. Zanak
    /#19238145 / +2

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

    • BlessYourHeart
      /#19239189

      Может быть кто то объяснит, как это все работает.
      Для меня вообще не понятно: кто то написал элементарную функцию из одного if и коммитнул это в один проект; другой человек написал точно такую же функцию в другой проект. Как тут разбираются с лицензиями? А если это самоочевидный код вроде abs(foo + bar), то разве можно к нему применять копирайт?
      Что вообще конкретно собирались отзывать из кода? Если это какой то API то он закопирайчен на уровне идеи или кода? И можно ли его переписать с, условно, другой нотацией...

      • Am0ralist
        /#19239239 / +1

        А если это самоочевидный код вроде abs(@ foo +@ bar), то разве можно к нему применять копирайт?
        Особенно удачно у вас получилось призвать пользователей foo и bar своим комментом…

      • Zanak
        /#19239813

        Чем проще код, тем проще его заменить. Особенно если учитывать, что ситуация с ядром куда более локальна, чем с пакетами для nodejs.
        Речь естественно не про код как таковой, а про реализацию отдельных частей ядра, управление памятью, потоками и задачами, передачей по сети, работой с диском, реализацией сетевых протоколов и драйверов устройств, и много чего еще, что живет у ядра под капотом. Людей, способных относительно быстро реализовать, к примеру, планирование выполнения потоков куда меньше, чем людей способных написать abs(foo +@bar), и если код этих авторов получится отозвать, то это будет иметь серьезные последствия для всего проекта.

        • BlessYourHeart
          /#19240115

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

          • Zanak
            /#19240217

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

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

  6. DelphiCowboy
    /#19239811

    Я считаю, что НУЖНО ТРАВИТЬ ЗА КОПИРАСТИЮ тех кто желает забрать обратно свой код!

    • andreysmind
      /#19239999

      Я думаю ты в хорошей компании. Там как раз подбирается общество любителей ТРАВИТЬ за мнение.

      • DelphiCowboy
        /#19240067

        Это не безобидное мнение — это ДЕЙСТВИЕ КОПИРАСТА!

        • andreysmind
          /#19240303

          Это его код. Он его написал и он сам решает что с ним делать.
          Это называется «свобода выбора».

          • DelphiCowboy
            /#19240595

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

            PS а ещё, если вы не пожертвовали, а продали свой код, вы что вернув деньги полученные в качестве зарплаты можете запретить продажу и использование программного продукта?

            • andreysmind
              /#19240631

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

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

              • hokum13
                /#19240881

                Человек выкладывал код под определенными условиями. Условия эти называются лицензией (например GPLv3). В этих лицензиях ни слова (обычно) не сказано, что нельзя «пытать котят и детей». А что не запрещено — то разрешено.

                Он изначально не запрещал «пытать котят и детей». Условия не изменились — человек поумнел (или наоборот, не суть). Это не повод с его стороны нарушать свое обещание (лицензию).

                Разумеется, если нарушают изначальное соглашение (лицензию), то это повод отозвать код или даже подать в суд для запрета распространения. Но opensource сообщества не часто нарушают свои же лицензии.

              • Hardcoin
                /#19242317

                Вот именно, выложил на определенных условиях. И "мне не нравится" в списке условий не значится. "Пытать котят и детей" — тоже.


                Так что думай ДО выкладки кода, а не после. Для примера, нельзя передумать продать квартиру, даже если в ней устроили притон, а тебе это не нравится. Вписывай условия "не пытать детей" в свою лицензию, например. А умные люди с такими проблемами вообще в полицию идут, а не код отзывают.

    • Am0ralist
      /#19240297 / +1

      То есть нужно травить людей, которые не хотят, что бы их травили за их мнение?

      • DelphiCowboy
        /#19240955

        Какие у них проблемы и разборки с SJW — это их сугубо личное дело.
        А то что они собираются устроить ПРЕЦЕДЕНТ КОПИРАСТИИ — затрагивает ВСЕХ!!!

        PS если они копирасты, то они заслуживают то чтобы их за это травили!
        image

        • Am0ralist
          /#19241025

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

          • DelphiCowboy
            /#19241771

            Имеет! В случае отзыва лицензии ВЕСЬ Линукс включая и ВСЕ форки вроде Андроида — автоматически окажутся пиратскими.
            image

            • Zanak
              /#19241889

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

    • Hardcoin
      /#19242299

      Самое важное, это обеспечить защиту общества от тех, кто хочет травить или, как в соседней теме, вешать. Опенсорс — это очень важно, но всё же ниже на ступеньку, чем такая защита.

      • DelphiCowboy
        /#19244565

        Нет, опенсорс важнее любых обиженок.
        Тем более, что SJW тоже может быть в роли обиженки, объявив что «10 лет назад Линус изнасиловал» и это было очень обидно.

        • Hardcoin
          /#19245045

          Обиженкой в данном случае выступаете вы. Бегаете, "защищаете" опенсорс. Угрозы кого-то "травить" никак опенсорс не защитят. Ведёте себя как такойт же SJW, но с другой стороны баррикад.