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

https://hackaday.com/2018/09/27/can-you-take-back-open-source-code/
  • Перевод


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

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

Из-за того, что некоторые люди считают вынужденным изменением в правилах поведения разработчиков 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, это было бы физически невозможно сделать. И тогда вместо возможности удалить код из устройств, которые с этого момента нарушают авторские права, упомянутый разработчик, скорее всего, получит некоторое денежное вознаграждение. Что всё равно станет ужасным прецедентом для открытого сообщества: обиделся – получил компенсацию.

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

Комментарии 33

    0
    Можно изменить лицензирование на последующие версии продукта, а текущая со временем канет в небытие, или её форкнут.
      0
      Так много текста. Все гораздо проще. Этот фото Бейонсе которое удалили из интернета.
      Вы можете сделать новое фото и больше никому его не показывать, то старое фото отобрать не получится.
      Здесь так же — выпустили версию с открытыми исходниками? «Забудьте» о ней и выпускайте следующую версию без публикации исходников. Максимум, что случится — это негатив со стороны некоторых пользователей.
        0
        Но тогда нужно будет прекратить распространение, например, ядра. Либо проделать большую работу по переходу на новую лицензию. Просто так сказать «а теперь мы под GPLv3» нельзя — разработчик на давал на это разрешения. Более того, даже если так сделать, то практически везде суды признают такую смену лицензии незаконной, как сделку, единственной или основной целью которой является ущемление прав одного из участников сделки.
        Выглядит так, как будто действительно можно запретить распространение кода. Более того любой форк, который использовал этот код, должен был принять условия лицензии, так что и форки в общем случае не помогут (по крайне мере, нужно будет изменить тот самый изначальный код).
        +4
        После появления легального прецедента, по которому разработчик может отозвать свой код из открытого проекта, открытое сообщество будет разрушено. У открытого ПО ушли десятилетия на то, чтобы достичь сегодняшнего процветания, но поспешные действия нескольких несчастных разработчиков могут утащить его обратно в область идей, которые лишь хочется воплотить в жизнь.
        Я не знаю, возможно ли отозвать свой код из открытого проекта. Я не знаю, стоит ли разработчикам это делать. Но вот цитируемый мною текст является дичайшим передёргиванием.
        Дискуссия о возможности отзыва кода — это как раз попытка найти способ противостоять разрушению СПО в целом и GNU/Linux в частности. Сейчас, в условиях фактической атаки на сообщество, отзыв кода может оказаться тем, что его спасёт (или тем, что его добьёт, тут уж не мне судить).
          0
          Возможно. Для этого достаточно показать, что он вами был передан незаконно (например, с нарушением вами чужой лицензии).
            0
            Итог дискуссии можно свести к тому, что если что-то не нравится — то придется идти в суд и доказывать, что переданный код был использован «в ущерб его чести и репутации».

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

              На самом деле, ничего сложного.
              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

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

                +1
                linux foundation не обладает копирайтом, а только трейдмарком. Т.е. при решении вопроса об авторских правах на Linux у linux foundation будет либо статус ответчика, либо amicus curiae.
              +3
              А как много кода в ядре можно персонифицировать? Какую — то часть драйверов, пришедших не от производителя оборудования скорее всего получится.
              А в ядре? Если один человек написал код и внес его в проект, другой внес правки, делающие его, например, быстрее, ну или безопаснее, сможет ли первый разработчик отозвать свой код, если второй этого делать не намерен?
                0

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

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

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

                        0
                        Да. Основная проблема в сложности отдельных подсистем ядра, которые нельзя просто взять и переписать другим автором.
                        Это очень хорошо, что тут такие патентно- копирайтные штучки не работают.
                        Патентные — нет, а копирайтные как раз и работают. Даже реализуя известный алгоритм, автор все равно обладает правами на конкретную его реализацию. Вы, либо приобретаете права на готовую реализацию, либо делаете свою, при условии, что вопрос о правах на сам алгоритм не стоит.
                  –5
                  Я считаю, что НУЖНО ТРАВИТЬ ЗА КОПИРАСТИЮ тех кто желает забрать обратно свой код!
                    +3

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

                      –4
                      Это не безобидное мнение — это ДЕЙСТВИЕ КОПИРАСТА!
                        +1
                        Это его код. Он его написал и он сам решает что с ним делать.
                        Это называется «свобода выбора».
                          –2
                          Он свой код уже подарил в Свободное Пользование.
                          Если вы на что-то пожертвовали свои деньги много лет назад, то это давно уже не ваши деньги, и потребовать назад вы уже не можете (тем более, если их уже потратили на что-чтобы сделать что-то полезное).

                          PS а ещё, если вы не пожертвовали, а продали свой код, вы что вернув деньги полученные в качестве зарплаты можете запретить продажу и использование программного продукта?
                            +3
                            Он его не дарил, он его выложил на определенных условиях. Условия изменились и перестали устраивать. Человек забрал код обратно.

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

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

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

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


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

                        +1

                        Мистер Боширов?

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

                            PS если они копирасты, то они заслуживают то чтобы их за это травили!
                            image
                              +2
                              Вы же знаете, что чем больше пишешь жирным капсом, тем это серьезнее доказывает ваши аргументы?
                              Плюс картинку с пиратством привели, которая к теме не имеет отношения.
                              Плюс призывы к травле других людей, потому что они имеют мнение, отличное от вашего.
                              Выводы присутствующие, думаю, сделают сами
                                –2
                                Имеет! В случае отзыва лицензии ВЕСЬ Линукс включая и ВСЕ форки вроде Андроида — автоматически окажутся пиратскими.
                                image
                                  +1
                                  Не окажутся. На момент их создания код был открыт. С продолжением разработки и распространением готовых продуктов — здесь надо разобраться.
                            +1

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

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

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

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


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

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

                            Самое читаемое