Cách thay đổi giấy phép của dự án Java từ GNU / GPL sang MIT / BSD / Apache
Tôi đã phát triển một ứng dụng Java được kết nối với MySQL Workbench bằng cách sử dụng mysql-connector-java-8.0.21.jartệp. Khi tôi triển khai dự án và gửi mã nguồn cho khách hàng, anh ấy nói rằng:
- Giấy phép không được có GNU / GPL / Không xác định được cấp phép có nghĩa vụ tiết lộ (có thể có MIT / BSD / Apache mà không có nghĩa vụ tiết lộ)
- Thay đổi giấy phép GNU / GPL thành MIT hoặc BSD
Bây giờ câu hỏi của tôi là thay đổi giấy phép của dự án hoặc cách thay đổi giấy phép của các tệp thư viện như thế nào Mysql connector.jar.
Vì tôi cần giấy phép nguồn mở cho mã nguồn, Vì vậy, tôi cần thay đổi các thư viện giấy phép (được sử dụng trong dự án).
Trả lời
Bạn không thể thay đổi giấy phép mã từ người khác, chẳng hạn như mysql-connector-java. Giấy phép đó được đặt bởi tác giả của thành phần cụ thể đó (công ty Oracle).
Nếu khách hàng của bạn nêu yêu cầu từ trước, bạn có vấn đề. Nhưng nếu không, bạn chỉ có thể từ chối yêu cầu và nói rằng điều này nằm ngoài tầm kiểm soát của bạn.
Tái bút Việc sử dụng thuật ngữ "nghĩa vụ tiết lộ" trong ngữ cảnh này cho thấy rằng khách hàng không hiểu luật. Nhưng nếu khách hàng đặt tên cụ thể GPL như một ví dụ về các giấy phép bị cấm trước khi đồng ý về hợp đồng, thì việc sử dụng sai thuật ngữ "nghĩa vụ tiết lộ" không làm hợp đồng bị vô hiệu.
mysql-connector / j được Oracle cấp phép là GPLv2 nhưng có Ngoại lệ phần mềm nguồn mở . Nếu bạn muốn phân phối phần mềm của mình dưới dạng FOSS , bạn có thể chọn bất kỳ giấy phép nào "được OSI chấp thuận và / hoặc được FSF phân loại là miễn phí". Nếu không, bạn phải sử dụng một thư viện khác hoặc mua giấy phép thương mại từ Oracle.
Và bạn không thể thay đổi giấy phép mysql-connector/jvì bạn không phải là chủ sở hữu bản quyền của nó (Oracle là như vậy).
Có nhiều kiểu giấy phép đang chơi ở đây;
- Kiểu cấp phép kiểu MIT / BSD / Apache
- GPL
- LGPL
- Thương mại
Trình kết nối MySQL, giả sử bạn có nghĩa là Trình kết nối MySQL / J, được cấp phép kép; Bạn có thể chọn giấy phép thương mại (bạn sẽ phải trả tiền cho việc này) hoặc giấy phép LGPL. Cấp phép là việc mà các tác giả của một sản phẩm làm; bạn không thể thay đổi giấy phép. Nếu nhiệm vụ hiện tại yêu cầu một giấy phép nhất định, bạn hỏi các tác giả xem họ có cung cấp nó không và bạn cần trả bao nhiêu để có được điều này; nếu nó quá nhiều so với ví của bạn hoặc giấy phép này không có sẵn, phương án duy nhất của bạn tại thời điểm đó là thay đổi các yêu cầu hoặc xóa hoàn toàn sản phẩm đó khỏi cơ sở mã của bạn và ví dụ: chuyển sang PostgreSQL (một công cụ DB khác), để thí dụ.
Lưu ý rằng LGPL không giống với GPL. Nó giống giấy phép kiểu MIT / BSD / Apache hơn là GPL, vì vậy một cách đơn giản có thể là hỏi luật sư của khách hàng của bạn xem LGPL có được chấp nhận hay không.
Để xem xét trong tương lai, hãy luôn kiểm tra với khách hàng xem họ có loại hạn chế giấy phép nào. Ví dụ: nếu MIT / BSD / Apache là cách duy nhất, thì bạn không thể sử dụng MySQL ở đây. Giai đoạn = Stage. MySQL không được cấp phép như vậy và Oracle (chủ sở hữu của MySQL) không cung cấp nó. Trong trường hợp đó, có thể giấy phép thương mại đã đủ (vì vậy, hãy đảm bảo tính phí khách hàng để tính đến việc bạn sẽ cần phải có giấy phép thương mại). Ngoài ra, hãy lưu ý rằng bạn sẽ cần dành thời gian tìm hiểu về cách sử dụng các công cụ khác nhau (chẳng hạn như PostgreSQL, có giấy phép là kiểu MIT / BSD / Apache) và lập hóa đơn cho phù hợp.
Nếu bạn cần thêm thông tin về việc liệu LGPL của MySQL và MySQL Connector / J có tương thích với nhu cầu của khách hàng hay không hoặc điều gì sẽ xảy ra nếu bạn bỏ qua giấy phép hoặc yêu cầu bằng văn bản của khách hàng, bạn nên hỏi luật sư.
Dựa theo https://www.mysql.com/about/legal/licensing/oem/, bạn có thể tự do sử dụng bất kỳ giấy phép nguồn mở nào đã được phê duyệt cho mã của mình ngay cả khi nó đang sử dụng thư viện GPL'd MySQL.
Giấy phép được sử dụng bởi các phiên bản gần đây của mysql-connector-java được mô tả ở đây: https://oss.oracle.com/licenses/universal-foss-exception/
Đây là phần trích dẫn của tệp LICENSE được cung cấp cùng với gói trình kết nối (tôi nhấn mạnh):
Hướng dẫn sử dụng thông tin cấp phép
Trình kết nối MySQL / J 8.0 __________________________________________________________________
Hướng dẫn sử dụng Thông tin Giấy phép này chứa giấy phép sản phẩm của Oracle và các thông tin cấp phép khác, bao gồm thông tin cấp phép cho phần mềm của bên thứ ba có thể được bao gồm trong bản phân phối MySQL Connector / J 8.0 này. Giới thiệu Cập nhật lần cuối: Tháng 8 năm 2020
Thông tin cấp phép
Đây là bản phát hành MySQL Connector / J 8.0, do nhóm MySQL tại Oracle mang đến cho bạn. Phần mềm này được phát hành theo phiên bản 2 của Giấy phép Công cộng GNU (GPLv2), như được nêu bên dưới, với các quyền bổ sung sau :
Bản phân phối MySQL Connector / J 8.0 này được phân phối với một số phần mềm nhất định được cấp phép theo các điều khoản riêng biệt, như được chỉ định trong một tệp hoặc thành phần cụ thể hoặc trong tài liệu cấp phép. Không giới hạn quyền của bạn theo GPLv2, các tác giả của MySQL theo đây cấp cho bạn một quyền bổ sung để liên kết chương trình và các sản phẩm phái sinh của bạn với phần mềm được cấp phép riêng mà họ đã bao gồm trong chương trình.
Không giới hạn việc cấp các quyền đã nêu ở trên theo GPLv2 và quyền bổ sung đối với phần mềm được cấp phép riêng, Trình kết nối này cũng phải tuân theo Ngoại lệ Phần mềm nguồn mở Toàn cầu, phiên bản 1.0 , một bản sao của nó được sao chép bên dưới và cũng có thể tìm thấy cùng với Câu hỏi thường gặphttp://oss.oracle.com/licenses/universal-foss-exception.
Mua giấy phép thương mại MySQL là một giải pháp thay thế. Nó sẽ cho phép bạn sử dụng giấy phép độc quyền cho mã của riêng bạn và vì vậy bạn có thể tự do giữ nó ở chế độ không xuất bản.
Tất nhiên, vì bạn không sở hữu mã và thư viện MySql nên bạn không có quyền thay đổi giấy phép của chính nó.
Tuyên bố từ chối trách nhiệm: Tôi không phải là luật sư và đây không phải là lời khuyên pháp lý; Tôi không khẳng định rằng những điều trên là chính xác; không đưa ra bất kỳ quyết định kinh doanh nào dựa trên những thứ bạn đọc từ những người lạ trên Internet, kể cả tôi