054.3 Lección 1
Certificación: |
Open Source Essentials |
Versión: |
1.0 |
Tema: |
054 Modelos de negocio de código abierto |
Objectivo: |
054.3 Cumplimiento y mitigación de riesgos |
Lección: |
1 de 1 |
Introducción
Un viejo chiste sobre código abierto dice que “el software libre no viene gratis”. Si bien el software libre y de código abierto permite una gran innovación y creatividad, los usuarios y desarrolladores deben cumplir con una serie de reglas. Esta lección cubre el cumplimiento y el riesgo en el software de código abierto.
La lección enumera los pasos básicos que los desarrolladores deben cumplir con las licencias, los riesgos de utilizar software de código abierto y las formas de rastrear y catalogar el software que utiliza la organización. Veremos cómo estas tareas pueden convertirse en políticas y ser promovidas por una Oficina de Programas de Código Abierto (OSPO).
Requisitos para el lanzamiento de software basado en componentes de código abierto
Si la organización utiliza software internamente, las licencias de software libre y de código abierto no imponen requisitos. La organización puede definir sus propias reglas para evitar vulnerabilidades, asegurarse de que todos utilicen los mismos componentes o por otras razones. Pero eso está más allá del alcance de esta lección. Cualquier requisito que las licencias de código abierto o la propia organización impongan al uso del software debe documentarse y la organización debe brindar capacitación sobre sus políticas.
Incluso si la organización ejecuta software en su servidor web y ofrece servicios con los que interactúan personas ajenas a la organización, la mayoría de las licencias de software libre y de código abierto no imponen requisitos. Sin embargo, la licencia pública GNU Affero también requiere el cumplimiento de los requisitos de copyleft para el software que se ejecuta como servicio.
Los requisitos legales de cada licencia importante de software libre y de código abierto se han explorado en profundidad en otras lecciones, por lo que esta sección solo ofrece una lista de acciones que los desarrolladores y administradores deben tomar para cumplir:
- Examinar los componentes de código abierto
-
La organización necesita políticas claras y educación sobre qué software de código abierto utilizar y dónde incluirlo en los productos. Dichas políticas cubren el cumplimiento, así como otras cuestiones como garantizar la seguridad y participar en la comunidad que desarrolla el software.
- Mantenga la licencia original en el código
-
Los desarrolladores no deben quitar la licencia del componente que utilizan. Incluir la licencia en el código fuente suele ser un requisito en la licencia. De hecho, quitar la licencia podría considerarse plagio, porque el desarrollador hace que parezca que él mismo escribió el código. Quitar la licencia también podría generar serios problemas más adelante, porque la organización podría violar la licencia cuando el código esté incluido en sus productos.
- Llevar un registro de licencias
-
La organización debe mantener un catálogo que muestre la licencia de cada archivo o paquete utilizado por la organización, para asegurarse de que está cumpliendo con las licencias.
- Reconocer al autor
-
Casi todas las licencias requieren que se le dé crédito al propietario de los derechos de autor (a menudo llamado “autor”) cuando se habla y promociona el software. Cada licencia explica qué incluir en este aviso: Normalmente, requieren un aviso de derechos de autor estándar con el año y el nombre del propietario de los derechos de autor. Este aviso debe aparecer en cualquier documentación relacionada con el producto que utiliza el componente, incluida la publicidad y el sitio web del dispositivo o programa.
- No implique respaldo
-
Algunas licencias BSD requieren que la persona que distribuye un producto con los componentes se asegure de no dar a entender que el propietario de los derechos de autor respalda el producto. Incluso si el requisito no está establecido, cumplirlo es lo ético.
- Ofrecer el código fuente para licencias copyleft
-
Si una organización distribuye un archivo binario que contiene componentes copyleft, ya sea como distribución de software o en un dispositivo, la organización tiene que ofrecer al público el código fuente de esos componentes. Si la organización cambia el código y redistribuye el trabajo derivado en formato binario, el código fuente de la versión modificada (derivada) también debe ofrecerse al público. La distribución se puede realizar a través de cualquier medio que facilite el acceso al público, como publicar el código en un sitio web u ofrecerlo en un disco o memoria USB.
- No incluya componentes copyleft en productos propietarios
-
Si la organización incorpora componentes copyleft en un producto, bajo algunas circunstancias la organización tiene que lanzar todo el producto bajo la misma licencia copyleft. Las condiciones que desencadenan este requisito varían de una licencia a otra. Sin embargo, a veces no está claro qué tipo de uso activa el requisito de copyleft. Entonces, excepto en situaciones claras como el uso de una biblioteca de código abierto (que no debería desencadenar el requisito recíproco del copyleft), los desarrolladores deben tener mucho cuidado con el uso de componentes copyleft a menos que la organización esté preparada para lanzar su producto bajo la misma licencia.
- Cambios en el código del documento
-
Al distribuir versiones modificadas del código, indique claramente los cambios que realizó la organización.
- Conceder derechos de patente
-
Algunas licencias de software libre o de código abierto requieren una concesión para el uso de la patente en el software. Por lo tanto, si una organización publica un código bajo dicha licencia y posee una patente sobre algún proceso en el código, la organización no puede cobrar una tarifa ni ejercer otros controles basados en su patente a nadie que use o adapte el código.
- Respetar las marcas comerciales
-
Algunos software de código abierto están cubiertos por marcas comerciales. Las marcas comerciales pueden abarcar palabras y frases, logotipos y otras imágenes, y muchas otras cosas. Por un lado, una organización debe manejar adecuadamente la marca registrada para cualquier software que utilice: Una violación común es parodiar, alterar o simplemente mostrar una marca registrada sin permiso. Por otro lado, si la organización quiere utilizar la marca, debe cumplir con los requisitos del propietario de la marca, lo que podría descartar modificaciones en el software.
Riesgos del software de código abierto
Esta lección trata sobre el cumplimiento, por lo que nos centraremos en los riesgos en esa área, pero también cubriremos algunos otros temas.
Violación de licencia
Las licencias de software libre y de código abierto deben tratarse con la misma seriedad que otras licencias y contratos. Las organizaciones sí las hacen cumplir, como Software Freedom Conservancy, que actúa en nombre de pequeños proyectos con copyleft que no tienen sus propios mecanismos de aplicación.
Estas organizaciones suelen abordar las demandas como último recurso. La mayoría de las violaciones no son intencionadas y son fáciles de resolver con educación. Aún así, perjudica la reputación de una organización si se le considera ignorante e insensible hacia las comunidades de cuyo software depende.
Y de hecho, se han iniciado demandas cuando un usuario de software se niega flagrantemente a cooperar cuando el software y el demandado son lo suficientemente importantes.
Incluso si una organización no es castigada con una demanda, el daño que una violación de licencia causa a su relación con la comunidad, así como a su reputación, puede ser sustancial. Un proyecto puede descarrilarse por algo tan simple como que las preguntas de los desarrolladores queden sin respuesta en los foros dedicados al software que están intentando utilizar.
Puede ser un desastre para alguien encontrar software con copyleft en un producto propietario. Para cumplir con la licencia, los desarrolladores deben eliminar todo el código copyleft o liberar su producto bajo la licencia copyleft. Hacer que su software sea gratuito, con el código fuente disponible, podría tener efectos nefastos en los modelos de negocio basados en derechos de licencia u otras formas de monopolizar el valor del producto.
Confianza y reputación
Hemos visto que las violaciones de licencias pueden ser muy dañinas. Otros tipos de comportamiento que perturban la confianza y la reputación también introducen riesgos.
Algunas organizaciones lanzan software bajo una licencia de software libre o de código abierto y luego anuncian en algún momento que las versiones futuras estarán bajo una licencia propietaria. Este cambio puede resultar tentador, porque muchos proyectos de código abierto no reciben apoyo financiero de suficientes clientes.
Pero tales cambios de licencia provocan enojo tanto entre los clientes como entre los desarrolladores externos que contribuyen al proyecto. A veces, los desarrolladores externos toman la versión libre y continúan desarrollándola de forma independiente, un paso conocido como bifurcación del proyecto. La versión libre podría volverse competitiva con la versión propietaria de la empresa y alejar a los clientes de la empresa.
También existen riesgos al participar en foros de proyectos. Una empresa debe aprender a ser un buen ciudadano. Los problemas comunes incluyen:
-
Intentar utilizar las contribuciones financieras o de código de una empresa como palanca para forzar el proyecto en una dirección que otros desarrolladores no quieren.
-
Hacer demasiadas exigencias a la comunidad, como presionarla con muchas solicitudes de funciones o incluso demasiadas preguntas.
-
Ser grosero de otras maneras y violar el código de conducta del proyecto.
-
Tratar de dominar la publicidad o capitalizar inapropiadamente de otras maneras el éxito del proyecto.
Inversiones no recompensadas
Los modelos de negocio se analizan en otra lección; Esta sección solo señala el riesgo financiero de participar en proyectos de código abierto.
Las empresas pueden iniciar o unirse a proyectos de código abierto con la expectativa de obtener ingresos a través de algún mecanismo, como contratos de soporte, contratos SaaS, recopilación de datos o incluso donaciones y subvenciones. Desafortunadamente, quienes llevan a cabo proyectos de código abierto a menudo los encuentran menos lucrativos de lo esperado. Por supuesto, cualquier empresa corre un riesgo al iniciar un nuevo proyecto, pero es particularmente difícil encontrar una fuente confiable de ingresos para el código abierto.
El código abierto parece más sostenible cuando respalda alguna otra forma de ingresos, como la venta de dispositivos de hardware, automóviles, impresoras, etc.
Bifurcaciones (Forks)
Como hemos visto, los miembros de un proyecto a veces no están de acuerdo con la hoja de ruta (roadmap), el liderazgo u otros aspectos del proyecto, por tanto, crean un proyecto alternativo en la misma base de código. Una organización también puede realizar la bifurcación para crear una versión especializada del software. Por ejemplo, Android utiliza una versión especializada de Linux que mantiene Google. (Google también hace muchas contribuciones a la versión principal de Linux y no siempre son aceptadas).
Las organizaciones pueden crear una bifurcación por varias razones. Es posible que envíen sus cambios al proyecto principal y los rechacen porque otros desarrolladores no los quieren. En un proyecto con una licencia permisiva, o un proyecto utilizado sólo dentro de la organización, es posible que desee mantener sus cambios en secreto.
El riesgo de una bifurcación es que los desarrolladores del proyecto bifurcado son responsables del mantenimiento de todo el producto. Si se agregan correcciones de errores importantes o nuevas características al proyecto principal, los desarrolladores del proyecto bifurcado deben duplicar los cambios o renunciar a sus beneficios. A medida que pasa el tiempo y los proyectos se alejan, ya que mantenerse al día con los cambios en el proyecto principal se vuelve cada vez más difícil.
Licencias incompatibles
Como se explicó en otras lecciones, algunas licencias de software libre y de código abierto tienen cláusulas incompatibles. Estos componentes no se pueden utilizar juntos en un producto.
Es probable que este problema surja durante una fusión o adquisición. Es posible que cada empresa haya estado utilizando software con una licencia particular y, si quieren combinar el código en sus proyectos, deben asegurarse de que las licencias sean compatibles.
Responsabilidad del producto
Muchas licencias de software de código abierto (y los términos de servicio de muchos software y servicios propietarios, de hecho) rechazan explícitamente cualquier responsabilidad por el uso del software. Otra forma de decir esto es que la licencia o los términos de servicio no ofrecen ninguna garantía.
Los proveedores de software rara vez son responsables de los problemas con su software, pero en ocasiones los clientes los demandan o intentan otras formas de castigo. Los tribunales no tienen que reconocer las cláusulas de “no garantía”.
Cada vez más, las leyes y regulaciones imponen responsabilidades a los creadores de software. Estas restricciones legales — o al menos, propuestas de restricciones — ahora se ven particularmente para la inteligencia artificial, pero a veces son más amplias.
Regulaciones de Exportación
Muchos países restringen la exportación de bienes y software. En el ámbito del software, dichas regulaciones se aplican con mayor frecuencia a los productos de seguridad y, específicamente, al uso de la criptografía. Estados Unidos solía tener controles estrictos sobre cualquier software que contenga criptografía, pero los controles se han relajado en los proyectos de código abierto.
Las empresas deben conocer las regulaciones de exportación donde están creando software, en caso de que estas regulaciones afecten la venta y distribución de sus productos.
Lista de materiales del software: Conozca lo que está utilizando
Muchos productos vienen con una lista de materiales, que es solo una lista de todos sus componentes. Por ejemplo, cuando compra un producto de consumo, puede incluir una hoja de papel con una lista de todas las piezas, hasta las tuercas y los tornillos. La lista puede incluir información útil, como las dimensiones de una pieza y un número de pieza para que pueda solicitar una pieza nueva.
Los proyectos de código abierto ahora incluyen una Lista de materiales de software (SBOM, pronunciada “S-bomb”). Como mínimo, un SBOM enumera paquetes, nombres de archivos, licencias, autores o propietarios y números de versión. Muchos SBOM van más allá e incluyen información sobre vulnerabilidades de seguridad.
Los proyectos generan un SBOM para cada versión utilizando herramientas automatizadas. Los usuarios pueden escanear el SBOM para encontrar la información que necesitan. Por ejemplo, extraer licencias ayuda a la organización a decidir rápidamente si los componentes son compatibles con su propio código y si está legalmente permitido utilizar los componentes con su código.
De manera similar, extraer información de la versión de cada paquete ayuda a la organización a descubrir si diferentes partes de su producto dependen de diferentes versiones de una biblioteca en particular. El uso de dos versiones de la biblioteca provoca, como mínimo, hinchazón. También podría crear confusión y errores si un componente se construye con la versión incorrecta.
Estándares para SBOM
Debido a que los entornos informáticos utilizan enormes cantidades (a veces decenas de miles) de componentes y realizan cambios frecuentes, los SBOM deben estar altamente estructurados para que la información se pueda extraer de forma automática y rápida. Esta sección describe dos de los formatos más populares en el mundo del código abierto:
- Intercambio de datos de paquetes de software (SPDX)
-
El formato representa cada paquete y todo el contenido de ese paquete en una estructura de árbol. El formato documenta las dependencias entre archivos y otras relaciones. Se pueden crear punteros a información, conocidos como “fragmentos” o “snippets”, y luego utilizarlos en todo el documento, de modo que la información deba definirse en un solo lugar. Este formato fue desarrollado por la Fundación Linux.
- CycloneDX
-
Este es un formato más grande con campos más detallados, particularmente para información de vulnerabilidad. El formato fue creado por el Open Worldwide Application Security Project (OWASP) y es popular en el ejército y otras organizaciones centradas en la seguridad. Por ejemplo, una entrada de un archivo podría incluir el nombre de una vulnerabilidad de seguridad, la fuente de información sobre la vulnerabilidad, los objetivos afectados y más. Este formato también está diseñado para implementaciones en la nube que pueden incluir miles de sistemas diferentes.
Tanto SPDX como CycloneDX crean estructuras jerárquicas en varios formatos, incluidos JSON y XML. Existen muchas herramientas para cada estándar, tanto para crear los formatos como para escanear los archivos creados en busca de información. Los sitios populares de repositorios de control de versiones permiten a los desarrolladores crear un SBOM en uno de estos formatos con solo hacer clic en un botón.
Análisis de composición de software
Saber qué está utilizando una organización requiere una evaluación de su software que incluya una comprensión de su procedencia, qué vulnerabilidades contiene, qué licencias utiliza y otros factores que ayudan a un individuo u organización a decidir si utilizar el software. Esta tarea se llama Análisis de composición de software (SCA) y existen muchas herramientas para realizar análisis sofisticados de SBOM y del propio software.
Algunas herramientas extraen información de licencia, lo que ayuda a una organización a decidir si es seguro incluir el software en un producto y si los diferentes componentes tienen licencias compatibles. Algunas herramientas incluso comparan fragmentos de código con bibliotecas de proyectos de código abierto comunes para descubrir si el código se tomó de los proyectos sin la atribución adecuada.
El uso de estas herramientas es especialmente crucial durante una fusión o adquisición. La empresa adquirente podría descubrir que el software que desea adquirir es menos valioso de lo que esperaba, porque contiene componentes de código abierto que imponen requisitos que interfieren con su uso previsto en la nueva organización.
Políticas formales y cumplimiento
Los procesos y técnicas descritos en esta lección deben ser diseñados por gerentes con el aporte de desarrolladores, abogados y otras personas con conocimientos. Esta sección describe algunas de las decisiones políticas que las organizaciones deben tomar con respecto al software de código abierto. Terminaremos con una descripción de una Oficina de Programas de Código Abierto (OSPO), que puede ser un defensor y una fuente de información para las políticas.
Principios que rigen el uso y la contribución del software de código abierto
Las organizaciones pueden beneficiarse enormemente del uso y la contribución al software de código abierto, pero deben hacerlo de manera que protejan sus propios intereses y beneficien a los proyectos de código abierto. Se deben definir políticas para:
-
Dónde utilizar software de código abierto (operaciones, proyectos internos, productos de cara al cliente, etc.)
-
Qué hace que un proyecto de código abierto sea apropiado para la organización: características, rendimiento, seguridad, hoja de ruta para futuras extensiones y viabilidad de la comunidad.
-
Escaneos para análisis de composición de software y dónde se debe almacenar la documentación resultante.
-
Recompensas para los desarrolladores que contribuyen al software de código abierto, incluida su participación en foros públicos
-
Lineamientos para contribuir a proyectos, incluyendo cómo ser representante público de la empresa.
-
Requisitos de documentación, para que los desarrolladores fuera del equipo central puedan entender cómo contribuir e interactuar.
La OSPO puede coordinar la creación de estas políticas y la educación para garantizar su cumplimiento.
Acuerdos de colaborador
Los proyectos de código abierto deben garantizar que las contribuciones sean legítimas: por ejemplo, que el código no haya sido tomado de algún producto propietario o de un proyecto de código abierto con una licencia incompatible. Muchos proyectos de código abierto requieren que los desarrolladores proporcionen un documento llamado Acuerdo de licencia de colaborador (CLA) para garantizar la legitimidad de su contribución.
Los desarrolladores de una organización que contribuyen a estos proyectos pueden solicitar a los abogados de la organización que revisen y aprueben el CLA. Por lo tanto, los abogados deben comprender la relevancia de las cláusulas de los CLA y estar preparados para examinarlas.
Se han emitido numerosas críticas sobre los CLA, incluida su complejidad y las brechas que dejan para que los proyectos utilicen el código aportado de formas no deseadas por los contribuyentes.
Muchos proyectos, en lugar de un CLA, solicitan al desarrollador que firme un breve documento llamado Certificado de origen del desarrollador (DCO), que certifica que el desarrollador tiene derecho a contribuir con el código. La DCO, que se analiza en otra lección, generalmente no se presenta a un abogado para su revisión.
Algunos proyectos simplemente piden a los contribuyentes que firmen los derechos de autor de su código en el proyecto en un Acuerdo de cesión de derechos de autor (CAA). Sin embargo, a muchos contribuyentes no les gusta esta práctica porque no pueden usar el código en algún proyecto propio y porque otorga mucho poder al proyecto.
La Oficina del Programa de Código Abierto (OSPO)
Los proyectos de código abierto combinan factores sociales, técnicos, legales y organizativos inusuales. En este momento, el conocimiento de estos factores no se ha extendido por las organizaciones hasta el punto de que todos los gerentes, desarrolladores, abogados y otros los comprendan profundamente. Por lo tanto, las organizaciones pueden beneficiarse enormemente de la creación de una Oficina de Programas de Código Abierto (OSPO) como punto central para la promoción, la formulación de políticas, la aplicación de políticas y la educación.
Como una especie de departamento multipropósito, los OSPO pueden desempeñar muchas funciones, tales como:
- Promoción del código abierto
-
Las OSPO pueden difundir tanto los conceptos detrás del movimiento del código abierto como sugerencias para el uso del código abierto en toda su organización. Pueden recordar a los desarrolladores que busquen soluciones de código abierto para los problemas que están resolviendo y animarlos a adoptar el software adecuado. Pueden instar a los gerentes a que concedan tiempo a los desarrolladores para participar en proyectos de código abierto y a reconocer esa participación al evaluar a los desarrolladores para aumentos salariales y ascensos laborales.
- Definición de políticas
-
Las OSPO pueden movilizar a los administradores para crear políticas y establecer repositorios para ellas.
- Aplicación de políticas
-
Las OSPO pueden recordar a los desarrolladores que escaneen el software y los SBOM y que sigan las reglas corporativas sobre el uso del código abierto. Las OSPO pueden conservar documentación sobre el software adoptado y otros aspectos del uso corporativo.
- Educación
-
Los OSPO pueden explicar a los desarrolladores cómo evaluar y participar en proyectos de código abierto, explicar a los abogados los detalles de las licencias y otras consideraciones legales, y ayudar a la empresa a comprender los cambios organizacionales y culturales que facilitan el uso del software de código abierto.
Existen numerosos documentos y recursos en línea para crear una OSPO. Una organización pequeña puede encargar la tarea a un tercero que sea experto en esa área.
Ejercicios guiados
-
¿Por qué un desarrollador no debería simplemente tomar el código que le gusta de un proyecto de código abierto y ponerlo en su propio código sin conservar la licencia?
-
¿Qué tipo de documentos firmaría un desarrollador al realizar una contribución a un proyecto de código abierto?
-
Encuentra algún software de código abierto que sería una base excelente para su sitio minorista. ¿Puede superponer su logotipo sobre su logotipo popular para crear una imagen llamativa para su sitio web?
Ejercicios exploratorios
-
¿Qué consideraciones podrían llevarlo a crear una bifurcación de un proyecto de código abierto para su propio uso, a pesar de los inconvenientes de las bifurcaciones?
-
Cuando encuentra algún software de código abierto que satisface sus necesidades, ¿cuáles son algunas de las razones por las que podría rechazarlo?
-
Le gustaría utilizar una herramienta de registro con copyleft en su producto propietario. ¿Existe alguna manera de combinarlos que no requiera que ofrezcas tu producto bajo la licencia copyleft?
Resumen
Esta lección ha cubierto muchas consideraciones a tener en cuenta antes de utilizar software gratuito y de código abierto. Explicó cómo cumplir con las licencias, diversos riesgos legales, de reputación y financieros, y cómo definir políticas importantes y hacerlas cumplir dentro de su organización.
Respuestas a ejercicios guiados
-
¿Por qué un desarrollador no debería simplemente tomar el código que le gusta de un proyecto de código abierto y ponerlo en su propio código sin conservar la licencia?
Esto suele ser una violación de la licencia de código abierto y también representa plagio e infracción de derechos de autor. En la práctica, la organización puede verse obligada a cumplir con la licencia, con consecuencias que van desde la vergüenza y el daño a la reputación hasta la destrucción de su modelo de negocio si se mezcla código copyleft con código propietario.
-
¿Qué tipo de documentos firmaría un desarrollador al realizar una contribución a un proyecto de código abierto?
Un Acuerdo de licencia de colaborador es un documento legal que otorga derechos a la organización de código abierto para usar el código. Un Certificado de origen de desarrollador es un documento más breve y sencillo que promete que el desarrollador tiene derecho a contribuir con el código. Un Acuerdo de cesión de derechos de autor otorga todos los derechos a la organización receptora.
-
Encuentra algún software que sería una base excelente para su sitio minorista. ¿Puede superponer su logotipo sobre su logotipo popular para crear una imagen llamativa para su sitio web?
Si el proyecto tiene su logotipo como marca registrada, su cambio probablemente violaría la marca registrada. Incluso si el logotipo no es una marca registrada, su cambio podría considerarse irrespetuoso y confuso.
Respuestas a ejercicios exploratorios
-
¿Qué consideraciones podrían llevarlo a crear una bifurcación de un proyecto de código abierto para su propio uso, a pesar de los inconvenientes de las bifurcaciones?
Si está satisfecho con el estado actual del código, es posible que no necesite mantenerse al día con los cambios en el proyecto principal. Es posible que desee crear un producto sustancialmente diferente de los usos que se le da al proyecto principal y, por lo tanto, esté dispuesto a separarse del proyecto principal. El código puede ser lo suficientemente valioso en su plan de negocios como para que su equipo esté dispuesto a asumir la responsabilidad total de su desarrollo y mantenimiento.
-
Cuando encuentra algún software de código abierto que satisface sus necesidades, ¿cuáles son algunas de las razones por las que podría rechazarlo?
El código puede contener demasiados errores y vulnerabilidades de seguridad, es posible que la comunidad de desarrolladores del proyecto no funcione bien, es posible que no le guste la dirección en la que evoluciona el código o que la licencia no sea compatible con otro código de su producto.
-
Le gustaría utilizar una herramienta de registro con copyleft en su producto propietario. ¿Existe alguna manera de combinarlos que no requiera que ofrezcas tu producto bajo la licencia copyleft?
Integrar el código de la herramienta en su código podría activar el requisito recíproco del copyleft, dependiendo de qué licencia esté vigente. La herramienta de registro debe estar separada de su producto para que su producto no se vea como un derivado. Por ejemplo, podría ser seguro ejecutar la herramienta copyleft como un proceso separado y comunicarse con ella mediante el paso de mensajes.