На сайте GNU.org опубликовано руководство «License Compatibility and Relicensing», составленное Ричардом Столлманом. Документ имеет сугубо практический характер и будет полезен всем разработчикам, использующим Open Source в своих проектах.
Проблема совместимости лицензий становится актуальной, когда разработчики хотят объединить несколько свободных программ или заимствовать код какого-либо приложения. При этом они обязаны соблюдать требования, обусловленные лицензией каждого продукта.
Согласно опубликованному документу, лицензии считаются совместимыми, если есть способ объединить распространяемый под этими лицензиями код при соблюдении каждой из них. Причём, в ряде случаев результат может представлять собой программу, разные части которой используют разные лицензии.
Исходя из этого лицензии разделяются на три группы: слабые, промежуточные и копилефт. Первые не препятствуют использованию кода даже в проприетарных приложениях, тогда как копилефт явно требует использования свободной лицензии в производных продуктах.
С практической точки зрения для разработчика производного продукта лучше всего подходят нестрогие лицензии (BSD, X11, Apache и т. д.). Они даже позволяют использовать код при создании проприетарных продуктов — такие лицензии не позволяют сказать «нет», если один пользователь пытается ограничить свободу других.
Разумеется, все нестрогие лицензии, как правило, совместимы с копилефт. Исключения имеются, но их немного.
С копилефт-лицензиями дело обстоит несколько сложнее — они несовместимы, если не включают в себя явных положений о совместимости. Причём, это не ошибка, а принципиальное требование, вытекающее из концепции копилефта, которая заключается в том, что изменённые и расширенные версии должны иметь ту же самую лицензию, что и исходный продукт. На практике это может привести к тому, что производное приложение должно распространяться как под одной, так и под другой лицензией одновременно.
В документе указываются два пути решения проблемы.
FSF просит разработчиков при лицензировании продуктов использовать формулировки «GNU GPL N и более поздней версии». Таким образом ПО автоматически будет совместимо с любой версией GPL.
Другой подход заключается в том, чтобы в каждом варианте лицензии явно разрешить обновление до будущих версий. Так поступает Mozilla Foundation, и на практике этот метод работает.
FSF призвал разработчиков выбирать именно GNU GPL v.3 или более поздней версии. Именно это позволит сделать свой код совместимым практически со всем свободным ПО и защитить права всех пользователей всех реализаций кода.