Еще раз про GNU GPL

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

Например, довольно легко понять, что Кремниевая долина в Калифорнии превратилась в олицетворение передовых технологий вовсе не из-за названия, и не из-за хорошего климата, и даже не только из-за находящегося поблизости кампуса Стенфордского Университета, а, как это не странно, по гораздо более прозаическим причинам. Просто в районе Санта-Клары находилось несколько «исследовательских» структур сначала ВМС США, а затем и NASA — и «высокотехнологические инкубаторы» поначалу занимались производством всяких ништяков для американских военных и околовоенных структур.

В сущности, Кремниевая Долина — такой же «продукт» Холодной войны, как операционная система Unix, Интернет и спутниковая навигация. Все эти штуки обязаны своим рождением если не военным (в лице DARPA), то «оборонным» компаниям — а к «оборонке» что в Штатах, что у нас, можно отнести почти все «высокие технологии». Это только потом, когда «высокие технологии» превратились в обыденность, а Холодная война закончилась, стало можно заниматься всякими «доткомами» — но не раньше.

Про Unix я вспомнил не зря — потому что с этой операционной системой связана определенная «культура» в программировании и околопрограммистских вопросах. Например, само представление об open source и традиции лицензирования программного обеспечения возникли потому, что Unix с самого начала рассматривался не как коммерческий, а как исследовательский — читай «финансируемый DARPA» — проект. Довольно неожиданным для «советского» человека оказывается то, что «оборонными» разработками в области зарождавшейся тогда Computer Science в США занимались «гражданские» исследователи, да еще и не «секретили» свои разработки — но факт остается фактом, DARPA щедро выделяла деньги в виде исследовательских грантов.

Наследие «исследовательских» традиций и «научной этики», пришедшей из американских университетов, в мире Unix — это культура open source. Написал полезную программу, реализовал оригинальный алгоритм, разработал протокол обмена данными — поделись с коллегами. Но что характерно — это «исследовательская этика» не ограничивала возможное в будущем коммерческое использование. Собственно, наиболее ярко ее иллюстрируют те лицензии, под которыми распространялось ПО, разработанное в рамках исследовательских программ — так называемые лицензии BSD и MIT.

Нынешний open source отравлен движением Free Software Foundation под руководством сомнительного чувака Ричарда Столлмана и придуманной в рамках этого движения лицензией GNU GPL. Я уже обращал внимание на две проблемы ПО, использующего эту лицензию, которые вытекают из ее «вирусной природы» — оно с трудом «стыкуется» с ПО под «коммерческими» лицензиями, а просто поглядев на лицензированный под GPL код, разработчик сталкивается с тем, что все, что он напишет впоследствии, может оказаться «производным произведением».

Немного поясню последнее утверждение. В Штатах уже был прецедент (я могу путаться в деталях, буду благодарен за уточнения и пруфлинки), когда человек ушел из Microsoft в организацию, занимавшуюся разработкой чего-то GNUтого, на его беду — прямого конкурента того продукта, над которым он работал в Microsoft. Последние, не будь дураками, подали в суд, утверждая, что тот видел майкрософтский код и теперь «перерабатывает» его в смысле законодательства об авторских правах. Американский суд с этими доводами согласился. Но замените здесь Microsoft на Free Software Foundation в «зеркальной» ситуации и получите совершенно мерзкую ситуацию. GNU GPL — это, по выражению Столлмана, «хак законодательства» — способ использовать всю силу закона против тех, кто делает что-то, не нравящееся Free Software Foundation. «Свободы» в ней не больше, чем в «обычном» EULA любого софтопроизводителя.

Но об этих ограничениях и несуразностях GNU General Public License мало кто задумывается — а зря. Как отмечают в статье, на которую я сослался в своей старой записи, многие авторы лицензированного под GPL кода попросту не понимают условий лицензии, ограничиваясь плохими ее пересказами. Как реагирует неискушенный автор на слово «Free» в «Free Software Foundation»? «Замечательно! Я же хотел поделиться своим кодом со всеми!» — думает он и попадает в страшную ловушку. После этого его код может быть полезен лишь авторам проектов с той же лицензией. Но об этом люди просто не подозревают, после чего рождаются вот такие перлы:

This program is written under GNU General Public License in C programming language. PLEASE NOTE THAT THIS PROGRAM VERSION DOES NOT HANDLE POTENTIALLY OCCURRING INTERRUPTIONS OF COMMUNICATION OR NETWORK CONGESTION SITUATIONS. It may stimulate those intending to write their own client program.

Самое ужасное здесь то, что эта программа — не что иное, как эталонная реализация клиента некоего сетевого протокола, и здесь «вирусная природа» GPL просто вынуждает идти на нарушение GPL. Представьте, что под GPL был бы лицензирован код наподобие такого:


int main(){
return 0;
}

Нетрудно догадаться, что после этого любая программа на C, C++ и куче других языков может быть признана «производным произведением»? Если кто-то увидел бы этот код с припиской «лицензировано под GPL», то он мог бы забыть о работе программистом и идти в дворники (особо впечатлившиеся могут сейчас пойти помыть глаза с мылом). Аналогично и в этом случае — протокол настолько прост, что лишь посмотрев на «эталонный» клиент, и написав свой, уже можно быть уличенным в создании некошерных производных произведений.

Конечно, намерения автора довольно очевидны — но будучи в плену иллюзий о Free Software Foundation и его «великой светлой миссии», он подложил немалую свинью всем, кто занимается разработкой любых аналогов данного ПО.

PS Лично я, если бы меня в данном случае приперли к стенке угрозами судебного разбирательства с FSF, попытался бы вывернуться описанным [info]infowatch способом в рамках отечественного законодательства.

Еще раз про GNU GPL: 16 комментариев

  1. Наоборот, МС сотрудникам запрещено работать в опенсорсе в свободное время чтобы им не предъявили иск хотя бы о невольном использовании продуктов. Чего взять с опенсорс? А вот с МС содрать можно.
    Пруфов нет так же.как и у тебя)

    Юникс делала белл лабс и вполне коммерчески. Просто отгдашний объем кода мог воскурить небольшой коллектив и воскуривал и копировал. Что сейчас совершенно невозможно практически для любой ОС.
    Открытая была BSD. Ну и работы в Беркли над протоколами передачи данных.

    1. Кем запрещено?

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

      1. Читал разработчиков МС и их идеологов. Запрещено контрактом с Майкрософт.
        Я попробую поискать это в бумажной книжке и по именам.

        Ну и точка зрения эта более логична, нежели требования к опенсорсу. МС вообще хотя бы раз предъявляла такое?

        Bell самое главное не всегда требовала по контракту всех прав на разработки от своих сотрудников.
        До определенного времени.

        а) Она не возражала, а не передавала официально.
        б) платила гранты и могла.

        Но в целом история подобного закончилась на Бернерсе-Ли
        С тех пор рулят контракты и патентное право.

        1. Я думаю, что контрактом просто запрещено участвовать в свободное время в любых других проектах. Вполне рядовое требование, в Штатах обычно называется «moonlighting clause».

          А Microsoft иногда судится просто «из любви к искусству», даже когда взять нечего.

          > С тех пор рулят контракты и патентное право.

          Не путай патентное и авторское право. Но действительно, в конце 80-х просто произошло документальное оформление существующей «этики» — кому EULA, а кому BSD — собственно, все вопросы, которые до того регулировались «по понятиям», превратились в тексты лицензий, судебных прецедентов, законодательства и так далее.

          1. «Я думаю, что контрактом просто запрещено участвовать в свободное время в любых других проектах.»
            Нет, частично разрешается, просто прописывается требование соблюдения интересов MS, в случае конфликта. Т.е. грубо:»Торрент пиши, но если оно будет мешаться DFS-она первее и ты должен прекратить».

            «А Microsoft иногда судится просто “из любви к искусству”, даже когда взять нечего.»
            Опять же пример? Нет, я понимаю, что лоеры должны обозначать свою полезность, но все же цифры работы юротдела достаточно формализованы, чтоб не тратить много денег на заведомо невыгодные суды.

            «Не путай патентное и авторское право.»
            Я не путаю. Авторское и ранее было в загоне даже в части указания фамилий разработчиков-все принадлежит корпорации. Отличалась тут разве что Адоби, которая выводила длинный список в Фотошопе.
            Но это чисто по памяти.
            С оформлением законным и т.п. согласен.

  2. Это ты наверное не читал ещё v3, а говорят v4 ещё веселее будет :)
    А чего об спонсировании в прошлом времени
    r264601 | bz | 2014-04-17 16:33:26 +0400 (Thu, 17 Apr 2014) | 13 lines
    Sponsored by: DARPA/AFRL
    Думаю при моих интересах не надо пояснять из какого проекта :)
    Со всяким там связанным с шифрованием, правда не так однозначно, но ещё в стародавнее времена придумали разработку такого тупо выносить в Европу, а то даже и Канаду вроде хватает.

    Про Unix там тоже конечно всё не так уж тривиально получилось, мы как то кстати пытались порассуждать на тему GNU/GPL http://vimeo.com/17282090 правда специалисты из меня и аппанента ещё те, но уж какие есть.

    Про майкрасофт, времена меняются и чего только не бывает https://www.bsdcan.org/2012/schedule/events/287.en.html

    1. Ролик очень показательный, между прочим. Похоже, что никто из активно дискутирующих не читал GNU GPL любой из версий, и имеет смутное представление о ГК, но понабрался мнений из пересказов разной степени правдоподобия.

    2. «Про майкрасофт, времена меняются и чего только не бывает»
      SuSe принадлежит и финансируется дочкой МС)
      А стек IPv6 и, по слухам вообще весь TCP/IP с 2008 Server/Vista разработан командой BSD.

      1. Эк вы обобщаете, с сусями да там что то смешное.
        Стеков IPv6 в общем то несколько, и те же BSD-производные частенько любят юзать http://www.kame.net/ а линуксы по всей видимости USAGI http://www.linux-ipv6.org/
        «разработан командой BSD» тоже красиво, если не учитывать, подобной команды нет лет эдак двадцать, скушали её акулы империальзьма, но да какие то из его компонентов винда говорят использовала, но объём неясен

  3. Боюсь, что автор неверно трактует понятие производного произведения. Создание похожего или даже идентичного кода в силу случайного совпадения, малочисленности вариантов, стиля, обучения или восприятия образцов — переработкой не является.

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

    1. Я особо и не скрываю, что ситуация эта чисто умозрительная и FSF в подобных вещах замечен пока не был. Просто есть основания полагать, что в данном конкретном случае GPL изначально не работает (или работает избирательно) и наши коллеги-конкуренты прекрасно используют это ПО внутри своих «коммерческих» разработок (closed source, все дела).

  5. Роль «ЦРУ» в создании интернета тоже сильно преувеличено и искажено. Вообще-то это технологический регресс. Косяки которого разгребаются до сих пор.

Добавить комментарий для Шура Люберецкий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *