Компания Oracle, возможно, нарушает GPL при использовании ядра Linux
11 мая 2014 года
Мэтью Гаррет, известный разработчик ядра Linux и лауреат премии за вклад в развитие свободного ПО, попытался привлечь внимание общественности на возможное нарушение условий лицензии GPL при использовании ядра Linux в продуктах Oracle. Добившись в апелляционном суде признания, что API является объектом интеллектуальной собственности, компания Oracle нарушила статус кво, поэтому компанию следует вывести на чистую воду, разоблачив нарушения GPL, на которые ранее сообщество закрывало глаза.
Речь ведётся о нарушении требования экспорта внутренних компонентов ядра под лицензией GPL. Части внутреннего API ядра, попадающие в категорию EXPORT_SYMBOL_GPL, могут быть использованы только из кода, распространяемого под лицензией GPL. Oracle же широко использует данные вызовы в компонентах DTrace, поставляемых под несовместимой с GPL лицензией CDDL. Поддержка DTrace интегрирована в ядро Unbreakable Linux и реализована не в виде полностью обособленного модуля, а через смешивание кода. При этом в код ядра добавлены прослойки, поставляемые под GPL, но данные прослойки используются только для обеспечения работы модуля DTrace, поставляемого под лицензией CDDL.
Нет однозначного мнения, могут или нет подобные изменения рассматриваться как создание производного продукта, на который распространяются требования GPL. С другой стороны, использование внутренних вызовов ядра, попадающих в список EXPORT_SYMBOL_GPL, автоматически переводит любую надстройку в категорию производной работы, которая должна поставляться под GPL.
Oracle пытается обойти ограничения EXPORT_SYMBOL_GPL через повторный экспорт GPL-вызовов. Например, Oracle создаёт поставляемую под GPL функцию dtrace_gethrtimer(), суть которой сводится к вызову ktime_get(). Функция ktime_get() включена в список EXPORT_SYMBOL_GPL и не может быть вызвана из модуля DTrace, но функция dtrace_gethrtimer() формально не включена в список EXPORT_SYMBOL_GPL, т.е. к ней можно обратиться из модуля под лицензией CDDL.
Легальность создания подобных обёрток, осуществляющих реэкспорт закрытых частей API, вызывает большие подозрения и требует юридической экспертизы. Если в суде удастся доказать, что использование реэкспортированных GPL-функций приводит к созданию производной работы, то Oracle не сможет утверждать, что данное нарушение было случайным. Выходом из сложившейся ситуации могла быть поставка кода DTrace под двойной лицензией GPL+CDDL, но Oracle продолжает поставлять DTrace только под CDDL, не опасаясь исков о нарушении лицензионного соглашения.
Кроме того, возникает резонный вопрос, если Android нарушает интеллектуальную собственность Oracle используя Java API, то и Oracle нарушает интеллектуальную собственность разработчиков ядра Linux, повторяя API в реализации прослойки совместимости с Linux из состава Solaris 10. Т.е. Oracle может использовать в Solaris собственную реализацию частей API, изначально переданных в ядро Linux компанией Google, нарушая таким образом её права.
Примечание: Блог Мэтью Гаррета, а также блоги некоторых других разработчиков открытого ПО, могут быть недоступны на территории РФ, так как уже более года блогоплатформа dreamwidth.org занесена в Реестр запрещенных на территории РФ сайтов.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.