Tôi có thể sử dụng giấy phép MIT để cung cấp một số mã bằng văn bản trước đây cho nhà tuyển dụng để tôi tự bảo vệ mình và không bị mất bản quyền không?


17

Hoàn cảnh của tôi:

  • Tôi đã viết một khung trước khi tôi bắt đầu công việc mới. Tôi sở hữu bản quyền.

  • Nó có một loạt logic nồi hơi bên trong nó, giống như bất kỳ phần mềm nào. (tât nhiên!)

  • Tôi không muốn sử dụng toàn bộ khung trong công việc mới của mình, nhưng tôi cần sử dụng lại một số phần của nó trong một khung tương tự mà tôi đang xây dựng cho công việc mới của mình.

  • Nó là không thực tế để thực hiện lại / suy nghĩ lại tất cả logic từ đầu. Đó là rất nhiều logic và logic là logic, bạn không thể làm cho nó khác đi nhiều. Ví dụ: bạn có thể viết bao nhiêu phiên bản khác nhau của HashMap? Tôi cá là chúng sẽ rất giống nhau và phiên bản thứ ba có thể cho rằng bạn đã vi phạm bản quyền của phiên bản đầu tiên. :

  • Sẽ không thực tế khi cố gắng phát minh lại API. Bạn có thể phát minh lại API của HashMap không? Có lẽ bạn có thể thay đổi put(k,v)để add(k,v), nhưng không nhiều hơn thế.

Ý tưởng của tôi để bảo vệ bản thân và mã trước đây của tôi:

Tôi sẽ nói với chủ nhân của mình rằng tôi đang xây dựng khung mới dựa trên khung trước đó mà tôi đã viết theo giấy phép MIT. Vì vậy, trong tương lai nếu tôi sử dụng khung trước đó của mình ở một nơi khác, hoặc thậm chí một phiên bản dẫn xuất khác của nó , có một số đoạn mã tương tự với khung mới này mà tôi đang xây dựng cho nhà tuyển dụng, họ sẽ không thể nói tôi là sử dụng mã của họ, mã tôi đã viết cho họ.

Những câu hỏi của tôi:

  • Tôi không phân phối mã của mình cho bất cứ ai. Tôi không phải phân phối mã được cấp phép MIT của mình cho bất kỳ ai, nếu tôi sở hữu bản quyền, đúng không? Ý tôi là, ai đó có thể yêu cầu tôi phát hành mã của mình mà bây giờ tôi cho rằng nó thuộc giấy phép MIT không? Nó sẽ không phải là kết thúc của thế giới và tôi chắc chắn sẽ đồng ý làm điều đó dưới một mối đe dọa pháp lý.

  • Chiến lược này có ý nghĩa gì không? Mục tiêu cuối cùng của tôi là có thể sử dụng phiên bản dẫn xuất của khung mã hóa trước đó mà không mất bản quyền của nó. Đồng thời, tôi không muốn phân phối mã này như một dự án nguồn mở cho bất kỳ ai. Tôi có các dự án nguồn mở khác, mà tôi tự do phân phối, nhưng dự án này tôi muốn giữ nó cho riêng mình để tôi có thể sử dụng cho công việc của mình (không phải công việc của nhà thầu).

Nó giống như tuyên bố rằng bạn có một khung theo giấy phép MIT, mà không thực sự phân phối và / hoặc hiển thị cho bất kỳ ai . Nếu nó ở ngoài đó, miễn phí và dễ dàng có sẵn, chủ nhân của tôi không cần tôi nữa. Họ chỉ có thể lấy mã và đưa cho người khác sử dụng nó.

Ghi chú:

  • Tôi đã liệt kê khung này như một phát minh trước đó trước khi tôi bắt đầu công việc.

  • Tôi chưa phát hành mã này ở bất cứ đâu. Đó là trên repo SVN riêng của tôi, tôi lưu trữ trong máy chủ riêng của mình.

Ý tưởng của tôi trong một nutshel:

  • Kế hoạch của tôi là giữ mã trước đó cho riêng mình, sử dụng các phần của nó trong khung mới này mà tôi đang xây dựng cho chủ lao động và nói với nhà tuyển dụng đó là công việc bắt nguồn từ khung được cấp phép của MIT mà tôi đã mã hóa trước đó và chưa phân phối cho bất kỳ ai ". Tôi không bị buộc phải phân phối một phần mềm mà tôi đã mã hóa theo giấy phép MIT, phải không? Nếu sau đó, một số khiếu nại pháp lý xảy ra (hy vọng là không), tôi có thể dán ngay giấy phép vào tất cả các nguồn và hiển thị / phát hành mã.

Câu trả lời:


21

Tôi từng là một luật sư IP, vì vậy có kinh nghiệm với giấy phép. Tôi cảm thấy bản thân các điều khoản này khá dễ đọc và dễ hiểu, nhưng một lần nữa, tôi bị hủy hoại bởi ba năm học luật và một số thời gian làm luật trước khi lấy lại trí thông minh của mình và quay trở lại hack. Đặc biệt vì hiện tại tôi không phải là một luật sư tích cực, điều này chắc chắn không nhằm mục đích tư vấn pháp lý một chút nào.

Hãy bắt đầu với ngôn ngữ giấy phép MIT. Sau đó, tôi sẽ đưa ra một vài điểm chính để hiểu các giấy phép nguồn mở, sau đó giải quyết các câu hỏi của bạn và cung cấp bất kỳ quan sát cấp cao nào.

Quyền này được cấp miễn phí cho bất kỳ người nào có được bản sao của phần mềm này và các tệp tài liệu liên quan ("Phần mềm") để xử lý Phần mềm mà không hạn chế, bao gồm nhưng không giới hạn quyền sử dụng, sao chép, sửa đổi, hợp nhất , xuất bản, phân phối, cấp phép lại và / hoặc bán các bản sao của Phần mềm và cho phép những người mà Phần mềm được cung cấp để làm như vậy, tuân theo các điều kiện sau: (rằng họ để lại thông báo này trong phần cuối.)

Một vài điều quan trọng với hầu hết các giấy phép nguồn mở (bao gồm BSD, MIT, GPL) cho chủ sở hữu bản quyền là:

  1. Giấy phép không làm thay đổi quyền sở hữu bản quyền của bạn. Đây là một giấy phép không độc quyền, không phải là chuyển nhượng hoặc từ bỏ quyền sở hữu. Sử dụng giấy phép HĐH không phải là "đưa thứ gì đó vào phạm vi công cộng", mặc dù đó chắc chắn là một cách tiếp cận đối với nguồn mở.
  2. Không có gì "buộc" bạn, chủ sở hữu bản quyền, phải công khai mã theo bất kỳ cách nào chỉ vì bạn đính kèm giấy phép cho nó.
  3. Nhưng nếu bạn sử dụng giấy phép HĐH, bạn không thể ngăn bất kỳ ai "lấy" mã được cấp phép HĐH của bạn công khai theo bất kỳ cách nào, điều này rõ ràng thuộc quyền của họ theo tất cả các giấy phép này.
  4. Giấy phép Copyleft (ví dụ: GPL) yêu cầu người lấy (nhưng không phải chủ sở hữu) để làm cho các tác phẩm phái sinh của họ ở chế độ công khai và nguồn mở. Cho phép (MIT, BSD) không. (điều này có thể là một chút đơn giản hóa, nhưng là sự khác biệt cần thiết)
  5. Không có điều khoản "gỡ lại" đối với hầu hết các giấy phép nguồn mở (ví dụ: MIT) vì vậy một khi ai đó đã "lấy được" mã của bạn, họ có quyền sử dụng nó vĩnh viễn, theo các điều khoản cấp phép mà họ đã nhận được.
  6. Bạn luôn có thể phân phối các phiên bản mã trong tương lai của mình theo một giấy phép khác hoặc giữ chúng hoàn toàn độc quyền. Điều đó không ngăn ai đó bắt đầu với phiên bản nguồn mở trước đó của bạn (giả sử họ đã "lấy được") và thêm vào các bộ phận mới của riêng họ và phân phối nó.
  7. Bạn có thể xóa kênh "lấy" cho các phiên bản mã trước đó của mình, ví dụ: tắt kênh này khỏi github. Tuy nhiên, như đã đề cập, điều đó không ngăn người khác sử dụng hoặc phân phối bất kỳ phiên bản nào trước đây mà bạn đã mở nguồn, theo bất kỳ cách nào.

Với cơ sở đó, tôi sẽ chuyển sang câu hỏi của bạn.

Tôi không phân phối mã của mình cho bất cứ ai. Tôi không phải phân phối mã được cấp phép MIT của mình cho bất kỳ ai, nếu tôi sở hữu bản quyền, đúng không? Ý tôi là, ai đó có thể yêu cầu tôi phát hành mã của mình mà bây giờ tôi cho rằng nó thuộc giấy phép MIT không? Nó sẽ không phải là kết thúc của thế giới và tôi chắc chắn sẽ đồng ý làm điều đó dưới một mối đe dọa pháp lý. ... Đồng thời, tôi không muốn phân phối mã này như một dự án nguồn mở cho bất kỳ ai.

Là người giữ bản quyền, bạn không phải phân phối bất kỳ mã nào cho bất kỳ ai; bạn sẽ không phải thực hiện các yêu cầu như vậy (ngay cả khi đó là GPL). Bạn giữ lại tất cả các quyền. Tuy nhiên, trong tình huống bạn mô tả, bạn sẽ phân phối cho công ty mới của mình và cấp phép cho họ vĩnh viễn theo giấy phép HĐH. Chủ lao động của bạn (nhiều khả năng là chủ cũ) có thể dán mã của bạn lên internet và bạn sẽ không thể làm gì khác ngoài việc càu nhàu.

Tôi giả sử bạn có nghĩa là "bất cứ ai ngoài chủ nhân của tôi". Nếu bạn không muốn cung cấp cho chủ lao động của mình "dưới dạng nguồn mở" và cung cấp cho họ tất cả các quyền được bao gồm trong giấy phép đó, bao gồm phân phối lại và sử dụng vĩnh viễn theo bất kỳ cách nào họ muốn, thì bạn không nên sử dụng giấy phép nguồn mở. Bạn chỉ nên cấp phép trực tiếp cho họ theo các điều khoản bạn muốn. Bullet chỉ ra những gì bạn muốn, và nhờ luật sư lập hóa đơn cho bạn một hoặc hai giờ để đưa chúng vào dạng đoạn văn. Hoặc tự viết nó. Giấy phép chỉ là hợp đồng mà chỉ là thỏa thuận đưa ra thành lời.

Mục tiêu cuối cùng của tôi là có thể sử dụng phiên bản dẫn xuất của khung mã hóa trước đó mà không mất bản quyền của nó.

Bạn không thể mất bản quyền trừ khi bạn gán nó cho ai đó, cấp phép độc quyền (bao gồm cả loại trừ chính bạn) hoặc tịch thu nó. Giấy phép nguồn mở là không có cái nào trong số này. Bạn sẽ luôn có thể sử dụng các phiên bản dẫn xuất mà bạn tạo và thậm chí có thể cấp phép cho các sản phẩm phái sinh khác nhau hoặc giữ tất cả các quyền.

Nhưng, mối quan tâm chính đáng, chính đáng của bạn dường như là bạn tiếp tục có thể giữ bản quyền và sử dụng mã của mình trong tương lai mà không cần nhà tuyển dụng nhận mã là của họ hoặc bạn nằm ngoài quyền của bạn để làm như vậy. Chìa khóa cho vấn đề này là tạo ra một bằng chứng không thể chối cãi rằng A) bạn giữ bản quyền cho tác phẩm trước đó và đang cung cấp cho họ theo các điều khoản cấp phép X (MIT hoạt động, nếu bạn đồng ý với khía cạnh nguồn mở của nó được mô tả ở trên. ) B) họ đồng ý với các điều khoản này và C) chính xác, công việc trước đó là gì.

Đối với (A) và (B), bạn có thể yêu cầu họ ký hoặc đồng ý bằng văn bản cho nội dung tham chiếu hoặc bao gồm giấy phép và họ hiểu rằng bạn đang mang mã đến bảng theo các điều khoản đó. Theo (C) Tôi không chắc cách thức tiêu chuẩn để làm việc này sẽ là gì, nhưng phải hợp lý. Nếu nó không quá lớn, bạn chỉ có thể in mã ra và đưa nó vào phần phụ lục trong các bản sao của thỏa thuận mà cả bạn và chủ lao động của bạn ký. Giữ bản sao của bạn, với chữ ký của họ trên đó. Nếu nó quá lớn để in thực tế, có vẻ như băm md5 sẽ có ích ở đây. Có lẽ bạn có thể gọi nó là một cái gì đó như "tệp zip có tên X trong kho github riêng tư /, (hoặc trang web ftp, v.v.), có hàm băm md5 của XXXXXX ... và đã được gửi qua email cho công ty Y trên Z ngày". Sau đó, bạn có thể gửi email cho người quản lý hoặc luật sư của họ hoặc bất kỳ ai từ tài khoản email cá nhân của bạn và ngay cả khi họ xóa bản sao của họ, bạn vẫn giữ bản sao của mình và họ không thể tranh luận rằng bạn dự đoán mã băm md5 trong tương lai chưa được viết . Điều đó về mặt lý thuyết sẽ ngăn họ yêu cầu bất cứ điều gì khác trên đường.


Thật tuyệt vời, Ben. Cảm ơn bạn đã giúp đỡ. Tôi đã được tuyển dụng, vì vậy tôi tự hỏi nếu một email cho người quản lý của tôi nêu rõ tình hình và các điều khoản của giấy phép từ tôi cho họ có đủ không. Sau đó, tôi sẽ bao gồm giấy phép (Bản quyền (c) TÊN CỦA TÔI - Giấy phép được cấp cho CÔNG TY blah, blah, blah) trên mỗi mã nguồn tôi đang mang vào. Bạn nghĩ gì?
JohnPristine

Email chắc chắn có thể là bằng chứng của một sự hiểu biết hoặc một thỏa thuận, ví dụ như một hợp đồng. Nếu bạn đề xuất đưa mã vào bảng theo các điều khoản nhất định và một người có thẩm quyền trong công ty đồng ý với nó, có vẻ như nó sẽ tạo ra một hợp đồng đủ tốt. Tôi nghĩ ý tưởng của bạn về các điều khoản (C) / giấy phép trong mỗi tệp cũng là một điều tốt. Câu hỏi là liệu bạn có giữ lại (C) để cải thiện các tệp hay không. Nếu không, bạn có thể muốn tạo một bản ghi các phiên bản gốc của các tệp mà bạn giữ lại (C), ví dụ như với tệp zip & băm md5 được gửi đến người quản lý của bạn.
Ben Roberts

Câu trả lời tuyệt vời, cảm ơn bạn. Rất chi tiết và công thức.
haylem

6

(Tôi không phải là luật sư.)

Tôi thấy một vài vấn đề tiềm ẩn với điều này:

  • Nếu điều tồi tệ nhất đến tồi tệ nhất, bạn sẽ phải chứng minh rằng bạn đã viết mã này trước khi bạn bắt đầu làm việc ở đó và khi bạn sử dụng nó trong dự án tại nơi làm việc, chủ lao động của bạn biết rằng nó thuộc bản quyền của bạn và theo giấy phép của MIT . Vì mục tiêu chính của việc này là giữ lại bản quyền của bạn, không đặt ra các điều khoản phân phối lại, một hợp đồng bằng văn bản với chủ lao động của bạn về việc sử dụng mã được viết trước đó của bạn có vẻ là một ý tưởng tốt hơn.

  • Bạn nói rằng bạn muốn bảo vệ bản quyền của mình và khả năng xây dựng "thậm chí một phiên bản dẫn xuất khác của nó". Bây giờ có khả năng là trong khi ở công việc hiện tại của bạn, bạn sẽ có một vài ý tưởng tuyệt vời và thực hiện chúng. Đối với tôi, dường như điều này sẽ trở nên tồi tệ khi bạn nghỉ việc và sau đó 'thực hiện lại' những ý tưởng đó để xây dựng một phiên bản khác của thư viện - vì bạn không thể làm bất cứ điều gì bạn muốn với mã bạn đã viết trong công việc của mình (và đến một mức độ nào đó, những ý tưởng đằng sau nó).


1) Tôi dự định thực hiện việc này với tệp giấy phép cùng với mã của công ty, nói rằng nó dựa trên công việc xuất phát với giấy phép MIT. Để chứng minh nó đã được viết trước khi tôi dự định đếm với tuyên bố mẫu phát minh trước đây của tôi. 2) Tôi tin rằng bản quyền không có bản quyền, trừ khi có bằng sáng chế. Mã có bản quyền. Thách thức là làm thế nào để nhập lại / thực hiện lại / sử dụng lại ý tưởng mà không vi phạm bản quyền từ mã gốc đã triển khai.
JohnPristine

2
Đúng là các ý tưởng không có bản quyền nhưng có thể được coi là "bí mật thương mại" hoặc "bí quyết" hoặc "nếu có thể được cấp bằng sáng chế" hoặc "loại tài sản trí tuệ" khác mà bạn có thể đồng ý rằng công ty sở hữu. Đó là một khu vực lộn xộn.
Ben Roberts

4

Tôi không phải là một luật sư, nhưng đây sẽ là giải pháp của tôi:

  1. Phát hành mã theo giấy phép GNU GPL v3 trong kho lưu trữ công cộng, nơi tất cả đều có thể nhìn thấy.

  2. Giấy phép GPL không cho phép người khác lấy mã của bạn và đưa nó vào phần mềm thương mại độc quyền của họ và đóng mã.

  3. Nếu mã do bạn tạo 100% và không chứa công việc từ người khác hoặc công việc có nguồn gốc, thì GPL cũng cho phép bạn cấp phép mã theo giấy phép khác, trong trường hợp đó bạn được phép sử dụng nó trong công việc của mình cho mục đích thương mại độc quyền mã. Tuy nhiên, bạn phải làm cho chủ nhân của mình trở thành người được cấp phép của giấy phép độc quyền thay thế này.

  4. Giải pháp này sẽ chứng minh rằng bạn đã viết mã của mình TRƯỚC KHI bạn đã nhận công việc.

  5. Bạn có thể quảng cáo rằng mã của bạn có sẵn theo giấy phép bán độc quyền (để lấy tiền) và sau đó các bên quan tâm có thể liên hệ với bạn để mua mã.


Tôi sẽ không muốn làm 1 hoặc phát hành mã trong kho lưu trữ công cộng. Tôi hiểu đó là cách dễ nhất để chứng minh mã được viết trước đó. Tôi nghĩ rằng các chuyên gia phần mềm đang thiếu loại giấy phép này, một loại cho phép họ sử dụng mã của họ cho một công việc mà không làm cho nó trở thành nguồn mở và không mất nó. Nếu bạn làm lại mọi thứ, các mã sẽ tương tự nhau, không có lối thoát nào từ đó. Và một thiết kế phòng sạch là không thực tế cho một nhân viên.
JohnPristine

Nhưng giải pháp của bạn không cho phép chủ nhân của bạn xuất bản mã nguồn của bạn trong một kho lưu trữ công cộng. Tôi nghĩ rằng việc sử dụng giấy phép nguồn mở khi bạn không muốn nó là nguồn mở là không khôn ngoan.
markijbema

2

Có một lý do cụ thể nào mà bạn không thể hỏi nhà tuyển dụng của mình xem có thể bạn giữ bản quyền đối với mã chung mà bạn viết cho khung của mình không (điều này sẽ cung cấp cho họ một số mã miễn phí ngay bây giờ) và cung cấp cho họ mọi thứ bạn có thể làm -bạn-muốn-với-nó (đồng ý, điều này khá giống MIT).

Tuy nhiên, nếu bạn cấp phép cho mã hiện tại của MIT, không có lý do gì mà chủ nhân của bạn nên mở nguồn phiên bản sửa đổi của họ (do bạn sửa đổi), vì vậy tôi nói rằng nó không giải quyết được nhiều. Ngay cả LGPL cũng không giải quyết được điều này, miễn là mã không được 'phân phối'.

Tất cả trong tất cả các thỏa thuận của bạn nghe có vẻ không hợp lý: bạn có một số mã khung và bạn sẵn sàng tặng chúng cho công ty, miễn là bạn có thể giữ mã và sử dụng lại cho các dự án khác sau, vậy tại sao đừng hỏi?


Vâng! Đó luôn là cách tiếp cận tốt nhất tôi phải đồng ý. Chỉ cần can đảm và hỏi. Nếu họ nghĩ bạn thật kỳ lạ khi hỏi điều đó, thì hãy bắt đầu tìm kiếm một công việc khác. Đơn giản vậy thôi. Cuộc sống là tất cả về sự trung thực và rủi ro. :)
JohnPristine

2

IANAL, hỏi một luật sư thực sự, vv

Trước hết, tôi nghĩ rằng bạn tin rằng khi bạn có bản quyền, bạn chỉ có thể cấp phép sản phẩm cho chính mình theo cùng điều khoản mà bạn cấp phép cho mọi người khác. Điều này là sai: bạn có thể cấp phép cho chính mình trong bất kỳ giấy phép nào phù hợp và cấp phép cho người khác theo một giấy phép khác.

Điều đó có nghĩa là bạn có thể tạo một giấy phép đặc biệt cho công ty sắp thuê bạn và cung cấp phần mềm cho họ dưới dạng một thỏa thuận riêng. Tất nhiên, điều này nên được thực hiện bởi một luật sư thực sự.

Yêu cầu công ty của bạn ký giấy phép riêng, trong đó nêu rõ rằng bạn có bản quyền và bạn đang trao một số quyền nhất định cho họ, chứ không phải bản quyền.

Đối với vấn đề thứ yếu, có nhiều cách khác để chứng minh ngày trước, bên cạnh việc cung cấp nguồn mở cho dự án. Ví dụ: bạn có thể lưu trữ trên một máy chủ có sẵn công khai một tệp, nói rằng bạn thực sự đã viết phần mềm này, vào ngày được chỉ định, ví dụ như một vài băm khác nhau của phiên bản hiện tại hoặc thậm chí là phiên bản được mã hóa của dự án.

Điều này có nghĩa là nếu bạn đang bị đe dọa pháp lý, bạn có thể chứng minh ngày sử dụng trước cho thẩm phán, nhưng bạn không tiết lộ gì về dự án, ngoài ra bạn là tác giả và ngày bạn tiết lộ. Bạn nên tham khảo ý kiến ​​luật sư về tính hợp lệ có thể có của một lập luận như vậy, nhưng tôi tin rằng nó sẽ được chấp nhận tại hầu hết các tòa án.

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.