2009-01-20 19 views
7

Tôi muốn sử dụng lại một số mã được cấp phép theo giấy phép BSD nhưng tôi không biết cách làm rõ những gì tôi đã viết, những gì tôi đã sử dụng lại và những gì tôi đã sửa đổi.Khi sử dụng lại mã, làm cách nào để làm rõ người giữ bản quyền cho từng tệp là ai?

Giả sử dự án Tôi muốn sử dụng lại mã từ có cấu trúc thư mục sau:

project/ 
|-- LICENSE.txt 
|-- module1/ 
| |-- file1.c 
| |-- file2.c 
| `-- file3.c 
|-- module2/ 
`-- module3/ 

và các nội dung của license.txt được một giấy phép BSD, tức là nội dung của nó là:

Copyright (c) <year>, <copyright holder> 
All rights reserved. 

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

(Xem wikipedia để có mẫu toàn văn.)

Ngoài ra, bản quyền chỉ được nêu trong tệp LICENSE.txt chứ không phải trong mọi tệp mã nguồn riêng lẻ.

Nếu bây giờ tôi sao chép tất cả những gì thuộc dự án/module1/dự án của riêng tôi:

my_project/ 
|-- module1/ 
| |-- file1.c 
| |-- file2.c 
| `-- file3.c 
|-- my_file1.c 
|-- my_file2.c 
|-- my_source_code1/ 
`-- my_source_code2/ 

Làm thế nào tôi nên nói rõ rằng tôi không phải là người giữ bản quyền của các tập tin dưới module1? Có đủ để sao chép LICENSE.txt gốc, với người giữ bản quyền ban đầu trong tiêu đề, vào thư mục con module1 không? Hoặc tôi có nên thêm tiêu đề bản quyền cho từng tệp riêng lẻ không?

Điều gì sẽ xảy ra nếu tôi sửa đổi bất kỳ tệp nào trong mô-đun 1? Sau đó tôi có nên thêm bản thân mình làm người giữ bản quyền bổ sung cho các tệp tôi đã sửa đổi không?

Lưu ý: Tôi hoàn toàn ổn với việc sử dụng cùng một giấy phép (hoặc tương thích) cho mã tôi đã viết.

Trả lời

3

Sao chép LICENSE.txt trong số module1 dir và đề cập đến trong tài liệu của bạn (README, LICENSE, v.v.) mà bạn sử dụng phần này của dự án. Giấy phép phong cách BSD rất tự do: miễn là bạn cung cấp tín dụng và tôn trọng các yêu cầu của nó (điều này thường liên quan đến việc cung cấp giấy phép chưa được sửa đổi và thông báo bản quyền), bạn có thể làm bất cứ điều gì bạn muốn với mã.

Nếu bạn sửa đổi bất kỳ tệp nào, thực hành tốt là đề cập đến nó trong tiêu đề tệp, xung quanh các thay đổi của bạn và trong tài liệu toàn cục của bạn. Nếu các tệp đã sửa đổi không có thông báo bản quyền, chỉ cần thêm một tệp mô tả các thay đổi của bạn. Bằng cách đó, người dùng có thể biết những tệp nào đã được sửa đổi, ai đã làm, tại sao và như thế nào.

Điều đó đơn giản: thực hiện theo cách rất mô tả. Không có thủ tục chính thức để làm theo, trái với giấy phép theo phong cách GPL. Đây là tài liệu nhiều hơn công việc pháp lý.

+0

Và nếu tôi sửa đổi bất kỳ tệp nào trong mô-đun 1? Bạn có đề cập rõ ràng ở đâu đó không? – davitenio

+0

Nếu mã tôi đang sử dụng lại được cấp phép GPL thì sẽ có thủ tục chính thức? Bạn có thể đưa ra bất kỳ gợi ý nào cho quy trình đó hay tự giải thích nó không? – davitenio

+0

Trường nhận xét quá ngắn để mô tả các nghĩa vụ pháp lý mà GPL đặt vào người dùng, tôi khuyên bạn nên đọc trang Wikipedia: http://en.wikipedia.org/wiki/Gpl. Ví dụ: bạn không thể phân phối dưới dạng nhị phân duy nhất và phải xuất bản tất cả thay đổi của mình dưới dạng nguồn GPL. – fbonnet

1

Tôi muốn có giấy phép được tham chiếu bên trong nhận xét trong mã nguồn - dễ hơn theo cách mọi người có nhiều khả năng mở tệp nguồn hơn và kiểm tra cấu trúc thư mục trước tiên. Một nhận xét đơn giản cho biết rằng mã có bản quyền là X và được Y cấp phép chỉ giúp hướng người nào đó đến tệp giấy phép thích hợp.

+0

Vì vậy, mặc dù các tệp gốc tôi đang sử dụng lại không có nhận xét nêu rõ bản quyền, bạn sẽ thêm một bản quyền? Và trong trường hợp tôi sửa đổi một tập tin, bạn sẽ thêm một bình luận nói rằng tập tin đã được sửa đổi bởi tôi? – davitenio

1

Bạn không muốn mất bất kỳ cơ hội nào ở đây để giải thích sai về bản quyền.Vì vậy, tôi sẽ đi xa như cấu trúc sau:

my_project/ 
|-- the_other_project 
| |-- LICENSE.txt 
| |-- module1/ 
| | |-- file1.c 
| | |-- file2.c 
| | `-- file3.c 
|-- my_file1.c 
|-- my_file2.c 
|-- my_source_code1/ 
`-- my_source_code2/ 

Thêm vào đó:

  • mỗi tập tin nên có một tiêu đề mentionning Bản quyền, chủ sở hữu và giấy phép
  • đề cập đến trong của riêng bạn giấy phép mà bạn đang sử dụng các phần mã của một dự án khác
  • nếu bạn sửa đổi mã trong các dự án khác, thêm bản quyền và tên của bạn vào tệp nguồn của dự án.

Đó là nếu bạn không thực hiện quá nhiều sửa đổi đối với mã nguồn khác. Nếu bạn đang viết lại tất cả mọi thứ, chỉ cần đề cập đến trong giấy phép của bạn nguồn gốc của mã khác.

1

Tôi vừa tìm thấy Maintaining Permissive-Licensed Files in a GPL-Licensed Project: Guidelines for Developers, được xuất bản bởi Trung tâm luật tự do phần mềm. Mặc dù nó nói cụ thể về việc kết hợp các giấy phép theo phong cách BSD (chúng gọi là chúng cho phép) vào mã được cấp phép GPL, tôi nghĩ rằng khuyến nghị trong phần 2.1, Bao gồm các tập tin được cấp phép không sửa đổi, sẽ là một khuyến nghị chung tốt. Tôi xin trích dẫn:

Nếu dự án bên ngoài sử dụng phương pháp tập BẢN QUYỀN duy nhất, các nhà phát triển nên sao chép tên của tất cả chủ sở hữu bản quyền từ tập tin đó và đặt chúng, cùng với bất kỳ bản quyền, cho phép, và bảo hành thông báo từ chối trách nhiệm theo yêu cầu của giấy phép cấp phép , ở trên cùng của tệp nguồn được kết hợp.

Trong trường hợp bạn thay đổi các tập tin bao gồm và dự án của bạn GPL, có hai bộ phận liên quan trong tài liệu đề cập:

Vụ kiện nơi bạn sửa đổi các tệp được bao gồm và dự án của bạn không phải là GPL là rõ ràng là không được giải quyết bởi tài liệu. Nhưng từ những gì tôi đã thu thập được từ các câu trả lời khác, tôi sẽ nói, miễn là giấy phép bạn sử dụng cho dự án của bạn không phải là virus, điều thích hợp để làm là chỉ thêm bản thân làm người giữ bản quyền vào tiêu đề bản quyền tệp bạn đã sửa đổi và đề cập đến nguồn gốc của mã được bao gồm ở đâu đó trong tài liệu của bạn.

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