(OroyFinanzas.com) – Adentrarse en el mundo de las licencias de software puede resultar complicado y por eso los analistas de OroyFinanzas.com hemos querido escribir este artículo para facilitar su entendimiento. Cuando se habla de Software Libre (Free Software) o de software de Código Abierto (Open Source), existen multitud de conceptos alrededor de estos términos que pueden llevar a confusión. Es importante diferenciar estos conceptos, para poder entender lo que significan e implican cuando estamos ante un software con esas características.
¿Por qué hablamos en OroyFinanzas.com de licencias de software?
Los lectores se preguntarán por qué un artículo sobre licencias de software en OroyFinanzas.com. Pues bien, como ya explicamos en un artículo recientemente, Bitcoin y las criptomonedas es uno de los pilares de los contenidos de OroyFinanzas.com, [1] y con frecuencia hablamos de Bitcoin como código abierto (Open Source). Hace algún tiempo, ya explicamos qué significa este término [2], pero creemos que es necesario entender qué otros conceptos, que a menudo llevan a confusión, están relacionados con él, al igual que conocer qué tipo de licencia concreta es la que tiene el código fuente de Bitcoin. La licencia del cliente de referencia de Bitcoin se denomina MIT Licence [3]y en otro artículo explicaremos más detalladamente en qué consiste exactamente [3]. Por el momento empezaremos por asentar los conceptos en los que se clasifican las licencias de software, tanto abiertas como privativas, para así entender mejor el ecosistema Bitcoin y los protocolos que se crean encima del protocolo Bitcoin.
¿Por qué el software necesita de licencias?
¿No sería más fácil ignorar el tema de las licencias de software si no te interesa restringir el uso de terceros? Por defecto, toda obra está sujeta a copyright restrictivo (“todos los derechos reservados”). Por tanto, el único modo legal de conceder las libertades es mediante una licencia de uso, solo que ésta, en lugar de restringir derechos, se usa para otorgarlos, algo que solo el autor o titular puede hacer. Si no lo hacemos explícito mediante una licencia, nuestro software será privativo (o “no-libre”).
Una licencia de software no es más que el ejercicio exclusivo que la ley otorga al autor o al titular de una obra para que decida los términos de uso para su obra. Solo el autor (o el titular de la obra) puede autorizar o limitar el uso, modificación y/o redistribución de su obra adscribiéndose a un determinado tipo de licencia y, a través de dicha licencia, concede la autorización o el permiso para utilizar su obra marcando unos límites y derechos respecto a su uso.
Es decir, la licencia puede, por ejemplo, restringir el territorio de aplicación del programa, su plazo de duración o la reinterpretación y adaptación de la misma para otros usos posteriores. Los derechos denominados de explotación (o patrimoniales) son por tanto: de uso, de copia, de modificación y de redistribución (incluida la venta).
Por lo que los creadores de software deben decidir en el momento de hacer público su software o incluso con anterioridad sobre con qué tipo de licencia quieren publicar su trabajo. Si el creador no escoge explícitamente una licencia, las leyes de propiedad intelectual en España consideran que, por defecto, están “todos los derechos reservados”, es decir, no se puede hacer nada con una obra sin el permiso explícito del creador o del titular de los derechos.
¿Por qué es importante conocer los tipos de licencias de software para el usuario final?
Las licencias también afectan, directa o indirectamente, a los usuarios, ya que determinan qué cosas pueden hacer con una obra, además de que las licencias también nos sirven para contextualizar el desarrollo del software que estamos usando (¿quién lo ha creado? ¿cómo se ha creado?…) y por ello es importante conocer los tipos de conceptos que rodean a las licencias de software existentes para el usuario final también.
Las licencias además definen las condiciones en que los desarrolladores pueden cooperar entre sí, modificando o fusionando código procedente de otros trabajos. Y para las empresas también es esencial incluso para definir su modelo de negocio, pues unas licencias les permitirán hacer obras derivadas o fusionarlas con código propio, o revenderlas, mientras que otras no.
En términos generales existen dos tipos de licencias de software: libres y no-libres (privativas).
¿Qué es el software privativo (no-libre), propietario o de código cerrado?
Este tipo de software sería lo opuesto al software libre. El software de código cerrado puede ser definido como software privativo o propietario y es también denominado closed-code software (código cerrado). Significa que todos los derechos (uso, copia, modificación y redistribución) están reservados. Los programas distribuidos como software de código cerrado generalmente solo incluyen los archivos necesarios para ejecutar la aplicación. No se incluye el código fuente para modificar o adaptar el software a las necesidades del usuario. Además, es importante remarcar que el software distribuido gratuitamente (Freeware/Shareware) puede ser propietario, si su licencia no permite la libre redistribución y el derecho a modificación.
Diferencia entre software privativo y código cerrado
Generalmente el software privativo y software de código cerrado son sinónimos. Sin embargo, “código cerrado” adicionalmente implica que el código fuente no está disponible o no puede ser visto. Debido a que el código no puede verse en la mayoría del software privativo, esta diferencia generalmente no afecta. Sin embargo, ocasionalmente alguien publica software privativo bajo una licencia que permite a otros ver el código, por ello hay que explicar que la visibilidad del código no es lo importante, sino a qué estás autorizado a hacer con él.
Diferencia entre software privativo y software comercial
Algunas veces el término “comercial” es usado como sinónimo de privativo, pero no es lo mismo. El software libre puede ser software comercial. Después de todo, el software libre puede venderse libremente. De todas maneras, hay que tener en cuenta que el software libre puede venderse pero la licencia no puede obligar a pagar por su uso, porque entonces dejaría de ser libre. Dicho de otra forma: el software libre no se basa en la venta de licencias de uso, pues no se puede limitar dicho uso en modo alguno. Sin embargo, existe la posibilidad de que el software libre se comercialice por otras vías, por ejemplo mediante la venta de soporte, servicios y certificaciones. Hoy existen empresas multimillonarias basadas en el software libre, por tanto claramente no es intrínsecamente anticomercial o contrario a las empresas.
Por otro lado, existe por ejemplo software que está libremente disponible y descargable en GitHub, es decir, su código fuente es abierto. Sin embargo, su licencia no permite la modificación ni los usos comerciales, y pueden obligar a aceptar un EULA (End User License Agreement – EULA que es un acuerdo de licencia, que el usuario debe aceptar para empezar a usar. El “I agree” del software privativo) para ser usado, todo lo cual lo convierte en software privativo (o “no-libre”). Este tipo de licencia hace que este software no sea libre ni de código abierto bajo ninguna de las definiciones existentes aún cuando el código fuente se encuentra disponible. Por tanto, es importante recordar de nuevo que la apertura del código es una condición necesaria para ser software libre, pero no suficiente, para considerar a un programa de código abierto o como software libre.
Diferencias y similitudes entre el Open Source (Código Abierto) y Software Libre (Free Software)
Las licencias libres públicas nacieron para otorgar derechos y para disponer de herramientas legales fiables que facilitasen la libre cooperación, pudiendo prescindir de abogados, y que los programadores se pudiesen concentrar en el desarrollo de software, y no en litigios provocados por licencias “ad hoc” o mal redactadas.
Las definiciones de “open source” y de “software libre” son equivalentes a nivel de derechos, pero difieren a nivel conceptual e ideológico. Ambas consisten en ejercer los derechos de autor (o copyright) para conceder una serie de libertades a los usuarios de la obra. A diferencia del copyright convencional, que se usa para limitar derechos, en este caso se usa el copyright para concederlos.
El Software libre o de Código Abierto puede ser comercial o no serlo, y puede encontrarse gratuitamente o no, pero siempre puede ser copiado, modificado y redistribuido (incluso vendido) libremente (aunque algunas licencias en concreto pueden imponer determinados requisitos a la redistribución de obras derivadas, como veremos más adelante con el copyleft).
Por su parte, el Software Privativo puede ser gratuito (Freeware) o de pago (p.ej. Microsoft). Incluso puede tener el código fuente disponible. Como ya explicábamos un poco más arriba, lo que distingue al software libre no es la apertura del código, sino que se permite el libre uso, copia, modificación (lo cual requiere el código fuente) y redistribución, mientras que el software privativo, con o sin código fuente disponible, no se permite alguna (o ninguna) de las libertades mencionadas.
Origen y características del Software libre (Free software)
El software libre es aquel que se suministra con autorización explícita, mediante una licencia libre, para que cualquiera pueda usarlo, copiarlo, modificarlo y distribuirlo, ya sea con o sin modificaciones.
Aunque el software libre existía desde antes, el término fue acuñado por Richard Stallman a principios de los años ochenta. Plasmó su definición en la GNU General Public License (GPL), y fundó la Free Software Foundation (FSF) [4] para promocionar el concepto que establece las cuatro libertades en las que se basa:
- La libertad de usar el programa con cualquier propósito.
- La libertad de estudiar cómo funciona el programa y modificarlo, adaptándolo a tus necesidades.
- La libertad de distribuir copias del programa, con lo cual puedes ayudar a tu prójimo.
- La libertad de mejorar el programa y hacer públicas esas mejoras a los demás, de modo que toda la comunidad se beneficie.
Es importante señalar que, para considerarse filosóficamente software libre, deben darse todas estas libertades a la vez y no solo algunas de ellas. Si se restringe cualquiera de ellas (por ejemplo, no permitiendo el uso comercial o la modificación del código), no es software libre, ni siquiera aunque tengamos disponible el código fuente.
El software libre es una cuestión de libertad, no de precio, por lo que aunque establece muchas libertades no es necesariamente gratuito y también puede ser distribuido comercialmente, pues se ceden al público de forma no exclusiva los derechos de explotación. El libre comercio (formulado como “libre distribución”) es, por tanto, una de las libertades del software libre. De hecho, la obligación por licencia de que un software sea gratuito lo convierte en software privativo. Tampoco se puede obligar por licencia a un pago (vulneraría el “libre uso”), aunque nada impide pagar por él o por su desarrollo. La clave es comprender que el software libre, como tal, no impone nada respecto a precios: ni su pago ni su gratuidad.
Aunque el software libre es casi idéntico, a nivel de derechos, que el de código abierto (Open Source), los partidarios de la FSF prefieren el término “free software” porque hace hincapié en la idea de libertad, pues piensan que así el concepto se percibiría principalmente como un movimiento social y no técnico. Esta idea no es compartida por todo el mundo en la comunidad del software libre: muchos a su vez lo consideran un debate meramente terminológico y que nada impide concebir el “Open Source” como un movimiento social preocupado igualmente por las libertades del software.
Funcionalmente, ambas denominaciones son equivalentes. El mayor reproche al uso de “Free Software”, es que se trata de un término ambiguo en inglés, ya que “free” significa “libre” pero también “gratuito”. Y como hemos dicho anteriormente, el software libre no tiene por qué ser gratuito. Esa fue la principal motivación para proponer el uso de “open source”, puramente terminológica. Por contra, la denominación “Open Source” tiene también sus propios problemas, como inducir a pensar erróneamente que basta con la apertura del código para que un software sea libre.
Origen y características del software de Código Abierto (Open Source)
Se trata de software libre bajo otro nombre, cuya denominación fue auspiciada por la Open Source Initative (OSI) [5], formada por algunos destacados miembros de la comunidad de software libre, a fines del siglo pasado. En lugar de las cuatro libertades antes citadas, la definición de open source (OSD-Open Source Definition) define el “open source” en diez puntos, que ya explicamos en otro artículo en OroyFinanzas.com [2], que son estrictamente equivalentes a la definición de la FSF pues la OSD deriva de las directrices de software libre (DFSG) de Debian [6] (Bruce Perens, líder de Debian y creador de las DFSG, cofundó la OSI).
A pesar de que son dos términos diferentes, lo más importante es destacar que aunque existen algunas excepciones (casos muy esquina) del listado de todas licencias que tanto la FSF [7] como la OSI [8] contemplan como válidas dentro de sus definiciones, las encontramos en ambos. Es decir, cualquier licencia que sea free software según la FSF, es también Open Source según la OSI, y viceversa.
¿Por qué existen los términos Software FOSS, F/OSS, FLOSS en el mundo del software libre?
Se trata de otra forma de referirse al software libre. Software que puede ser usado, copiado, modificado y redistribuido por cualquiera, y algunas veces, aunque no siempre, con el requisito de que los trabajos derivados puedan ser distribuidos únicamente bajo los mismos términos (copyleft).
Con el fin de evitar las guerras terminológicas entre partidarios de open source y de software libre, y para subrayar que es una discusión bizantina y que son exactamente lo mismo, se propuso hace algunos años desde ámbitos académicos una terminología más neutral como FOSS, o a veces F/OSS, significando “Free / Open Source Software”. Otra variante es FLOSS, que quiere decir “Free / Libre Open Source Software” (libre es común en varios idiomas y ambos términos unidos eliminan la ambigüedad de free).
¿Qúe es el software libre con Copyleft y sin Copyleft?
El copyleft es una cláusula que contienen algunas licencias de software libre, particularmente la que más se usa, la GPL (Licencia Pública General), la licencia que usa Linux. Dicha cláusula, conocida como “recíproca”, obliga a que si se realizan cambios en un software bajo dicha licencia y se decide distribuir la obra derivada, dichos cambios deben mantenerse bajo la misma licencia original. En resumen, el copyleft garantiza el derecho de cualquier usuario a utilizar, modificar y redistribuir un programa o sus derivados (como cualquier licencia libre), siempre que se mantengan estas mismas condiciones en caso de distribuir obras derivadas. En los últimos años se han convertido en artefactos jurídicos extraordinariamente complejos (como las licencias denominadas GPLv3 o la Affero), difíciles de comprender y de cumplir, que requieren ejercer un uso muy estricto del copyright para controlar la evolución de la obra, por lo que están perdiendo popularidad.
Por su parte, las licencias sin cláusula copyleft, conocidas como “permisivas” (o “de tipo BSD”), son más sencillas y más fáciles de cumplir, son lo más parecido al dominio público que existe y nacen en la cultura de Berkeley, donde surgieron también los primeros Unix libres (BSD). Las licencias sin copyleft son muy populares, pues son compatibles, es decir, pueden combinarse con cualquier otra licencia, incluidas las privativas, lo que significa que permiten incluso hacer obras derivadas privativas. Hay decenas de licencias libres permisivas y entre ellas encontramos a la MIT License (la usada por el software de Bitcoin), las licencias de Android o de Apache, o la implementación de referencia de TCP/IP.
Es importante aclarar que tanto las licencias libres con copyleft como sin él son igualmente licencias libres. Cada una tiene sus partidarios y sus detractores, sus ventajas e inconvenientes: se puede resumir que las licencias permisivas son de inspiración más libertaria (no intentan obligar a nada, salvo a mantener la autoría), mientras que el copyleft hace un uso extensivo del copyright (al imponer condiciones a la evolución de las obras derivadas).
El término copyleft nació como deformación humorística de copyright, jugando con el significado de right (‘derecho’) en este compuesto y con su acepción política (‘derecha’). El copyleft sería de este modo la reivindicación de la libertad, frente a los derechos de autor que la coartan. Al mismo tiempo, el componente -left (‘izquierda’) también se asocia con el significado que posee como participio del verbo inglés “to leave” (que significa dejar en castellano): toda creación que se difunda con esta filosofía “se deja” a disposición de usuarios posteriores, para que se pueda utilizar libremente de manera indefinida. Juegos de palabras aparte, el copyleft no es más que una forma de ejercer los derechos de autor (o de copyright), con el objetivo de mantener las libertades del software, aunque para lograrlo necesita hacer un uso muy fuerte del copyright.
Cuando nos referimos a Copyleft podemos diferenciar tres conceptos:
- Sin Copyleft (permisiva): Funcionalmente análogo al dominio público, se puede crear una obra derivada sin que ésta nueva obra tenga obligación de mantenerse con la licencia original. La obra original, por supuesto, permanece siempre libre.
- Copyleft reducido: La obligación de redistribuir cambios con la misma licencia solo afecta al fichero modificado, no a la obra en su conjunto. Por tanto se puede combinar y enlazar con ficheros con diferente licencia en una obra combinada mayor.
- Copyleft fuerte: También conocido como “estricto”. Impone la reciprocidad no solo al fichero modificado, sino a la obra en su conjunto. Es decir, la licencia se propaga a cualquier código que se combine o enlace con él (por eso se conocen también como “víricas”). Eso la hace incompatible con cualquier licencia privativa, e incluso con otras licencias copyleft diferentes, y solo es compatible con software bajo su misma licencia.
¿Qué es el software de Dominio Público?
El software de dominio público es aquel cuyos derechos de autor (o copyright en el ámbito anglosajón) han expirado o explícitamente se ha anticipado su expiración. Que no tenga derechos de autor significa que no existen las restricciones que impone la ley al libre uso de los derechos patrimoniales de la obra (copia, modificación, transformación, redistribución e incluso venta). Solo permanecen inmutables los llamados derechos morales (básicamente la autoría, es decir, nadie se puede atribuir una obra ajena, aunque haya expirado su copyright). Estar en el dominio público no es lo mismo que no tener autor. Toda obra tiene un autor (salvo si es anónima), e incluso si el autor del trabajo o los autores eligen ponerlo en el dominio público, no cambia el hecho de que ellos lo escribieron.
Cuando un trabajo está en el dominio público, material de éste puede ser incorporado en trabajos con derechos de autor, y entonces esa copia del material está cubierta bajo los mismos derechos de autor que el trabajo completo. Pero esto no afecta a la disponibilidad del trabajo original, que permanece en el dominio público. Así, publicar algo en el dominio público es técnicamente un modo de hacerlo “libre”, pero sin ninguna restricción y de forma irreversible. Las licencias más parecidas al dominio público son las llamadas permisivas (como la CC-by o las de tipo BSD, como la licencia MIT que usa el software de Bitcoin).
En nuestros próximos artículos vamos a explicar en más detalle qué es la licencia de software MIT License que utiliza también Bitcoin y analizaremos con más detalle en otro artículo los protocolos basados en Bitcoin y los tipos de licencias por las que han apostado los creadores de esos protocolos.
¡Muchas gracias a Miguel Vidal por sus contribuciones y comentarios para este artículo!
EPL
Fuente: Wikipedia [9], GNU [10], Producingos [11]
© OroyFinanzas.com