Cách sử dụng Giấy phép nguồn mở và những gì bạn giới thiệu cho tôi


8

Tôi có một mã mà tôi muốn chia sẻ, nhưng tôi muốn xuất bản nó bằng giấy phép nguồn mở. Nhưng tôi không biết làm thế nào bạn phải sử dụng giấy phép đó.

Làm thế nào để bạn phải kích hoạt một giấy phép nguồn mở? Chỉ bao gồm văn bản của giấy phép trong tất cả các tập tin? Tôi phải làm gì khác? Tôi có cần mua đúng không? Bao gồm một readme.txt trong tất cả các thư mục? Ý tôi là, tôi phải làm gì nếu tôi muốn mã của mình được bảo vệ bằng thử nghiệm pháp lý của giấy phép?

Câu hỏi thứ hai là giấy phép nào tốt hơn cho các điều kiện này:

  • Tôi không quan tâm mọi người làm gì với mã của tôi, mục đích giáo dục, để kiếm tiền, tôi không bận tâm bất cứ điều gì họ muốn làm với nó.
  • Nhưng tôi muốn mọi người không xóa tên tôi khỏi mã và nếu họ sử dụng mã của tôi buộc họ phải đề cập đến tôi. Nếu họ thay đổi mã của tôi và ai đó yêu cầu những sửa đổi đó, họ sẽ cung cấp mã với các sửa đổi.
  • Nhưng tôi không muốn buộc mọi người xuất bản mã của các ứng dụng của họ, ngay cả khi họ đang sử dụng mã của tôi.

Giấy phép tốt nhất cho mục đích đó là gì?


Tôi nghĩ bạn cần phải rõ ràng hơn về những gì bạn muốn. "Nếu họ thay đổi mã của bạn và ai đó yêu cầu những sửa đổi đó" - bạn có nghĩa là như trong một ứng dụng web, hoặc trong một ứng dụng máy tính để bàn, hoặc cả hai? Điều này thực sự có liên quan đến giấy phép, đủ ngạc nhiên!
Robin Green

cảm ơn về vấn đề này, tôi đã làm rõ trong các bình luận sau này, tôi chỉ muốn rằng nếu ai đó sử dụng mã của tôi, họ có nghĩa vụ phải nói ở bất kỳ nơi nào (về, web, v.v.) rằng mã đó là của tôi. Nhưng tôi không phiền nếu họ không muốn biến proyect của mình thành một dự án nguồn mở chỉ vì đang sử dụng mã của tôi.

Tôi nghĩ rõ ràng, bạn tạo ra một món quà (mã) và mọi người có thể sử dụng món quà đó như một thứ tương tự, họ có thể sử dụng nó ngay cả để kiếm lợi nhuận, và bạn không bận tâm. Nhưng bạn muốn mọi người biết rằng họ đang sử dụng mã của bạn, đó là.

Tôi đã nhận thấy nhiều người ở đây đã thực sự đề nghị sử dụng BSD 4 điều khoản. Về mặt kỹ thuật, giấy phép đó thậm chí không phải là nguồn mở theo OSI. Tôi không đồng ý với quan điểm của các dự án GNU về mọi thứ, nhưng tôi nghĩ rằng bài viết của họ về BSD 4 điều khoản đáng để đọc. tl; dr - Nó dẫn đến hàng ngàn câu quy cho các quảng cáo cho các dự án lớn, như các bản phân phối Linux hoặc BSD.
Nathan2055

Câu trả lời:


13

Đây là một hướng dẫn hữu ích:

http://i.stack.imgur.com/GvOBw.png

Tài liệu tham khảo về các phiên bản PDF và Graffle của sơ đồ trên có sẵn tại blog của Karl Fogel .


1
[-1]. Mặc dù tôi hoàn toàn hiểu rằng, chủ yếu được cho là buồn cười thay vì nhiều thông tin, tôi cũng tin rằng nó không nên chứa khuyết điểm, có thể đánh lừa ai đó trong một vấn đề phức tạp như cấp phép; nhưng nó có chứa những cái. [Xem bình luận tiếp theo]
Dmitry Alexandrov

1
Biểu đồ có tiêu đề 'Giấy phép nguồn mở nào?' và giấy phép BSD 4 điều khoản khét tiếng là một trong những lựa chọn. Nhưng phần mềm theo 4-BSDL không được OSI coi là 'nguồn mở'. Mặc dù vậy, nó được gọi là 'miễn phí' cho FSF, nhưng vẫn không được khuyến khích .
Dmitry Alexandrov

1
'' Creative Commons 'hoàn toàn không phải là giấy phép, đó là một nền tảng, đã xuất bản một loạt các giấy phép khác nhau về cơ bản, thay đổi hình thức cống hiến trong phạm vi công cộng thành' giấy phép quảng cáo miễn phí 'CC-BY-NC-ND, hầu hết trong số đó là Không tự do.
Dmitry Alexandrov

Trong khi đề xuất nền tảng là khi bạn viết một cái gì đó cho cơ sở hạ tầng (chứ không phải chương trình độc lập), bạn nên áp dụng giấy phép được chấp nhận ở đó, tất nhiên, là đúng, phần mềm Perl và Mozilla và không được cấp phép theo Artistic và MPL ​​tương ứng. Perl thuộc Artisic hoặc GPLv1 +, phần mềm Mozilla thuộc MPL hoặc GPLv2 hoặc LGPLv2.1, trong đó 'hoặc' có nghĩa là phân biệt các hạn chế; vì vậy bằng cách chỉ chọn một giấy phép từ danh sách, bạn không tương thích.
Dmitry Alexandrov

5

Sử dụng giấy phép BSD 4 điều khoản gốc .

  • Tôi không quan tâm mọi người làm gì với mã của tôi, mục đích giáo dục, để kiếm tiền, tôi không bận tâm bất cứ điều gì họ muốn làm với nó.

  • Nhưng tôi không muốn buộc mọi người xuất bản mã của các ứng dụng của họ, ngay cả khi họ đang sử dụng mã của tôi.

Giống như hầu hết các giấy phép nguồn mở, nó cho phép người dùng sửa đổi và phân phối lại nguồn. Nó cho phép họ sử dụng nó cho bất kỳ mục đích nào.

  • Nhưng tôi muốn mọi người không xóa tên tôi khỏi mã và nếu họ sử dụng mã của tôi buộc họ phải đề cập đến tôi.

Không giống như hầu hết các giấy phép được OSI hiện đại phê duyệt, giấy phép này có cái gọi là "điều khoản quảng cáo", nghĩa là các tác giả của phần mềm sử dụng thư viện của bạn phải đề cập rằng sản phẩm của họ có chứa mã do bạn phát triển.

Văn bản của mệnh đề:

"Tất cả các tài liệu quảng cáo đề cập đến các tính năng hoặc việc sử dụng phần mềm này phải hiển thị xác nhận sau: Sản phẩm này bao gồm phần mềm được phát triển bởi <organization>."

  • Nếu họ thay đổi mã của tôi và ai đó yêu cầu những sửa đổi đó, họ sẽ cung cấp mã với các sửa đổi.

Đó là loại vấn đề. Chỉ có giấy phép sao chép trái yêu cầu điều đó. Sử dụng giấy phép sao chép trái ngược với các yêu cầu còn lại của bạn.


1
Phiên bản 4 mệnh đề ban đầu không được liệt kê bởi Sáng kiến ​​nguồn mở dưới dạng Giấy phép nguồn mở (xem opensource.org/licenses/bsd-license ). Có đủ sự phổ biến giấy phép và sự không tương thích về giấy phép xung quanh mà không mang theo giấy phép cũ hoặc biến thể.
David Thornley

1
@David: tất nhiên nó không được OSI liệt kê, điều khoản quảng cáo không tương thích với định nghĩa OSI.
vartec

Giấy phép BSD cũ đã bị ngưng vì buộc phải tổng hợp danh sách tên vô tận trong thông báo bản quyền cuối cùng. Giấy phép BSD mới cũng phù hợp (và có lẽ còn hơn thế) trong trường hợp của anh ta: tên tác giả phải được giữ nguyên với mã.
Denis de Bernardy

1
OP nói "Nếu họ thay đổi mã của tôi và ai đó yêu cầu những sửa đổi đó, họ sẽ cung cấp mã với các sửa đổi." BSD không yêu cầu điều đó. Nó không phải là bản sao trái. LGPL có thể tốt hơn.
MarkJ

3

Tôi không phải là một luật sư và sau đây không phải là tư vấn pháp lý, nhưng những gì tôi đã thu thập được về luật bản quyền với tư cách là một lập trình viên.

Nếu bạn là tác giả của một phần mềm, bạn có bản quyền của nó trừ khi có ai đó trả tiền cho bạn để viết nó. Bạn nên nêu bản quyền trong phần mềm hoặc trong một README, theo sau là các điều khoản cấp phép hoặc, nếu sử dụng giấy phép dài dòng như GPL, một con trỏ tới nơi có thể tìm thấy giấy phép. Nếu bây giờ bạn xuất bản phần mềm của mình, nó sẽ được cấp phép. Bạn nên thông báo cho người dùng giấy phép, ví dụ như trong trình cài đặt hoặc trong hướng dẫn.

Loại giấy phép bạn muốn nghe giống như bản sao, nhưng yếu hơn GPL. Hãy xem xét Giấy phép Công cộng GNU Ít hơn (LGPL).


Tôi không tin GPL (L) có một nguyên nhân quy kết sẽ "buộc họ (những người sử dụng mã) phải đề cập đến tôi (tác giả gốc)" như Pedro đã đề cập.

2
@danielkza: Tôi tin rằng bạn không thể xóa thông báo bản quyền một cách hợp pháp khỏi tác phẩm có bản quyền, vì vậy tên của OP không thể bị xóa.
Fred Foo

1
@larsmans: Tôi tin rằng anh ấy muốn tên mình được trích dẫn không phải trong chính mã, mà là trong các khoản tín dụng / về hộp / chân trang / v.v. Tôi có thể đã giải thích sai mặc dù.

Cảm ơn rất nhiều cho câu trả lời. Thông tin rất hữu ích. Đó là như tôi nghĩ, nhưng tôi không chắc chắn. Tôi sẽ thấy một số dự án nguồn mở để xem cách chúng bao gồm văn bản pháp lý.

Tôi nghĩ rằng tôi sẽ đọc hai giấy phép đó, GPL và LGPL, để xem cái gì tốt hơn cho tôi.

2

Quỹ phần mềm miễn phí đã rất thành công trong việc theo đuổi kiện tụng chống lại những người đã vi phạm các điều khoản trong giấy phép nguồn mở của họ. Tôi nhớ một bài báo từ ~ 2006 cho thấy họ là 4 cho 4 tại thời điểm đó; gần đây hơn, họ đã giải quyết các vụ kiện chống lại Cisco, Skype và Verizon, tất cả dẫn đến thanh toán cho FSF. Tuy nhiên, nói chung, vụ kiện chỉ bắt đầu sau khi nhiều lần cố gắng thông báo cho bị cáo về nghĩa vụ của họ đã được thực hiện. Vì vậy, chỉ để tiết kiệm thời gian, yêu cầu người dùng nhấp vào nút 'chấp nhận' trong hộp thoại giấy phép tiêu chuẩn, lưu tệp điều khoản giấy phép trong thư mục 'giấy phép' của riêng mình và bạn nên đặt tất cả.

Theo như giấy phép cụ thể để sử dụng, có vẻ như bạn muốn LGPL, điều này thực hiện mọi thứ bạn yêu cầu ngoại trừ phần quy kết - bạn có thể phải đưa ra một quy định riêng.


Cảm ơn tôi đã đọc văn bản LGPL, nhưng thật nhàm chán khi đọc các văn bản pháp lý;)

1
IIUC LGPL sẽ được sử dụng thay cho GPL khi bạn quan tâm nhiều hơn đến sự phổ biến của thư viện thay vì thư viện của đối thủ cạnh tranh và không quan tâm đến góc độ tự do trong trường hợp này. Ví dụ: nếu bạn đã viết thư viện hình ảnh để cạnh tranh với các thư viện hình ảnh khác, LGPL sẽ cho phép người khác sử dụng thư viện của bạn dễ dàng hơn thư viện đối thủ [độc quyền].
Jeff Welling

2

Tôi không nghĩ có một giấy phép phù hợp chính xác với yêu cầu của bạn. Có vẻ như bạn muốn một số loại hỗn hợp của AGPL và LGPL. Nhưng FSF vẫn chưa có ý định tạo ra một giấy phép như vậy! Bạn có thể xem phản hồi chính thức của họ tại đây: /programming/3330792/why-isnt-there-a-lesser-affero-general-public-license/4419776#4419776


Cảm ơn câu trả lời, tôi đã đoán rằng không có bất kỳ giấy phép nào, nhưng ít nhất tôi đang tìm kiếm sự phù hợp nhất.

Có một số giấy phép buộc mọi người phải xuất bản mã của riêng họ nếu họ đang sử dụng mã của tôi. Điều đó có nghĩa là, bạn phải biến dự án của mình thành một dự án nguồn mở nếu bạn sử dụng một số mã với các giấy phép đó. Tôi không phiền nếu họ không muốn xuất bản mã của họ. Mối quan tâm chính của tôi là ít nhất mọi người bây giờ họ đang sử dụng mã của tôi. Thế là quá đủ cho tôi.

Tôi thực sự không nghĩ ai đó muốn sử dụng mã của tôi trong các dự án của họ;) Chủ yếu là vì chúng là các bài tập thể hiện cách tạo ứng dụng java ba lớp từ đầu bằng cách sử dụng TDD. Tôi muốn chia sẻ mã đó và tôi muốn mọi người sử dụng nó để dạy TDD, nhưng tôi muốn họ có nghĩa vụ phải nói rằng các bài tập mà một ví dụ là của tôi.

1

Làm thế nào để bạn phải kích hoạt một giấy phép nguồn mở? Chỉ bao gồm văn bản của giấy phép trong tất cả các tập tin?

Tôi không biết yêu cầu pháp lý chính xác là gì, nhưng thực tế thông thường là bao gồm một nhận xét tiêu đề nhỏ ở đầu mỗi tệp:

  • nói rằng những người sở hữu bản quyền và
  • nói rằng tệp được bao phủ bởi một giấy phép tương tự và như vậy, cho người đọc biết tên của tệp chứa văn bản của giấy phép và cho họ biết nơi tìm văn bản nếu tệp bị thiếu.

Tôi phải làm gì khác? Tôi có cần mua đúng không?

Không.

Bao gồm một readme.txt trong tất cả các thư mục?

Không. Một tệp README duy nhất trong thư mục gốc của cây thư mục là một ý tưởng tốt, nhưng không bắt buộc.

Ý tôi là, tôi phải làm gì nếu tôi muốn mã của mình được bảo vệ bằng thử nghiệm pháp lý của giấy phép?

Để hoàn toàn chắc chắn, hãy nói chuyện với một luật sư.


Liên quan đến yêu cầu cấp phép của bạn.

(1) Tôi không quan tâm mọi người làm gì với mã của tôi, mục đích giáo dục, để kiếm tiền, tôi không bận tâm bất cứ điều gì họ muốn làm với nó.

Đó là một loại không yêu cầu. Rất ít giấy phép cấm mọi người kiếm tiền, sử dụng trong giáo dục, v.v.

Tuy nhiên "làm những gì họ thích với nó" thực sự mâu thuẫn với một số yêu cầu khác của bạn.

(2) Nếu họ thay đổi mã của tôi và ai đó yêu cầu những sửa đổi đó, họ sẽ cung cấp mã với các sửa đổi.

Yêu cầu họ cung cấp mã nguồn của bất kỳ sửa đổi nào họ thực hiện đều có trong GPL, LGPL, AGPL, nhưng không có trong Apache, BSD và các giấy phép phổ biến khác.

(3) Nhưng tôi muốn mọi người không xóa tên tôi khỏi mã và nếu họ sử dụng mã của tôi buộc họ phải đề cập đến tôi.

Hầu hết các giấy phép yêu cầu phân bổ trong mã để ở lại mã.

Tuy nhiên "buộc họ phải đề cập đến tôi" là khó khăn, và rất ít nếu có giấy phép nào nói điều đó. Thật vậy, vị trí của FSF là một yêu cầu như vậy làm cho mã của bạn không miễn phí ...

(4) Nhưng tôi không muốn buộc mọi người xuất bản mã của các ứng dụng của họ, ngay cả khi họ đang sử dụng mã của tôi.

Vài giấy phép buộc mọi người phải xuất bản mã của ứng dụng của họ như là một điều tất nhiên. Ngay cả những người cấp tiến nhất trong gia đình GPL cũng cho phép bạn sử dụng và sửa đổi phần mềm cho mục đích hoàn toàn riêng tư.

Tuy nhiên, GPL và cộng sự buộc mọi người phải xuất bản nguồn nếu mọi người phân phối ứng dụng dựa trên của bạn. (Các điều kiện chính xác phụ thuộc vào giấy phép. Ví dụ: LGPL cho phép mọi người liên kết mã của họ với mã của bạn mà không buộc họ phải xuất bản mã của họ. Mặt khác, GPL yêu cầu họ xuất bản mã của họ trong các trường hợp đó và AGPL mở rộng mã này sang các khu vực khác .)

Cũng lưu ý rằng, yêu cầu đó (2) và (4) hoàn toàn trái ngược nhau.


Tóm lại, bạn cần có khả năng thể hiện rõ ràng các yêu cầu của bạn đối với giấy phép. Nếu bạn không thể làm điều đó, thì bạn sẽ có rất ít cơ hội tìm kiếm một giấy phép phù hợp với yêu cầu của bạn.

Hoặc có lẽ bạn chỉ nên nói chuyện với một luật sư. (Anh ấy / cô ấy rõ ràng sẽ cần phải hỏi bạn một loạt các câu hỏi để gợi ra những yêu cầu thực sự của bạn là gì.)


0

Bạn có thể sử dụng bất kỳ giấy phép nào bạn muốn (thậm chí là của riêng bạn) cho tác phẩm thuộc về bạn (bạn có bản quyền) điều này thường được thực hiện bằng cách bao gồm một bản sao của giấy phép trong tệp COPYINGcùng với mã nguồn.

Những gì bạn đang tìm kiếm là Giấy phép theo kiểu XFree86 1.1 (Đây là giấy phép không sao chép cho phép (không cần mở nguồn nếu bạn sử dụng nhưng yêu cầu xác nhận) và đáp ứng tất cả các yêu cầu của bạn.

  1. Tài liệu người dùng cuối có kèm theo phân phối lại, nếu có, phải bao gồm xác nhận sau: "Sản phẩm này bao gồm phần mềm được phát triển bởi Dự án XFree86, Inc (http://www.xfree86.org/) và những người đóng góp", trong cùng địa điểm và hình thức như các xác nhận của bên thứ ba khác. Thay phiên, xác nhận này có thể xuất hiện trong chính phần mềm, ở cùng dạng và vị trí như các xác nhận của bên thứ ba khác.

Bạn có thể thay thế tên xfree86 bằng tên của bạn và phân phối nó.

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.