Оценка аномалий при выборе лицензий в проектах на GitHub
Аарон Вильямсон (Aaron Williamson) из правозащитной организации Software Freedom Law Center выступил на проходящей в Сан-Франциско конференции Linux Collaboration Summit с докладом, посвящённом проблеме размещения кода на GitHub без явного указания лицензии, что делает данный код формально недоступным для использования в других проектах, так как без указания лицензии код по умолчанию является собственническим и при его использовании требуется получение личного согласия автора. Изначально данная проблема активно обсуждалась в конце прошлого года по инициативе Саймона Фиппса (Simon Phipps), президента организации Open Source Initiative (OSI). Аарон попытался собрать более конкретную статистику по использованию различных лицензией проектами на GitHub. В ходе исследования было проанализировано содержимое 1 692 135 репозиториев на GitHub. В итоге было выявлено, что 14.9% проектов разместили текст с лицензией в корневой директории с кодом, 28% проектов упомянули об используемой лицензии в файле README, но пренебрегли рекомендуемым методом размещения лицензии в файле LICENSE или COPYING. 57.1% проектов размещены без указания лицензии.
При рассмотрении типов открытых лицензий Аарон обнаружил, что разработчики отдают предпочтение либеральным лицензиям, не обязывающим открывать код производных работ, которые на GitHub опережают по популярности копилефт лицензии, такие как GPL. В частности, с большим перевесом лидирует лицензия MIT, на втором месте по популярности лицензия BSD, на третьем и четвёртом GPLv2 и GPLv3, на пятом лицензия Apache 2.0. В сумме под различными версиями лицензий GPL и LGPL размещена 61 тысяча проектов, в то время как проектов под лицензиями MIT, BSD, or Apache более чем в два раза больше.
Ещё одним фактом, всплывшим в результате исследования является наличие проектов с неявными или ошибочными лицензиями. Например, многие проекты упоминают об использовании лицензии Ruby, но не детализируют о какой именно редакции ведётся речь. В процессе эволюции используемая языком Ruby лицензия претерпела изменения, поэтому непонятно, какой набор требований предъявляют данные проектам. Кроме того, встречаются проекты с противоречивыми лицензиями. Например, указана лицензия GPL, но добавлен пункт запрещающий использование кода в коммерческих целях, что противоречит требованиям GPL.
В качестве одной из гипотез наблюдаемого и другими исследователями роста популярности либеральных лицензий называется желание молодых разработчиков пойти наперекор наблюдаемомой в индустрии собственнической культуры, требующей получения разрешения на каждый шаг. В итоге, разработчики стремятся избегать любых ограничений и позволяют другим разработчикам применять их код так, как им заблагорассудится. Подобное желание предоставить полную свободу в использовании кода также объясняет обилие проектов без указания лицензий, авторы подобных проектов полагают, что не указав лицензию передают код в общественное достояние.
Если раньше лицензия выбиралась на основании примера Linux и проектов Фонда СПО, то сейчас сообщество меняется и становится более раздробленным. Многие молодые разработчики рассматривают как основной пример для подражания не GNU/Linux, а Web-проекты, в которых исторически сложился иной подход в предоставлении свободы неограниченного использования кода. Анализ предпочтений в выборе языка программирования подтверждает данный тезис — 21% всех проектов на GitHub написаны на языке JavaScript, а 12% на языке Ruby.
Ричард Фонтана (Richard Fontana), один из трёх ключевых авторов лицензии GPLv3, не согласен с данной гипотезой, отметив, что до появления GitHub и экспансии web-технологий в SourceForge.net также наблюдалось обилие проектов без указания информации о лицензии, а если углубиться в более далёкое прошлое, то в Usenet-конференциях публикация кода без указания лицензии также была обычной практикой. Тем не менее, сегодняшние реалии таковы, что открыть неправильно лицензированный код не лучше, чем вообще не публиковать данный код.
В качестве одной из вариантов решения проблемы предлагалось добавить форму выбора лицензии при создании новых проектов на GitHub, но позиция GitHub сводится к оставлению по умолчанию всех прав на код за его авторами, так как GitHub не хочет, чтобы пользователи необдуманно отказывались от своих прав. В связи с этим наиболее реалистичным выглядит вариант, когда заинтересованные в использовании кода разработчики отправляют авторам проекта предложение указать лицензию на код, например, через заведение сообщения об ошибке.
© OpenNet