Posso usar a licença do MIT para fornecer ao empregador parte do meu código escrito anterior, para que eu me proteja e não perca meus direitos autorais?

17

Minha situação:

  • Eu escrevi uma estrutura antes de iniciar meu novo trabalho. Eu possuo os direitos autorais.

  • Ele tem um monte de lógica padrão, como qualquer software. (duh!)

  • Não quero usar toda a estrutura em meu novo trabalho, mas preciso reutilizar algumas partes dele em uma estrutura semelhante que estou construindo para o meu novo trabalho.

  • É impraticável reimplementar / repensar toda a lógica do zero. É muita lógica e lógica é lógica, você não pode torná-lo muito diferente. Por exemplo, quantas versões diferentes de um HashMap você pode codificar? Aposto que eles serão muito semelhantes e a terceira versão pode alegar que você violou os direitos autorais da primeira versão. :(

  • É impraticável tentar reinventar a API. Você pode reinventar a API de um HashMap? Talvez você possa mudar put(k,v)para add(k,v), mas não muito mais do que isso.

Minha ideia para me proteger e meu código anterior:

Vou dizer ao meu empregador que estou construindo a nova estrutura com base em uma estrutura anterior que escrevi sob a licença do MIT. Portanto, no futuro, se eu usar minha estrutura anterior em outro lugar, ou mesmo em outra versão derivada , que tenha alguns trechos de código semelhantes a essa nova estrutura que estou construindo agora para o empregador, eles não poderão dizer que sou usando o código deles, o que eu escrevi para eles.

Minhas perguntas:

  • Não estou distribuindo meu código para ninguém. Não preciso distribuir meu código licenciado do MIT a ninguém, se eu possuir os direitos autorais, correto? Quero dizer, alguém pode solicitar que eu libere meu código que agora afirmo que está sob licença do MIT? Não seria o fim do mundo e eu certamente concordaria em fazer isso sob uma ameaça legal.

  • Essa estratégia faz algum sentido? Meu objetivo final é poder usar uma versão derivada da minha estrutura codificada anterior sem perder os direitos autorais. Ao mesmo tempo, não quero distribuir esse código como um projeto de código aberto para ninguém. Tenho outros projetos de código aberto que distribuo livremente, mas este gostaria de mantê-lo para que eu possa usá-lo em meus trabalhos (não em empreiteiros).

É como afirmar que você possui uma estrutura sob a licença MIT, sem realmente distribuir e / ou mostrar a ninguém . Se existe, disponível gratuitamente e facilmente, meus empregadores não precisam mais de mim. Eles podem simplesmente pegar o código e entregá-lo a outra pessoa para usá-lo.

Notas:

  • Eu listei essa estrutura como uma invenção anterior antes de iniciar o trabalho.

  • Não libertei esse código em nenhum lugar. É no meu repositório SVN privado que hospedo no meu servidor privado.

Minha idéia em poucas palavras:

  • Meu plano é manter o código anterior para mim mesmo, usar partes dele nesta nova estrutura que estou construindo para o empregador e dizer ao empregador que é um trabalho derivado de uma estrutura licenciada pelo MIT que eu codifiquei antes e não distribuí para ninguém ". Não sou obrigado a distribuir um software que codifiquei sob a licença MIT. Se mais tarde acontecer alguma ação legal (espero que não), posso colar imediatamente a licença em todas as fontes e mostrar / liberar o código.
JohnPristine
fonte

Respostas:

21

Eu era advogado de propriedade intelectual, por isso tenho experiência com licença-ese. Eu sinto que os termos em si são razoavelmente legíveis e compreensíveis, mas, novamente, sou prejudicado por três anos de faculdade de direito e algum tempo de advocacia antes de recuperar meu juízo e voltar a invadir. Especialmente porque atualmente não sou advogado ativo, isso certamente não se destina a aconselhamento jurídico nem um pouco.

Vamos começar com o próprio idioma da licença do MIT. A seguir, apresentarei alguns pontos-chave para entender as licenças de código-fonte aberto, abordarei suas perguntas e apresentarei observações de alto nível.

A permissão é concedida, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para negociar no Software sem restrições, incluindo, sem limitação, os direitos de uso, cópia, modificação, fusão , publique, distribua, sublicencie e / ou venda cópias do Software e permita que as pessoas a quem o Software é fornecido o façam, sob as seguintes condições: (que eles deixem este aviso nele. O final.)

Algumas coisas importantes com a maioria das licenças de código aberto (incluindo BSD, MIT, GPL) para proprietários de direitos autorais são:

  1. A licença não altera sua propriedade dos direitos autorais. É uma licença não exclusiva, não uma cessão ou perda de propriedade. O uso de uma licença do sistema operacional não é "colocar algo em domínio público", embora essa seja certamente uma abordagem do código aberto.
  2. Nada "força" você, o proprietário dos direitos autorais, a tornar o código público de qualquer maneira apenas porque você anexa uma licença a ele.
  3. Mas se você usar uma licença do sistema operacional, não poderá impedir que qualquer pessoa que "obtenha" o seu código licenciado no sistema o torne público de qualquer forma, o que está explicitamente sob seus direitos sob todas essas licenças.
  4. As licenças da Copyleft (por exemplo, GPL) exigem que os adquirentes (mas não os proprietários) tornem suas obras derivadas públicas e de código aberto. Permissivo (MIT, BSD) não. (isso pode ser um pouco de simplificação, mas é a diferença essencial)
  5. Não existe uma cláusula de "devolução" para a maioria das licenças de código-fonte aberto (por exemplo, o MIT). Assim, quando alguém "obtém" seu código, ele tem o direito de usá-lo permanentemente, de acordo com os termos da licença em que o recebeu.
  6. Você sempre pode distribuir versões futuras do seu código sob uma licença diferente ou mantê-las completamente proprietárias. Isso não impede que alguém comece com a sua versão anterior de código aberto (supondo que a "tenha obtido") e adicione suas próprias peças novas e a distribua.
  7. Você pode remover um canal de "obtenção" para versões anteriores do seu código, por exemplo, retirá-lo do github. No entanto, como mencionado, isso não impede que outras pessoas usem ou distribuam nenhuma versão anterior que você tenha aberto, de qualquer forma.

Com essa base, passarei às suas perguntas.

Não estou distribuindo meu código para ninguém. Não preciso distribuir meu código licenciado do MIT a ninguém, se eu possuir os direitos autorais, correto? Quero dizer, alguém pode solicitar que eu libere meu código que agora afirmo que está sob licença do MIT? Não seria o fim do mundo e eu certamente concordaria em fazer isso sob uma ameaça legal. ... Ao mesmo tempo, não quero distribuir esse código como um projeto de código aberto para ninguém.

Como detentor dos direitos autorais, você não precisa distribuir nenhum código para ninguém; você não precisaria atender a essas solicitações (mesmo que fosse a GPL). Você mantém todos os direitos. No entanto, na situação descrita, você estaria distribuindo para sua nova empresa e licenciando-a perpetuamente sob uma licença de sistema operacional. Seu empregador (provavelmente ex-empregador) poderia colar seu código na Internet e você não seria capaz de fazer nada além de resmungar.

Suponho que você queira dizer "alguém além do meu empregador". Se você não deseja entregá-lo ao seu empregador "como código aberto" e conceder a ele todos os direitos incluídos nessa licença, incluindo redistribuição e uso perpétuo da maneira que desejar, então você não deve usar um licença de código aberto. Você deve apenas licenciá-lo diretamente para eles, nos termos que desejar. Bullet indica o que você quer e solicite a um advogado uma hora ou duas para colocá-los em um formulário de parágrafo. Ou escreva você mesmo. Licenças são apenas contratos que são apenas acordos postos em palavras.

Meu objetivo final é poder usar uma versão derivada da minha estrutura codificada anterior sem perder os direitos autorais.

Você não pode perder os direitos autorais a menos que o atribua a alguém, licencie-o exclusivamente (incluindo a exclusão de si mesmo) ou perca-o. Licença de código aberto não é nenhuma delas. Você sempre poderá usar as versões derivadas criadas e poderá licenciar as derivações de maneira diferente ou manter todos os direitos.

Porém, uma das suas principais e legítimas preocupações parece ser a de que você poderá reter os direitos autorais e usar seu código no futuro sem que o empregador reivindique o código como deles ou que você esteja fora dos seus direitos. A chave para isso é criar uma evidência irrefutável de que A) você mantém os direitos autorais de seu trabalho anterior e os fornece sob os termos da licença X (o MIT funciona, se você estiver de acordo com o aspecto de código aberto descrito acima. ) B) eles concordam com estes termos, e C) o que exatamente era o trabalho anterior.

Para (A) e (B), você pode assinar ou concordar por escrito com algo que faça referência ou inclua a licença e que eles entendam que você está trazendo o código para a tabela sob esses termos. Quanto a (C), não tenho certeza de qual seria a maneira padrão de fazer isso, mas seja lógico. Se não for muito grande, basta imprimir o código e incluí-lo no adendo nas cópias do contrato que você e seu empregador assinam. Mantenha sua cópia, com a assinatura deles. Se for grande demais para imprimir praticamente, parece que um hash md5 seria útil aqui. Talvez você possa se referir a ele como algo como "o arquivo zip chamado X no repositório privado do github /, (ou site ftp etc.), que possui um hash md5 de XXXXXX ... e foi enviado por e-mail ao representante da empresa Y em Z encontro". Em seguida, você pode enviá-lo por e-mail ao seu gerente ou advogado ou a qualquer pessoa da sua conta de e-mail pessoal e, mesmo que eles excluam a cópia, você ainda mantém a sua e eles não podem argumentar que você previu o futuro hash de código md5 que ainda não foi gravado. . Teoricamente, isso os impediria de reivindicar qualquer outra coisa no caminho.

Ben Roberts
fonte
Isso é incrível, Ben. Obrigado pela ajuda. Eu já estou empregado, então me pergunto se um e-mail para o meu gerente informando a situação e os termos da licença para mim seria suficiente. Depois, incluiria a licença (Copyright (c) MEU NOME - Licença concedida à EMPRESA blá, blá, blá) em cada código-fonte que estou trazendo. O que você acha?
precisa saber é o seguinte
Os e-mails certamente podem ser evidências de um entendimento ou acordo, por exemplo, um contrato. Se você propõe trazer o código para a tabela sob certos termos e uma pessoa com autoridade na empresa concorda com isso, parece que isso criaria um contrato suficientemente bem. Eu acho que sua ideia sobre os termos (C) / licença em cada arquivo também é boa. A questão é se você manterá (C) as melhorias nos arquivos ou não. Caso contrário, convém fazer um registro das versões originais dos arquivos aos quais você mantém somente (C), por exemplo, com um arquivo zip e o hash md5 enviado ao seu gerente.
Ben Roberts
Resposta incrível, obrigado. Muito bem detalhado e formulado.
haylem
6

(Eu não sou um advogado.)

Vejo alguns problemas em potencial com isso:

  • Se o pior acontecer, você terá que provar que escreveu esse código antes de começar a trabalhar lá e que, quando o usou no seu projeto no trabalho, seu empregador estava ciente de que estava sob seus direitos autorais e sob a licença MIT . Como o objetivo principal é manter seus direitos autorais, não definir termos de redistribuição, um contrato por escrito com seu empregador sobre o uso de seu código escrito anteriormente parece uma idéia melhor.

  • Você diz que deseja proteger seus direitos autorais e a capacidade de criar "até outra versão derivada dele". Agora é provável que, enquanto estiver no seu trabalho atual, você tenha algumas ótimas idéias e as implemente. Parece-me que isso se tornaria complicado quando você sair do emprego e depois 'reimplementar' essas idéias para criar outra versão da sua biblioteca - já que você não pode fazer o que quiser com o código que escreveu no trabalho (e até certo ponto, as idéias por trás disso).

us2012
fonte
1) Eu pretendo fazer isso com um arquivo de licença junto com o código da empresa, afirmando que ele se baseia no trabalho derivado da licença do MIT. Para provar que foi escrito antes de planejar contar com a declaração do formulário de invenção anterior. 2) As idéias não têm direitos autorais, acredito, a menos que haja uma patente. O código é protegido por direitos autorais. O desafio é como redigitar / reimplementar / reutilizar a ideia sem quebrar os direitos autorais do código original implementado.
precisa saber é o seguinte
2
É verdade que as idéias não têm direitos autorais, mas podem ser consideradas "segredos comerciais" ou "know-how" ou (se patenteáveis) "idéias patenteáveis" ou outro tipo de "propriedade intelectual" que você provavelmente concordou que a empresa possui. É um tipo de área bagunçada.
Ben Roberts
4

Não sou advogado, mas esta seria a minha solução:

  1. Libere o código sob a licença GNU GPL v3 em um repositório público, onde todos podem ver.

  2. A licença GPL não permite que outras pessoas tomem seu código e o coloquem em seu software comercial proprietário e fechem o código.

  3. Se o código foi 100% criado por você e não contém trabalho de terceiros ou trabalho derivado, a GPL também permite que você licencie seu código sob outra licença. Nesse caso, você pode usá-lo em seus trabalhos para fins comerciais proprietários código. No entanto, você deve tornar seu empregador um licenciado dessa licença proprietária alternativa.

  4. Esta solução provaria que você escreveu seu código ANTES de aceitar o trabalho.

  5. Você pode anunciar que seu código está disponível sob uma licença proprietária para venda (por dinheiro) e as partes interessadas podem entrar em contato com você para adquiri-lo.

ruben2020
fonte
Eu não gostaria de fazer 1 ou liberar o código em um repositório público. Entendo que é a maneira mais fácil de provar que o código foi escrito antes. Acho que os profissionais de software estão perdendo esse tipo de licença, que lhes permite usar seu código para um trabalho sem torná-lo de código aberto e sem perdê-lo. Se você refazer tudo, os códigos serão semelhantes, não há como escapar disso. E um design de sala limpa é impraticável para um funcionário.
precisa saber é o seguinte
Mas sua solução permite que seu empregador publique seu código-fonte em um repositório público. Eu acho que usar uma licença de código aberto quando você não deseja que ele seja de código aberto é imprudente.
Marque '
2

Existe uma razão específica para que você não possa perguntar ao seu empregador se é possível manter os direitos autorais do código geral que você escreve para sua estrutura (o que, por sua vez, oferece a eles algum código gratuito agora) e fornecer a você tudo o que puder -você-quer-com-ele (concordado, é como o MIT).

No entanto, se você licenciar seu código atual MIT, não há razão para que seu empregador deva abrir a versão modificada (modificada por você), então eu diria que isso não resolve muito. Até a LGPL não resolveria isso, contanto que o código não fosse 'distribuído'.

No geral, seu negócio não parece irracional: você tem algum código de estrutura e está disposto a doá-lo à empresa, desde que possa se apegar ao código e reutilizá-lo para outros projetos posteriormente, por que Não pergunte?

markijbema
fonte
sim! Essa é sempre a melhor abordagem que devo concordar. Apenas seja corajoso e pergunte. Se eles acham que você é estranho por perguntar isso, comece a procurar outro emprego. Tão simples como isso. A vida tem tudo a ver com honestidade e riscos. :) #
31913 JohnPristine #
2

IANAL, pergunte a um advogado de verdade, etc.

Antes de tudo, acho que você acredita que, quando possui direitos autorais, só pode licenciar o produto para si mesmo nos mesmos termos em que está licenciado para todos os outros. Isso está errado: você pode licenciá-lo para si mesmo em qualquer licença adequada e licenciá-lo para outra pessoa sob uma licença diferente.

O que significa que você pode criar uma licença especial para a empresa que está prestes a contratá-lo e disponibilizar o software para eles como um contrato separado. Obviamente, isso deve ser feito por um advogado de verdade.

Faça com que sua empresa assine a licença separada, que declara explicitamente que você possui direitos autorais e está concedendo certos direitos a eles, não os direitos autorais.

Quanto à questão secundária, existem outras maneiras de comprovar a data anterior, além do código aberto do projeto. Por exemplo, você pode hospedar em um servidor disponível publicamente um arquivo, informando que você realmente escreveu este software, na data especificada, contendo, por exemplo, alguns hashes diferentes da versão atual ou mesmo a versão criptografada do projeto.

Isso significa que, se você estiver sob ameaça legal, poderá provar a data anterior de uso ao juiz, mas não revelará praticamente nada sobre o projeto, além de ser o autor e a data em que o revelou. Você deve consultar um advogado sobre a possível validade de tal argumento, mas acredito que seria aceito na maioria dos tribunais.

K.Steff
fonte