Los fundadores de OpenTofu tenían una misión. Molesto por Cambios en la licencia de HashiCorp en agosto de 2023 a su popular herramienta de infraestructura como código Terraform, OpenTofu se propuso ser el «sucesor de código abierto de Terraform con licencia MPLv2», prometiendo además que «será impulsado por la comunidad, imparcial, en capas y modular, y compatible con versiones anteriores».
Enormemente prometedor, pero extraordinariamente difícil de lograr. De hecho, es tan difícil que OpenTofu puede haber tomado ilegalmente el código de HashiCorp para seguir el ritmo.
Al menos, es difícil evitar esa conclusión, examinando los repositorios GitHub de OpenTofu y comparándolos con los de HashiCorp. Específicamente, OpenTofu parece haber eliminado el código Terraform relacionado con un nuevo removed
La función de bloque se implementó por primera vez en Terraform V1.7, que se lanzó bajo la licencia de software empresarial (BUSL) unos meses después de que se creara la bifurcación OpenTofu. ¿El decir? OpenTofu tomó este código de HashiCorp con licencia BUSL, eliminó los encabezados e intentó volver a obtener la licencia bajo la licencia pública de Mozilla (MPL 2.0).
Amigos, así no es como funciona el código abierto. Puede no estar de acuerdo con la elección de licencia del titular de los derechos de autor, pero no tiene derecho a tomar el código de otra persona y eliminar y reemplazar su licencia.
La arrogancia de la juventud
OpenTofu se lanzó en septiembre de 2023 con mucha fanfarria y “promesas formales” de apoyo de más de 140 organizaciones, entre ellas Cloudflare, Harness, Oracle y GitLab. Por supuesto, el mantenedores principales en su mayoría provinieron de competidores directos de HashiCorp (Spacelift, env0) que habían construido sus negocios en Terraform y estaban molestos por el cambio de licencia de HashiCorp. Me parece bien.
En enero, el proyecto estaba promocionando la disponibilidad general de OpenTofu, incluso cuando mencionó características que se lanzarán próximamente, como el cifrado de estado del lado del cliente, que Terraform no tenía. A pesar del comienzo optimista, el equipo pronto comenzó a darse cuenta de la dificultad de implementar la característica. La seguridad es difícil. (Quizás HashiCorp no era tonto, después de todo).
Si ese ritmo de desarrollo parece demasiado bueno para ser verdad, viniendo de un grupo de empresas relativamente pequeñas (y Ninguno de los principales proveedores de nube.), tal vez lo fue. Después de todo, independientemente de lo que uno pueda pensar sobre el cambio de licencia de HashiCorp, la compañía ha pasado una década desarrollando el producto. El músculo de ingeniería detrás de tal esfuerzo no cobra vida en unos pocos meses, cualesquiera que sean los ideales de alto nivel de los fundadores.
Magia de licencias
En Terraform V1.7, HashiCorp presentado una nueva característica importante: removed
automatización de bloques, que permite a Terraform gestionar mejor la eliminación de recursos. Piensa en ello como un enfoque basado en la configuración a terraform state rm
. Sin embargo, la característica en sí, aunque interesante, no es el punto. El momento de esa característica es. Es importante destacar que esta función se introdujo a finales de noviembre de 2023. después HashiCorp cambió a BUSL. Si alguien quisiera usar el removed
bloquear la funcionalidad, no pudieron obtenerla bajo la MPL.
A finales de febrero, OpenTofu lanzó una funcionalidad similar a la automatización de bloques eliminados de HashiCorp. No sólo en términos de lo que hace, sino también en términos del código escrito para lograrlo. Echa un vistazo a estos repositorios y dime si no ves lo mismo:
La ley de derechos de autor es complicada. Soy abogado de formación, pero no ejerzo y, por lo tanto, no se me puede considerar muy bueno. Quizás importe que OpenTofu parece haber eliminado algunos comentarios en algunos archivos. Quizás importe que parezcan haber cambiado una línea aquí o allá. Quizás se podría argumentar de manera creíble que OpenTofu, de hecho, no ha creado trabajos derivados del código con licencia BUSL de Terraform. Tal vez.
Sin embargo, este argumento se vuelve menos persuasivo cuando se observan los encabezados de los archivos de OpenTofu. Aquí está el encabezado que HashiCorp usó en su removed
bloquear archivos:
// Copyright (c) HashiCorp, Inc.
// Identificador de licencia SPDX: BUSL-1.1
Ahora aquí está el encabezado que usó OpenTofu:
// Copyright (c) 2023 HashiCorp, Inc.
// Identificador de licencia SPDX: MPL-2.0
¿Ves el problema? OpenTofu reconoce que está utilizando el código de HashiCorp, pero pretende que el código en cuestión tenía la licencia MPL. Excepto que no lo fue. Alguna vez. Todo el código en cuestión fue publicado. después HashiCorp se mudó a BUSL para Terraform. En el mejor de los casos, la comunidad OpenTofu se ha involucrado en ilusiones, esperando desesperadamente poder hacer retroactivamente que el código con licencia BUSL se convierta mágicamente en código con licencia MPL. En el peor de los casos, los desarrolladores de OpenTofu se apropiaron engañosamente de la propiedad intelectual de HashiCorp y trataron de apropiarse de ella.
Independientemente de lo que piensen los desarrolladores de OpenTofu, este tipo de comportamiento es lo opuesto a un «enfoque impulsado por la comunidad» positivo y definitivamente no muestra «el valor del código abierto», como proclama el comunicado de prensa de la Fundación Linux. Se parece mucho a una violación de la propiedad intelectual de HashiCorp. Es completamente justo que OpenTofu no esté de acuerdo con el cambio de licencia de HashiCorp y bifurque el proyecto; Es completamente ilegal que OpenTofu o cualquier otra persona tome el código de HashiCorp y aplique la licencia que prefiera.
Esto se siente como un fracaso de la gobernanza, entre otras cosas. No es posible que Cloudflare, Oracle y otras empresas responsables se hayan registrado en ese tipo de comunidad, pero eso parece ser lo que están obteniendo.
Copyright © 2024 IDG Communications, Inc.