OpenSSL переходит на новую лицензию, совместимую с GPL


Разработчики криптографической библиотеки OpenSSL объявили о запуске финальной стадии инициативы по смене лицензии на исходные тексты проекта. Вместо собственной лицензии OpenSSL, основанной на тексте устаревшей лицензии Apache 1.0, код предлагается распространять под типовой лицензией Apache 2.0. Всем разработчикам отправлено уведомление с просьбой утвердить предстоящее изменение.

Ключевой причиной смены лицензии является несовместимость старой лицензии с GPL, что создаёт трудности при использовании OpenSSL в проектах с лицензией GPL и требует включения явных исключений в лицензионное соглашение GPL-продуктов. В частности, старая лицензия требует явного упоминания OpenSSL в рекламных материалах при использовании библиотек OpenSSL, а также добавления специального примечания в случае поставки OpenSSL в составе продукта.

Подобные требования вызывают несовместимость с GPL и усложняют жизнь GPL-проектам, использующим OpenSSL. Такие проекты вынуждены применять специфичные лицензионные соглашения, в которых основной текст GPL дополняется пунктом, в котором владельцы имущественных прав на код явно разрешают связывание приложения с библиотекой OpenSSL, указывая, что требования GPL не распространяется на связывание с OpenSSL. Без данного пункта пользователям приложения можно предъявить претензию в нарушении GPL.

Так как имущественные права на код OpenSSL не были переданы одной организации и остались в руках конечных разработчиков, для изменения лицензии потребовалось провести огромную работу по определению всех участников разработки. В итоге было выявлено около 400 индивидуальных разработчиков, внёсших более 31 тысячи изменений. Спустя около полутора лет, ушедших на подготовку к перелицензированию, проект перешёл на стадию согласования изменений с каждым из разработчиков.

Чтобы избежать подобных согласований в будущем проект ввёл в практику подписание лицензионного соглашения CLA (Contributor License Agreement), которое подготовлено в двух вариантах - для индивидуальных разработчиков и для компаний, работники которых занимались улучшением OpenSSL в рамках основной работы. Подписание соглашение обязательно для добавления нового кода в OpenSSL, но при приёме тривиальных патчей сделано исключение - простые патчи принимаются без CLA.

Тем временем, разработчики OpenBSD начали обсуждение возможных проблем с переносом кода из OpenSSL в LibreSSL, в случае смены лицензии. Многие из разработчиков LibreSSL не намерены передавать свои права