Có phải cấp phép nguồn mở mã của tôi giới hạn tôi sau này?


29

Giả sử tôi phát triển một thư viện hữu ích và quyết định xuất bản nó dưới dạng nguồn mở. Một thời gian sau tôi có một nhu cầu kinh doanh để làm một cái gì đó không tuân thủ giấy phép nguồn mở. Tôi có được phép làm điều đó không?

Làm cách nào để xuất bản phần mềm theo cách tôi giữ quyền sở hữu và không chặn bản thân sử dụng thư viện trong tương lai theo bất kỳ cách nào?

Hãy nhớ rằng ít nhất trên lý thuyết, các nhà phát triển khác có thể quyết định đóng góp cho dự án nguồn mở của tôi. Tôi có thể chỉ định trong giấy phép mà tôi với tư cách là nhà phát triển ban đầu cũng có quyền sở hữu các đóng góp của họ không? Đừng hiểu sai ý tôi ở đây, tôi không cố gắng trở nên xấu xa và có quyền sở hữu công việc của người khác - tôi chỉ muốn giữ quyền sở hữu của mình và nếu ai đó đăng một lỗi quan trọng, tôi có thể không thể sử dụng mã gốc trừ khi Tôi sử dụng công việc của mình là tốt.


6
Phát hành theo một giấy phép cũng không ngăn cản bạn phát hành theo người khác - sau tất cả, bạn vẫn sở hữu mã. Mã nguồn được cấp phép kép (hoặc tri- hoặc nhiều hơn) mọi lúc.
Lưu ý đến bản thân - nghĩ về một cái tên

Câu trả lời:


44

Bạn luôn giữ quyền sở hữu theo giấy phép nguồn mở. Công việc bạn tạo là tài sản của bạn và bạn có thể làm bất cứ điều gì bạn muốn với nó, (trong giới hạn pháp lý, tất nhiên), bao gồm cho phép người khác sử dụng nó theo các điều khoản của giấy phép nguồn mở. Nếu bạn muốn sử dụng nó cho một dự án độc quyền, bạn có thể làm như vậy, trừ khi bạn đã hoàn toàn chuyển giao quyền cho người khác bằng hợp đồng. Nhưng đây không phải là những gì giấy phép nguồn mở làm. Họ đang chia sẻ sự hữu ích, không phải từ bỏ quyền sở hữu.

Mọi thứ có được một chút nhãn dán một khi những người khác bắt đầu đóng góp. Sau đó, đó là công việc của họ, không phải của bạn và bạn cần phải có sự cho phép của họ. Một điều bạn có thể làm là xuất bản thư viện của bạn theo giấy phép kép. Đó là những gì Sam Lantinga, người sáng tạo và duy trì chính của SDL , làm. Vì Apple không thích các thư viện liên kết động cho iOS và việc tuân thủ LGPL trong một ứng dụng được liên kết tĩnh có nhiều rắc rối hơn giá trị của nó, ông đã xuất bản SDL theo cả LGPL và giấy phép thương mại cho các ứng dụng iPhone tĩnh. Khi bất cứ ai gửi một bản vá, anh ta yêu cầu họ cho phép triển khai bản vá của họ trong thư viện theo cả hai giấy phép và nếu họ không thích điều đó, anh ta sẽ không thêm nó vào cơ sở mã.

EDIT: Ví dụ của tôi không còn chính xác. Một thời gian trước Sam đã thay đổi mô hình (không rõ tại sao; có lẽ anh ta đã cảm thấy mệt mỏi với những rắc rối về quản trị) và bây giờ cấp phép cho SDL theo giấy phép kiểu zlib rất dễ dãi. Nhưng anh ấy đã từng làm theo cách này.


1
+1 đặc biệt là cho thấy cách xử lý các đóng góp từ các tác giả khác.
Frank Shearar

5

Tôi không phải là một luật sư và đây không phải là tư vấn pháp lý. Nếu bạn cần đảm bảo pháp lý, thuê một luật sư.

Bạn hoàn toàn có thể cấp phép kép cho phần mềm của mình - Trolltech đã làm điều đó trong nhiều năm với Qt và Linden Lab đã làm điều đó với ứng dụng khách SecondLife.

Bạn có thể sử dụng bất kỳ giấy phép nào bạn thích. Một số giấy phép tương thích với các môi trường thương mại khép kín, chẳng hạn như giấy phép Mozilla MPL, MIT và BSD và (tôi tin) CDDL của Sun và giấy phép Apache.

Tuy nhiên, nếu bạn cần linh hoạt để phát hành phần mềm của mình cả dưới dạng dự án nguồn mở và sản phẩm nguồn đóng, bạn hoàn toàn được phép làm điều đó như tác giả ban đầu. Vấn đề duy nhất là vấn đề đóng góp của người dùng. Bạn không thể kết hợp sự đóng góp của người khác vào phiên bản phần mềm thương mại của mình trừ khi họ phát hành Bản quyền hợp pháp cho bạn. GNU làm điều này vì lý do duy nhất là họ sẽ cập nhật giấy phép của họ trong tương lai.

Xin lưu ý rằng người dùng và đặc biệt là những người đóng góp có thể sẽ không thích điều này, vì vậy nó sẽ ảnh hưởng đến cộng đồng xung quanh dự án của bạn, có thể là bất lợi.

Một lần nữa, tham khảo ý kiến ​​một luật sư để biết chi tiết.


MIT, hay còn gọi là giấy phép 'làm bất cứ điều gì bạn muốn'.
Evan Plaice

2

Tôi cũng không phải là luật sư, nhưng ...

Ngoài các giấy phép hạn chế (sẽ buộc bạn phải mở Nguồn cho từng dự án sử dụng chúng) như GPL, còn có các hạn chế (có nghĩa là bạn có thể sử dụng phần mềm đó trong một dự án thương mại) như Giấy phép GPL hoặc Giấy phép Apache (2.0) ?). Vì vậy, có lẽ bạn chỉ có thể phát hành phần mềm của mình theo các điều khoản không hạn chế.


2
GPL không thay đổi quyền sở hữu mã. Nếu tôi xuất bản mã trên GPL, nó áp dụng cho những người khác sử dụng mã - tôi có bất kỳ quyền nào tôi thích và tôi có thể làm bất cứ điều gì tôi muốn (tuy nhiên luật không hoạt động lạc hậu, tôi không thể giới hạn việc sử dụng những người sử dụng phần mềm trên GPL).
Maciej Piechotka

2
Ý tôi muốn nói là hạn chế, GPL buộc người dùng thư viện của bạn phát hành phần mềm của họ theo giấy phép tương thích GPL, trong khi các giấy phép như L-GPL, Apache, ... (BSD?) Thì không. Bây giờ, tôi không chắc chắn rằng nếu bạn GPL-ed mã của bạn và ai đó cam kết thay đổi mã đó, thì bạn có thể chỉ cần phát hành nó một cách thương mại như thể không có gì xảy ra. Tôi nghĩ rằng bạn cần phải loại bỏ các bổ sung trước tiên ... Nhưng nếu thư viện / khung được cấp phép L-GPL, bạn có thể sử dụng nó trong các ứng dụng thương mại giống như bất kỳ ai khác, đó là điều chắc chắn. Tôi hy vọng nó có ý nghĩa.
Paweł Dyda

Đây chính xác là những gì tôi làm khi tôi viết một thư viện. Việc phát hành thư viện thương mại không có ý nghĩa gì, thông thường đó là ứng dụng người dùng cuối sẽ được phát hành theo cách đó và nếu đó là giấy phép không hạn chế, tôi có thể sử dụng thư viện trong dự án của mình. Và nó thậm chí không quan trọng nếu tôi viết nó hoặc người khác.
Goran Jovic

@Goran, bạn có thể sử dụng thư viện trong dự án của riêng bạn cho dù nó thuộc giấy phép nào . Đó là thư viện của bạn và dự án của bạn: giấy phép áp dụng cho người khác, không áp dụng cho bạn.
TRiG
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.