Conociendo un poco más la licencia BSD

En el mundo del software libre y de código abierto, sobre todo por el que está más dominado por las licencias GPL y derivadas, existen muchos mitos y poco conocimiento sobre la licencia BSD. Dicha licencia la he defendido más de una vez en este blog, y la he denominado (como hacen muchos conocedores de esta licencia y software derivado) el “verdadero software libre”, más allá de éticas buenistas en pos de la única satisfacción del usuario, usuario no pensado como individuo con capacidad de elegir y crear posteriormente, desconfiando radicalmente de él, y reduciendo la especulación de su libertad justamente a su adjetivo de “libre”.

No es ningún misterio que la licencia BSD permite cerrar el código del software derivado. Aún así, la gente a menudo (por desconfianza, causada por el desconocimiento), cree que esta capacidad es universal, el decir, que con algo como BSD, cualquiera lo puede cerrar en su totalidad, y por tanto, un usuario que tuviera algo con código BSD se vería con el abuso de que le han privado de esa libertad de software. Nada más lejos de la realidad, y es por ello por lo que en este artículo veremos un poco más, detalladamente, cómo funciona la licencia BSD, con el fin de promover este tipo de software y abrir la mente hacia un software mucho más libre y sobre todo, responsable de uso, donde el usuario (como tal o potencialmente desarrollador) tenga lo que verdaderamente queremos que tenga: libertad.

Para empezar la casa por los cimientos, veremos cómo es el texto de una licencia BSD. Existen al menos 3 tipos de licencia BSD: la original, la modificada de 3 cláusulas y la simplificada de 2 cláusulas.

La licencia original contiene una cláusula que hoy por hoy de poco nos serviría y que incluso en cierto caso, sería hasta injusta. Esa cláusula ponía como condición que todo software derivado (del tipo que fuera) debería constar que se construyó gracias a software de la Universidad de Berkeley y sus contribuidores. A día de hoy, esto es algo bastante absurdo, y además era una cláusula que no compatibilizada con GPL, y por ello, con gran probabilidad, la que se usa normalmente debido a su modernidad es la modificada de 3 cláusulas:

Copyright (c) <año> <autores>
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
 notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
 notice, this list of conditions and the following disclaimer in the
 documentation and/or other materials provided with the distribution.
3. Neither the name of copyright holders nor the names of its
 contributors may be used to endorse or promote products derived
 from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

La parte final, en letras mayúsculas, nos describe la ausencia de garantía del software, con gran similitud a lo que nos podemos encontrar en las GPL (muy probablemente, las GPL tomaron inspiración de las BSD en esta condición, al ser una licencia y un tipo de software libre anterior al movimiento GNU). Lo que nos interesa son los 3 puntos. Tras dejar claro el copyright de autoría original (al comienzo de todo), la licencia dice:

La redistribución y uso en forma de fuentes o binarios, con o sin
modificaciones, están permitidos siempre y cuando se den las
siguientes condiciones/requisitos:

1. La redistribución del código fuente debe conservar por encima la notificación de
derechos de autor, esta lista de condiciones y la siguiente renuncia.
2. Las redistribuciones en formato binario deben reproducir la notificación del
copyright, esta lista de condiciones y el siguiente descargo de responsabilidad en
la documentación y/u otros materiales suministrados con la distribución.
3. Ni el nombre de los titulares de derechos de autor ni los nombres de sus
contribuyente pueden ser utilizados para respaldar o promocionar productos derivados
de este software sin permiso previo por escrito.

Vamos a explicarlo un poco para que quede más claro: se puede cerrar el código, cierto, pero no del software en sí mismo (el original), sino una copia/modificación de éste. Esto es importante diferenciarlo, ya que mucha gente tiende a creer que se puede cerrar todo el software cuando no es así. Además, el cambio de licencia no afecta a versiones anteriores a dicho cambio, y por tanto, toda versión anterior a la nueva licencia permanece libre. Ahora veamos detalladamente las cláusulas:

  • El autor original del software (el que licenció con BSD) tiene garantizado el derecho de autoría original, y así lo hace constar al comienzo del texto de la licencia. Por supuesto, mantiene toda validez legal en caso de que quiera reclamar autoría por cualquier causa (por ejemplo, sin ir más lejos, software BSD que ha sido incluído en software no libre y que no recoja al autor ni las condiciones en los créditos del software derivado no libre).
  • En la primera cláusula nos dice que, si el producto derivado se distribuye con código fuente, el copyright (y por consiguiente el nombre del autor original), así como las condiciones de la licencia BSD que afectan a las partes originales y la consiguiente renuncia del copyright a dicha parte original, deben ser expuestos en primer lugar. En cristiano: antes que otra cosa se nombra al autor original, y el desarrollador (o empresa) que haya derivado software (libre o no) a partir de algo BSD tiene que renunciar a la parte de posesión intelectual (copyright) de los compotentes originales en las que se basó (las licenciadas BSD, y por tanto libres).
  • La segunda cláusula nos dice que, si la distribución de obras derivadas se hace en formato binario, el programa debe reproducir todo lo descrito anteriormente, bien en el mismo programa, o bien en la documentación que se incluya en él (o en ambos).
  • La tercera cláusula protege moralmente al autor original de las derivaciones. Su nombre (y de los contribuidores) no puede ser nombrado en ningún caso para promoción, márketing, etc, de cualquier obra derivada sin su consentimiento. Esto, por ejemplo, exime de responsabilidad moral al autor original en caso de que una copia de un software BSD se torne a licencia no libre. Por tanto, permite que no se relacione al autor original con derivaciones que no tengan nada que ver con él, y de modo contrario, los autores de la obra derivada deberán ponerse en contacto con él y haciendo la petición de permiso por escrito.

Ni que decir tiene que, la violación de alguna de estas condiciones recae en una ilegalidad, y por tanto se puede reclamar en todo momento con total validez.

Podemos ver que la licencia BSD es como la “Creative Commons – Nombrar Autoría”, mientras que la GPL sería similar a la “Creative Commons – Nombrar Autoría – Compartir Igual”.

Así pues, los derechos del usuario y del desarrollador quedan totalmente cubiertos. En ningún caso, tal y como se escucha por ahí, la BSD da opción a esclavizar(se), ni deja de tener en cuenta al usuario. Para nada. GPL plantea la libertad de modo colectivo (todo lo licenciado GPL es propiedad moral de ese software en sí mismo, como si de un ente se tratara), mientras que BSD plantea un modo individual (el autor tiene que ser nombrado, pero puedes hacer con tu copia lo que quieras). Esto permite mucha flexibilidad tanto en el uso simple como en un futuro desarrollo, y no sólo da poder a los desarrolladores y programadores varios, sino también al usuario en sí mismo.

Un simple usuario puede usar una copia y redistribuírla bajo otra licencia libre con unos cambios mínimos, como por ejemplo en GPL. Es la otra cara de la moneda, en contraposición al temido cierre de código que obceca a muchísimos usuarios y llena de miedo antes de intentar comprender la filosofía BSD. Ésta individualiza la copia con objeto de ser útil por encima de todo, la GPL colectiviza un uso escudándose en una “moral” o una “ética” más allá del propio usuario, de los propios desarrolladores y del propio software, creando lo que para mí es una ilusión de libertad, un “guiaros por lo que yo os diga, porque es lo que os hará libres”.

BSD, al contrario que GPL, no ata a ninguna condición última del uso ni a ninguna moralidad. Se mantiene neutro y ofrece responsabilidad y posibilidad de explorar con nuevas licencias y modos de distribución en caso de que no queramos seguir usando la licencia BSD. Si el miedo a que una copia con trabajo derivado se pueda cerrar (que, recordad, no es lo mismo que cerrar todo el código del software, y siempre va a constar el origen)  es lo único a lo que se aferran los que llaman a BSD una licencia de libertinaje, sencillamente son víctimas de ellos mismos. Libertinaje es cuando te saltas normas de todo tipo para obtener un fin… con BSD no te las saltas, porque lo permite. Es pura libertad.

Es por ello que, tal y como dije alguna vez (sobre todo en los microblogs), el software libre entendido como GPL, a menudo es interpretado verdaderamente libre porque su condición de licencia se reduce al epíteto. Las palabras pueden no decir nada, incluso pueden mentir. Los hechos, son los hechos, y las posibilidades casi infinitas y no lineales de BSD son la prueba. Si no ha triunfado entre los usuarios, me atrevería a decir que es por ese desconocimiento, y por tanto miedo… pero sin embargo, no saben que justamente sus distribuciones Linux contienen muchos componentes BSD, y que incluso el funcionamiento de éste tipo de software (con esta licencia o no) es muy imitado en las distribuciones más avanzadas como Slackware, Arch Linux o Gentoo. O que, incluso, software de escritorio que usan también está licenciado así.

Por todo ello, el que entienda esta licencia (que es muy fácil, aunque con conceptos un tanto chocantes si vemos las cosas bajo el cristal del dogma de la GNU/GPL y todo lo derivado de Stallman y su fundación), podrá decir que realmente apoya el software libre, más allá de simples palabras.

Como digo y pienso, la máxima aspiración de un pro-software libre no es defender y saberse de A a la Z todas las condiciones y dogmas de la FSF y el proyecto GNU. Es, sencillamente, ver la libertad como es, el software como es (sin misticismos), ver al usuario no como siempre usuario sino como potencial desarrollador, y defender las licencias BSD. Y como dice algún slogan por ahí sobre este tipo de software y licencia: “Think correctly”.

About these ads

20 comments

  1. Muy buen post. Pero…
    ¿Quien garantiza que tras el código cerrado no se violan todo tipo de licencias?
    De ser así, ¿sería defendible?, o dicho de otra forma, ¿de qué sirven las licencias?

    1. Si te lo cuestionas para eso, es igualmente cuestionable para las GPL.

      Es más, te propongo otro ejemplo, más alegal y amoral aún (que no ilegal e inmoral):

      Visualizas en código de un programa abierto y libre, lo asimilas, los reproduces desde 0 y cierras su código. Has aprendido del código abierto, pero no has cerrado en sí mismo a éste programa del que aprendiste… Por tanto, dónde existen las garantías de eso?

      Pero, es que uno de código cerrado puedo hacer al revés: puedo hacer ingeniería inversa, asimilar lo aprendido, reproducirlo desde 0 y licenciar eso como libre… Dónde están las garantías de lo cerrado?

      Te dejo pensando. ;)

  2. Me estoy divirtiendo, me ha gustado tu respuesta, pero centrándonos en el código, en el caso de la ingeniería inversa, aquí mas violar una licencia lo que se hace es asimilar una idea y darle forma, cuestión que difiere mucho del copiar, pegar y cerrar.

    1. Correcto, abolutamente. Y en cuestión de lo que sugieres, decirte que siempre los juicios al respecto, han triunfado. En casos tanto de GPL como de BSD. No sabría decirte qué métodos usan para intuír cuándo han violado algo de esa manera, aunque intuyo los sistemas para detectarlo.

      Por ejemplo, a Microsoft lo han descubierto varias veces violando (robando, si lo queremos ver así) código GPL y BSD en el suyo cerrado. En todas esas ocasiones ha pagado por ello.

  3. Buen punto:
    “la máxima aspiración de un pro-software libre no es defender y saberse de A a la Z todas las condiciones y dogmas de la FSF y el proyecto GNU. Es, sencillamente, ver la libertad como es, el software como es (sin misticismos), ver al usuario no como siempre usuario sino como potencial desarrollador, y defender las licencias BSD.”

    1. Ajam, por eso hay que liberar la fórmula de la coca cola, porque hay que ver al cliente no solo como un cliente, sino como un posible ingeniero a futuro… claro claro … (y si , la fórmula de la coca cola es cerrada xD)

  4. Pues cuando, en algún momento, programe algo para compartirlo con todos, sé que usaré la WTFPL :P

    PD: conozco un blog que tiene licenciados todos sus “códigos” bajo la WTFPL.

    Pregunta: ¿Por qué algunos proyectos de software libre (no recuerdo un ejemplo ahora) usan la licencia GPL para unas cosas y la BSD para otras (librerías, ejecutables, etc)?

    1. Sobre tu pregunta de por qué una licencia para unas cosas y otra para otras, no sabría qué contestarte. Supongo que se debe a una mezcla de abrir posibilidades al desarrollador principal para abrirlas a los secundarios y terceros para hacerla más atractiva. Me explico: WebKit, por ejemplo, está licenciado básicamente bajo BSD. Al ser tan libre, supone un atractivo a desarrolladores que pueden basar sus trabajos en ello y por tanto, por ese efecto viral gracias al atractivo, puede darse el caso de que, por su uso tan masivo, acabe impulsando estándares o algo similar en la materia que rodea. En este caso, no es ningún misterio que WebKit ha hecho mucho ayudando a los estándares de la web y es todo un referente en ellos, y por tanto sale beneficiado todo un sistema de hacer las cosas (estándares web) y los consumidores (mismas preferencias y opciones para aceptar e interpretar esos estándares).

      Supongo que con otros programas será algo similar, y de hecho la licencia LGPL nació con ese fin, para aplicarse a librerías y hacer su desarrollo más flexible. En cambio, los programas de escritorio, son más específicos, y por tanto no necesariamente tienen que cumplir unos requisitos, ya que su finalidad es una función que ofrecerle al usuario y consumidor (que lo escoge si quiere, y si no, no).

  5. (Ruego al administrador no moderar. El uso de insultos y groserías está estrictamente justificado en función de lo que se intenta mostrar).

    LICENCIA PÚBLICA HACE LA HUEVADA QUE QUIERAS.
    Versión 2, Diciembre 2004.

    Copyright (C) 2004 Sam Hocevar

    Se autoriza a cualquier persona la copia y distribución de copias textuales
    o modificadas de este documento de licencia, y se permite su modificación
    bajo la condición de que se le cambie el nombre.

    LICENCIA PÚBLICA HACE LA HUEVADA QUE QUIERAS.
    TÉRMINOS Y CONDICIONES PARA COPIA, DISTRIBUCIÓN Y MODIFICACIÓN.

    0. Sólo HACE LA HUEVADA QUE QUIERAS.

    1. Lo único que no me gusta de esa licencia es que SI pueden tomar tu trabajo y usar tu NOMBRE (ya que no veo restricciones en ese sentido) en marketing y demás … :S

  6. Las licencias son lo que son, sinceramente tanto la BSD como la GNU tienen sus puntos a favor y sus puntos en contra. Cada uno es libre de publicarla con la licencia que prefiere y sinceramente si fuera desarollador no utilizaria ninguna de las dos dado el caracter politico que conlevan sino que utilizaria alguna alternativa.

  7. Aclaraciones, la licencia MIT es muy parecida a la nueva BSD y es excelente.
    La vieja licencia BSD es una mierda, nombrar a cada uno de los colaboradores y modificadores desde el software inicial es un dolor de culo.
    La nueva licencia BSD soluciona eso y por eso es bonita, es muy similar
    Otras licencias mas que interesantes: beerware, sisterware y la ya nombrada WTFPL.
    Yo uso en mis pequeñas cosas MIT, sisterware o sin licencia directamente (dominio público).

  8. Leyendo aquí [http://mundogeek.net/traducciones/por-que-no-deberias-usar-la-GFDL.htm] sobre las licencias de los textos de documentación me surge la duda, en caso de documentar algo es más conveniente usar la GPL que la BSD, me parece a mi. Ya que si bien quiero dejar a mi programa bajo la BSD3 pero quiero que la documentación sea totalmente clara y modificable sin restricciones futuras que lo impidan, entonces usaré la GPL en contra de la BSD.

    ¿Qué opinan ustedes?

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s