Trước hết, tôi không phải là một luật sư. Nhưng tôi đã nghiên cứu nhiều giấy phép và hiểu các vấn đề liên quan đến chúng.
Thứ hai, tôi biết đây là một câu hỏi cũ, nhưng tôi nghĩ nó vẫn là một điểm gây nhầm lẫn và quan tâm. Nếu đó không phải là một điểm đáng quan tâm, thì nó nên như vậy. Chọn một giấy phép là một vấn đề lớn mà bạn không thể thay đổi một cách tầm thường, đặc biệt là nếu có nhiều người đóng góp.
(L) GPL đã được viết với C / C ++ trong tâm trí, thật không may. Nó nói về "Mã nguồn", "Mã đối tượng", "Liên kết động", "Liên kết tĩnh", "Trình biên dịch" và "Trình thông dịch mã đối tượng". Vì vậy, việc dịch ngôn ngữ này cho các ngôn ngữ khác không tuân theo các kỹ thuật biên dịch tương tự (chẳng hạn như mã byte của Java, Python chỉ trong thời gian biên dịch hoặc bản chất diễn giải của Javascript) đòi hỏi một số giả định và giả định. Khi bạn đang nói về luật pháp - tức là suy nghĩ về các vụ kiện cuối cùng của tòa án trong đó hai bên đang tranh cãi - không có sự phân biệt rõ ràng là một điều TUYỆT VỜI.
Một đoạn mã được cấp phép GPL tiêu chuẩn khá đơn giản trong ý định. Bất cứ ai sử dụng mã đó đều được dự kiến sẽ phát hành mã của họ cho tất cả người dùng khi họ phân phối hoặc bán nó. Đó là virus GPL mà Richard Stallman muốn tạo ra và làm rõ ràng và sạch sẽ.
LGPL ban đầu là một nỗ lực cho phép một "thư viện" không bị virus. Nhưng họ vẫn muốn người dùng cuối có thể tự thay thế thư viện, do đó, sự khác biệt giữa liên kết "tĩnh" và "động" - người dùng có thể trao đổi sang thư viện được liên kết động khác, do đó không cần phải được cấp phép như GPL. Và một liên kết tĩnh yêu cầu người dùng phải là GPL. Giấy phép thực sự nói về "các tệp tiêu đề", rõ ràng trong C / C ++ nhưng rõ ràng là không rõ ràng khi bạn ở trong thế giới Java, Python, Javascript, v.v. Vì vậy, L ("thư viện") của công cụ LGPL là bùn, tốt nhất.
Điều này đi đến mấu chốt của vấn đề. Bất cứ điều gì không rõ ràng là BAD trong thế giới của pháp luật. Nếu tôi đang xem xét việc xây dựng một cái gì đó bằng cách sử dụng thành phần GPL hoặc LGPL, tôi muốn chắc chắn vị trí pháp lý của mình trong tương lai nếu tôi ra tòa. Nhưng cho đến hôm nay, tôi không chắc chắn bởi vì thực sự chưa có vụ kiện nào tốt ở tòa án thành lập tiền lệ pháp lý, chỉ có những tranh luận về trí tuệ trên các diễn đàn như thế này.
Đây là nơi Ngoại lệ Classpath là vô giá. Nó nêu rõ rằng mã theo giấy phép là (L) GPL, nhưng bất cứ điều gì sử dụng mã đó đều có thể tuân theo bất kỳ giấy phép nào họ muốn. Không IFS, ands, hoặc buts. Nếu bạn thay đổi mã lõi (ví dụ: sửa lỗi), bạn vẫn phải phát hành những thay đổi đó như một phần của GPL. Nhưng sử dụng KHÔNG lây nhiễm cho bạn.
Từ góc độ kinh doanh, tôi hiểu tại sao một số người không muốn chạm vào mã GPL với cực 10 '. Vị thế pháp lý không rõ ràng và doanh nghiệp có thể bị kéo dài một thập kỷ khi tiền lệ pháp lý cuối cùng được thiết lập. Hoặc họ có thể bị mắc kẹt trong tòa án trong nhiều năm đấu tranh để thiết lập tiền lệ pháp lý. Bất kể họ chỉ không muốn mạo hiểm chi phí của trận chiến đó. Thêm điều khoản Classpath Exception sẽ loại bỏ các câu hỏi pháp lý và tránh mọi trường hợp tòa án tiềm năng (nghiêm trọng).
Vì vậy, với tôi, Classpath Exception khác nhiều so với LGPL. Đây là một cách rõ ràng về mặt pháp lý để vẽ một đường sáng cho phép không sử dụng GPL hoặc mã nguồn GPL hoặc LGPL.