Во-первых, я не юрист. Но я изучил много лицензий и понимаю вопросы, касающиеся их.
Во-вторых, я знаю, что это старый вопрос, но я думаю, что он все еще вызывает смятение и беспокойство. Если это не проблема, это должно быть. Выбор лицензии - это большая проблема, которую вы не можете легко изменить в будущем, особенно если в ней участвуют несколько участников.
(L) GPL, к сожалению, был написан с учетом C / C ++. В нем говорится о «Исходном коде», «Коде объекта», «Динамическом связывании», «Статическом связывании», «Компиляторах» и «Интерпретаторе кода объекта». Таким образом, для перевода этого на другие языки, которые не следуют тем же методам компиляции (например, байт-код Java, компиляция точно вовремя Python или интерпретируемая природа Javascript), требуется некоторое предположение и предположения. Когда вы говорите о законе - то есть думаете о возможных судебных делах, в которых спорят две стороны, - отсутствие четкого различия - ПЛОХАЯ вещь.
Стандартный кусок кода, лицензированный по лицензии GPL, довольно прост по замыслу. Любой, кто использует этот код, должен предоставлять свой код всем пользователям, когда они распространяют или продают его. Это вирус GPL, который Ричард Столлман хотел создать и сделал четко и чисто.
Изначально LGPL была попыткой создать «библиотеку», которая не была бы вирусной. Но они все еще хотели, чтобы конечный пользователь мог самостоятельно заменить библиотеку, поэтому существует различие между «статическим» и «динамическим» связыванием - пользователь может переключаться на другую динамически связанную библиотеку, поэтому ему не нужно быть лицензированным как GPL. И статическая ссылка требовала, чтобы пользователь был GPL. Лицензия фактически говорит о «заголовочных файлах», которые понятны в C / C ++, но, очевидно, неясны, когда вы находитесь в мире Java, Python, Javascript и т. Д. Так что L («библиотека») LGPL в лучшем случае грязная.
Это доходит до сути дела. Все, что неясно, ПЛОХО в мире законов. Если я смотрю на создание чего-либо с использованием компонента GPL или LGPL, я хочу быть уверенным, каково мое правовое положение в будущем, если я попаду в суд. Но на сегодняшний день я не уверен, потому что действительно не было хороших судебных дел, создающих правовой прецедент, только интеллектуальные аргументы на подобных форумах.
Здесь исключение Classpath неоценимо. В нем четко указано, что код по лицензии (L) GPL, но все, кто использует этот код, может следовать любой лицензии, какую пожелает. Нет, если, и, или но. Если вы измените основной код (например, исправление ошибок), вам все равно придется отменить эти изменения как часть GPL. Но использование НЕ заражает вас.
С точки зрения бизнеса, я понимаю, почему некоторые не хотят касаться GPL-кода 10-полюсным полюсом. Правовое положение остается неясным, и бизнес может застрять спустя десятилетие, когда юридический прецедент будет наконец установлен. Или они могут застревать в суде годами, пытаясь создать правовой прецедент. Независимо от того, что они просто не хотят рисковать ценой этой битвы. Добавление клаузулы Classpath Exception устраняет юридические вопросы и позволяет избежать любого (серьезного) потенциального судебного разбирательства.
Так что для меня исключение Classpath сильно отличается от LGPL. Это юридически чистый способ нарисовать яркую линию, позволяющую использовать GPL или LGPL исходный код или библиотеки без использования GPL.