我可以使用MIT许可证将以前的部分书面代码提供给雇主,以保护自己并不会失去版权吗?


17

我的情况:

  • 在开始新工作之前,我已经编写了一个框架。我拥有版权。

  • 像任何软件一样,它内部有很多样板逻辑。(du!)

  • 我不想在我的新工作中使用整个框架,但是我确实需要在为我的新工作建立的类似框架中重用其中的某些部分

  • 从头开始重新实现/重新考虑所有逻辑是不切实际的。逻辑很多,逻辑就是逻辑,你不能做太多不同。例如,您可以编码多少个不同版本的HashMap?我敢打赌,它们将非常相似,并且第三版可以声称您侵犯了第一版的版权。:(

  • 尝试重新发明API是不切实际的。您可以重新发明HashMap的API吗?也许您可以更改put(k,v)add(k,v),但仅此而已。

我保护自己的想法和以前的代码:

我将告诉我的雇主,我正在基于我根据MIT许可编写的先前框架构建新框架。因此,将来如果我在其他地方使用我以前的框架,甚至使用它的另一个派生版本,该框架中的一些代码与我现在为雇主建立的新框架相似,他们将无法说我是使用他们为我编写的代码。

我的问题:

  • 我不会将代码分发给任何人。如果我拥有版权,我不必将我的MIT许可代码分发给任何人,对吗?我的意思是,有人可以要求我发布我现在声称已获得MIT许可的代码吗?这不是世界末日,我当然会同意在法律威胁下这样做。

  • 这个策略有意义吗?我的最终目标是能够使用以前的编码框架的派生版本而不会失去版权。同时,我不想将此代码作为开源项目分发给任何人。我还有其他开放源代码项目,我可以自由分发,但是我希望自己保留这个项目,以便可以在我的工作中使用(而不是承包商的工作)。

就像声称您拥有MIT许可下的框架,而没有实际向任何人分发和/或展示给任何人一样。如果它在那里,免费且容易获得,我的雇主不再需要我。他们只需要获取代码并将其交给其他人使用即可。

笔记:

  • 在开始工作之前,我已将此框架列为以前的发明。

  • 我没有在任何地方发布此代码。它位于我在私有服务器中托管的私有SVN存储库中。

我的想法是:

  • 我的计划是将以前的代码保留给我自己,在我为雇主建立的这个新框架中使用它的一部分,并告诉雇主这是我以前编码的MIT许可框架的工作,并且没有分发给任何人。我没有被迫分发我根据MIT许可证编码的软件,对吗?如果以后发生一些法律声明(希望不是),我可以立即将许可证粘贴到所有源上并显示/发布代码。

Answers:


21

我曾经是一名知识产权律师,因此拥有执照许可证方面的经验。我觉得这些术语本身是很容易理解和理解的,但是话又说回来,我受了三年的法学院和一些律师时间的伤害,然后才再次变得精明,回到黑客面前。特别是由于我目前不是活跃的律师,因此丝毫不打算将其作为法律建议。

让我们从MIT许可语言本身开始。然后,我将提出一些关键点来理解开放源代码许可证,然后解决您的问题并提供任何高级意见。

特此免费授予获得该软件和相关文档文件(“软件”)副本的任何人无限制使用本软件的权利,包括但不限于使用,复制,修改,合并的权利,发布,分发,再许可和/或出售本软件的副本,并允许具备软件的人员这样做,但须满足以下条件:(他们将本通知留在其中。结束。)

对于版权拥有者,大多数开源许可证(包括BSD,MIT,GPL)的一些关键事项是:

  1. 许可证不会改变您对版权本身的所有权。它是非排他性许可,不是所有权的转让或没收。使用OS许可证并不是“将某些东西放入公共领域”,尽管这肯定是开源的一种方法。
  2. 没有任何“强迫”版权拥有者以任何方式将代码公开,仅因为您附加了许可证即可。
  3. 但是,如果您使用OS许可证,则不能阻止任何“获取”您的OS许可代码的人以任何方式将其公开,这显然是所有这些许可所赋予的权利。
  4. Copyleft(例如GPL)许可确实要求获得者(但不包括所有者)将其衍生作品公开和开源。宽松(麻省理工学院,BSD)不。(这可能有点简化,但这是本质的区别)
  5. 大多数开源许可证(例如MIT)都没有“收回”条款,因此一旦有人“获取”了您的代码,他们就有权根据获得许可证的许可条款永久使用它。
  6. 您始终可以在不同的许可下分发代码的将来版本,或使其完全专有。这并不能阻止某人从您以前的开源版本开始(假设他们“获得了”)并添加了自己的新零件并进行分发。
  7. 您可以删除以前版本代码的“获取”通道,例如,将其从github上删除。但是,如上所述,这不会阻止其他人以任何方式使用或分发您已开源的任何先前版本。

在此基础上,我将继续讨论您的问题。

我不会将代码分发给任何人。如果我拥有版权,我不必将我的MIT许可代码分发给任何人,对吗?我的意思是,有人可以要求我发布我现在声称已获得MIT许可的代码吗?这不是世界末日,我当然会同意在法律威胁下这样做。...同时,我不想将此代码作为开源项目分发给任何人。

作为版权所有者,您不必将任何代码分发给任何人;您不必满足此类要求(即使它是GPL)。您保留所有权利。但是,在您描述的情况下,您将分发给您的新公司,并根据操作系统许可将其永久授权给他们。您的雇主(很有可能是前雇主)可以将您的代码粘贴到互联网上,除了抱怨之外,您将无能为力。

我认为您的意思是“除了我的雇主以外的任何人”。如果您不希望以“开源”的形式将其授予雇主,并给予他们该许可证中包含的所有权利,包括以他们想要的任何方式进行再分配和永久使用,那么您不应该使用开源许可证。您应该按照所需条款直接将其许可给他们。项目符号指出您想要的内容,并请律师向您收取一两个小时的费用,然后将其放入段落表格中。或自己写。许可只是合同,只是达成协议的协议。

我的最终目标是能够使用以前的编码框架的派生版本而不会失去版权。

除非您将版权转让给某人,独家许可(包括自己除外)或将其没收,否则您不会失去版权。这些都不是开源许可证。您将始终能够使用自己创建的派生版本,甚至可以以不同的方式许可派生或保留所有权利。

但是,您的主要合法权益似乎是,您将来仍然可以保留版权并使用您的代码,而无需雇主声称该代码是他们的代码,或者您没有这样做的权利。这样做的关键是要创建一个无可辩驳的证据,以证明A)您保留了先前作品的版权,并根据X许可条款将其提供给他们(MIT可以使用,如果您对上述开源方面满意的话)。 )B)他们同意这些条款,并且C)以前的工作是什么。

对于(A)和(B),您可以让他们签署或书面同意引用或包括许可证的内容,并且他们了解您正在按照这些条款将代码提交到表中。至于(C),我不确定执行此操作的标准方式是什么,但是是合乎逻辑的。如果不是很庞大,您可以将代码打印出来,并将其包含在您和您的雇主签署的协议副本中的附录中。保留您的副本,并在上面签名。如果太大而无法实际打印,似乎md5哈希在这里很有用。也许您可以将其称为“私有github存储库/(或ftp站点等)中名为X的zip文件,其md5哈希为XXXXXX ...,并通过电子邮件发送给Y公司,代表Z日期”。然后,您可以将其通过电子邮件发送给您的经理或他们的律师,或者从您个人电子邮件帐户中的任何人通过电子邮件发送,即使他们删除了他们的副本,您仍然保留您的副本,并且他们不能说您预测了将来尚未编写的md5代码哈希。从理论上讲,这将阻止他们在将来要求其他任何东西。


太棒了,本 谢谢你的帮助。我已经受雇了,所以我想知道是否可以给我的经理写一封电子邮件,说明情况和我发给他们的许可条款。然后,我将把许可证(版权(c)我的名字-授予COMPANY blah,blah,blah的许可证)包含在我引入的每个源代码中。您怎么看?
JohnPristine

电子邮件肯定可以作为理解或协议(例如合同)的证据。如果您提议按特定条款将代码提交到表中,而公司中的授权人也同意,则似乎可以很好地创建合同。我认为您对每个文件中的(C)/许可条款也很满意。问题是您是否将保留(C)对文件的改进。如果没有,您可能要记录确实保留唯一(C)的文件的原始版本,例如,将zip文件和md5哈希发送给经理。
本·罗伯茨

很棒的答案,谢谢。非常详细和制定。
haylem 2013年

6

(我不是律师。)

我看到一些潜在的问题:

  • 如果最糟糕的是,您必须证明自己在开始在那里工作之前已经编写了此代码,并且当您在工作中的项目中使用它时,您的雇主知道该代码受您的版权和MIT许可证的保护。 。由于这样做的主要目的是保留您的版权,而不是设置重新分配条款,因此与您的雇主就使用您先前的书面代码达成书面合同似乎是一个更好的主意。

  • 您说您想保护自己的版权以及建立“甚至它的另一个派生版本”的能力。现在,可能在您目前的工作中,您将拥有一些很棒的想法并付诸实施。在我看来,当您离开工作然后“重新实现”这些构想以构建您的库的另一个版本时,这会变得很麻烦-因为您无法使用在工作中编写的代码来做任何您想做的事情(并且在某种程度上,它背后的想法)。


1)我计划使用许可证文件以及公司代码来完成此操作,并声明该文件基于MIT许可证的派生工作。为了证明它是书面的,我打算先计入以前的发明表格声明。2)除非有专利,否则我认为创意不享有版权。代码受版权保护。面临的挑战是如何重新键入/重新实现/重新使用该想法,而又不会破坏已实现的原始代码的版权。
JohnPristine

2
确实,这些想法没有版权,但可以视为您可能已经同意公司拥有的“商业秘密”或“专有技术”或(如果可授予专利)“专利想法”或其他类型的“知识产权”。有点乱。
本·罗伯茨

4

我不是律师,但这是我的解决方案:

  1. 在所有人都能看到的公共存储库中,按照GNU GPL v3许可发布代码。

  2. GPL许可证不允许其他人获取您的代码并将其放入其专有的商业软件中并关闭代码。

  3. 如果代码是您100%创建的,并且不包含其他人的作品或衍生作品,则GPL允许您也根据其他许可对代码进行许可,在这种情况下,您可以在自己的工作中将其用于专有商业广告码。但是,您必须使您的雇主成为该替代专有许可证的被许可人。

  4. 该解决方案将证明您在上任之前已经编写了代码。

  5. 您可以宣传您的代码在专有许可下可以出售(用于金钱),然后有兴趣的人士可以联系您进行购买。


我不想做1或在公共存储库中发布代码。我知道这是证明代码之前编写过的最简单的方法。我认为软件专业人员缺少这种许可证,该许可证允许他们将代码用于一项工作,而不会使其成为开源代码,也不会丢失它。如果您重新做所有事情,代码将是相似的,这是无可避免的。洁净室设计对员工来说是不切实际的。
JohnPristine

但是您的解决方案确实允许您的雇主在公共存储库中发布您的源代码。我认为在您不希望将其开源时使用开源许可证是不明智的。
markijbema

2

是否有特定原因可以不询问您的雇主,您是否有可能保留为框架编写的通用代码的版权(这反过来为他们现在提供了一些免费代码),并为他们提供了您可以做的一切-您想要它(同意,这很像麻省理工学院)。

但是,如果您许可了当前的代码MIT,则没有理由为什么您的雇主应开源其修改后的版本(由您修改),所以我想说它解决不了多少。只要代码不是“分布式的”,即使LGPL也无​​法解决。

总而言之,这听起来并不合理:您拥有一些框架代码,并且愿意将它们捐赠给公司,只要您可以保留该代码,以后再将其重用于其他项目,那么为什么呢?不问?


是的 我必须始终同意这是最好的方法。只是勇敢地问一下。如果他们认为您提出这个要求很奇怪,请开始寻找其他工作。就如此容易。生活就是诚实和冒险。:)
JohnPristine

2

IANAL,请真正的律师,等等。

首先,我认为您认为拥有版权时,只能以与他人相同的条款向自己授予产品许可。这是错误的:您可以使用任何合适的许可将其许可给自己,并使用其他许可将其许可给其他人。

这意味着您可以为将要雇用您的公司创建特殊许可,并将软件作为单独协议提供给他们。当然,这应该由真正的律师来完成。

让您的公司签署单独的许可证,该许可证明确声明您拥有版权,并且您授予他们某些权利,而不是版权。

至于第二个问题,除了将项目开源外,还有其他方法可以证明以前的日期。例如,您可以在一个公共服务器上托管一个文件,该文件说您确实在指定的日期编写了该软件,其中包含例如当前版本的几个不同哈希值,甚至项目的加密版本。

这意味着,如果您受到法律威胁,则可以向法官证明使用的先前日期,但是除了您是作者和披露日期之外,您几乎没有透露任何有关该项目的信息。您应就这种论点的可能有效性咨询律师,但我相信大多数法院都会接受该论点。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.