Acerca de la Licencia Pública Netscape
por Richard StallmanLa versión original de este artículo fue escrita en marzo de 1998 acerca de un borrador de la NPL. Nuestro primer artículo sobre este tema fue Netscape está considerando liberar su navegador.
La Licencia Pública Netscape, o NPL por su sigla en inglés, tal como se diseñó en última instancia (en 1998), es una licencia de software libre pero tiene tres grandes fallas. Una de ellas es que transmite un mal mensaje filosófico, otra es que sitúa a la comunidad del software libre en una posición débil, mientras que la tercera es que crea un gran problema práctico en la comunidad del software libre. Dos de las fallas también se aplican a la Licencia Pública de Mozilla (MPL). Debido a estos defectos, instamos a no utilizar la NPL ni la MPL para el software libre.
1. No todos los usuarios son iguales
El primer problema que noté en la NPL es que no da a Netscape y al resto de nosotros los mismos derechos, como lo hace la GNU GPL. Bajo la NPL, podemos usar el código de Netscape solo como se especifica en la NPL, mientras que Netscape puede utilizar nuestros cambios de cualquier manera, incluso en las versiones del software que están bajo licencia privativa.
El problema aquí es sutil, porque esto no hace que el programa no sea libre. No nos impide redistribuir el programa, o cambiarlo, no se nos niega ninguna libertad en particular. Considerado desde un punto de vista puramente pragmático, no puede verse como un problema en absoluto.
El problema radica en el mensaje más profundo inmerso en esta condición. Niega la idea de la cooperación entre iguales en que se basa nuestra comunidad, y declara que trabajar en un programa libre significa contribuir a un producto de software privativo. Es probable que esta condición produzca un cambio en quienes la aceptan, y ese cambio no fortalecerá nuestra comunidad.
Una de las soluciones que se proponen para esta disimetría es ponerle un límite de tiempo, por ejemplo tres o cinco años. Eso sería una gran mejora, debido a que el plazo negaría el mensaje más problemático.
Los efectos prácticos de esta condición se reducen al mínimo por otro inconveniente de la NPL: no está diseñada con riguroso copyleft. En otras palabras, no busca asegurar de manera estricta que las modificaciones realizadas por los usuarios estén disponibles como software libre.
La MPL (Mozilla Public License, Licencia Pública Mozilla) no tiene este problema. Esa es la diferencia principal entre la MPL y la NPL.
2. No es copyleft
La NPL tiene la forma de una copyleft, dice expresamente que todas las modificaciones realizadas por los usuarios deben ser publicadas bajo la NPL. Pero esto se aplica únicamente a las modificaciones del código existente, no a las subrutinas agregadas, si se colocan en archivos separados. En la práctica, esto significa que es fácil hacer cambios privativos si se quiere: solo hay que poner la mayor parte del código en un archivo separado y llamar a la colección «Obra Mayor». Solo las llamadas a las subrutinas incorporadas a los ficheros antiguos tendrán que ser publicadas bajo la NPL y serán muy útiles por sí mismas.
La falta de copyleft real no es una catástrofe, no hace que el software no sea libre. Por ejemplo, los términos de distribución de X.org no usan el copyleft en absoluto; sin embargo, X.org es software libre. BSD es también software libre sin ser copyleft (aunque los términos de la antigua BSD presentan un serio inconveniente y no se deben imitar para publicar software libre sin copyleft; por favor utilice los términos de X.org en su lugar). El software cubierto por la NPL también es software libre sin ser copyleft, y esto por sí solo no hace que la NPL sea peor que cualquier otra licencia de software libre sin copyleft.
Sin embargo, aunque no es catastrófico, no deja de ser un inconveniente. Debido a que la NPL se parece a una licencia copyleft, algunos usuarios pueden confundirse y adoptar la NPL pensando que están obteniendo los beneficios del copyleft para su software, cuando en realidad no es así. Para evitarlo, tendremos que trabajar mucho para informar a los usuarios sobre un tema que no es fácil de explicar en pocas palabras.
3. No es compatible con la licencia GPL
El problema práctico más serio de la NPL es que es incompatible con la GPL de GNU. Es imposible combinar el código cubierto por la NPL con el código cubierto por la GPL de GNU en un solo programa, ni siquiera mediante la vinculación de archivos separados de objetos o bibliotecas; se haga como se haga, se estará violando alguna de las dos licencia.
Este conflicto se produce porque la GPL es estricta respecto al copyleft: fue diseñada para asegurar que todos los cambios y extensiones de un programa libre deben ser libres. Por lo tanto, no da lugar para hacer cambios privativos colocándolos en un archivo separado. Para mayor seguridad, la GPL no permite vincular el programa bajo copyleft con código que tiene otras restricciones o condiciones, como por ejemplo la NPL.
La incompatibilidad con la GPL no hace que un programa no sea libre, no plantea una cuestión ética fundamental. Pero es probable que cree un grave problema para la comunidad del software libre, dividiendo la base de código en dos colecciones que no se pueden mezclar. En la práctica, este problema es muy importante.
Esto se podría resolver cambiando la GPL, pero implicaría abandonar el copyleft, lo cual haría más daño que bien. Pero es posible resolver este problema con un pequeño cambio en la NPL. (Véase más abajo un ejemplo de cómo hacerlo).
4. Nota acerca de los nombres
NPL significa «Licencia Pública de Netscape», pero la GPL no significa «Licencia Pública de GNU». El nombre completo de nuestra licencia es «Licencia Pública General de GNU» (GNU General Public License), abreviado «GNU GPL». A veces la gente deja de lado la palabra «GNU» y escribe solo «GPL».
(Esto no es un problema, solo algo que es bueno saber).
Conclusión
Dado que la tercera falla es la más grave, espero que las personas expliquen a Netscape, de manera educada y racional, la importancia de resolver el problema. Las soluciones están disponibles, solo tienen que decidirse a emplearlas.
A continuación presentamos un ejemplo de cómo permitir el vínculo de código cubierto por la NPL con código cubierto por la GPL. Se puede hacer mediante la adición de estos dos párrafos a la NPL:
A.1. You may distribute a Covered Work under the terms of the GNU General Public License, version 2 or newer, as published by the Free Software Foundation, when it is included in a Larger Work which is as a whole distributed under the terms of the same version of the GNU General Public License. A.2. If you have received a copy of a Larger Work under the terms of a version or a choice of versions of the GNU General Public License, and you make modifications to some NPL-covered portions of this Larger Work, you have the option of altering these portions to say that their distribution terms are that version or that choice of versions of GNU General Public License. (Nota del traductor: la siguiente es una traducción aproximada de los párrafos anteriores. Se recomienda el uso del original en inglés ya que se trata de un texto de índole legal) A.1. Usted puede distribuir una Obra Cubierta bajo los términos de la Licencia Pública General de GNU, versión 2 o posterior, tal como la publica la Free Software Foundation, cuando está incluida en una Obra Mayor la cual se distribuye como un todo bajo los términos de la misma versión de la Licencia Pública General de GNU. A.2. Si usted ha recibido una copia de la Obra Mayor bajo los términos de una versión o de una variedad de versiones de la Licencia Pública General de GNU, y aporta modificaciones a algunas partes cubiertas bajo la NPL de esta Obra Mayor, usted tiene la opción de alterar estas partes para decir que sus términos de distribución son esa versión o esa variedad de versiones de la Licencia Pública General de GNU.
Esto permite combinar código cubierto por la NPL con código cubierto por la GPL, y distribuir la obra combinada bajo los términos de la GNU GPL.
Permite publicar las modificaciones a dichas obras combinadas bajo los términos de la GNU GPL, pero la manera más fácil de publicarlas es bajo la NPL.
Cuando se utilice la fórmula A.2, los cambios se publicarán únicamente según los términos de la GNU GPL, por lo que Netscape no podrá disponer de estos cambios para usarlos en versiones privativas. Probablemente Netscape perciba esto como un inconveniente.
Sin embargo, la NPL ofrece a los desarrolladores de software privativo una manera fácil de hacer que sus cambios no puedan ser utilizados por Netscape, y consiste en poner el código en archivos separados llamando a la combinación una «Obra Mayor». De hecho, para ellos esto es más fácil de lo que lo es la fórmula A.2 para quienes usan la GPL.
Si Netscape cree que puede vivir (eficazmente) con el problema de las modificaciones privativas, seguramente el problema de las modificaciones cubiertas por la GPL es pequeño en comparación. Si Netscape cree que las consideraciones prácticas impulsarán a la mayor parte del mundo del software privativo a hacer que las modificaciones estén disponibles para Netscape, sin que exista la obligación de hacerlo, se deberían aplicar las mismas razones al mundo del software libre. Netscape debería reconocer que este cambio es aceptable, y adoptarlo, para evitar que los desarrolladores de software libre tengan que enfrentar un serio dilema.