Tôi thấy nó bị trùng lặp một cách không cần thiết khi có nó trong mỗi tệp mã, nhưng tôi thấy nó trên hầu hết các dự án nguồn mở. Tôi có nên làm như vậy không hay chỉ bao gồm một giấy phép duy nhất bên ngoài mã?
Tôi thấy nó bị trùng lặp một cách không cần thiết khi có nó trong mỗi tệp mã, nhưng tôi thấy nó trên hầu hết các dự án nguồn mở. Tôi có nên làm như vậy không hay chỉ bao gồm một giấy phép duy nhất bên ngoài mã?
Câu trả lời:
Xin vui lòng chỉ một cái bên ngoài mã! Tôi không biết về những người khác, nhưng tôi ghét nhìn thấy cùng một thứ trên đầu mỗi tệp.
Tôi nghĩ rằng tôi đã đọc nó một vài lần, chỉ bằng cách page_down-ing qua nó.
evidence for the legal situation
. Perhaps a lawyer can add a link to a court decision
.
EULA là thuật ngữ sai ở đây, vì những người xem mã nguồn thường không phải là người dùng cuối.
Về mặt pháp lý, nó cũng không có gì khác biệt; bản quyền không cần phải được tuyên bố rõ ràng.
Về cơ bản, tất cả những gì bạn đạt được là rủi ro thấp hơn về việc mọi người vô tình vi phạm các điều khoản cấp phép của bạn. Bạn sẽ phải quyết định điều đó quan trọng như thế nào đối với bạn.
Tôi muốn nói rằng thỏa hiệp tốt nhất là đặt một tiêu đề rất ngắn có chứa một liên kết (URL tuyệt đối cũng như tương đối trong dự án) đến văn bản giấy phép đầy đủ vào mỗi tệp mã nguồn. Bằng cách đó, bất kỳ ai quan tâm đến giấy phép đều biết nơi để tìm nó (lý tưởng là những người sẵn sàng trả phí cấp giấy phép lớn; bạn chắc chắn muốn những người đó có thể liên hệ với bạn!)
Không, bạn không phải đặt giấy phép vào mỗi tệp mã nguồn.
Nếu bạn nhìn kỹ hơn, hầu hết các ứng dụng phần mềm nguồn mở cũng không làm được điều đó. Họ đặt một tuyên bố bản quyền ở đầu mỗi tệp và một câu ngắn cho bạn biết tệp đang có giấy phép gì và bạn có thể tìm thấy toàn bộ văn bản của giấy phép ở đâu. Họ thường trỏ bạn đến tệp SAO CHÉP hoặc PHÉP THUẬT chứa toàn bộ văn bản của giấy phép và / hoặc đến một trang web có chứa toàn văn (trong trường hợp tệp SAO CHÉP không còn ở đó nữa).
Giống như Michael Borgwardt đã nói trong câu trả lời của mình, về mặt pháp lý, bạn không cần phải làm điều này. Nhưng nó được khuyến khích đối với mã nguồn mà bạn định phân phối vì mọi người có thể thấy ngay ai có bản quyền và giấy phép là gì.
Nó có thể phụ thuộc vào giấy phép. Các GPL phân biệt giữa preamble
vàlicense
. Nó tuyên bố rõ ràng rằng phần mở đầu (gây khó chịu) phải là một phần của mã :
Tôi có thể bỏ qua phần mở đầu của GPL hoặc hướng dẫn cách sử dụng nó trên các chương trình của riêng bạn để tiết kiệm dung lượng không?
Phần mở đầu và hướng dẫn là những phần không thể thiếu của GNU GPL và không được bỏ qua. Trên thực tế, GPL có bản quyền và giấy phép của nó chỉ cho phép sao chép nguyên văn toàn bộ GPL. (Bạn có thể sử dụng các điều khoản pháp lý để tạo một giấy phép khác nhưng nó sẽ không phải là GNU GPL.) (1)
Nguồn: 1) http://www.gnu.org/licenses/gpl-faq.html#GPLOmitPreamble
Xem thêm http://softwarefreedom.org/resources/2012/ManagingCopyrightInformation.html
Sách điện tử miễn phí từ ifrOSS giải thích và bình luận GPL 2 bằng tiếng Đức. Có một cái khác cho GPL 3
Để có câu trả lời có cơ sở, bạn nên yêu cầu một lời khuyên pháp lý không có trên sx. Nếu bạn không thể tìm được luật sư cho dự án (nguồn mở) của mình, hãy xem mạng lưới pháp lý của FSFE .
[...] attach the following notices to the program.
- những thông báo sau chỉ là một phần nhỏ của giấy phép đầy đủ. safest to attach them to the start of each source file
- an toàn nhất nhưng không bắt buộc. each file should have at least the "copyright" line and a pointer to where the full notice is found.
- yêu cầu duy nhất là dòng bản quyền với một con trỏ đến phần còn lại. Bạn có thể đặt toàn bộ giấy phép vào một tệp riêng biệt.
Tôi nghĩ lý do đằng sau việc đưa nó vào mỗi tệp là một lý do hợp pháp. Nếu thỏa thuận nằm trong mỗi tệp, sẽ không có khả năng ai đó tình cờ gặp một đoạn mã mà không bị lộ giấy phép.
Nó có thể không phải là một cái hay, nhưng tất cả các ông lớn đều sử dụng nó, vì vậy nếu nó chỉ là nỗi đau về thị giác, tôi sẽ tìm một lý do tốt hơn để không làm như vậy.
Nếu bạn đang sử dụng GPL, đây là vấn đề nhiều hơn, nhưng nếu bạn đang sử dụng giấy phép miền công cộng như BSD hoặc MIT, tôi không nghĩ bạn thực sự quan tâm đến những gì mọi người làm với mã. Tôi cho rằng nó phụ thuộc vào mức độ nghiêm ngặt của giấy phép của bạn.
IANAL,
Giả sử bạn đang nói về cấp phép, không phải EULA, bạn có thể đặt giấy phép ở bên ngoài. Điều này hầu như luôn được thực hiện với các giấy phép thực sự dài như GPL. Sẽ là ngớ ngẩn nếu đưa toàn bộ giấy phép GPL vào mọi hồ sơ. Thông thường, bạn sẽ chỉ có một số loại thông báo cho biết bạn có thể tìm thấy giấy phép thực tế ở đâu. Điều này là hoàn toàn hợp pháp. Tuy nhiên, với các giấy phép thực sự ngắn như BSD / Apache / MIT / bất cứ thứ gì, sẽ đơn giản hơn nếu bạn chỉ cần đưa giấy phép vào mọi tệp, vì thông báo cho biết nơi tìm giấy phép sẽ dài như chính giấy phép đó.
Nó phụ thuộc vào những gì giấy phép quy định. GPL, ví dụ, hướng dẫn bạn đặt một thông báo ngắn trong mọi tệp nguồn, bao gồm toàn bộ giấy phép ở đâu đó trong bản phân phối nguồn của bạn và cung cấp bản phân phối nguồn của bạn cho bất kỳ ai nhận được bản sao của bản phân phối nhị phân.
Nếu bạn không đồng ý với điều này và đó là mã CỦA BẠN, bạn có thể tự do chọn giấy phép hợp ý hơn hoặc tạo giấy phép của riêng bạn.
Nếu mã của bạn sẽ được biên dịch nên bạn chỉ đang phân phối một tệp nhị phân thì điều đó thực sự không thành vấn đề. Bởi vì khi bạn tạo một tệp nhị phân, các nhận xét sẽ bị loại bỏ trước khi quá trình biên dịch diễn ra. Nó chỉ quan trọng nếu bạn sẽ phân phối mã nguồn thực tế là mã nguồn mở hoặc mã nguồn đóng. Điều này điển hình quan trọng nếu bạn sẽ phân phối một ứng dụng bằng ngôn ngữ kịch bản không biên dịch.
Bạn không cần nó cho giấy phép, một tệp bên ngoài duy nhất sẽ làm được miễn là nó bao gồm những tệp nào.
Tuy nhiên, đối với Bản quyền, bạn nên có thông báo bản quyền trên mỗi đoạn văn bản.
Những gì tôi làm là đặt một nhận xét hai dòng ở đầu tệp, nêu rõ tên công ty của tôi, ngày sửa đổi cuối cùng và tên của giấy phép mà tệp nguồn có, sau đó ở cuối tệp là một phiên bản ngắn của giấy phép.
Tất nhiên, giấy phép đầy đủ (tất cả chúng trong trường hợp có nhiều giấy phép) luôn được đính kèm trong tệp nguồn và thư mục phát hành.