Primeiro, eu não sou advogado. Mas estudei muitas licenças e entendi os problemas a respeito delas.
Segundo, sei que essa é uma pergunta antiga, mas acho que ainda é um ponto de confusão e preocupação. Se não é um ponto de preocupação, deveria ser. Escolher uma licença é um grande problema que você não pode mudar trivialmente, especialmente se houver vários colaboradores envolvidos.
(L) A GPL foi escrita com C / C ++ em mente, infelizmente. Ele fala de "Código-fonte", "Código de objeto", "Link dinâmico", "Link estático", "Compiladores" e "Interpretador de código de objeto". Portanto, traduzir isso para outras linguagens que não seguem as mesmas técnicas de compilação (como o bytecode de Java, a compilação just in time do Python ou a natureza interpretada do Javascript) requer algumas suposições e suposições. Quando você está falando sobre a lei - ou seja, pensar em eventuais processos judiciais em que duas partes estão discutindo - não ter uma distinção clara é uma COISA MAU.
Um trecho de código padrão licenciado pela GPL é bem direto em sua intenção. Qualquer pessoa que use esse código deverá liberá-lo para todos os usuários quando o distribuir ou vender. Esse é o vírus GPL que Richard Stallman queria criar e fez de forma clara e limpa.
A LGPL foi originalmente uma tentativa de permitir uma "biblioteca" que não seria viral. Mas eles ainda queriam que o usuário final pudesse substituir a biblioteca por conta própria, daí a distinção entre vinculação "estática" e "dinâmica" - o usuário poderia trocar para uma biblioteca vinculada dinamicamente diferente, para que não precisasse ser licenciado como GPL. E um link estático exigia que o usuário fosse GPL. A licença realmente fala sobre "arquivos de cabeçalho", que são claros em C / C ++, mas obviamente não são claros quando você está nos mundos Java, Python, Javascript, etc. Portanto, o L ("biblioteca") do material LGPL é enlameado, na melhor das hipóteses.
Isso chega ao cerne da questão. Tudo o que não está claro é MAU no mundo das leis. Se estou pensando em criar algo usando o componente GPL ou LGPL, quero ter certeza de qual é minha situação legal no futuro se eu for a tribunal. Mas até hoje não tenho certeza, porque realmente não houve bons processos judiciais estabelecendo precedentes legais, apenas argumentos intelectuais em fóruns como este.
Aqui é onde a exceção do caminho de classe é inestimável. Ele afirma claramente que o código sob a licença é (L) GPL, mas qualquer coisa usando esse código pode seguir a licença que eles desejam. Não quero nenhuma desculpa. Se você alterar o código principal (por exemplo, corrigir bugs), ainda precisará liberar essas alterações como parte da GPL. Mas o uso NÃO o infecta.
Da perspectiva dos negócios, entendo por que alguns não querem tocar no código GPL com um poste de 10 pés. A situação legal não é clara e os negócios podem ser prejudicados uma década depois, quando o precedente legal for finalmente estabelecido. Ou eles podem ficar presos no tribunal por anos lutando para estabelecer o precedente legal. Independentemente, eles simplesmente não querem arriscar o custo dessa batalha. A adição da cláusula de exceção de caminho de classe elimina as questões legais e evita qualquer possível processo judicial (sério).
Então, para mim, a exceção do Classpath é muito diferente da LGPL. É uma maneira legalmente limpa de desenhar uma linha clara, permitindo o uso não-GPL de código-fonte ou bibliotecas GPL ou LGPL.