Проект LLVM планирует сменить лицензию
Крис Латнер (Chris Lattner), основатель и главный архитектор LLVM, опубликовал план перевода проекта на новую лицензию. Вместо BSD-подобной лицензии UIUC/NCSA, предлагается перейти на более распространенную и современную лицензию Apache 2.0 c исключениями для бинарных файлов, решающими проблему с включением частей компилятора и runtime-библиотек в состав формируемых исполняемых файлов, а также с исключением для совместимости с GPLv2. План пока опубликован в форме предложения для обсуждения (RFC), тем не менее он составлен после почти года дискуссий и консультаций с юристами и различными заинтересованными лицами.
В качестве основного мотива смены лицензии называется желание обеспечить защиту пользователей и участников разработки от патентных исков, чем и обусловлен выбор лицензии Apache 2.0, которая требует предоставления права на использование патентов, связанных с открываемым кодом, при сохранении общего c BSD характера разрешительных лицензий. Кроме того, ожидается, что переход на лицензию Apache позволит привлечь к работе над проектом новых участников и обеспечить возврат в основной проект внутренних патчей - в настоящее время из-за сложности процессе передачи подпадающих под патенты технологий, некоторые компании, использующие LLVM, ограничивают свою работу с upstream.
Среди других причин смены лицензии также называется устранение раскола в лицензировании между runtime-библиотеками и остальными компонентами компилятора, что мешает обмену кода с runtime (compiler_rt поставляется под лицензиями UIUC/NCSA и MIT, а компилятор только под UIUC/NCSA). Переход на Apache 2.0 позволит использовать единую лицензию для runtime и компилятора. Преимуществом лицензии Apache 2.0 также является односторонняя совместимость с лицензией GPLv3, позволяющая использовать код под лицензией Apache 2.0 в проектах под лицензией GPLv3.
Несовместимость с GPLv2 планируется преодолеть через добавление специального исключения, позволяющего отбросить некоторые секции лицензии Apache 2.0 при использовании кода в приложениях под лицензией GPLv2, в случае возникновения лицензионного конфликта или судебных разбирательств. Исключение действует только для комбинированных продуктов, сочетающих код LLVM с кодом под лицензией GPLv2. В целом, данное исключение добавлено в качестве перестраховки, так как точка в спорах о совместимости Apache 2.0 и GPLv2 еще не поставлена: в суде данный вопрос не подтвержден, а разные юристы высказывают мнения как за, так и против совместимости.