Компания Oracle возможно нарушает GPL при использовании ядра Linux

Мэтью Гаррет, известный разработчик ядра 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 занесена в Реестр запрещенных на территории РФ сайтов.

©  OpenNet