Câu trả lời ngắn
Một sự kết hợp giữa Giấy phép Công cộng Eclipse và LGPL đảm bảo chính xác những gì bạn muốn: Sửa đổi mã của bạn phải được cung cấp, nhưng sử dụng mã trong một sản phẩm lớn hơn không buộc sản phẩm lớn hơn phải được cấp phép lại. Sự kết hợp là cần thiết để cho phép mã được sử dụng trong cả các dự án GPL và không GPL.
Đây là một cách mà các dự án như JGraphT đã làm. Họ đã phát hành lại dự án của họ theo EPL và LGPL. Động lực và thủ tục được mô tả trong wiki của họ .
Câu trả lời dài
Tôi nghĩ, Giấy phép Công cộng Mozilla ( MPL ) hoặc Giấy phép Công cộng Eclipse ( EPL ) là giấy phép mà bạn đang tìm kiếm, bởi vì "nếu có bất kỳ công việc phái sinh nào từ thư viện được tạo ra (ví dụ như cải thiện thư viện), thì đó là [IS ] được cung cấp cho mọi người theo cùng một giấy phép. "
Giấy phép MPL và EPL nằm giữa GPL và MIT.
MIT cho phép người dùng thực hiện mọi thứ với nó, bao gồm sửa đổi, bán và không trả lại mã đã sửa đổi cho cộng đồng.
GPL buộc người dùng phải cung cấp tất cả mã cho cộng đồng, ngay cả khi thư viện của bạn chỉ chiếm 1% toàn bộ sản phẩm.
LGPL buộc người dùng phải từ bỏ việc sửa đổi phần LGPL của mã.
MPL và EPL tương tự như LGPL: Nó cũng buộc người dùng phải cung cấp nguồn sửa đổi. "Nguồn được sửa đổi" chỉ bao gồm một phần của mã được bao phủ bởi MPL- / EPL. Điều đó có nghĩa là, người dùng có thể xây dựng một sản phẩm mới ra khỏi thư viện của bạn. Nếu anh ta sửa đổi phần MPL- / EPL, anh ta phải xuất bản nó. Những điều mới của anh ta không cần phải được công bố.
Tôi cảm thấy MPL / EPL phù hợp hơn, vì LGPL nói rõ ràng về "thư viện" và MPL chỉ nói về "Phần mềm được bảo hiểm" (phạm vi rộng hơn).
Tuy nhiên, việc chọn EPL gây rắc rối với việc kết hợp phần mềm với phần mềm GPL: EPL không tương thích với GPL . Đây không phải là trường hợp nếu bạn chỉ sử dụng MPL .
Nếu bạn muốn đảm bảo rằng mã của bạn có thể được sử dụng trong cả hai dự án GPL và không GPL, hãy cấp phép kép cho mã theo LGPL và EPL như được mô tả trong câu trả lời ngắn.
Ví dụ
- Báo cáo
- đăng lại
qooxdoo . Họ đang lên kế hoạch "đơn giản hóa và hiện đại hóa các điều khoản cấp phép của qooxdoo" và do đó họ chuyển từ cấp phép kép sang MIT.