[GNUes-list] Como publicar y/o Registrar programa con GPL

jemarch at gnu.org jemarch at gnu.org
Tue Apr 19 23:52:27 CEST 2005


Buenas Jesús. 


    Hola Lista , Me Acabo de Suscribir a esta Lista , ya que estoy muy
    Interesado en la Filosofia del Software Libre

¡Bienvenido! Nos alegra mucho poder saludar a gente nueva.

    pero no he encontrado o no he entendido , como hacer que un sofware
    que yo haga
     quede con licencia GPL , se Registra en algun lado o como le hago para
    que quede protegio por la GPL  o cuales son los pasos , es evaluado
    para saber si cumple ?  ,entiendo que para hacerlo GPL hay que poner
    el codigo fuente, no tengo dudas en esto.


Veamos.

Lo que conocemos como "licencia de software" son los términos que fija
el autor (en realidad el poseedor del derecho de explotación) y que
deben respetarse en la distribución de las copias del programa.

Hablando a grosso modo existen tres personajes principales en la
distribución de un programa:

- El/los autor/es de la obra que se distribuye (el que escribió el programa).

- El/los "copyright holder/s" (o poseedores del copyright).

- El usuario al que le es distribuída la obra.


En el ámbito del software libre el autor y el poseedor del copyright a
menudo coinciden. La diferencia mas importante entre ambas figuras (al
menos en España) es que la autoría de una obra es irrenunciable e
intransferible (el autor no puede "transferirla" a otra persona)
mientras que los derechos de copyright sí pueden transferirse mediante
un contrato. 

En cualquier caso, es al poseedor del copyright al que corresponde
fijar los términos de distribución del programa.

Pero lo mejor es ir poco a poco con un ejemplo simple (y práctico).

Supongamos que escribes un pequeño programa como el que sigue:


  # dihola.sh -- Un programa que dice hola
  echo hola


Comencemos por el caso mas simple (que correponde al anterior): no has
puesto tu nombre y mucho menos una notificación de copyright o
licencia. La falta de un "Escrito por José E. Marchesi" no implica que
yo no sea el autor, ni que la ley de la propiedad intelectual no me
cubre. Por el contrario, cualquier autor lo es legalmente desde el
mismo momento en que realiza una obra (en este caso escribe el
programa). Claro que poner un "Escrito por ..." nos puede ahorrar
muchos problemas en el futuro a la hora de justificar que nosotros
hemos escrito el programa :). Luego modificamos el programa para
obtener: 

  # dihola.sh -- Un programa que dice hola
  #
  # Escrito por José E. Marchesi

  echo hola
   

Al poner nuestro nombre en la cabecera del programa no obtenemos
ningun derecho adicional (la autoría es inherente) pero sí que
reforzamo de alguna forma la fortaleza legal de nuestro programa: es
mucho mas difícil que otra persona pretenda ser el autor y se salga
con la suya.

Pero no se ninguna notificación de copyright por ninguna parte
(Copyright (C) etc etc). Exactamente igual que ocurre con la autoría,
eso no implica que los derechos de explotación no sean nuestros:
existe una notificación de copyright implícita en el programa anterior
que indica que los derechos de explotación corresponde fijarlos al
autor. De nuevo, especificar explícitamente quien es el dueño de los
derechos de explotación hace a la obra mas robusta legalmente. Así que
lo hacemos (no cuesta mucho trabajo):

  # dihola.sh -- Un programa que dice hola
  #
  # Escrito por José E. Marchesi
  #
  # Copyright (C) 2005 José E. Marchesi

  echo hola


El siguiente paso, ya que ha quedado claro y explícito quien es el
autor y quien es el poseedor de los derechos de explotación, consiste
en que este último especifique cuales son las condiciones bajo las
cuales se distribuye el programa. Esto suele hacerse escribiendo las
condiciones bajo la notificación de copyright, como sin duda habrás
visto en muchos sitios.

¿Qué condiciones serán esas? Eso depende de las intenciones del
copyright holder. La gente que distribuye software privativo (es
decir, no libre) utiliza estas condiciones para otorgar ciertos
derechos y negar otros. Aunque lo habitual es que simplemente pongan
algo como "todos los derechos reservados" y utilicen licencias que
llaman EULA's (End User License Agreement) para otorgar los derechos
restringidos de utilización a la gente que las compra. Luego, si
quisiéramos que nuestro programa fuera privativo, podríamos poner:


  # dihola.sh -- Un programa que dice hola
  #
  # Escrito por José E. Marchesi
  #
  # Copyright (C) 2005 José E. Marchesi
  # 
  # Todos los derechos reservados.

  echo hola


Un pequeño inciso que es tremendamente importante: el poner "todos los
derechos reservados" en el caso anterior es innecesario. En realidad,
si se omiten las condiciones de distribución la ley dice que todos los
derechos están reservados. Por defecto no se otorga ningun
derecho. Esto es muy importante ya que la gente suele pensar que los
programas que encuentra por la red que no especifican derechos de
distribución (o no pone el autor o una notificación de copyright)
están en el dominio público. ¡Y no es así!. Por defecto las
condiciones de distribución son "todos los derechos reservados", el
copyright holder por defecto es el autor, y el nombre del autor no
requiere legalmente ser citado en la obra. Así que en teoría se trata
de software privativo. Puede parecer raro (e incluso sin sentido),
pero así es. Muchos autores, que no conocen esto, están distribuyendo
software privativo sin darse cuenta. 

Pero naturalmente nosotros no queremos distribuir un programa de forma
privativa. Queremos que nuestro programa sea libre. Eso significa que
los usuarios a los que distribuyamos el programa deben disfrutar de
las cuatro libertades o derechos que pensamos son fundamentales, que
figuran en la definición de software libre mantenida por la FSF:

0) La libertad (o derecho) de ejecutar el programa, para cualquier
   propósito.

1) La libertad (o derecho) de conocer como funciona el programa y
   adaptarlo así a sus necesidades.

2) La libertad (o derecho) de distribuir copias del programa.

3) La libertad (o derecho) de realizar modificaciones al programa y
   redistribuirlas (o no hacerlo).


Bien. En principio nosotros queremos que los usuarios de nuestro
programa disfruten de esos derechos. Como ya hemos visto, podemos
utilizar nuestro papel de copyright holder para otorgar esos derechos
a los usuarios (en contraposición al software privativo, que lo
utilizan para restringirlo). Luego podríamos escribir algo como esto:


  # dihola.sh -- Un programa que dice hola
  #
  # Escrito por José E. Marchesi
  #
  # Copyright (C) 2005 José E. Marchesi
  # 
  # Los usuarios de este programa poseen los derechos de utilización
  # sin restricciones, modificación y redistribución del programa tal
  # cual o modificado.

  echo hola


Una vez puesto ese párrafo y distribuído el programa, los usuarios que
lo obtienen tendrán los derechos especificados bajo la notificación de
copyright. Sin embargo existe un problema que se experimentó en los
primeros años del movimiento del software libre: la gente que escribe
programas (y que son por tanto el copyright holder) suelen ser
desarrolladores y no abogados. Por ello se reconoció el peligro de que
las condiciones de explotación que los desarrolladores escribían bajo
la notificación de copyright fueran débiles legalmente. Y de hecho
suele serlo. Los abogados se las saben todas, y en un texto
aparentemente claro como el anterior pueden encontrar un montón de
agujeros, ambigüedades y dobles sentidos que, en caso de conflicto
legal, pueden significar la pérdida de alguno de esos derechos por
parte de los usuarios.

La solución que se propuso fue la siguiente: en lugar de que cada
desarrollador escribiera sus propios términos de distribución en sus
programas intentando seguir el espíritu de la definición del software
libre, se pagó a unos abogados para que redactaran un texto que
especificara esos derechos de una forma robusta legalmente. De esa
forma los desarrolladores podrían copiarlo bajo sus notificaciones de
copyright. Ese fué el orígen de la licencia GPL y otras licencias
libres. 

Es importante reconocer el papel de una licencia libre: no es mas que
unos términos de explotación bien redactados. Es exactamente igual
poner:


  # dihola.sh -- Un programa que dice hola
  #
  # Escrito por José E. Marchesi
  #
  # Copyright (C) 2005 José E. Marchesi
  # 
  # Este software solo puede ser utilizado por la gente calva de menos
  # de un metro y medio de estatura.

  echo hola



que:

  # dihola.sh -- Un programa que dice hola
  #
  # Escrito por José E. Marchesi
  #
  # Copyright (C) 2005 José E. Marchesi
  # 
  # <INSERTAR AQUI LA GPL>

  echo hola


No tienes por qué pagarle a nadie o pedir permiso para utilizar una
licencia libre. Las propias licencias libres se distribuyen bajo unas
condiciones de explotación (son obras tambien, al fin y al cabo) que
permiten su utilización sin restricciones.

Sin embargo algunas licencias libres son muy largas (la GPL lo es) y
no sería muy práctico repetirlas en todos y cada uno de los ficheros
fuente de un proyecto bajo la notificación de copyright.

En su lugar suele ponerse una nota que especifica que las condiciones
de distribución son las que especifica la licencia XYZ, que puede
obtenerse de UVW. Un ejemplo real utilizando GPL:


/*
 * Ghostview.c -- Ghostview widget.
 * Copyright (C) 1992  Timothy O. Theisen
 * Copyright (C) 2004,2005  Jose E. Marchesi
 *
 * 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 GNU gv; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 *
 *   Author: Tim Theisen           Systems Programmer
 * Internet: tim at cs.wisc.edu       Department of Computer Sciences
 *     UUCP: uwvax!tim             University of Wisconsin-Madison
 *    Phone: (608)262-0438         1210 West Dayton Street
 *      FAX: (608)262-9777         Madison, WI   53706
*/


En cuanto al registro de la propiedad intelectual... hay que entender
que el Registro no es en ningun caso una obligación: la ley te concede
el derecho de la autoría y los derechos de explotación sin necesidad
de registrarlo en ningun sitio, y mucho menos pagar por ello. El
Registro no es mas que una especie de "notario comunal" que sirve como
una ayuda a la hora de probar que eres el autor de la obra.

Vale. No es obligatorio pero... ¿es aconsejable?. Pues en el caso de
una obra como un programa rotundamente no. No tiene sentido registrar
en el Registro un programa que va a estar sufriendo cambios casi
constantemente. Tendrías que registrar cada versión del programa con
el coste monetario que ello llevaría. Además, los programas libres
disponen de un excelente sustituto del Registro como "notario
comunal": internet. Si subes un programa a un ftp, repositorio CVS,
página web o similar, no tardará en replicarse en miles de sitios
(incluyendo las cachés del google, por ejemplo) corriendo en
servidores con hora y fecha. Es muy fácil demostrar que una persona es
el autor de un programa libre. Así que no necesitamos el Registro de
la propiedad intelectual para nada.

Así que lo tienes muy fácil para licenciar un programa como software
libre: identifícate como el autor, pon una notificación de copyright,
elige la licencia libre que mas te guste y pon una nota bajo la
notificación de copyright especificando que utilizas esa licencia (lo
mejor es copiar alguna notificación que ya exista). 

No importa el idioma. Debes poner las notificaciones en _todos_ los
ficheros fuentes de tu programa. Es mucho mejor distribuir una copia
de la licencia libre que utilices en un fichero, en lugar (o además)
de hacer referencia a alguna localización en internet donde pueda
encontrarse. 
    
    me Surge una duda mas el Sotware que haga para que tenga licencia
    GPL Tiene que ser Elaborado con software e GPL , o pude Liberarse
    con Software Comercial , ya sea Delphi, Visual C , Clarion , etc

La GPL no permite enlazar (dinámica o estáticamente) con software
privativo o hacer trabajos derivados (generalmente modificaciones de
mas de 10 líneas) con licencias incompatibles con la GPL.

Fíjate en el detalle del enlazado. Correr un programa libre en un
intérprete privativo generalmente no implica enlazado: siempre que
haya un formato intermedio (bytecodes o similar) que sean procesados
por el intérprete como entrada. Por eso es perfectamente posible
escribir software GPL en Java o Delphi. Pero no es muy recomendable:
hay que tener cuidado en no enlazar con ninguna librería incompatible
con la GPL, ni siquiera las que incorpora el intérprete. 

Otras licencias libres sí permiten enlazar con software
privativo. Podrían ser mas apropiadas que la GPL si te ves obligado a
utilizar un entorno de desarrollo privativo.

En general, puede elaborarse software libre con herramientas de
desarrollo privativas. 


    Les agradezco la atencion a todos


Gracias a ti por escribir software libre!

Y bienvenido de nuevo a nuestra comunidad!


PD: perdón por el tostón.


-- 
José E. Marchesi <jemarch at gnu.org>
                 <jemarch at es.gnu.org>

GNU España       http://es.gnu.org
GNU No es Unix!  http://www.gnu.org




More information about the GNUes-list mailing list