Bạn có thể thay đổi mã được phân phối theo giấy phép MIT và phân phối lại theo giấy phép GPL không? [đóng cửa]


57

Có thể thay đổi mã của plugin Chili , phiên bản mới nhất được phát hành vào tháng 7 năm 2008 và được cấp phép theo giấy phép MIT, sau đó cấp phép cho nó theo GPL?

Theo tôi có thể thấy, không có hạn chế nào về mã mới được cấp phép theo cùng một giấy phép. Là nó thực sự như vậy, hoặc có một số lượng thay đổi tối thiểu?

Trong trường hợp của tôi, tôi sẽ thay đổi plugin jQuery theo mã Javascript thông thường được thực thi trong CMS. Điều này về cơ bản có nghĩa là, trong số những thứ khác:

  • Mã sẽ không sử dụng không gian tên "ChiliBook".
  • Hàm sẽ không được gọi dưới dạng $($element).chili(), nhưng GlobalObject.ChiliHighlighter.process($jquery_element), trong đó "GlobalObject" là một đối tượng JavaScript được sử dụng từ CMS.
  • Mã này sẽ cho phép các mô-đun khác thay đổi GlobalObject.ChiliHighlighterđối tượng để thêm các chức năng được gọi tùy ý từ GlobalObject.ChiliHighlighter.process()khi chúng được xác định.

Thay vào đó, vì kho lưu trữ tôi đang sử dụng cho phép tôi bao gồm mã không được cấp phép theo GPL 2 hoặc giấy phép cao hơn khi mã không được duy trì nữa, liệu plugin có thể được coi là không được duy trì nữa không, vì phiên bản cuối cùng của nó đã được phát hành ba năm trước?


2
Nếu bạn thực sự muốn có một câu trả lời có thẩm quyền, bạn nên tham khảo ý kiến ​​một luật sư (trong phạm vi quyền hạn có liên quan, ví dụ câu trả lời có thể khác ở Ý so với ở Hoa Kỳ)
MarkJ

Câu trả lời:


59

Đó là kỹ thuật hợp pháp.

Giấy phép MIT (Người nước ngoài) đặt ra một vài hạn chế đối với bạn. Đây là một tập hợp con của giấy phép GPL. Do đó, nếu bạn cấp lại mã theo GPL giữ thông báo của MIT, thì bạn đã hài lòng với các điều khoản của giấy phép MIT và có thể phân phối lại mã một cách hợp pháp.

Lưu ý rằng bạn không thể yêu cầu quyền sở hữu bản quyền; bạn sẽ phải thừa nhận bản quyền gốc.

[sửa] Một số người dường như không hiểu cách F / OSS hoạt động cùng với luật bản quyền và giấy phép. Mọi thứ bắt đầu với bản quyền, nếu chỉ vì đó là mặc định. Theo học thuyết bản quyền, tác giả có quyền tạo các bản sao của mã nguồn. Theo giấy phép MIT, quyền đó được cấp cho tôi, cũng như quyền cấp đệ quy cho người khác. Lưu ý rằng giấy phép MIT rõ ràng bao gồm quyền cấp phép lại. Trích dẫn:"the rights to use, copy, modify, merge, publish,distribute, sublicense, and/or sell"

Khi tôi cấp phép lại mã, tôi không thể cấp các quyền mà ban đầu tôi không có. Trong trường hợp của GPL, tôi rõ ràng bị cấm chỉ cấp phép cho một số quyền. Nhưng cả về luật lẫn giấy phép MIT, tôi đều không có nghĩa vụ phải cấp phép toàn bộ các quyền.

Do đó, giấy phép MIT cấp cho tôi quyền rõ ràng đối với quyền cấp phép và cả luật pháp lẫn giấy phép MIT đều không cấm tôi chỉ cấp phép một số quyền. Ngoài ra, không giới hạn hình thức mà tôi làm. Do đó, tôi có quyền không thể phủ nhận để cấp giấy phép cấp phép GPL cho mã đó.


6
@vartec: Bạn không thay đổi giấy phép mà theo đó bạn đã nhận được mã. Bạn đang tạo giấy phép mới giữa bạn và người nhận mới và nó có thể có bất kỳ điều khoản nào bạn muốn. (Người nhận mới có thể nhận được các quyền bổ sung theo giấy phép ban đầu, nhưng điều đó không có hiệu lực đối với giấy phép mới.) Định mức dành cho người cấp phép cấp một số quyền trong giấy phép gốc. Ví dụ, một người tái cấp phép hiếm khi bao gồm quyền cấp phép lại, mà giấy phép ban đầu phải có để có quyền cấp phép.
David Schwartz

3
@vartec: Về cơ bản, bạn cho rằng giấy phép bản quyền cấp quyền cấp phép lại bằng cách nào đó thực sự không cấp quyền cấp phép. Tôi không chắc chắn trên cơ sở nào bạn đang đưa ra lập luận này. Bạn có một số trích dẫn cho bất kỳ cơ quan pháp lý có liên quan? Bạn đang nói rằng người giữ bản quyền không thể cấp cho người khác quyền cấp phép cho tác phẩm của mình? Hoặc bạn có nghĩ rằng giấy phép MIT bằng cách nào đó không thực hiện được điều này hoặc không có ý định?
David Schwartz

1
@David: bạn dường như không hiểu "cấp phép" nghĩa là gì.
vartec

1
@vartec: Một liên kết đến một nguồn giải thích nó sẽ rất tuyệt, vì tôi nghĩ bạn không hiểu ý nghĩa của nó.
David Schwartz

7
Giấy phép MIT có một chút trong đó: "Thông báo bản quyền ở trên và thông báo cấp phép này sẽ được bao gồm trong tất cả các bản sao hoặc các phần quan trọng của Phần mềm." Điều đó có nghĩa là bất kỳ ngã ba nào cũng cần phải có sẵn theo giấy phép MIT. Những thay đổi có thể được liệt kê là GPL. Ngã ba có thể được liệt kê là GPL + MIT. Nhưng ngã ba không thể được liệt kê chỉ là GPL - đó là một sự vi phạm rõ ràng về giấy phép MIT.
Jonathan Vanasco 17/07/17

26

Đúng. Nhưng hiệu quả có thể không như bạn nghĩ.

Giấy phép MIT bao gồm tất cả các quyền mà GPL cung cấp và hơn thế nữa. Và mặc dù những người nhận được phân phối của bạn chỉ nhận được giấy phép GPL cho các yếu tố bạn đã thêm, họ vẫn nhận được giấy phép MIT (từ các tác giả gốc chứ không phải từ bạn) cho bất kỳ yếu tố nào có trong tác phẩm mà các tác giả cung cấp theo giấy phép đó.

Họ có thể không biết điều này, và theo tôi biết, không có luật nào bắt buộc bạn phải nói với họ. Nhưng nếu họ "vi phạm" giấy phép GPL liên quan đến biểu hiện có thể bảo vệ được chứa trong tác phẩm mà bạn không phải là tác giả (hoặc không được người khác đóng góp cho bản phát hành chỉ GPL), họ đã không vi phạm giấy phép hoặc bản quyền của bạn. (Trên thực tế, điều đó khá rõ ràng - bạn chỉ giữ bản quyền để thể hiện bạn là tác giả.)

Vì vậy, bạn chưa chuyển đổi bất kỳ yếu tố có bản quyền nào từ giấy phép MIT sang giấy phép GPL. Bạn chỉ cần thêm những cái mới chỉ được cung cấp theo giấy phép GPL và phát hành các yếu tố trong một tác phẩm hỗn hợp / kết hợp.


Vì vậy, trong thực tế, tôi sẽ làm điều này: sao chép một dự án MIT, thay thế mọi thứ MIT bằng GPL (vì vậy không còn dấu vết nào của dự án là MIT), và sau đó liên kết với dự án MIT ban đầu ở một vài nơi quan trọng (không phải mọi nơi tập tin nguồn mặc dù), đề cập rằng dự án cơ sở có sẵn theo MIT. điều đó có ổn không / hợp pháp (nếu tôi giữ nguyên các tuyên bố chủ sở hữu bản quyền)?
hoijui

1
@hoijui Bạn phải giữ nguyên tất cả các tiêu đề giấy phép và thông báo cấp phép của MIT và bao gồm chúng với dự án mới của bạn. Và trừ khi ý định của bạn là lừa dối, tôi không hiểu tại sao bạn lại thay thế tất cả các đề cập đến của MIT MIT. Nó sẽ không thay đổi bất cứ điều gì, những phần bạn thực hiện vẫn sẽ được MIT cấp phép. Chỉ cần thêm tiêu đề giấy phép GPL của riêng bạn bên dưới nó, nó sẽ hợp lệ cho tất cả các thay đổi có thể có bản quyền (nghĩa là không chỉ đổi tên các biến) mà bạn thực hiện cho mã nguồn. BTW đây là lý do tại sao hầu hết các dự án có tiêu đề bản quyền trong mỗi tệp.
jmiserez

@jmiserez ok. vì vậy, hãy xem xét một tệp trong dự án của tôi sau đó: tôi rời khỏi tiêu đề MIT, thực hiện một số thay đổi và thêm tiêu đề GPL (vì tôi muốn các thay đổi của mình chỉ khả dụng trong GPL). bây giờ một bên thứ 3 cam kết về tập tin của tôi sẽ phải tôn vinh cả MIT và GPL? Tôi chưa bao giờ thấy một tập tin có hai tiêu đề giấy phép, và tôi nghĩ, hầu hết mọi người sẽ chỉ chọn giấy phép họ thích, vì họ không biết cách hợp pháp là gì. Ngoài ra, tại sao tôi phải bao gồm MIT, nếu bằng cách tôn vinh GPL, người ta cũng tự động tôn vinh MIT?
hoijui

@hoijui Bất kỳ quyền nào bạn có theo giấy phép MIT đều đi kèm với hạn chế. Thông báo bản quyền ở trên và thông báo cấp phép này sẽ được bao gồm trong tất cả các bản sao hoặc một phần đáng kể của Phần mềm. của các thông báo, hoặc chỉ một, IANAL. Nhưng tôi chắc chắn rằng bạn cần bao gồm một thông báo ở đâu đó. Nếu bạn không làm như vậy, bạn sẽ không tuân thủ giấy phép MIT nữa, điều đó có nghĩa là bạn sẽ mất tất cả các quyền sử dụng mã trong dự án của mình. FYI kernel Linux có các tệp có nhiều giấy phép, chúng sử dụng các tiêu đề SPDX
jmiserez 30/03/18

1
Thật đáng buồn khi ai đó muốn thử mã GPL được xây dựng trên giấy phép MIT. Nó dường như chống lại tất cả mọi thứ mà giấy phép MIT đại diện.
Andrew T Finnell

8

Không có gì để thêm vào các giải thích trong các câu trả lời đã được đưa ra, nhưng đây là hướng dẫn về cách định hình tiêu đề tệp nguồn của bạn ( nguồn ):

2.2 Thêm sửa đổi GPL cho các tệp được cấp phép cho phép

Một trường hợp phức tạp hơn xảy ra khi nhà phát triển thực hiện các thay đổi có bản quyền đối với tệp được cấp phép cho phép mà nhà phát triển đang kết hợp vào chương trình GPL. Các nhà phát triển trong tình huống này thường áp dụng GPL cho các sửa đổi của họ. (Tuy nhiên, thay vào đó, nhà phát triển có thể đóng góp mã mới theo các điều khoản cho phép, chẳng hạn như giấy phép cho phép chi phối tệp chưa sửa đổi. Chúng tôi thảo luận về trường hợp đó trong § 2.3.)

Mặc dù giấy phép cho phép của dự án bên ngoài cấp phép hợp pháp để kết hợp mã từ dự án đó vào dự án GPL'd, tuy nhiên, nhà phát triển dự án GPL'd phải tuân thủ yêu cầu bảo quản thông báo trong giấy phép cho phép. Trong dự án sử dụng phương pháp theo từng tệp, nhà phát triển thực hiện các sửa đổi có bản quyền đối với tệp được cấp phép cho phép nên đặt một thông báo bản quyền và thông báo cấp phép mới trên thông báo hiện có và phải làm rõ rằng nhà phát triển đã sửa đổi tệp. Phần đầu của tệp sẽ xuất hiện như sau:

/*  
 * Copyright (c) 2007  GPL Project Developer Who Made Changes   
 *  
 *  This file is free software: you may copy, redistribute and/or modify it  
 *  under the terms of the GNU General Public License as published by the  
 *  Free Software Foundation, either version 2 of the License, or (at your  
 *  option) any later version.  
 *  
 *  This file is distributed in the hope that it will be useful, but  
 *  WITHOUT ANY WARRANTY; without even the implied warranty of  
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  
 *  General Public License for more details.  
 *  
 *  You should have received a copy of the GNU General Public License  
 *  along with this program.  If not, see .  
 *  
 * This file incorporates work covered by the following copyright and  
 * permission notice:  
 *  
 *     Copyright (c) YEARS_LIST, Permissive Contributor1   
 *     Copyright (c) YEARS_LIST, Permissive Contributor2   
 *  
 *     Permission to use, copy, modify, and/or distribute this software  
 *     for any purpose with or without fee is hereby granted, provided  
 *     that the above copyright notice and this permission notice appear  
 *     in all copies.  
 *  
 *     THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL  
 *     WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED  
 *     WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE  
 *     AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR  
 *     CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS  
 *     OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,  
 *     NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN  
 *     CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.  
 */

Điều rất quan trọng là nhà phát triển phải lưu giữ toàn bộ thông báo bản quyền, thông báo cấp phép và từ chối bảo hành khi chúng xuất hiện trong mã gốc, theo yêu cầu của giấy phép cho phép. Đôi khi chúng ta thấy các thông báo GPL trộn lẫn với các thông báo giấy phép cho phép, một hành vi khó hiểu che khuất cả nguồn gốc của mã và các quyền chính xác được cấp bởi các chủ bản quyền khác nhau được liệt kê trong thông báo. Khi các chủ sở hữu bản quyền khác nhau đã phát hành các đóng góp của họ theo các điều khoản khác nhau, các điều khoản mà mỗi người đã đặt trên đóng góp cụ thể của mình nên được chỉ định. Chúng tôi khuyên bạn nên phân tách rõ ràng và sử dụng thụt đầu dòng, như trong ví dụ trên.

Cách thức tổ chức các thông báo trong tệp này giúp các nhà phát triển thuận tiện trong việc lựa chọn nên đóng góp theo các điều khoản cho phép hay theo GPL. Nếu họ muốn đóng góp có sẵn theo các điều khoản cho phép, họ có thể thêm thông báo bản quyền của mình vào nhóm thấp hơn. Nếu họ muốn đóng góp theo GPL, họ có thể thêm các thông báo bản quyền ở trên cùng. Tuy nhiên, lưu ý rằng trong một tệp nguồn duy nhất thường rất khó và thường hoàn toàn không khả thi, để xác định phần nào của tệp đó được bao phủ bởi các điều khoản cho phép. Nếu mục tiêu là chỉ cung cấp mã bổ sung theo các điều khoản cho phép, nên sử dụng phương pháp được mô tả trong § 2.3.

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.