Navega el ecosistema de licencias open source con confianza: entiende la diferencia entre licencias permisivas y copyleft, cumple con las obligaciones de atribución y protege el código propietario de tu empresa.
Cuándo usarlo: Auditar y cumplir con las licencias open source en proyectos comerciales y publicar código de manera correcta
Herramienta recomendada: Claude
Eres un abogado tecnológico especializado en propiedad intelectual del software y licencias open source, con experiencia asesorando a equipos de desarrollo sobre el uso correcto del código abierto en productos comerciales. Necesito que me ayudes a entender el ecosistema de licencias open source y a cumplir correctamente con sus obligaciones. **Mi contexto:** - Tipo de proyecto: [producto SaaS / aplicación móvil / librería de uso interno / herramienta developer / contribución a OSS] - Lenguaje y ecosistema principal: [JavaScript/Node, Python, Java, Go, Rust, etc.] - Modelo de negocio: [código propietario cerrado / SaaS / código abierto / freemium] - Principal preocupación: [no sé qué licencias tengo en mis dependencias / quiero publicar mi código como OSS / alguien puede usar mi código libre de cargo / cómo cumplir con la atribución] Desarrolla una guía completa de licencias open source para desarrolladores: **1. Los fundamentos de las licencias de software** Explica los conceptos básicos que todo desarrollador debe entender: el copyright del software (quién lo tiene, cuándo se activa, qué protege), la diferencia entre el código propietario (todos los derechos reservados) y el código open source (algunos derechos reservados, otros concedidos mediante licencia), qué es una licencia de software (un contrato de adhesión que concede al usuario ciertos permisos sobre el código), por qué ignorar las licencias de las dependencias que usas puede tener consecuencias legales y comerciales graves. **2. Las familias de licencias open source** Detalla las principales familias de licencias open source y sus características: licencias permisivas (MIT, Apache 2.0, BSD 2-Clause, BSD 3-Clause) que permiten el uso libre incluyendo en código propietario con solo atribuir; licencias copyleft débil (LGPL, MPL 2.0, EPL) que permiten enlazar la librería desde código propietario pero exigen que las modificaciones a la librería misma sean open source; licencias copyleft fuerte (GPL v2, GPL v3, AGPL v3) que exigen que el código que integra o modifica el software sea distribuido bajo la misma licencia; y licencias específicas de documentación y contenido como Creative Commons. **3. La trampa del copyleft y los proyectos comerciales** Explica en detalle el riesgo del copyleft para los proyectos comerciales: el efecto viral de la GPL (si integras código GPL en tu código propietario, tu código debe distribuirse también como GPL), la diferencia entre la GPL normal y la AGPL (la AGPL extiende el copyleft al uso en red: si tu SaaS usa código AGPL, podrías tener que publicar el tuyo), cómo manejar las dependencias con licencias copyleft de manera segura (usar como servicio externo en lugar de integrar el código, usar la versión LGPL si existe, o buscar alternativas con licencias permisivas), la diferencia entre "distribuir" software y ejecutarlo en un servidor. **4. Obligaciones de atribución y cumplimiento** Detalla las obligaciones de atribución que imponen las licencias permisivas y cómo cumplirlas correctamente: la atribución que exige la licencia MIT (incluir el texto de la licencia y el aviso de copyright en las distribuciones), los requisitos adicionales de la Apache 2.0 (NOTICE file, atribución de los cambios), qué hacer con los avisos de licencia en aplicaciones móviles (sección de créditos o "Open Source Licenses" que exige Apple y Google), cómo generar automáticamente el inventario de licencias de tus dependencias con herramientas como license-checker, FOSSA o WhiteSource. **5. Auditoría de licencias en un proyecto existente** Explica el proceso de hacer una auditoría de licencias de las dependencias de un proyecto: cómo inventariar todas las dependencias directas e indirectas, las herramientas de análisis de licencias por ecosistema (npm license-checker, pip-licenses, mvn license:aggregate-download-licenses, go-licenses), cómo identificar las dependencias con licencias incompatibles o que requieren atención, qué hacer cuando encuentras una dependencia problemática (buscar alternativa, pedir excepción comercial al mantenedor, o aislar el componente). **6. Publicar tu propio código como open source** Detalla el proceso de decisión para publicar código como open source: qué licencia elegir según tus objetivos (MIT/Apache si quieres máxima adopción incluyendo uso comercial, GPL si quieres que todas las mejoras vuelvan a la comunidad, AGPL si el proyecto es un SaaS y quieres evitar que competidores ofrezcan versión hosted sin contribuir), cómo gestionar el Contributor License Agreement (CLA) para retener los derechos de cambiar la licencia en el futuro, cómo manejar las contribuciones externas al proyecto, la importancia del archivo LICENSE y del NOTICE en el repositorio. **7. Licencias duales y excepciones comerciales** Explica el modelo de licencia dual que usan muchos proyectos open source exitosos: el código es GPL para uso open source y tiene una licencia comercial de pago para uso propietario (ejemplos: MySQL, Qt, Elastic antes del cambio), cómo funciona este modelo como estrategia de negocio, cómo gestionar las excepciones comerciales individuales (carve-outs) para empresas específicas. El debate reciente sobre licencias que no son OSI-approved como SSPL, BSL o Commons Clause y por qué generan controversia en la comunidad. **8. Dependencias y propiedad intelectual en el entorno empresarial** Detalla las políticas que debe tener una empresa de desarrollo respecto a las dependencias open source: el proceso de aprobación de nuevas dependencias antes de añadirlas al proyecto (quién revisa, qué licencias están pre-aprobadas, qué requiere revisión legal), la política de contribución de los empleados a proyectos open source (qué pueden publicar, bajo qué condiciones, si necesitan aprobación de la empresa), el rol del equipo de InnerSource para compartir código entre proyectos internos. **9. Casos especiales: IA y open source** Explica las nuevas cuestiones de licencias open source en el contexto de la IA: las licencias de los modelos de lenguaje y sus restricciones de uso (Llama, Mistral, modelos de Hugging Face), los datasets de entrenamiento y sus licencias (qué puede entrenarse con datos de GitHub, qué dice la GPL sobre el código generado por IA entrenada en código GPL), las primeras decisiones judiciales sobre el uso de código open source para entrenar modelos de IA. Termina con una guía de decisión para elegir la licencia correcta según el tipo de proyecto: un árbol de decisión simple que cubra los 10 escenarios más comunes (librería interna, API pública, SaaS, producto mobile, herramienta CLI, plugin para otro software, contribución a OSS existente, fork de proyecto OSS, proyecto dual-license, contribución de la empresa al ecosistema).