Como posso criar minha própria licença de software? [fechadas]

15

Tenho visto várias licenças para qualquer tipo de software, como a GNU GPL, a Licença BSD, a Licença MIT e a LGPL. Qual é o processo para criar uma nova licença de software, como "licença genérica de John Doe"?

    
por Rrjrjtlokrthjji 24.10.2012 / 22:02
fonte

5 respostas

26
  1. Abra um editor.
  2. Escreva os termos da licença.
  3. Salvar arquivo.
  4. Incluir no projeto.

De um modo geral, é tudo o que existe para isso. Sério.

Não acredite em mim? Confira a licença de Phil Sturgeon, Não seja um Dick (assim como o WTFPL que o inspirou).

Dito isto, é imprevisível se licenças de software são legalmente aplicáveis , mesmo que um advogado tenha escrito eles (pelo menos nos EUA, e isso depende quase inteiramente do capricho do juiz ou autoridade de direitos autorais). Mais geralmente, no entanto, como autor do software, você já está coberto pelas leis de direitos autorais do seu país (supondo que você tenha tomado as providências para que seu trabalho seja protegido por direitos autorais; nos EUA, isso simplesmente torna trabalho).

Tudo se resume ao que você quer realizar com sua licença, acima e além (ou em vez de) leis de direitos autorais. No caso de tais licenças, como a licença do DBaD de Phil, é em grande parte uma questão do princípio da honra e do respeito mútuo entre si.

Se você quiser que ele seja legalmente aplicável (ou pelo menos tenha a chance de fazê-lo), como lançar um produto de código fechado, é muito provável que você queira conversar com um advogado. Dessa forma, você pode ter certeza de que não há lacunas gritantes e pode tê-la escrita de tal forma que um juiz / partido no poder tenha maior probabilidade de decidir a seu favor, no caso de alguém violar isso.

EllisLab (a empresa por trás do CodeIgniter) tem uma ótima explicação sobre o licenciamento de software (e todo semana de blogs sobre o assunto, na verdade), tanto do ponto de vista legal, quanto do ponto de vista de um desenvolvedor FLOSS e do princípio de honra que mencionei acima.

(Disclaimer: Eu não sou um advogado, isso não é legalmente obrigatório conselho, blah, blah, blah. Eu sou apenas um desenvolvedor que teve que ponta-de-ponta em torno do campo minado legal que é o desenvolvimento de software e licenciamento. Em caso de dúvida, fale com alguém que seja realmente um advogado, idealmente com um foco de direitos autorais, patente e / ou licenciamento.)

    
por 24.10.2012 / 22:27
fonte
15

Responda as seguintes perguntas para o usuário do seu software:

  1. O seu produto é de código aberto, por exemplo, posso obter uma cópia do código-fonte?

    • Como posso usar seu código-fonte? Posso copiá-lo livremente em meus próprios aplicativos ou tenho que vincular ao seu binário? Se eu usar seu código em meu próprio aplicativo, há um limite para quanto do seu código eu posso usar? Preciso incluir sua licença ou cabeçalho de atribuição na parte superior de quaisquer arquivos de origem que eu redistribuir que contenham seu código ou na caixa Ajuda / Sobre do meu binário?
  2. O que posso fazer com seu produto? Posso usá-lo em um único computador? Posso usá-lo em mais de um computador? Posso redistribuí-lo ou revendê-lo?

  3. Se eu usar seu produto como parte de outro aplicativo que escrevo, também tenho que ser de código aberto?

  4. Como você garante seu produto? Você é legalmente responsável se tiver problemas?

  5. Quais são os seus termos de redistribuição? Posso redistribuir seu produto como parte de um produto que escrevo? Se você fornecer fonte, posso modificar sua biblioteca e redistribuir as modificações e, em caso afirmativo, que condições devo cumprir?

Estude outras licenças e veja como elas responderam a essas perguntas.

    
por 24.10.2012 / 22:16
fonte
6

Na verdade, é surpreendentemente semelhante ao que os desenvolvedores fazem:

Você dá a um advogado (ou ao departamento jurídico de uma grande corporação) uma lista de requisitos para o que a licença permite e o que não permite (por exemplo, a licença é para apenas um usuário, é temporária, não é possível usar o software para alguns propósitos, etc.) e eles "traduzem" isso para a linguagem de advogado, da mesma forma que traduzimos os requisitos em código.

Por exemplo, "a licença é para apenas um usuário" geralmente é traduzida para algo semelhante a isto: "A FooCorp Inc. concede a você uma licença única, não exclusiva e intransferível para instalar e usar o FooSoftware para .. ".

Você pode pensar que isso não se aplica às licenças de F / OSS, mas é mais ou menos o mesmo, exceto que os requisitos são diferentes: você pode encontrar a versão mais simples desses requisitos em link .

Mas a parte de advogado é essencial e não adianta tentar escrever uma licença por conta própria (a menos que você seja um advogado com muita experiência em direito internacional e relacionado a IP). Alguém encontrará apenas uma brecha conveniente, que permitirá que ele use seu produto da maneira que ele quiser (eu iria tão longe para comparar isso com exploits).

É claro que não pretendo que essa explicação seja completa ou correta, mas é um esboço do processo, no que diz respeito aos desenvolvedores de software (portanto, eu o compara ao trabalho de um programador).

    
por 24.10.2012 / 22:17
fonte
4

Para responder à sua pergunta, qualquer um pode escrever uma licença - e ela mostra!

Aqueles de nós que usam software para construir coisas e realmente tentam respeitar cada licença estão prontos para arrancar nossos próprios olhos com um poker quente toda vez que alguém fala em fazer um novo. Já existe um número incontável de licenças de software no mundo. 99% deles são quase duplicatas de licenças existentes e mais populares, exceto que não foram bem pensadas.

Um site para o qual eu contribuo tem uma licença de tipo de atribuição não comercial de uso comum criada por criativos, mas não diz nada sobre trabalhos derivados. Eles são permitidos? Eles podem ser distribuídos sob a mesma licença? Me bate!

Se outras pessoas contribuírem para um projeto e você quiser ou precisar alterar a licença, será necessário fazer com que todas concordem em alterar a licença ou ficarão mais ou menos presas para sempre. Alguns deles podem se tornar inacessíveis ou até morrer. Não sou advogado, mas se você não tiver um contrato de colaborador assinado de todos que lhe permita tomar decisões sobre sua licença, acho que você é SOL.

É muito difícil escrever uma boa licença. Até mesmo as melhores licenças de software estão cheias de buracos. Existem novas versões das licenças Apache e GPL periodicamente. Por favor, veja se você pode encontrar uma licença que atenda 90% das suas necessidades e use-a. A GPL Linking Exception ou "Classpath Exception" é um ótimo exemplo disso. Estou um pouco preocupado com a declaração que o pessoal do Hibernate tinha em seu site há alguns anos, basicamente publicamente interpretando erroneamente a GPLv2 para fazer parecer que ela incluía a Exceção de Caminho de Classe. Essa é a exceção do caminho de classe? Nós não saberemos a menos que alguém os processe.

Parece-me que ser processado é a maneira mais dolorosa de depurar sua licença. Se você usar uma licença que as pessoas já tenham processado, há uma certa garantia de que ela funciona e também uma ideia de como ela funciona. Melhor ainda, escolha uma licença que tenha sido para o tribunal em diferentes países. Você pensou em como sua licença seria interpretada em outras partes do mundo?

Se você basear sua licença em uma existente, as pessoas que se importam com o cumprimento dos termos de sua licença talvez não precisem estudá-la por anos para descobrir exatamente o que ela significa.

Se for possível, eu o encorajaria a dedicar suas energias e talentos para melhorar uma licença existente ao invés de escrever uma nova.

Desculpe por ser uma alegria tão grande. Se eu sou amargo, é porque eu realmente leio e tento respeitar as licenças das pessoas antes de usar seus trabalhos.

    
por 24.10.2012 / 23:08
fonte
3

Anote os termos, publique-os com o seu software. É isso.

Uma pergunta, no entanto, é por que você quer? Não é improvável que as condições que você deseja adicionar já estejam presentes em outra licença comumente usada.

Isso adiciona uma etapa preliminar - verifique se você realmente precisa criar uma licença.

Também é provável que algumas das condições que você deseja impor sejam falhas de alguma forma; adicionando outra etapa preliminar - leia sobre os termos "exclusivos" que você deseja aplicar. É provável que alguém tenha tentado esses termos e os considerou inexeqüíveis ou contraproducentes de alguma forma.

    
por 24.10.2012 / 22:34
fonte