Propiedad intelectual y software libre
"El software libre es una cuestión de libertad, no de precio. Para entender el concepto, debés pensar en libre como en 'libertad de expresión', no como en 'cerveza gratis'." — Richard Stallman.
Qué vas a aprender en este capítulo
Cada línea de código que escribís tiene implicaciones de propiedad intelectual. Este capítulo cubre los conceptos legales y éticos: copyright, patentes, licencias open source, y los dilemas de cómo construir y distribuir software.
3.1 Tipos de propiedad intelectual
📐 Fundamento
| Tipo | Protege | Duración típica | Aplicado a |
|---|---|---|---|
| Copyright (derechos de autor) | Expresión de una idea | 70 años después de muerte del autor | Código, libros, música, arte |
| Patente | Invenciones (solución técnica) | 20 años | Algoritmos, métodos, hardware |
| Marca registrada (™ ®) | Identificadores comerciales | Indefinida (con uso) | Nombres, logos |
| Secreto comercial | Información secreta valiosa | Mientras se mantenga secreto | Algoritmos no publicados, fórmulas |
| Diseño industrial | Apariencia visual | 10-25 años | UI, productos físicos |
Copyright en software:
El código está automáticamente protegido por copyright al escribirse. No necesitás registrarlo (en la mayoría de jurisdicciones). El autor (o su empleador, si es work-for-hire) tiene derechos exclusivos:
- Copiar.
- Modificar.
- Distribuir.
- Presentar públicamente.
Sin licencia explícita, NADIE puede usar tu código legalmente. El default es "todos los derechos reservados" — incluso si lo subís a GitHub.
Patentes de software — controvertido:
Permiten patentar algoritmos y métodos. Críticos:
- Algunas son obvias (Amazon's "1-click" patent).
- Generan "patent trolls" (empresas que solo cobran licencias sin producir nada).
- Software libre los considera amenaza.
El estado depende del país: USA y Japón permiten ampliamente; UE más restrictivo.
3.2 Software libre y open source
📐 Fundamento
Software Libre (FSF, Stallman, 1983):
4 libertades fundamentales:
0. Ejecutar el programa para cualquier propósito.
1. Estudiar cómo funciona y modificarlo (acceso al código fuente).
2. Redistribuir copias.
3. Distribuir versiones modificadas.
Open Source (OSI, 1998): mismo software técnicamente, marketing diferente para empresas.
Open Source ≠ Gratuito:
- "Free as in freedom, not as in beer."
- Podés vender software open source (Red Hat lo hace).
- Podés cobrar por soporte, certificación, hosting.
Tipos de licencias:
Más permisiva ─────────────────────────── Más restrictiva
Public Domain → MIT → Apache → MPL → LGPL → GPL → AGPL
| Licencia | Principal característica | Usar si... |
|---|---|---|
| Public Domain / CC0 | Sin restricciones | Renunciás todos los derechos |
| MIT / BSD | Muy permisivas, atribución | Querés máxima adopción |
| Apache 2.0 | Permisiva + grant de patentes | Proyectos corporativos abiertos |
| MPL 2.0 | Copyleft débil (por archivo) | Híbrido entre permisivo y GPL |
| LGPL | Copyleft solo en la librería | Librerías que querés que se usen en software propietario |
| GPL v2/v3 | Copyleft fuerte | Cualquier derivado debe ser GPL |
| AGPL | Copyleft + cubre uso por red | Querés evitar SaaS-loophole |
Copyleft: "si usás mi código y modificás, tu modificación también debe ser libre" — protege la libertad propagándola.
Permisivo: "usalo como quieras, incluso en código propietario" — maximiza adopción.
Ejemplos reales:
- MIT: React, Vue, Angular, Node.js, Rails.
- Apache 2.0: Kubernetes, Hadoop, Spark, Android (mostly).
- GPL: Linux kernel, MySQL, GIMP.
- LGPL: glibc, GTK.
- AGPL: MongoDB (antes), Mastodon, Nextcloud.
MIT License — la más popular y simple:
MIT License
Copyright (c) [year] [fullname]
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED [...]
Cómo licenciar tu proyecto:
- Elegir licencia (choosealicense.com ayuda).
- Crear archivo
LICENSEen la raíz del repo. - Copiar el texto completo de la licencia, ajustando año y nombre.
- Mencionar la licencia en el README.
Sin LICENSE = todos los derechos reservados. Aunque sea público en GitHub, legalmente nadie puede usarlo (excepto bajo fair use limitado).
3.3 Compatibilidad de licencias
📐 Fundamento
Combinar código bajo licencias distintas puede ser problemático.
Reglas básicas:
Permisivo en permisivo: ✓ (MIT en proyecto Apache OK)
Permisivo en copyleft: ✓ (MIT en GPL OK, pero todo se vuelve GPL)
Copyleft en permisivo: ✗ (no podés meter GPL en un MIT)
GPL v2 en GPL v3: ✗ (incompatibles entre versiones GPL)
Problemas comunes:
- GPL contagia: si tu app usa una librería GPL, tu app debe ser GPL (al distribuirla).
- AGPL extiende GPL al uso por red: no podés evitar el copyleft solo ofreciendo SaaS.
- Dual licensing: algunos proyectos ofrecen GPL gratis + comercial pagado (MongoDB, MySQL antes).
Caso real — Linux y GPL:
Linux es GPLv2. Toda contribución al kernel debe ser GPLv2-compatible. Por eso muchos drivers comerciales son problemáticos.
Caso real — Android y Apache:
Android es Apache 2.0 (en su mayoría). Por eso los OEMs (Samsung, etc.) pueden agregar customizaciones propietarias.
Verificación de licencias:
# Auditar dependencias de tu proyecto
npm install -g license-checker
license-checker --summary
# Para Python
pip-licenses
# Detectar incompatibilidades en monorepos
fossa-cli analyze
3.4 Plagio y reutilización
📐 Fundamento
Plagio: usar código de otro sin atribución.
Tipos de plagio:
- Copy-paste literal sin atribución.
- Reescribir traduciendo a otro lenguaje sin atribución.
- Tomar idea/algoritmo sin acreditar.
- Usar código generado por IA y no declararlo (controversial).
Cómo evitarlo:
✓ Si copiás código MIT/BSD/Apache: incluir el copyright header en tu archivo.
✓ Si te inspirás en un algoritmo de un paper: citar el paper.
✓ Si usás StackOverflow snippet: técnicamente CC BY-SA (atribuir).
✓ Si fork-eás un proyecto: mantener el LICENSE original.
✓ Si re-implementás de scratch: sin obligación legal pero buena práctica acreditar inspiración.
Stack Overflow controvertido:
Hasta 2018: código en SO era CC BY-SA (copyleft con atribución). Después: MIT (más permisivo). Pero contenido viejo sigue bajo CC BY-SA.
Estrictamente, copiar de SO requiere atribución. En la práctica casi nadie lo hace.
Código generado por IA (Copilot, ChatGPT, Claude):
Tema legal en evolución. Cuestiones:
- ¿El código generado está protegido por copyright? (US Copyright Office: NO si solo es IA).
- ¿Si la IA fue entrenada con código GPL, el output es GPL?
- ¿Hay que declarar qué código fue generado por IA?
Buenas prácticas actuales:
- Revisá lo que la IA genera (puede tener copia literal de código).
- Documentá el uso de IA en tu proyecto.
- No asumas que es seguro relicensiar código generado.
3.5 Software libre como filosofía y movimiento
💡 Intuición
Para Stallman y la FSF, el software libre no es solo "código abierto" — es una postura ética sobre la libertad de los usuarios.
Para Eric Raymond y OSI, es pragmatismo: "open source produce mejor software por colaboración".
Las dos posturas conviven, a veces tensamente, en el mundo open source.
📐 Fundamento
Argumentos a favor del software libre:
- Libertad del usuario: controla tu propia tecnología.
- Auditoría de seguridad: muchos ojos detectan más bugs.
- No vendor lock-in: si la empresa muere, el código sobrevive.
- Educativo: estudiantes pueden aprender de código real.
- Innovación colectiva: Linux, Wikipedia, etc.
Argumentos a favor del software propietario:
- Modelo de negocio sustentable: código privado permite vender licencias.
- Control de calidad: un equipo dedicado vs voluntarios.
- Soporte garantizado: SLA contractual.
- Protección de IP: fundamental en algunos sectores (defensa, farma).
Modelos híbridos:
- Open core: core open source, features avanzadas comerciales (GitLab, Elastic).
- Dual license: GPL para uso libre + comercial para uso propietario (MySQL).
- Source-available: código visible pero no libre (BSL — Business Source License de HashiCorp).
- SaaS open source: WordPress.com (hosted) vs WordPress (self-hosted).
El SaaS loophole:
GPL requiere distribuir código si distribuís el binario. Pero si solo ofrecés el software como servicio (no distribuís binario), podés modificar GPL sin compartir.
AGPL cierra este hueco: cubre uso por red. Por eso MongoDB cambió a AGPL en 2018, y luego a SSPL (Server Side Public License) en 2019.
El cambio de licencias controvertido (2023-2024):
- HashiCorp: Terraform de MPL a BSL (más restrictiva). Resultado: comunidad creó OpenTofu.
- Redis: de BSD a SSPL/AGPL. Resultado: AWS y Linux Foundation crearon Valkey.
- Elastic: de Apache 2.0 a SSPL en 2021, vuelta a OSI-approved en 2024.
Razón: empresas open source se sienten "explotadas" por hyperscalers (AWS) que ofrecen su software como servicio sin contribuir.
Implicaciones éticas:
- ¿Es ético que AWS ofrezca Elastic sin contribuir? Legalmente sí. Éticamente debatible.
- ¿Es ético que Elastic cambie la licencia después de años? Legalmente sí. Éticamente debatible.
No hay respuesta única.
🛠️ En la práctica
La Esquina Cloud — política de licencias:
# Política de propiedad intelectual
## Código del producto principal
- Licencia: PROPIETARIA (todos los derechos reservados).
- Razón: modelo de negocio, no podemos abrir el core.
## Código auxiliar (utilidades, scripts)
- Licencia: MIT.
- Razón: contribuir a la comunidad de las herramientas que usamos.
- Repo: github.com/laesquina/utils
## Uso de software de terceros
- Permitidos: licencias permisivas (MIT, Apache 2.0, BSD).
- Permitido con cuidado: LGPL (solo como librería dinámica).
- PROHIBIDO sin aprobación legal: GPL, AGPL, SSPL, BSL.
- Razón: GPL en core nos forzaría a abrir todo el código.
## Auditoría de dependencias
- CI corre license-checker en cada PR.
- Reporte mensual al equipo legal.
## Código generado por IA
- Permitido: Copilot, Claude, ChatGPT en código auxiliar.
- Restricción: revisión humana obligatoria (puede contener código copiado).
- Documentar: comentar "Inicial generado por X, revisado y modificado por Y".
## Contribuciones a open source
- Empleados pueden contribuir a OSS en horario laboral con previa aprobación.
- Licencia compatible con MIT/Apache.
- No se puede contribuir código que es propiedad del empleador.
## CLA (Contributor License Agreement)
- Para nuestros proyectos open source, requerimos CLA.
- Razón: poder cambiar licencia en el futuro si es necesario.
3.6 Ejercicios
✏️ Ejercicio 3.1 — Elegir licencia
Para cada caso, recomendá la licencia más apropiada y justificá:
a. Una librería de utilidades JavaScript que querés que se use lo más posible (incluyendo en empresas).
b. Un programa que mejora si todos los usuarios contribuyen sus cambios.
c. Un SaaS web donde te preocupa que un competidor lo despliegue sin contribuir.
d. Una herramienta interna de tu empresa, no para distribuir.
e. Un proyecto académico para tu tesis que querés que sea referenciable.
Solución
a. MIT — máxima permisividad → máxima adopción. Lo usan React, Vue, lodash. Empresas no tendrán miedo de incluirla.
b. GPL v3 — fuerza que las modificaciones también sean libres. El "kernel Linux" usa esta lógica.
c. AGPL v3 — cierra el SaaS loophole. Si AWS lo ofrece como servicio, debe abrir sus modificaciones. (O SSPL que es más estricta pero no OSI-approved.)
d. No necesita licencia formal (uso interno). Pero documentar internamente las restricciones. Si es internal-only, "All rights reserved" implícito basta.
e. MIT con citation requirement opcional + paper. O CC BY 4.0 para los textos. Podés agregar un README pidiendo citar tu paper si se usa académicamente.
3.7 Para profundizar
- choosealicense.com — guía simple de la elección.
- opensource.org/licenses — licencias OSI-approved.
- GNU Philosophy — gnu.org/philosophy.
- "The Cathedral and the Bazaar" — Eric Raymond.
- Siguiente: Ética en IA y automatización.
Definiciones nuevas: copyright, patente, marca registrada, secreto comercial, software libre, open source, las 4 libertades, copyleft, licencia permisiva, MIT, Apache 2.0, GPL, LGPL, AGPL, dual licensing, BSL, SSPL, SaaS loophole, plagio, CLA.