Có phải mã nguồn mở của Cameron đã bao giờ trở thành một nguồn của tôi không?


8

Nếu tôi tải xuống một số mã nguồn mở thực hiện một số thứ gọn gàng mà tôi cần, nhưng không có nhiều tùy chọn hoặc chuông và còi mà tôi cần ... và tôi thực hiện TON thay đổi cho một số Mã cơ sở vẫn còn ở đó từ dự án nguồn mở, nhưng rất nhiều thứ đã thay đổi và rất nhiều thứ đã được thêm vào ... liệu mã đó có bao giờ trở thành "nguồn của tôi" trái ngược với "nguồn mở" không?

BIÊN TẬP:

BTW, tôi thực sự không có một dự án nào trong đầu, đây chỉ là về mặt chung - vì vậy tôi sẽ không biết giấy phép. Câu hỏi này thỉnh thoảng xuất hiện trong đầu tôi khi tôi thấy một dự án mà tôi có thể cải thiện ...


6
Câu trả lời ngắn gọn, tất cả phụ thuộc vào giấy phép được sử dụng .. vậy bạn đang hỏi về giấy phép nào?
Bob

7
Điều đó thực sự phụ thuộc vào giấy phép như thể nó có thể trở thành nguồn "của bạn" một cách hợp pháp hay không. Nhưng "Nguồn mở" thực sự là "Nguồn của mọi người", vì vậy nếu bạn nhìn vào nó như thế, thì nó đã là của bạn! : D
Ryan Hayes

Chính xác thì ý của bạn là "nguồn mở" và "nguồn của tôi" là gì? Nếu bạn muốn lấy phần mềm theo giấy phép được chứng nhận OSI, hãy thay đổi nó và có toàn quyền kiểm soát giấy phép nào để phát hành phần mềm theo, nó phụ thuộc vào giấy phép. GPL Gnu yêu cầu bạn giải phóng các thay đổi của mình theo GPL, trong khi giấy phép kiểu BSD thì không.
David Thornley

@DavidThe
Barry Franklin

@Barry: Không có thứ gọi là "nguồn mở" trong các thuật ngữ bạn mô tả. Mỗi dự án được quy định với một giấy phép cụ thể. Nhưng thông thường, bạn vẫn có thể bán mã OpenSource (chi tiết tùy thuộc vào giấy phép). Bạn chỉ cần tự do cung cấp nguồn (chi tiết phụ thuộc vào giấy phép). Nhìn vào RedHat cho một ví dụ về điều đó.
Martin York

Câu trả lời:


15

Có một vài điều bạn cần học khi xử lý mã nguồn mở. Trước tiên, bạn có thể truy cập liên kết wikipedia này để biết tổng quan về Opensource

Điều tiếp theo cần xem xét là giấy phép mã nguồn mở mà bạn đang giao dịch. Không phải tất cả giấy phép mã nguồn mở đều cho phép thực hiện những gì bạn đang nghĩ để đạt được. Để tham khảo chi tiết về việc cấp phép, giấy phép Opensource . Khớp giấy phép mã của bạn với mã được tìm thấy trên liên kết này và tìm hiểu những gì có thể được thực hiện với mã bạn đang sử dụng.


1
+1 Bạn trả lời giống như của tôi nhưng tốt hơn :)
SoylentGray

Nó không phải là một vấn đề cấp phép. Nếu quyền truy cập của bạn vào mã thông qua giấy phép thì bạn có giấy phép từ chủ sở hữu mã. Điều đó có nghĩa là bạn không sở hữu mã.
Michael Shaw

1
@Ptolemy: Nếu tôi nhận được mã được cấp phép BSD và kết hợp nó vào một dự án, tôi không có bản quyền đối với toàn bộ. Tôi có khả năng phát hành toàn bộ mọi thứ trên bất kỳ giấy phép nào tôi cảm thấy và kiện những người vi phạm, và điều đó đủ gần để sở hữu mã cho tôi.
David Thornley

Vì vậy, nếu bạn thấy rằng những dòng mã đó cũng được sử dụng trong một sản phẩm của đối thủ cạnh tranh, bạn có thể kiện họ vì vi phạm bản quyền của bạn không? Đó là thử nghiệm thực sự của việc sở hữu mã, thay vì chỉ là một người được cấp phép
Michael Shaw

@davidthornley Tôi đồng ý với điều đó ... điều đó cũng đủ gần với tôi.
Barry Franklin

2

Tóm lại là không.

Những gì bạn đang mô tả là đơn giản và đơn giản một công việc xuất phát. Nó có thể là mã 99,9% mà bạn đã thêm, nhưng vì nó được lấy từ một số mã nào đó, nên bạn vẫn phải tôn trọng bản quyền và giấy phép của mã gốc.

Bạn còn lựa chọn nào khác?

Can you look at that code, see how it works and then write your own version from scratch?

Đây không phải là cắt giảm rõ ràng. Tuy nhiên, bạn vẫn có nguy cơ vi phạm bản quyền đáng kể. Nếu bạn sao chép bất kỳ mã nguyên văn nào thì đó là vi phạm. Nếu bạn cắt và dán mã và sau đó đổi tên các biến, v.v ... Đó là vi phạm. Nếu bạn sao chép một kỹ thuật để giải quyết một vấn đề cụ thể, viết mã mới khi bạn đi, điều đó vẫn vi phạm bản quyền.

Nếu bạn nhìn vào mã và nghĩ rằng đó là cách bạn sử dụng chức năng đó và sau đó tắt và viết chương trình của riêng bạn từ đầu mà không sao chép nguyên văn hai dòng mã đó thì có lẽ bạn là chủ sở hữu mã của bạn.

To be 100% sure of owning my code, what doctor need to do?

Điều quan trọng là để tránh rủi ro khiếu nại bản quyền ở nơi đầu tiên. Đừng nhìn vào mã bản quyền để lấy ví dụ. Vì vậy, không viết mã khi người khác (như chủ nhân của bạn) có thể có yêu cầu về mã của bạn). Sử dụng kiểm soát nguồn để ghi nhật ký thay đổi thường xuyên vào mã. (điều này chứng tỏ bạn đã viết nó và chứng minh sự phát triển mã thay vì bạn đã sao chép nó bán buôn) và không sử dụng lại mã của bạn trong một môi trường nơi người nhận có lý do để tin rằng họ hiện đang sở hữu mã.

So why is everyone else talking about licenses?

Hầu hết các mã có sẵn trên Internet có sẵn theo giấy phép. Giấy phép đó cho phép bạn truy cập vào mã đó theo các điều khoản mà chủ sở hữu mã đã chọn. Cách bạn có thể sử dụng mã đó và các quyền và quyền đối với mã được xác định trong giấy phép phần mềm và có thể cho phép bạn tạo các tác phẩm phái sinh, bán chúng để kiếm lợi nhuận và không phải cung cấp cho bất kỳ ai mã nguồn của bạn. Tương tự như vậy nó có thể không. Tất cả phụ thuộc vào các điều khoản cấp phép. Tuy nhiên, người khác sở hữu bản quyền của mã gốc và bạn không thể ngăn họ cấp phép cùng mã đó cho đối thủ cạnh tranh của bạn.


1
Bạn đã đưa ra một số câu hỏi hay ... Tôi chỉ tự hỏi làm thế nào mọi người có thể nói rằng bạn đã sao chép một kỹ thuật từ bất cứ đâu - thực sự không có quá nhiều kỹ thuật độc đáo ngoài kia. Và mọi người phải học mã hóa từ một nơi nào đó - tôi chỉ tự hỏi dòng này ở đâu với việc học cách làm một cái gì đó từ mã của ai đó so với việc xé nó ra.
Barry Franklin

Có một dòng rất rõ ràng. Một số ý định là dạy cho bạn một kỹ thuật và sau đó bạn có thể sử dụng phương pháp đó trong mã của riêng bạn một cách khá an toàn. Nếu bạn sao chép mã, thì đó là mã đã sao chép và bạn đã không tạo mã hoặc có quyền sở hữu bản quyền từ chủ sở hữu hiện tại
Michael Shaw

1
Nhưng chuyện gì xảy ra nếu Bob dạy tôi điều gì đó và sau đó Bob dạy Joe điều tương tự và Joe dạy Ron và Ron dạy Bill ... sau đó Bill đi ra với một chương trình hoạt động giống hệt tôi - ai thắng ở đó? Cả Bill và tôi đều không biết rằng cả hai chúng tôi đều học được điều tương tự từ Bob ... và Bob có thể là bất cứ ai, hoặc bất cứ điều gì (như trang web hoặc sách). Làm sao Bill có thể nói rằng tôi đã đánh cắp mã của anh ta nếu anh ta không thể chứng minh rằng tôi không học nó giống như cách anh ta đã làm? Làm thế nào tôi có thể tự bảo vệ mình nếu tôi không thể chứng minh rằng tôi đã học được nó? Bob có phải là chủ sở hữu của tất cả các mã mà tôi, Bill, Joe và Ron viết không?
Barry Franklin

1
Tùy thuộc vào môi trường, thậm chí nhận thức về khả năng vi phạm bản quyền có thể gây tổn hại. Microsoft đã sử dụng khiếu nại bản quyền linux sco vài năm trước để thúc đẩy doanh số Windows CE
Michael Shaw

Xin chào Barry, trong ví dụ của bạn, bản quyền mã sẽ được sở hữu bởi mỗi người đã viết mã. Họ từng tạo mã độc lập bằng cách sử dụng cùng một cách tiếp cận. Mỗi người trong số họ có quyền sở hữu bản quyền của các dòng mã đó và nếu họ có thể xác minh rằng ai đó đã sao chép các dòng cụ thể của họ, họ có thể yêu cầu bồi thường cho vi phạm bản quyền.
Michael Shaw

1

Nó phụ thuộc vào giấy phép mà dự án Nguồn mở đang sử dụng. Nếu đó là giấy phép GPL, nếu bạn từng có ý định phát hành nhị phân hoặc nguồn cho công chúng, thì bạn phải sử dụng giấy phép tuân thủ GPL. Điều đó có nghĩa là mã sẽ không bao giờ hoàn toàn là của bạn.

Nếu giấy phép là giấy phép Free-As-In-Free-Bia, thì bạn có thể làm bất cứ điều gì bạn muốn với nó và có thể phát hành nó dưới dạng mã của bạn, trừ khi có quy định khác.


2
ngay cả khi nhận được mã với giấy phép rất dễ dãi, nó vẫn không phải là của bạn, bạn chỉ được cấp phép để làm (gần như) bất cứ điều gì với nó
jk.

0

Như những người khác đã mô tả là KHÔNG, ít nhất là không phải với GPL tiêu chuẩn như tôi biết, vì vậy tôi sẽ không đánh bại một con ngựa chết.

Giả sử dự án nguồn mở này thiếu và bạn bắt đầu một dự án hoàn toàn riêng biệt sử dụng các nhị phân từ dự án GPL được đề cập và cung cấp hành vi của chính nó để bù đắp cho hành vi thiếu, thì dự án riêng biệt đó sẽ là nguồn của BẠN.

Ví dụ: "Dự án LGPL điên rồ có tên là Bamboozle rất giỏi trong việc tạo ra các vật dụng, nhưng trước tiên không xử lý RoughArss. Bạn tạo một sản phẩm độc quyền có tên là Flplyzle mà bạn vượt qua OR RoughArss thông thường và tạo ra Widgets. , nhưng làm một cái gì đó khác trên đầu trang và đó là những gì bạn đang bán.

Điều này có thể hoàn toàn hợp pháp khi cho rằng bạn không vi phạm rõ ràng thỏa thuận cấp phép và trong một LGPL điển hình, bạn sẽ không miễn là bạn bao gồm thỏa thuận cấp phép của Bamboozle với tất cả các bản sao được phân phối của Fllynzle.


Có rất nhiều, rất nhiều giấy phép nguồn mở - GPL và LGPL nhưng chỉ có hai trong một biển giấy phép.
Bryan Oakley
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.