...

пятница, 26 мая 2017 г.

Как закалялась GPL

С тех самых пор, как появились лицензии открытого кода, появился соблазн проверить их на прочность. GNU Public License самая бескомпромиссная среди них, она защищает свободу пользователя и программиста от присвоения результатов чужого труда, подмены открытого и общедоступного продукта, закрытым и платным. Не удивительно, что именно GPL чаще всего нарушают малые, средние и даже крупные компании.





Принуждение к соблюдению условий GPL является вопросом стратегической важности для открытого сообщества и легко понять почему это так. GPL является краеугольным камнем, точкой сбора сообщества и его самых принципиальных сторонников. Из них самый известный — основатель GNU и автор GPL — Ричард Столлман. Давайте узнаем как сообщество борется с нарушителями лицензии, кто нарушал и продолжает нарушать GPL и как экспроприируют экспроприаторов открытого кода.


GPL и Copyleft


GPL, по словам одного из ястребовSoftware Freedom Conservancy Bradley M. Kuhn, является Конституцией Мира Свободного ПО. В ней определены четыре основных положения, четыре степени свободы хакера.


  • свобода исполнять программу как заблагорассудится, (степень свободы 0);
  • свобода изучать программу и ее исходный код для того, чтобы понимать как она работает (степень свободы 1);
  • свобода распространять программу, дабы помочь ближнему своему (степень свободы 2);
  • свобода распространять изменения и улучшения в программе (степень свободы 3), чтобы сообщество могло воспользоваться вашими наработками.

Первая версия лицензии появилась в 1989 г. GPL v1 решал следующие проблемы.


  1. Производитель программного продукта отдает не код, а только бинарники. Чтобы не допустить этого, одно из требований к производителю программы — распространять годный для человеческого прочтения исходный код.
  2. Производитель программного продукта может накладывать дополнительные ограничения. Дабы этого не случилось в тексте лицензии сказано, что все изменения вносимые в код также должны стать всеобщим достоянием.

Вторая версия лицензии вышла вскоре после первой в 1991 г. GPL v2 вышел под девизом свобода или смерть. Важным моментом в новой лицензии являлось положение о запрете на распространение ПО в том случае, если в силу каких-либо ограничений производитель программы не в состоянии обеспечить надлежащим образом права и принципы свободы пользователя. Так у нечистоплотных дельцов гораздо меньше соблазна сдирать патентные отчисления с производителей свободного ПО.


TiVo





Ричард Столлман опубликовал GPL v3 в 2007 г. Третья версия защищала свободу пользователя от новых угроз, таких как тивоизация и мутная сделка между Microsoft и Novell. В основном изменения были вызваны тем, что TiVo нашла лазейку в GPL v2, предоставив пользователю обманку вместо первой степени свободы.


В фильме Солдаты Неудачи герой Мэттью МакКонахи весь фильм пытается его заполучить для своего друга цифровой видеоплеер TiVo. Скорее всего это была первая версия, так как от второй TiVo не все были в восторге. Дело в том, что первую можно было как угодно изменять и настраивать — это же Linux, а во второй версии вся халява закончилась.


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


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


Что же касается сделки между Microsoft и Novell, то это была та самая монополия Стива Баллмера, которая шла напролом и по костям, думая, что все рынки можно подмять так же, как получилось с десктопами. Вкратце, Microsoft стала распространять FUD, смысл которого в том, что патентному преследованию не будут подвергнуты лишь пользователи Novell SUSE Linux. Якобы ядро Linux, нарушает энное количество патентов, но монополия на это закроет глаза, если пользователь выбирает правильный SUSE Linux. Впрочем Ричерд Столлман свое дело знал и составил GPL v3 так, что опасность такого дискриминационного патентного преследования была нейтрализована.





Компания Microsoft сделала несколько ошибок в договоре с Novell, и GPLv3 составлена так, чтобы обернуть их против Microsoft, расширяя эту ограниченную защиту от патентов на все сообщество. Чтобы воспользоваться этой защитой, программам нужно применять GPLv3.

Как работает GPL в теории и на практике


Теоретическим обоснованием GPL является следующее:


  • авторское право — институт гражданского права, который действует в международном масштабе и определяет права создателя на свое произведение;
  • используя лицензию на авторское право, предоставлять разрешение на пользование и распространение;
  • условием предыдущего является предоставления четырех степеней свободы пользователям;
  • так copyright превращается в copyleft.

А теперь о том, как все происходит на самом деле.


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


Сомнительная слава первого нарушителя GPL принадлежит, ни много ни мало, компании NeXT и ее основателю Стиву Джобсу. Компания вовсю использовала свои наработки gcc, но открывать исходники не торопилась. В NeXT намеревались оставить Objective C закрытым, предоставив только бинарные *.o файлы для линковки из gcc, но RMS и FSF сумели настоять на своем.





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


FSF против Cisco


Довольно долго Linksys, купленный Cisco Systems, вовсю использовала gcc, binutils, glibc распростроняемые под GPL, при этом жадничала и исходников не раскрывала. Что характерно, Cisco к тому времени вполне масштабно участвовала в разработке ядра Linux, являлась почетным золотым участником Linux Foundation.


Впервые FSF указал на нарушение условий GPL аж в 2003 г. В Cisco покивали головой, пообещали все исправить, но ничего так и не сделали. Через 5 лет терпение FSF лопнуло и они подали судебный иск, который закончился полной победой поборников открытого кода. Cisco замирилась с FSF путем денежного взноса неизвестной суммы и открыв исходный код в соответствии с требованиями лицензии.


Jacobsen против Katzer


13 августа 2008 г. апелляционный суд США признал по делу Jacobsen vs. Katzer, что свободная лицензия Artistic License является значимой в рамках законодательства по авторскому праву. Суд определил Artistic License, Creative Commons, GPL как лицензии со значимыми условиями, что делает их субъектами закона об авторском праве, а не просто коммерческого договора. Согласно американскому законодательству нарушение значимых условий лицензии авторского права является нарушением самого авторского права. В то же время, если бы положения лицензии были бы признаны договорными, то их нарушение рассматривалось бы в рамках контрактного законодательства, что значительно усложняет выплату компенсаций и определение размера ущерба для лицензий открытого кода.





Из-за чего возник судебный иск? Компания Jacobsen написала программное обеспечение для управления моделями поездов. В Katzer использовали код JMRI, нарушив требования достаточно либеральной Artistic License, при этом сами охотно судились с конкурентами, запугивая их своими патентами.


Важность данного разбирательства состояла в том, что впервые в суде США рассматривалось дело о нарушение открытой лицензии. К тому же Artistic License опирается на ту же концепцию значимых условий в авторском праве, на которой держатся Creative Commons, GPL и остальные лицензии открытого кода. Тот факт, что суд ссылается на них в обосновании решения, позволяет разработчиком открытого ПО рассчитывать на благоприятные решения по другим делам о нарушении их авторских прав. Тому способствует прецедентное судопроизводство в США.


Welte против Fantec


В июне 2013 г. земельный суд Гамбурга признал компанию Fantec виновной в нарушении условий GPL. Мультимедийный проигрыватель FANTEC 3DFHDL в одной из прошивок содержал межсетевой экран netfilter/iptables лицензированный под GPLv2. Попытки договориться не увенчались успехом, после чего Harald Welte — один из разработчиков iptables — подал в суд на нарушителя конвенции лицензии. В деле Harald Welte[1] против Fantec GmbH суд обязал ответчика выплатить штраф в размере 7000 € и оплатить все судебные издержки.


Компания FANTEC попыталась отбиться от обвинений, ссылаясь на то, что прошивку написал и установил китайский подрядчик, который заверил FANTEC в том, что лицензии в порядке. Суд однако счел подобные оправдания недостаточными.


Artifex против Hancom


Продолжается судебный процесс по делу Artifex[2] против Hancom[3] и последние новости дают повод для оптимизма. В федеральном окружном суде Северного Калифорнийского сектора рассматривается иск компании Artifex против против южнокорейской фирмы Hancom.


Пакет GhostScript распространяется под двойной лицензией: Affero GPL и коммерческой. Открытая лицензия используется в привычном смысле, обеспечивая 4 степени свободы пользователям и разработчикам ПО, не использующим продукт в коммерческих целях. Для остальных предусмотрена коммерческая лицензия, когда есть необходимость использовать пакет в составе закрытых продуктов, не открывая исходный код. Южнокорейская компания посчитала, что можно хакнуть систему и выбрала третий путь — использовать в своих закрытых программах код Ghostscript за просто так, отказавшись от покупки коммерческой лицензии.


Офисный пакет ThinkFree Office для ОС Андроид





После обнаружения факта поставки Ghostscript в продуктах Hancom компания Artifex пыталась договориться с нарушителем, предлагая тому выкупить коммерческую лицензию задним числом для проданных уже экземпляров программы, однако получила отказ. Ответом Artifex стал судебный иск к южнокорейской компании. Аргументация Hancom состояла в том, что рассматривала условия поставки Ghostscript как договор, который не подписывала и свое согласие с его условиями нигде не фиксировала. Не удивительно, что этот довод не сработал.


Суд отклонил ходатайство Hancom о прекращении разбирательства. Вся загвоздка в том, что GPL в связке с коммерческой лицензией рассматривается в суде как договор, попадая тем самым в область договорных отношений. Данная позиция резко отличается от точки зрения Фонда СПО, который не считает GPL договором ввиду того, что пользователь вообще не имеет права действовать в обход лицензии в то время, как договор подразумевает наличие сделки, выгоды и добровольного согласия.


Для правообладателя есть определенные выгоды быть истцом в деле о нарушении авторских прав вместо того, чтобы искать правды в деле о нарушении контракта. Контрактное право тяготеет к денежным компенсациям и исчислимым определениям материального ущерба, как раз того, что нелегко посчитать и предъявить создателям открытого ПО. Непонятно каким способом добиться желаемого результата — открыть исходный код программы по решению суда. С нарушением авторского права гораздо проще получить желаемое. Еще есть установленные законом штрафы, 30,000$ за каждое нарушение, или 150,000$ в случае злостного нарушения.


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


В заключение


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


Использованные материалы


  1. GPLv3: краткое руководство
  2. Samba, GPL enforcement and the GPLv3
  3. GNU GPL, LGPL, Apache licence Types and Differences
  4. Суд посчитал, что GPL попадает в область договорных отношений
  5. Jacobsen v. Katzer: The Federal Circuit Weighs in on the Enforceability of Free and Open Source Software Licenses



  1. Создатель веб ресурса GPL violations, один из разработчиков iptables.
  2. Разработчик пакетв Ghostscript для просмотра pdf и PostScript документов.
  3. Создатель офисного пакета ThinkFree Office.

Комментарии (0)

    Let's block ads! (Why?)

    Комментариев нет:

    Отправить комментарий