Thông báo / từ chối bản quyền trong các tệp nguồn


60

Đó là một thực tế phổ biến để đặt các thông báo bản quyền, từ chối trách nhiệm pháp lý khác nhau và đôi khi thậm chí là thỏa thuận cấp phép đầy đủ trong mỗi tệp nguồn của một dự án nguồn mở. Điều này có thực sự cần thiết cho một (1) dự án nguồn mở và (2) dự án nguồn đóng không? Bạn đang cố gắng đạt được hoặc ngăn chặn điều gì bằng cách đưa các thông báo này vào các tệp nguồn?

Tôi hiểu đó là một câu hỏi pháp lý và tôi nghi ngờ chúng ta có thể nhận được câu trả lời hoàn toàn có thẩm quyền ở đây tại các lập trình viên. Nó (nó dành cho lập trình viên, phải không?) Điều thú vị khi nghe là khi bạn đặt nội dung hợp pháp vào các tệp nguồn của mình , có phải vì "mọi người làm điều đó" hay bạn đã nhận được lời khuyên pháp lý? Lý do là gì?

Câu trả lời:


41

Điều này có thực sự cần thiết không

Không. Nó không bắt buộc về mặt pháp lý. (Tôi không phải là luật sư, nhưng tôi đã thấy điều này được nêu bởi một người.)


Nếu bạn đã có một dự án trong đó các tệp riêng lẻ có thể được đưa ra khỏi ngữ cảnh, nó có thể hợp lý - nhưng nó chỉ yêu cầu một vài dòng, để nói điều gì đó như:

Tệp này là một phần của <dự án> được phát hành theo <giấy phép>.
Xem tệp <tên tệp> hoặc đi đến <url> để biết chi tiết giấy phép đầy đủ.


Đối với bất cứ điều gì khác, bạn chỉ cần đặt tệp văn bản LICENSE trong thư mục gốc của dự án và mọi chi tiết / tín dụng / vv có liên quan trong tệp README - nó vẫn có bản quyền (tự động), vì vậy đây chỉ là một câu hỏi về việc có giấy phép rõ ràng trong tập tin readme.


1
+1 vì không đặt toàn bộ bản quyền giấy phép. Tôi chỉ sử dụng một dòng:Copyright YYYY First Last. Subject to the XYZ license.
mk12

1
Rất nhiều công ty muốn có một dòng bản quyền vì họ muốn làm "quản lý giấy phép". Nói cách khác: kiểm tra một cái gì đó GPL'ish đã được sao chép từ internet. Về cơ bản, họ quét mã nguồn cho một dòng bản quyền - đây thực sự chỉ là dòng đầu tiên có chứa "Bản quyền" / "(c)". Vì vậy, dòng đó nên chứa chủ bản quyền (tác giả hoặc công ty) và một gợi ý nếu nó là phần mềm miễn phí hay không. Do đó, @ mk12 đúng về mức tối thiểu sẽ như thế nào. Bởi vì sự thật là -> bất kỳ dòng thứ hai hoặc thứ ba sẽ không bao giờ được biết ở bất kỳ nơi nào khác ngoài mã nguồn.
Guido U. Draheim

12
Tôi muốn google "IANAL" nhưng tôi hơi ngại làm điều đó.
Pieter De Bie

1
@PieterDeBie Viết tắt của "Tôi không phải là luật sư"
Adam Lindberg

Sẽ thật tuyệt nếu đối với <giấy phép> bạn bao gồm số phiên bản. LGPL 2.1 là một lá chắn bảo vệ tốt cho nhà phát triển nguồn mở. GPL 3.0 là một loại virus cố gắng tiêu thụ tất cả.
dùng922020

22

Bạn có thể, có thể hiểu một cách đơn giản là đặt thông báo bản quyền của bạn đề cập đến tệp LICENSE, tuy nhiên không có gì đảm bảo rằng một khi được phát hành, mã của bạn sẽ vẫn là nguyên tử. Trên thực tế, nhiều khả năng các bit và phần của nó sẽ được phối lại trong ít nhất một số dự án khác.

Đây là lý do tại sao điều quan trọng là ít nhất phải có các mục sau trong mọi tệp nguồn:

/* Copyright (C) 1883 Thomas Edison - All Rights Reserved
 * You may use, distribute and modify this code under the
 * terms of the XYZ license, which unfortunately won't be
 * written for another century.
 *
 * You should have received a copy of the XYZ license with
 * this file. If not, please write to: , or visit :
 */

Bạn hoàn thành hai điều bằng cách làm điều này:

  • Bản quyền của bạn được khẳng định cho dù mã của bạn có phân rã và phân tán như thế nào trong tương lai.
  • Bạn làm cho các điều khoản sử dụng, phân phối và sửa đổi nó khá rõ ràng, ngay cả khi ai đó tình cờ chỉ nhận được một phần nhỏ của thư viện mà bạn đã viết.

Nhiều người cũng bao gồm địa chỉ e-mail của họ theo bản quyền, rất hữu ích để nhận các bản vá trong tương lai. Tôi đã nhận được một bản vá vào tháng trước cho mã mà tôi đã viết năm năm trước và đã quên từ lâu. Tất nhiên, điều đó có nghĩa là duy trì một địa chỉ email và đưa ra một chút SPAM.

Nếu bạn thực sự cần phải thực thi giấy phép của mình, điều quan trọng là bên kia không thể nói rằng các điều khoản đó là mơ hồ hoặc thiếu, tất cả đều bị gạt sang một bên.

Ngoài ra, thật thú vị khi xem cách các bit và đoạn mã của bạn tìm đường vào các bit và đoạn mã khác theo thời gian. Hầu hết mọi người chơi công bằng và tôn trọng các điều khoản bản quyền và giấy phép.


2
"các điều khoản của giấy phép XYZ, không may sẽ không được viết trong một thế kỷ nữa." Đã 130 năm trôi qua. : P
Joe Z.

Rất nhiều công ty muốn có một dòng bản quyền vì họ muốn làm "quản lý giấy phép". Nói cách khác: kiểm tra một cái gì đó GPL'ish đã được sao chép từ internet. Về cơ bản, họ quét mã nguồn cho một dòng bản quyền - đây thực sự chỉ là dòng đầu tiên có chứa "Bản quyền" / "(c)". Ví dụ nói rằng đó không phải là phần mềm miễn phí vì nó là "Tất cả các quyền" - ngụ ý rằng phải có một số giấy phép ở vị trí thứ ba, có thể là tệp LICENSE.TXT hoặc giấy thật. Do đó, bạn không cần một văn bản cấp phép soạn sẵn .
Guido U. Draheim

4

Chỉ muốn lưu ý Nguồn mở! = Không có bản quyền.

Nguồn mở dựa vào ai đó yêu cầu bản quyền sau đó chấp nhận một tài liệu pháp lý cụ thể (Giống như GPL) để trao cho người khác quyền đối với mã đó.

Vì vậy, bất cứ điều gì bạn quyết định là phù hợp với mã nguồn đóng cũng phù hợp với mã nguồn mở.


1
Altho có nhiều khả năng một tệp duy nhất sẽ được lấy ở nơi khác từ một dự án nguồn mở hơn là một nguồn đóng, vì vậy có thể các thông báo bản quyền trong phần đầu của các tệp có ý nghĩa hơn trong một dự án nguồn mở ...
James

1
Một giấy phép không "cho đi bản quyền đó". Nó cho phép sử dụng và / hoặc sửa đổi và / hoặc phân phối lại.
Glenn Randers-Pehrson

@ GlennRanders-Pehrson Điểm hay, đã chỉnh sửa.
James

2

Đối với bất kỳ dự án nguồn mở nào

Bạn đang xác định các điều kiện theo đó mã sẽ được sử dụng và phân phối lại (hoặc không, tùy thuộc vào các điều kiện đó).

Ít nhất, một giấy phép có thể trả lời các câu hỏi như:

  • Chiếm đoạt : Ai đó có thể lấy mã và phát triển nó thành một dự án khác không? Một ví dụ điển hình cho hiện tượng như vậy là Google Chrome, dựa trên dự án Chromium nguồn mở.
    • Họ có cần cung cấp cho bạn tín dụng, tìm kiếm sự cho phép, vv ...
  • Sử dụng thương mại: Mã của bạn có thể được sử dụng thương mại, chẳng hạn như trong Photoshop dưới dạng DLL của bên thứ ba không? Nếu vậy làm điều kiện khác nhau áp dụng?
  • Phân phối lại: Có bất kỳ việc sử dụng mã của bạn phải ở trong phần mềm có giấy phép tương tự / giống hệt nhau không? Các giấy phép như GPL yêu cầu điều này được gọi là giấy phép virus (và tôi không biết đó có phải là một thuật ngữ phủ định hay chỉ là một tuyên bố thực tế).

V.v. Điều đó không có nghĩa là một danh sách toàn diện, nó chỉ cho bạn ý tưởng về những câu hỏi mà giấy phép sẽ nêu rõ.


1
Tôi nghĩ rằng tôi hiểu điều đó, nhưng tại sao các thông báo pháp lý nên được đặt trong mỗi tệp nguồn? Hoặc nếu họ không nên thì tại sao mọi người làm điều đó?
mojuba

Âm thanh như một cách an toàn để đảm bảo giấy phép không bị mất nếu tách khỏi mã nguồn.
doppelgreener

-1

Một lý do khác để đặt bản quyền vào mã của bạn là nó cho người khác biết ai đã viết nó. Tôi muốn có thể xem mã đến từ đâu và nó đã tồn tại bao lâu. Thật thú vị và hữu ích khi xem cách mã đã được sử dụng trong các dự án khác. Vì vậy, mặc dù về mặt pháp lý bạn có thể không cần đặt bản quyền của mình vào một cái gì đó, vui lòng thêm nó vì lý do thông tin. --a ngực


1
Điều này không trả lời câu hỏi. Câu hỏi không phải là có nên đặt thông báo bản quyền hay không, mà là có nên đặt toàn bộ văn bản giấy phép trong mỗi tệp nguồn hay không.
Brandin
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.