По-перше, я не юрист. Але я вивчив багато ліцензій і розумію питання, що стосуються їх.
По-друге, я знаю, що це давнє питання, але я думаю, що це все ще викликає розгубленість і занепокоєння. Якщо це НЕ хвилює, це повинно бути. Вибір ліцензії - велика справа, яку ви не можете банально змінити в дорозі, особливо якщо задіяно декілька учасників.
(L) GPL був написаний на увазі на C / C ++ на жаль, на жаль. Він говорить про "вихідний код", "об'єктний код", "динамічне посилання", "статичне посилання", "компілятори" та "інтерпретатор об'єктного коду". Отже, переклад цього на інші мови, які не дотримуються тих же методів компіляції (наприклад, байт-код Java, компіляція Python як раз у часі чи інтерпретована природа Javascript), потребує певних здогадок та припущень. Коли ви говорите про закон - тобто думаєте про можливі судові справи, коли дві сторони сперечаються - відсутність чіткого розрізнення - це НЕБЕ ЧОГО.
Стандартний фрагмент коду, що має ліцензію GPL, досить простий у намірі. Кожен, хто використовує цей код, очікується, що він видасть свій код усім користувачам, коли вони розповсюджують або продають його. Це вірус GPL, який хотів створити Річард Сталлман, і зробив це чітко і чисто.
Спочатку LGPL намагалася дозволити "бібліотеку", яка не була б вірусною. Але вони все ще хотіли, щоб кінцевий користувач міг самостійно замінити бібліотеку, отже, різниця між "статичним" та "динамічним" зв'язком - користувач міг перейти на іншу динамічно пов'язану бібліотеку, тому не потрібно було б мати ліцензію як GPL. А статичне посилання вимагає від користувача GPL. Ліцензія насправді говорить про "файли заголовків", які зрозумілі в C / C ++, але, очевидно, не зрозуміло, коли ви знаходитесь у світі Java, Python, Javascript тощо. Тож L ("бібліотека") речей LGPL каламутна, в кращому випадку.
Це доходить до суті справи. Нічого незрозумілого - БАД у світі законів. Якщо я дивлюся на те, щоб створити щось із використанням компонента GPL або LGPL, я хочу бути впевненим, яке моє правове становище в майбутньому, якщо я буду в суді. Але на сьогоднішній день я не впевнений, оскільки насправді не було гарних судових справ, що встановлювали юридичний прецедент, лише інтелектуальні аргументи на форумах, як це.
Ось де виняток Classpath є неоціненним. У ньому чітко зазначено, що код за ліцензією - це (L) GPL, але все, що використовує цей код, може слідувати тому, що потрібно. Немає ifs, ands або buts. Якщо ви змінили основний код (наприклад, виправлення помилок), вам все одно доведеться випустити ці зміни як частину GPL. Але використання НЕ заражає вас.
З точки зору бізнесу я розумію, чому деякі не хочуть торкатися GPL-коду 10-дюймовим полюсом. Правове становище є незрозумілим, і бізнес може бути пошкоджений десятиліттям, коли остаточно встановиться правовий прецедент. Або вони можуть застрягти в суді роками, борючись за встановлення правового прецеденту. Незалежно від того, вони просто не хочуть ризикувати витратами на цю битву. Додавання положення про виключення Classpath виключає юридичні питання та уникає будь-якої (серйозної) потенційної судової справи.
Отже, для мене виняток Classpath значно відрізняється від LGPL. Це юридично чистий спосіб намалювати яскраву лінію, що дозволяє не GPL використовувати вихідний код GPL або LGPL або бібліотеки.