você está aqui: Home  → Arquivo de Mensagens

GPL sem medo - Como libertar seu código

Colaboração: Gustavo Nunes Freire Ribeiro

Data de Publicação: 11 de Novembro de 2004

No mundo do software livre, existe um verbo que todos os dias deve ser conjugado; compartilhar ! Foi com esse espirito que hoje o software livre chega as empresas, universidades, telecentros e nas casas de milhares de pessoas. Uma coisa que garante esse direito de compartilhar na maioria dos softwares livres é a licença GPL.

A GPL é a licença de software livre mais usada e difundida, que dá os direito de executar o programa para qualquer propósito, acessar e modificar o código-fonte, redistribuir cópias e aperfeiçoar. Existem outras licenças, também de autoria da FSF(Free Software Foudation)[1], como a LGPL e GFDL, mas não serão abordadas neste artigo.

Domínio Público x Software Livre:

Um desenvolvedor pode perguntar: "Para que eu preciso aplicar uma licença se eu posso simplesmente disponibilizar meu programa e o código-fonte sem trabalho nenhum ? ". Neste caso o desenvolvedor estará renunciando seu código ou seja, qualquer um pode "toma posse do código-fonte" e se tornar o autor do software sem que o autor original possa contestar. Já aplicando uma licença, como a GPL, o autor tem garantias de que o software está protegido de oportunistas.

Trabalhando no código

Vamos usar um exemplo de código de uma liguagem imaginaria, que tem a função de fazer meu café da manhã enquanto eu tomo meu banho, :) :

  principal ()
         {
         tempo hora, atrasado ;
         /* ISTO É UM COMENTÁRIO */
         hora = pegahora();
         atrasado = 7:00;
         se   hora >= atrasado entao
                 {
                 imprima("Café da Manhã só no outro dia agora");
                 }
         senao
                 {
                 imprima("Bom apetite");
                 refeicao(cafedamanha);
                 }
         }

Eu, achando que outras pessoas que também passam por esse problema de horários, quero disponibilizar meu programa para todos poderem usar e até melhorar, lançando uma versão com todas as refeições, :).

Bem, nosso primeiro passo é aplicar, a cada arquivo fonte, o aviso de copyright e uma declaração que permita a cópia, dizendo que o programa é distribuido sobre os termos da GPL. Um exemplo abaixo , aplicando em um arquivo, do nosso código fonte:

  /*              Copyright 2004 NOMEDOAUTOR
  
         This program is free software; you can redistribute it and/or modify
         it under the terms of the GNU General Public License as published by
         the Free Software Foundation; either version 2 of the License, or
         (at your option) any later version.
  
         This program is distributed in the hope that it will be useful,
         but WITHOUT ANY WARRANTY; without even the implied warranty of
         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
         GNU General Public License for more details.
  
         You should have received a copy of the GNU General Public License
         along with this program; if not, write to the Free Software
         Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
  
  principal ()
         {
         tempo hora, atrasado ;
  
         hora = pegahora();
         atrasado = 7:00;
         se   hora >= atrasado entao
                 {
                 imprima("Café da Manhã só no outro dia agora");
                 }
         senao
                 {
                 imprima("Bom apetite");
                 refeicao(cafedamanha);
                 }
         }

Nosso segundo passo é criar um arquivo chamado COPYING.txt que contenha na íntegra o Licença GPL[2], a licença é um pouco extensa, por isso eu deixo o trabalho de copia-la do site da FSF. A licença, o código-fonte e os binários do seu programa devem acompanhar o pacote do seu software.

Caso seu software seja formado por mais de um único arquivo fonte, a declaração mais apropriada seria essa abaixo:

  /*                      Copyright 2004 NOMEDOAUTOR
  
         This file is part of NOMEDOPROGRAMA.
  
         NOMEDOPROGRAMA is free software; you can redistribute it and/or modify
         it under the terms of the GNU General Public License as published by
         the Free Software Foundation; either version 2 of the License, or
         (at your option) any later version.
  
         NOMEDOPROGRAMA is distributed in the hope that it will be useful,
         but WITHOUT ANY WARRANTY; without even the implied warranty of
         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
         GNU General Public License for more details.
  
         You should have received a copy of the GNU General Public License
         along with Foobar; if not, write to the Free Software
         Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
         principal ()
         {
         tempo hora, atrasado ;
  
         hora = pegahora();
         atrasado = 7:00;
         se   hora >= atrasado entao
                 {
                 imprima("Café da Manhã só no outro dia agora");
                 }
         senao
                 {
                 imprima("Bom apetite");
                 refeicao(cafedamanha);
                 }
         }

Aconselho que seja feito um arquivo README.txt com informações de contato como email ou homepage, para que os usuários possam reportar possíveis bugs ou então melhorias para seu software. Uma cópia em português da Licença GPL também pode acompanhar o seu programa, para melhor entendimento da versão original inglês, que é obrigatória, aconselha a FSF.

Para mais informações, existe uma página de FAQ da GPL em português e também algumas outras informações podem também ser encontradas na página do PSL Brasil.



Veja a relação completa dos artigos de Gustavo Nunes Freire Ribeiro

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script