]> Sergey Matveev's repositories - stargrave-blog.git/commitdiff
Спросили про моё мнение BSD 2-clause, MIT, GPL лицензий
authorSergey Matveev <stargrave@stargrave.org>
Thu, 11 Jun 2020 21:10:22 +0000 (00:10 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Thu, 11 Jun 2020 21:10:22 +0000 (00:10 +0300)
Будучи ярым приверженцем движения свободного ПО, copyleft-а, бывшим
членом FSF и FSFE, то мнение моё заранее предопределено :-). BSD/MIT
лицензии позволяют закрывать исходный код, позволяют делать ПО не
свободным. Грубо говоря, permissive лицензии (BSD/MIT/etc) это "нам
насрать, делайте что хотите, только нас не забудьте упомянуть, а что вы
там с пользователями творите не наше дело". GPL лицензии запрещают
запрещать, так сказать: нельзя делать ПО не свободным, у пользователя
должно быть право на использование в любых целях, на изучение,
изменение, распространение как оригинальной версии, так и своих
модификаций. С моей точки зрения, ничто не может быть плохого и не
правильного в этих базовых "свободах", а их отсутствие явно не для
благих и честных намерений делается.

Permissive лицензии позволяют старым добрым грабительским способом
зарабатывать: продавая копии ПО, как это делает Microsoft. Они позволяют
и просто нахлебничать, не отдавая наработки назад, как это делает Apple.
Не то чтобы меня это всё сильно беспокоило ("пипл же хавает"), но это
всё не очень какой-то честный труд то. GPL это не запрещает никоим
образом, просто с ним это не так просто сделать.

А GPL, это то, без чего не было бы например GNU/Linux, который теперь у
миллиардов людей в карманах. И это не моё мнение, а Линуса Торвальдса.
Собственно проблем в зарабатывании денег с GPL-ем нет никаких: Linux
пилят уже даже и Microsoft, все железячники, все кому не лень и неплохо
зарабатывают. Никто же не отменяет разработку под заказ нужных вещей,
никто не отменяет поддержку, обучение, внедрение -- всё это стоит
огромных денег, которые для свободного ПО тоже приходится платить. На
первой работе вообще всё что я писал -- становилось СПО. И не смотря на
то, что выкладывалось в свободный доступ бесплатно, это не означало что
люди способны и хотят даже configure/make делать и спокойно готовы
платить за даже такие вещи. Netflix или Yandex сколько отдали в FreeBSD
проект: их наработки нисколько не ставят их под удар какими-либо
конкурентами, как это придумывают многие мыслящие "по старинке". Ко мне
с вопросами по PyGOST прилично обращались за помощью и с денежным
вознаграждением (от которого отказывался) -- суммарно это очень неплохие
суммы.

Ровно один use-case я видел и слышал когда permissive лицензия может
быть лучше: когда например надо распространить какой-то формат данных.
Например Vorbis (хотя уже не актуален, из-за Opus) вместо MP3: не так
важно (возможно совершенно не важно) какими библиотеками он будет
кодироваться/декодироваться (рано или поздно свободную можно будет
написать), но важно протолкнуть и внедрить сам формат как можно более
широко. Тут сама суть уже не в ПО конкретном.

Меня спросили какие самые трушные лицензии среди всего этого зоопарка.
Де-факто когда-то был GPLv2 (GPLv1, можно сказать, никогда не было),
который используется в Linux. В 2000-х сделали GPLv3. С ходу у него
отличия: запрещено ограничивать и вредить пользователям патентами (на
момент создания GPLv2 такого типа вредительства человечество просто ещё
не придумало для IT-сферы), запрещена TiVoization (когда ПО может быть и
свободным, но например свободную прошивку устройства нельзя обновить,
потому что необходима криптографическая подпись над этим ПО -- ещё один
хитрый трюк чтобы вредить пользователям, при этом формально не нарушая
GPLv2), явно разрешено распространение через BitTorrent сети. Я вообще
абсолютно полностью не вижу смысла в GPLv2.

Есть LGPLv3 (аналогично v2 -- бессмысленнен) которая позволяет
несвободной программе линковаться с LGPLv3 свободной, не заставляя
несвободную становится свободной. Но если меняется сама LGPLv3
библиотека, то эти наработки нельзя "скрывать", если продаётся. Это так
называемый weak copyleft. "L" значит "lesser", но некоторые считают что
это "library", действительно часто применяя это к библиотекам, где тоже
важно их распространение, но не такая упорная борьба за свободу. Не
идеально, лучше не стоит использовать, но возможно поблажки захочется
дать. Я например для PyDERASN своего использую именно LGPLv3.

Есть ещё AGPLv3 -- Affero GPLv3, отличающаяся от GPLv3 тем, что при
использовании ПО на серверах (в клиент-серверной архитектуре), код
должен быть доступен для пользователя, чтобы он понимал что с его
данными/запросами там будет происходить, чтобы не позволять просто
вынеся ПО за рамки пользовательского ПК, формально не нарушать ничего,
ведь пользователь типа же ничего не запускает сам и мы ему не продаём и
не предоставляем это ПО.

Вообще Affero GPLv3 покрывает и все случаи GPLv3 и типа чистый GPLv3
особо как смысла не имеет поэтому можно применять и только Affero. Ну...
лично я не сторонник этого, чисто субъективно: для какой-нибудь PyGOST
библиотеки странно применять лицензию которая про серверы там всякие
говорит.

Касательно BSD/MIT... во всём этом не сильно разбираюсь в отличиях, ибо
насрать на лицензии которые плюют на пользователей, не гарантируя им что
ПО будет свободным. Но если уж и хочется использовать permissive
лицензию, то FSF и GNU рекомендуют Apache License v2 -- типа такая штука
как и BSD/MIT, но явно учитывающая тему про патенты. Ведь можно сделать
и полностью свободное ПО, но только всех засуживать за нарушение
патентов. BSD/MIT и прочие создавались когда такой практики ещё не было.

У многих людей аргумент для permissive лицензий есть такой: а я не хочу
ограничивать вообще никого ни в чём, типа чистая анархия, что хотите то
и делайте. Но это лицемерие при этом выбирать какую-то лицензию! Если
хочешь полной свободы, так отдавай свою программу в public domain! А
иначе я это считаю обманом. Хочется полной свободы всем, так не
заставляй оставлять их рекламу твоего продукта и твоего упоминания (это
же тоже требование!). Хочется гарантировать свободу
использования/распространения/изучения/модификации -- тогда copyleft
лицензии типа GPL помогут, ибо они для этого и создаются. Вот например
Дэниель Бернштейн хочет всем полной свободы и делает public domain софт.

Я люблю BSD мир ОС и их программы, но это не значит что я люблю и хотя
бы уважаю их подход к выбору лицензий. Даже такое говнище как Linux
умудрилось прососаться везде и всюду, благодаря GPL.


No differences found