Cách quản lý thông báo bản quyền từ những người đóng góp cho dự án được cấp phép BSD


9

Chúng tôi có giấy phép BSD sau trong LICENSEtệp:

Copyright (c) 2006-2016 SymPy Development Team

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

  a. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.
  b. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.
  c. Neither the name of SymPy nor the names of its contributors
     may be used to endorse or promote products derived from this software
     without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

Chúng tôi quản lý kho lưu trữ nguồn bằng git ( https://github.com/sympy/sympy ) và do đó mỗi tác giả sở hữu các bản vá mà họ tạo ra. Sau đó chúng tôi có một AUTHORStệp nơi chúng tôi liệt kê tất cả những người đã đóng góp các bản vá (hiện tại khoảng ~ 450 hoặc hơn). Thông thường các tác giả rẽ nhánh kho lưu trữ trên github và thêm các bản vá như cam kết git.

Một tác giả đã rẽ nhánh kho lưu trữ, nhưng đã thêm tên của mình vào LICENSEtệp như một thông báo bản quyền như sau (Tôi đã thay đổi tên):

Copyright (c) 2006-2015 SymPy Development Team,
              2015-2016 John Doe

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

  a. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.
  b. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.
  c. Neither the name of SymPy nor the names of its contributors
     may be used to endorse or promote products derived from this software
     without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.

Tác giả đã phát triển một bản vá, sửa lỗi. Khắc phục sự cố chỉ bao gồm chạm vào một tệp và xóa 19 ký tự khỏi một dòng và thêm 18 ký tự trên một dòng khác trong cùng một tệp. Nó cũng thêm một bài kiểm tra 5 dòng cho lỗi này vào một tệp kiểm tra. Đó là nó.

Trong những điều kiện nào, chúng tôi được phép áp dụng bản vá của mình một cách hợp pháp (bằng cách chọn cam kết của anh ấy, ví dụ như giữ nguyên ngày tháng và tên tác giả + email trong dữ liệu git meta)?

a) Chúng tôi có cần sửa đổi LICENSEtập tin của mình để thêm thông báo bản quyền của anh ấy không?

b) Hoặc chúng tôi vẫn tuân thủ giấy phép BSD nếu chúng tôi giữ AUTHORStệp cập nhật và giữ kho git theo dõi cụ thể các cam kết được đóng góp bởi tác giả nào.

Điều tôi không thích ở tùy chọn a) là nếu tất cả 450 người đóng góp yêu cầu điều này, thì chúng ta sẽ cần giữ lại nội dung của AUTHORStệp trong LICENSEtệp cùng với Copyrighttừ và năm. Git tốt hơn nhiều trong việc giữ các năm (và thậm chí cả ngày và phút) cũng như dòng nào được sửa đổi bởi mỗi tác giả và làm thế nào. Sau đó, chúng tôi có một LICENSEtệp đơn giản không thay đổi và chúng tôi giữ danh sách các tác giả AUTHORS(và chúng tôi có một tập lệnh giữ cho nó được đồng bộ hóa với danh sách các tác giả từ git).


4
Tôi đang bỏ phiếu để đóng câu hỏi này ngoài chủ đề vì câu hỏi yêu cầu tư vấn pháp lý vượt xa những gì một lập trình viên có thể mong đợi để biết. Bạn nên hỏi một lớp.
Bart van Ingen Schenau

1
hoặc một luật sư ...;)
Erik Eidt

7
Các lập trình viên không mong muốn biết điều này nhưng họ có thể. Sẽ là một ý tưởng tốt hơn để loại bỏ các bình luận về cơ bản nói rằng "bạn nên nói chuyện với một luật sư", đó là một phản ứng được sử dụng quá mức. Các lập trình viên có sự hiểu biết về cấp phép phần mềm, có lẽ nhiều hơn hầu hết mọi luật sư trên thế giới. Phiếu bầu của tôi là để giữ điều này ở đây.
moorepants

2
Sự hiểu biết của tôi là khi ai đó đưa ra yêu cầu kéo tới SymPy, họ đang ngầm cấp phép cho nó theo giấy phép SymPy.
asmeker

2
@asmeker đúng. Câu hỏi của tôi là nếu tác giả không tạo ra một yêu cầu kéo. Tức là trong những điều kiện bạn có thể chọn các bản vá anh đào được đăng vào một ngã ba của kho lưu trữ của bạn, được cấp phép theo cùng một giấy phép, nhưng đã sửa đổi thông báo bản quyền.
Ondřej Čertík

Câu trả lời:


3

Bạn có thể kết hợp bất kỳ mã nào có giấy phép tương thích với nó.

Điều đó nói rằng, trừ khi mã mới được cấp phép cụ thể theo giấy phép tương thích nếu bạn muốn đưa các thay đổi vào cơ sở mã của mình, bạn sẽ tự mở ra khả năng gặp một số khó khăn.

Đặc biệt, trừ khi mã quy định cụ thể rằng các đóng góp mới theo giấy phép tương thích, giấy phép "tất cả các quyền" mặc định được áp dụng cho nó. Kéo mã sẽ là vi phạm bản quyền.

Cũng có khả năng mã mới được cấp phép theo giấy phép tương thích với bạn (và bạn sẽ cần duy trì giấy phép đó cho mã), nhưng không tương thích với nhiều người dùng của bạn. Ví dụ: nếu bạn đang sử dụng mệnh đề BSD 2 và ai đó cấp phép cho các đóng góp của một ngã ba theo mệnh đề BSD 3, bạn có thể kéo mã đó vào mã của mình mà không gặp quá nhiều khó khăn. Tuy nhiên, vì mệnh đề BSD 3 không tương thích với GPL, điều đó sẽ khiến GPL dự án của bạn không tương thích.

Nếu bạn nên quyết định thay đổi từ BSD sang GPL sau đó (ví dụ) và các yêu cầu kéo chỉ định các quyền cần thiết để thay đổi giấy phép như một phần của thỏa thuận cấp phép cộng tác viên, bạn rút mã từ các dự án khác chưa đồng ý CLA có thể khiến bạn đau đầu.

Đó là trường hợp chung ...

Đối với trường hợp cụ thể khi tệp giấy phép thay đổi ... Tôi không biết. Từ cách đọc đơn giản của tệp giấy phép:

Copyright (c) 2006-2015 SymPy Development Team,  
              2015-2016 John Doe

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

a. Phân phối lại mã nguồn phải giữ lại thông báo bản quyền ở trên ,
   danh sách các điều kiện và từ chối trách nhiệm sau đây.

Bit đó dường như chỉ ra rằng nếu bạn muốn kéo những thay đổi đó vào, bạn cũng sẽ cần thay đổi tệp giấy phép của mình.

Thật không may, bạn không có CLA được xác định rõ tại thời điểm này. May mắn thay, tại thời điểm này bạn chỉ có 450 người để hỏi.


Vì vậy, từ điểm đọc "a." Dường như "thông báo bản quyền ở trên" cho mã SymPy ban đầu được John Doe giữ lại và John Doe đang cấp phép cho các đóng góp mới cho ngã ba theo cùng giấy phép nhưng các bổ sung mới có bản quyền cho John Doe.
moorepants

2
@moorepants cho trường hợp này, đó sẽ là trường hợp. Và do đó, nếu SymPy muốn cấp phép cho những người đó trở lại mã của mình, thì cũng cần phải tuân theo tuyên bố đó trong việc cấp phép và giữ lại thông báo bản quyền của John Doe.

Cảm ơn @MichaelT đã trả lời. Tôi cần hỏi 450 người để làm gì? Dường như tất cả những gì tôi cần làm là sao chép giấy phép từ ngã ba (bao gồm cả tuyên bố bản quyền của John Doe) và chỉ cần thêm nó vào NOTICEShồ sơ, nơi chúng tôi sẽ lưu trữ tất cả giấy phép của bên thứ 3.
Ondřej ertík

1
@ OndřejČertík nếu bạn muốn thay đổi giấy phép trên SymPy (điều này hoạt động với giả định rằng mọi người đã gửi yêu cầu kéo đều ổn với việc cấp phép theo BSD) để nói ... GPL, bạn cần có sự cho phép của mọi người đã đóng góp vì chỉ họ mới có thể quyết định cấp lại nó theo giấy phép khác. Apache có một CLA khá liên quan . Nhiều dự án lớn có CLA thuộc loại này hoặc loại khác để đảm bảo dự án nằm trong quyền phân phối mã đã gửi

1
Tôi khuyên bạn nên nhìn vào điểm đầu tiên của bài diễn văn CLA :You grant to "The Company" (Civilized Discourse Construction Kit, Inc.) a non-exclusive, irrevocable, worldwide, royalty-free, sublicenseable, relicenseable, transferable license under all of Your relevant intellectual property rights, to use, copy, prepare derivative works of, distribute and publicly perform and display "The Contributions" on any licensing terms, including without limitation: (a) open source licenses like the GNU General Public (v2.0) license; ...

2

Nếu có mã nguồn được cấp phép BSD và ai đó cho phép thêm các bản vá bổ sung, thì mã nguồn mới này trong repo mới phải bao gồm tệp giấy phép BSD chính xác từ repo gốc và các bản vá mới phải được cấp phép theo giấy phép mới (hoặc thậm chí cùng giấy phép). Vì vậy, ngã ba nên có một hoặc hai giấy phép trong kho lưu trữ. Không thể chấp nhận chỉnh sửa giấy phép gốc, vì điều đó vi phạm các điều khoản cấp phép BSD.

Bây giờ nếu repo ban đầu muốn chọn các bản vá cherry từ ngã ba, thì phải thêm một bản sao giấy phép mới của ngã ba vào repo gốc. Cuối cùng, cả hai kho lưu trữ sẽ có mỗi giấy phép, một bản bao gồm từng bộ bản vá.

SymPy cũng nên yêu cầu những người đóng góp từ bỏ bản quyền của họ cho dự án SymPy. Có khả năng rất có vấn đề khi để những người đóng góp giữ bản quyền của họ cho các bản vá riêng lẻ khi nộp. Một thỏa thuận đóng góp đánh vần điều này là cần thiết để rõ ràng những gì đang xảy ra.


Tất nhiên, nếu không có giấy phép bổ sung trên ngã ba, thì các khoản đóng góp, tốt, không được cấp phép theo bất cứ điều gì khác ngoài giấy phép mặc định tất cả các quyền.

1
Tôi không tin đó là sự thật. Nếu không có giấy phép được chỉ định trên các bản vá mới trong ngã ba, thì có thể có sự mơ hồ. Theo mặc định trong luật pháp Hoa Kỳ, người tạo nội dung sở hữu bản quyền nếu không có gì được nêu. Vì vậy, nếu không có giấy phép bổ sung được liệt kê, có thể người tạo ra các bản vá trong ngã ba sở hữu bản quyền của các bản vá mới. Nhưng điều này là mơ hồ vì người sáng tạo phải để lại giấy phép ban đầu trong ngã ba, do đó có thể áp dụng cho tất cả các bản vá của họ. Mỗi câu lệnh giấy phép tệp giúp xóa bỏ sự mơ hồ đó, nhưng bạn hiếm khi thấy câu lệnh "trên mỗi bản vá".
moorepants
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.