2012-06-08 72 views
10

Tôi đã chuyển một số mã từ C sang C# và tôi cũng đã thêm một số tính năng mới vào mã được chuyển. Mã gốc nằm trong giấy phép MPL.Mã được chuyển từ ngôn ngữ này sang ngôn ngữ khác - cấp phép

Đây là mã nguồn gốc điều khoản cấp phép:

/* 
* file name 
* Version ..... 
* 
* Copyright (c) 2004-2012 by XXX YYY 
* 
* The contents of this file are subject to the Mozilla Public License Version 
* 1.1 (the "License"); you may not use this file except in compliance with 
* the License. You may obtain a copy of the License at 
* http://www.mozilla.org/MPL/ 
* 
* Software distributed under the License is distributed on an "AS IS" basis, 
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 
* for the specific language governing rights and limitations under the 
* License. 
* 
* The Original Code is file.c 
* 
* The Initial Developer of the Original Code is XXX YYY. 
* 
* Portions created by XXX YYY are Copyright (C) 2004-2012 
* XXX YYY. All Rights Reserved. 
* 
*/ 

Tôi có thể thay đổi giấy phép cho các mã được chuyển và bao gồm điều khoản cấp phép mã nguồn gốc của mã nguồn ban đầu theo cách này:

// 
// test.cs 
// 
// Author: 
// "My Name" ([email protected]) 
// 
// Copyright (c) 2012 My Name 
// 
// Permission is hereby granted, free of charge, to any person obtaining 
// a copy of this software and associated documentation files (the 
// "Software"), to deal in the Software without restriction, including 
// without limitation the rights to use, copy, modify, merge, publish, 
// distribute, sublicense, and/or sell copies of the Software, and to 
// permit persons to whom the Software is furnished to do so, subject to 
// the following conditions: 
// 
// The above copyright notice and this permission notice shall be 
// included in all copies or substantial portions of the Software. 
// 
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
// 
// Parts of this source code are ported from C to C# by "My Name". 
// 
// The Original Code is file.c (http://original-source-code-link.com); 
// and under Mozilla Public License Version 1.1 (http://www.mozilla.org/MPL/) 
// The Initial Developer of the Original Code is XXX YYY ([email protected]). 
+2

Chẳng phải điều tốt nhất nên làm là kiểm tra http://www.mozilla.org/MPL/ và xem điều gì cần nói về vấn đề này? – JAB

Trả lời

2

Cổng chỉ đơn giản là sửa đổi mã.

Bạn đang ở vi phạm mục 3.1 và 3.4 của MPL, mà nhà nước tương ứng:

Tất cả phân phối các phần mềm Covered ở dạng mã nguồn, bao gồm bất kỳ Modifications rằng Bạn tạo hay mà bạn đóng góp , phải theo các điều khoản của Giấy phép này. Bạn phải thông báo cho người nhận rằng Biểu mẫu mã nguồn của Phần mềm được bảo hiểm được điều chỉnh bởi các điều khoản của Giấy phép này và cách họ có thể nhận được một bản sao của Giấy phép này. Bạn không được cố gắng thay đổi hoặc hạn chế quyền của người nhận trong Biểu mẫu mã nguồn.

...

Bạn không được xóa hoặc thay đổi nội dung của bất kỳ thông báo giấy phép nào (bao gồm thông báo bản quyền, thông báo bằng sáng chế, tuyên bố từ chối trách nhiệm bảo hành hoặc giới hạn trách nhiệm) trong Biểu mẫu mã nguồn của phần mềm được bao gồm. thay đổi bất kỳ thông báo giấy phép nào trong phạm vi cần thiết để khắc phục các điểm không chính xác thực tế đã biết.

Vì vậy, câu trả lời là không, mã của bạn phải giữ các điều khoản của MPL và giữ nguyên khối nhận xét ban đầu.

+1

Một porting nó KHÔNG phải là một sửa đổi mã. Đó là một tác phẩm phái sinh. – dAm2K

+1

@ dAm2K: Một sự sửa đổi thường được sử dụng để mô tả cách thức tạo ra một tác phẩm phái sinh. Vì vậy, tôi sẽ không đặt cả hai điều khoản với nhau. – hakre

0

Từ MPL FAQ:

Q9: Tôi muốn phân phối (bên ngoài tổ chức của tôi) mã nguồn được cấp phép MPL mã mà tôi đã sửa đổi. Tôi phải làm gì đây?

Để xem bộ yêu cầu hoàn chỉnh, hãy đọc giấy phép. Tuy nhiên, thường:

  • Bạn phải thông báo cho người nhận rằng mã nguồn được tạo sẵn cho họ theo các điều khoản của MPL (mục 3.1), bao gồm bất kỳ Sửa đổi (theo quy định tại Mục 1.10) mà bạn đã tạo.

  • Bạn phải thực hiện các khoản tài trợ được mô tả trong Phần 2 của giấy phép.

  • Bạn phải tôn trọng các hạn chế về việc xóa hoặc thay đổi thông báo trong mã nguồn (Phần 3.4).

Thấy như bạn lần đầu tiên chuyển nguồn và sau đó thay đổi nó, bạn cần cho phép của tác giả ban đầu cho cảng. Một khi bạn có điều đó, bạn cần phải làm theo các hướng dẫn trong câu trả lời ở trên vì bạn đã sửa đổi mã.

Bạn cũng có thể muốn xem điều này question.

+0

Câu hỏi thường gặp đề cập đến nhu cầu cho phép chuyển mã? – Attila

+0

Câu hỏi thường gặp không cho biết, câu trả lời trong câu hỏi được liên kết sẽ làm. – thomaux

+0

@Attila: Đó cũng là bản quyền.Bạn cần sự cho phép để chuyển mã/dịch mã. MPL như một giấy phép phần mềm tự do cho phép bạn (!), Nhưng bạn cần phải tuân thủ các yêu cầu của nó, ở đây copyleft, vì vậy bạn cần phải đặt bản dịch/sửa đổi của bạn theo MPL. Trừ khi bạn làm, bạn không có quyền chuyển cảng. Vì vậy, để đạt được các quyền dịch - mà bạn cần - bạn cần phải đặt công cụ của bạn theo MPL. – hakre

3

Việc chuyển một số mã đang dịch một số mã (so sánh với việc dịch một cuốn sách của người khác) và do đó phải có bản quyền. Bạn đang tạo ra một tác phẩm phái sinh.

Và btw. không bao giờ thay đổi tín dụng của tác giả và ghi chú bản quyền. Đó là một không-đi, bạn đang yêu cầu cho vấn đề pháp lý làm như vậy. Vì vậy, sao chép các tuyên bố ban đầu verbatim, không làm tê liệt nó.

Ngoài ra, bạn thường không thể đặt tệp dưới giấy phép giống như MIT trong khi các bộ phận của nó thuộc MPL AFAIK nhưng IANAL JASD.

Tại sao không chỉ cấp phép cho tệp theo MPL? Đó là probabyl gợi ý tốt nhất có thể cho bạn. Đối với tất cả mọi thứ khác, bạn nên đi thẳng đến luật sư của bạn.

http://en.wikipedia.org/wiki/Mozilla_Public_License


Nếu bạn nghiêm túc muốn đặt một phần của công việc đó là công việc của bạn theo giấy phép của bạn, bạn cần phải thực hiện rất có thể nhìn thấy nơi làm việc của bạn, và nơi mà các tác phẩm gốc là.

Tôi thấy cực kỳ khó khăn cho một cổng/bản dịch để làm cho điều đó hiển thị và tôi nghi ngờ rằng điều này là có thể.

Và đó chỉ là về mặt kỹ thuật, bởi vì ngay cả khi bạn có thể, điều này không nói gì về khả năng tương thích giấy phép. Chắc chắn bạn cũng cần có khả năng tương thích giấy phép.

Vì vậy, vì hai lý do này, bạn nên thực sự xem xét để phát hành nó theo giấy phép tương tự như MPL có copyleft.

0

Bằng cách nói rằng bạn đang porting mã bạn đang tạo một tác phẩm phái sinh rõ ràng, trong trường hợp đó bạn cần tuân thủ giấy phép của mã ban đầu.

Tuy nhiên, bạn có thể thực hiện "triển khai lại phòng sạch" của API, nơi bạn có thể sử dụng bất kỳ giấy phép nào mình muốn. Về cơ bản nó có nghĩa là bạn in tài liệu Doxygen và mã chỉ dựa trên điều này. Nếu có ai thắc mắc cách tiếp cận của bạn, bạn sẽ cần chứng minh bạn đã tiến hành như thế nào. sử dụng SCM cam kết hồ sơ, vv Thông thường nó không phải là giá trị các trường hợp để làm điều đó, vì nó đòi hỏi nhiều công việc như phát triển phần mềm gốc.

Việc chuyển đổi chỉ là một phần trong nỗ lực phát triển; bạn không phải thiết kế và rất ít khả năng giới thiệu lỗi. Vậy tại sao bạn muốn nhận tất cả tín dụng? Tôi cá là XXX YYY sẽ tức giận. Tôi sẽ !

Các vấn đề liên quan