Có phải giấy phép nguồn mở MIT yêu cầu các dẫn xuất công việc phải được công khai (theo giấy phép MIT) không?


9

Tôi đang tìm kiếm một giấy phép nguồn mở cho một thư viện mà tôi muốn xuất bản. Lý tưởng nhất, người ta nên được phép sử dụng thư viện này trong các ứng dụng thương mại hoặc miễn phí mà không phải trả phí cho tôi, nhưng nếu bất kỳ tác phẩm phái sinh nào từ thư viện được tạo ra (ví dụ như bất kỳ cải tiến nào của thư viện), thì nó sẽ được cung cấp cho mọi người theo đó cùng giấy phép.

Nói cách khác, tôi muốn đưa ra đạo đức sau: "Bạn được hưởng lợi từ công việc này miễn phí và nếu bạn cải thiện nó, tôi cũng có thể hưởng lợi từ sự cải thiện của bạn miễn phí". Đó là một loại giấy phép copyleft tôi đang tìm kiếm.

Giấy phép MIT trông giống như một giải pháp khả thi, nhưng tôi không rõ liệu các tác phẩm phái sinh của mã được bao phủ bởi giấy phép này PHẢI được cung cấp CÔNG CỘNG cho mọi người hay không. Bất cứ ai có thể làm rõ / xác nhận điều này? Nếu có một giấy phép nguồn mở thích hợp hơn đáp ứng nhu cầu của tôi, tôi cũng quan tâm. Cảm ơn.


Một cuộc thảo luận nhỏ cao cấp hơn là ở đây: programmers.stackexchange.com/questions/12394/...
Dipan Mehta

Câu trả lời:


9

Giấy phép MIT không yêu cầu các tác phẩm phái sinh phải được mở nguồn. Bạn đang tìm kiếm GPL .

GPL cấp cho người nhận chương trình máy tính các quyền của Định nghĩa phần mềm miễn phí và sử dụng copyleft để đảm bảo các quyền tự do được bảo tồn bất cứ khi nào công việc được phân phối, ngay cả khi công việc được thay đổi hoặc thêm vào. GPL là giấy phép copyleft, có nghĩa là các tác phẩm phái sinh chỉ có thể được phân phối theo cùng điều khoản giấy phép ...


1
GPL buộc người dùng phải xuất bản tác phẩm phái sinh theo GPL đang bị hạn chế quá nhiều. Tôi chỉ muốn sửa đổi thư viện của tôi để có sẵn. Có nên sử dụng LGPL?
Jérôme Verstrynge

8
Trong trường hợp đó, yep - LGPL phù hợp hơn.
Ant

Lưu ý rằng kích hoạt GPL (L) chỉ khi phân phối lại. Người dùng cuối tạo ra tác phẩm phái sinh chỉ để sử dụng riêng không bị ràng buộc bởi (L) nghĩa vụ GPL. Tức là nói đúng đây không phải là một câu trả lời cho câu hỏi như phrased.
MSalters

7
@MSalters: Tôi nghĩ rằng gần như không thể biết rằng ai đó đã lấy được thứ gì đó từ mã của bạn trừ khi họ xuất bản nó dưới một hình thức nào đó, khiến vấn đề đó phần nào được khắc phục.
Kiến

6

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.

Bạn có thể giải thích lý do tại sao bạn cảm thấy MPL phù hợp với tiêu chí mà OP đang tìm kiếm không?
maple_shaft

'Giấy phép kép' có giống như 'nếu bạn sử dụng phần mềm này trong sản phẩm GPL, phần mềm này được cấp phép cho bạn theo GPL, khác, theo MPL'? Có dự án nào làm một việc như vậy không?
9000

@ 9000 Theo Câu hỏi thường gặp tại GNU , mã được bao phủ bởi cả MPL và GNU. Đoạn thứ hai hơi lạ và tôi không hiểu lắm.
koppor

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.