Похоже, что Oracle лицензирует весь свой связанный с Java открытый исходный код под лицензией GPL с исключением classpath . Из того, что я понимаю, это, кажется, позволяет объединить эти библиотеки с вашим собственным кодом в продукты, которые не должны покрываться GPL.
- Как это работает?
- Каковы примеры того, как я могу и не могу использовать эти классы?
- Почему эта новая лицензия использовалась в отличие от LGPL, которая, кажется, допускает почти те же самые вещи, но лучше установлена и понятна?
- Какие отличия от LGPL?
Ответы:
Во-первых, я не юрист. Но я изучил много лицензий и понимаю вопросы, касающиеся их.
Во-вторых, я знаю, что это старый вопрос, но я думаю, что он все еще вызывает смятение и беспокойство. Если это не проблема, это должно быть. Выбор лицензии - это большая проблема, которую вы не можете легко изменить в будущем, особенно если в ней участвуют несколько участников.
(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.
источник
GPL с исключением classpath ведет себя как LGPL в большинстве случаев.
Это означает, что вам нужно иметь возможность отправлять исходный код библиотеки по требованию. Это не значит, что вам нужно иметь возможность отправлять свой собственный источник. Это означает, что вам не нужно искать способ заменить библиотеку, если вы статически ссылаетесь на нее, но вы не можете использовать открытый ключ для предотвращения замены.
источник
Похоже, что лицензии типа «GPL с исключением classpath» могут быть старше, чем LGPL.
Возможно, единственная причина, по которой кто-то все еще использует его, заключается в том, что код GPL нельзя перенести в код LGPL без письменного разрешения всех, кто когда-либо предоставлял код.
источник