La Licencia Apache 2.0 es una licencia permisiva publicada por la Apache Software Foundation en enero de 2004. Como la MIT, permite usar, modificar, distribuir y vender el código, incluso dentro de software cerrado. Se diferencia en dos puntos: concede una licencia explícita sobre las patentes de quienes contribuyen y pide documentar los cambios y conservar un archivo de avisos llamado NOTICE.
Por qué existe si ya estaba la MIT
La licencia MIT es breve y no dice nada sobre patentes. Para una empresa grande eso es un riesgo: un contribuyente podría aportar código a un proyecto y después demandar por patentes a quienes lo usan. Apache 2.0 cierra esa puerta por escrito, y por eso es la licencia preferida de muchos proyectos con respaldo corporativo: Kubernetes, TensorFlow, Android (la mayor parte del espacio de usuario), Swift y la mayoría de los proyectos de la propia fundación Apache.
La cláusula de patentes
La sección 3 de la licencia dice, en resumen:
- Cada contribuyente concede a todos los usuarios una licencia gratuita, mundial e irrevocable sobre sus patentes que cubran su contribución.
- Si un usuario demanda alegando que el proyecto infringe una patente, pierde automáticamente las licencias de patentes que recibió por ese proyecto.
La segunda parte se conoce como cláusula de represalia. Funciona como disuasión: quien demanda por patentes pierde su propio derecho a usar el software sin riesgo.
Qué exige al redistribuir
Si distribuyes el código, original o modificado, tienes que:
- Entregar una copia de la licencia a quien recibe el código.
- Marcar los archivos modificados con un aviso visible de que los cambiaste.
- Conservar los avisos de copyright, patentes, marcas y atribución del código original.
- Incluir el archivo
NOTICE, si el proyecto original tiene uno, en tu distribución. Puedes agregarle tus propios avisos, pero no quitar los existentes.
Tu propio código, o tus modificaciones, pueden ir bajo otra licencia, incluso cerrada, siempre que cumplas lo anterior para la parte original.
Qué no concede
Marcas. La sección 6 aclara que la licencia no da derecho a usar los nombres, logos o marcas del proyecto, salvo para describir de dónde viene el código. Puedes distribuir un fork de un proyecto Apache, pero no presentarlo con su nombre como si fuera el original.
Garantía. Igual que casi todas las licencias libres, el software se entrega sin garantía.
Compatibilidad con la GPL
Este punto genera confusión. Según la Free Software Foundation:
- Apache 2.0 es compatible con la GPL v3: se puede incluir código Apache 2.0 en un proyecto GPL v3, y el conjunto se distribuye bajo GPL v3.
- Apache 2.0 no es compatible con la GPL v2, porque la cláusula de represalia de patentes es una restricción que la v2 no admite.
En la práctica, un proyecto “GPL v2 o posterior” puede incorporar código Apache 2.0 usando la v3. Uno “solo GPL v2”, como el núcleo Linux, no puede.
Apache 2.0 frente a MIT
| MIT | Apache 2.0 | |
|---|---|---|
| Longitud | 3 párrafos | 9 secciones |
| Uso comercial y código cerrado | Sí | Sí |
| Licencia explícita de patentes | No | Sí, con cláusula de represalia |
| Marcar archivos modificados | No | Sí |
| Archivo NOTICE | No | Sí, si existe |
| Compatible con GPL v3 | Sí | Sí |
| Compatible con GPL v2 | Sí | No |
Cuándo elegir Apache 2.0
- Quieres una licencia permisiva y te importa la protección frente a demandas de patentes.
- Esperas contribuciones de empresas, que suelen sentirse más cómodas con Apache 2.0.
- No necesitas compatibilidad con proyectos “solo GPL v2”.
Si prefieres algo más simple, la MIT basta. Si quieres que las versiones distribuidas sigan siendo libres, mira la GPL. El resumen por objetivos está en qué licencia elegir.
Cómo aplicarla
- Copia el texto completo en un archivo
LICENSEen la raíz del repositorio. - Si quieres avisos de atribución, crea un archivo
NOTICEbreve con el nombre del proyecto y el titular. - Agrega el encabezado recomendado por la fundación o el identificador SPDX en cada archivo:
# SPDX-License-Identifier: Apache-2.0
Preguntas frecuentes
¿La licencia Apache 2.0 permite el uso comercial? Sí. Permite usar, modificar, distribuir y vender el código, incluso dentro de software cerrado, siempre que conserves la licencia y los avisos.
¿Apache 2.0 es una licencia copyleft? No. Es una licencia permisiva: tus modificaciones y tu propio código pueden ir bajo otra licencia, incluso cerrada. Si buscas copyleft, mira la GPL.
¿Qué es el archivo NOTICE en la licencia Apache? Es un archivo con los avisos de atribución del proyecto. Si el proyecto original lo tiene, debes incluirlo al redistribuir; puedes agregarle tus avisos, pero no quitar los existentes.
¿Puedo usar código Apache 2.0 en un proyecto GPL? Sí, si el proyecto es GPL v3: el conjunto se distribuye bajo GPL v3. No es compatible con proyectos que son solo GPL v2, como el núcleo Linux.
Fuentes
- Apache License, Version 2.0, Apache Software Foundation.
- Cómo aplicar la licencia Apache, Apache Software Foundation.
- Compatibilidad de Apache 2.0 con la GPL, Apache Software Foundation.
- Lista de licencias y su compatibilidad con la GPL, Free Software Foundation.