Licenciamiento en Qt
![]() |
| Tomado de Freepik (Designed by Onlyyouqj) |
Sumario:
- Conocer las opciones de licenciamiento de Qt.
- Entender cómo elegir la licencia apropiada.
- Entender las diferencias entre las licencias de desarrollo de aplicaciones (application development) y creación de dispositivos (device creation).
- Diferencias básicas entre GPLv2, GPLv3, LPGLv2.1 y LPGLv3.
Licenciamiento en Qt
A partir de Qt 5.7, este framework posee tres tipos de licenciamiento:
- Licencia comercial.
- Licencia de código abierto LGPLv3.
- Licencia de código abierto GPLv2 y GPLv3.
Qt cuenta con todos sus módulos esenciales, los complementarios y el IDE Qt Creator disponibles para ambas versiones de licencia comercial y GPL. No obstante, existen algunos módulos complementarios que no están disponibles para licencias LGPL.
Licencias código abierto
La característica más significativa de este tipo de licenciamiento es que no tienes que pagar nada, sin embargo algunas limitantes son establecidas. Ambos tipos de licencia de código abierto poseen varias diferencias que son importantes.
GPL
Las licencias GPL en sus dos versiones, siguen cabalmente los principios de la Free Software Fundation (FSF) que estipulan:- Libertad para usar el software para cualquier uso.
- Libertad para examinar el código fuente y modificar según convenga.
- Libertad para redistribuir el software.
- Libertad para redistribuir el software modificado.
Existes dos versiones de la GPL, la versión 2, la más antigua, y la versión 3. La versión 2 de la GPL, sostiene los principios de la FSF, pero con las siguientes diferencias:
- Tivoization. Este fenómeno se refiere a utilizar los derechos de la GPLv2, pero colocar una restricción de hardware ante un cambio del firmware o software del dispositivo, de tal manera que no funcione el sistema. Este cambio evidentemente, se refiere a una modificación del código fuente. En resumen, no se permite explícitamente la creación de dispositivos cerrados donde el usuario no tiene concedido los derechos de las licencias de código abierto.
- Digital Rights Management (DRM) o encriptamiento de hardware. Este tipo de procedimientos viola las preceptos igualmente y no se puede aplicar.
- Represalias de patentes de software. Cuando a todos los usuarios del software se les otorgan licencias, haciendo que la represalia por patentes de software de cualquier software potencialmente patentado en el software distribuido carezca de sentido.
LGPL
La licencia LGPL sigue los mismos principios que la GPL, pero con la gran diferencia que es posible hacer aplicaciones cerradas en Qt bajo ciertas condiciones.
- Cualquier cambio en el código de Qt, debe distribuirse conjuntamente con los binarios de tu aplicación. Esto significa básicamente proveer al usuario final del código fuente de Qt.
- El código fuente de la aplicación se mantiene cerrado mientras la librería sea usada con enlace dinámico. El usuario tiene la capacidad de cambiar las librerías de Qt que son enlazadas con la aplicación, disminuyendo considerablemente la seguridad de la aplicación. Incluso proveer las instrucciones al usuario final para que pueda re-enlazar con otras librerías de Qt modificadas o no la aplicación final.
- No existe la posibilidad de usar algunos módulos complementarios como Qt Charts, Qt Data Visualization y Qt Virtual Keyboard.
- La incompatibilidad de este tipo de licencias con otras, sobretodo comerciales, descartan el uso de Qt bajo este tipo de licencia.
- El usuario tendrá una copia de la licencia LGPL que vendrá con la aplicación.
Existen dos versiones de LGPL, la 2.1 y la 3, que siguen la misma relación de diferencias que la GPL 2 y 3.
Con la licencia comercial puedes utilizar Qt como quieras. Esto significa compilar estática o didácticamente las librerías de Qt, modificar las mismas sin distribuir sus modificaciones, así como mantener cerrado el código de tu aplicación.
Evidentemente, la licencia es personal y solo mantiene vigencia mientras se pague el mes de suscripción o pagando una licencia perpetua. No obstante, el soporte es temporal y debe irse renovando en un determinado tiempo.
Mientras la licencia esté valida, las aplicaciones desarrolladas con esta podrán seguir actualizándose y manteniéndose. Sin embargo, si la licencia expira, las aplicaciones perderán este derecho.
Permite crear aplicaciones para plataformas de escritorio y móviles. Contiene todas las APIs de Qt y el IDE de Qt Creator para un desarrollo multiplataforma perfecto. Las opciones de licencia anteriormente descritas entran en este apartado. Qt for Application Development tiene doble licencia bajo licencias comerciales y de código abierto. La licencia comercial de Qt le da todos los derechos para crear y distribuir software en sus propios términos sin ninguna obligación de licencia de código abierto. Igualmente, también esta disponible bajo licencias GPL y LGPLv3 de código abierto. Las herramientas Qt y algunas librerías sólo están disponibles bajo GPL.
Siempre cuando hablamos del uso de la licencia Qt for Device Creation, siempre existe un dispositivo cerrado físicamente al usuario, el cual se puede o no acceder por medio de la funcionalidad de Qt. Aunque no es necesario que el sistema cerrado tenga una interfaz gráfica, basta que tenga una funcionalidad de Qt para que se aplique este tipo de licencia.
La diferenciación entre el uso de una plataforma u otra, no es distinción entre un tipo de licencia u otra. Existen sistemas cerrados que poseen Windows CE o alguna distribución de Linux ejecutando la aplicación en cuestión, y si se encuentran en un dispositivo cerrado enfocado con alguna funcionalidad, entonces esta situación es acogida por la licencia Qt for Device Creation.
Incluso, si por alguna casualidad la idea es hacer el desarrollo en un entorno que no tiene que ver con Qt, y una vez instalado en el sistema ya operativo, carga una funcionalidad de Qt, entonces este dispositivo llevaría una licencia también de estas características. Siempre todos los términos y condiciones de la misma se refieren al producto final.
Pashley, David. "Qt licensing: Commercial vs LGPLv3 Open-Source".
Qt. "FAQ".
Wysota, Witol; Haas, Lorenz. Game Programming Using Qt. Packt Publishing, 2016.
Licencia comercial
La licencia comercial es mi recomendación cuando de proyectos profesionales se trata. Con ello se paga el apoyo profesional, que puede ser vital cuando hay plazos que cumplir, y también la indemnización de la propiedad intelectual, lo que significa que no tiene que preocuparse de quién es el propietario de todo el código que está utilizando, ya que usted compró los derechos sobre el mismo en una transacción comercial y, por lo tanto, el vendedor es responsable.Con la licencia comercial puedes utilizar Qt como quieras. Esto significa compilar estática o didácticamente las librerías de Qt, modificar las mismas sin distribuir sus modificaciones, así como mantener cerrado el código de tu aplicación.
Evidentemente, la licencia es personal y solo mantiene vigencia mientras se pague el mes de suscripción o pagando una licencia perpetua. No obstante, el soporte es temporal y debe irse renovando en un determinado tiempo.
Mientras la licencia esté valida, las aplicaciones desarrolladas con esta podrán seguir actualizándose y manteniéndose. Sin embargo, si la licencia expira, las aplicaciones perderán este derecho.
Opciones de licenciamiento comercial
El licenciamiento comercial se divide en dos tipos a su vez: una licencia denominada Qt for Application Development y una licencia llamada Qt for Device Creation. Ambas se diferencian básicamente en la aplicación del usuario, si existe una integración de hardware en el desarrollo, entre otras características.Qt para desarrollo de aplicaciones (Qt for Application Development)
Permite crear aplicaciones para plataformas de escritorio y móviles. Contiene todas las APIs de Qt y el IDE de Qt Creator para un desarrollo multiplataforma perfecto. Las opciones de licencia anteriormente descritas entran en este apartado. Qt for Application Development tiene doble licencia bajo licencias comerciales y de código abierto. La licencia comercial de Qt le da todos los derechos para crear y distribuir software en sus propios términos sin ninguna obligación de licencia de código abierto. Igualmente, también esta disponible bajo licencias GPL y LGPLv3 de código abierto. Las herramientas Qt y algunas librerías sólo están disponibles bajo GPL.
Qt para la creación de dispositivos (Qt for Device Creation)
Esta opción solo está disponible para la modalidad de licencia comercial. Permite crear dispositivos embebidos con interfaces de usuario modernas con el máximo rendimiento. Además de las APIs de Qt, viene con una completa suite de herramientas integradas construidas alrededor del IDE de Qt Creator, y soluciones integradas adicionales que reducen el tiempo de desarrollo.Diferencias entre ambas modalidades
Muchas veces es bastante claro cuando una aplicación requiere Qt for Application Development, en el caso de una aplicación basada en software o cuando necesita Qt for Device Creation, para software con hardware. Sin embargo, muchas veces es complicado detectar cuando es necesario usar una o la otra.Siempre cuando hablamos del uso de la licencia Qt for Device Creation, siempre existe un dispositivo cerrado físicamente al usuario, el cual se puede o no acceder por medio de la funcionalidad de Qt. Aunque no es necesario que el sistema cerrado tenga una interfaz gráfica, basta que tenga una funcionalidad de Qt para que se aplique este tipo de licencia.
La diferenciación entre el uso de una plataforma u otra, no es distinción entre un tipo de licencia u otra. Existen sistemas cerrados que poseen Windows CE o alguna distribución de Linux ejecutando la aplicación en cuestión, y si se encuentran en un dispositivo cerrado enfocado con alguna funcionalidad, entonces esta situación es acogida por la licencia Qt for Device Creation.
Incluso, si por alguna casualidad la idea es hacer el desarrollo en un entorno que no tiene que ver con Qt, y una vez instalado en el sistema ya operativo, carga una funcionalidad de Qt, entonces este dispositivo llevaría una licencia también de estas características. Siempre todos los términos y condiciones de la misma se refieren al producto final.
Bibliografía
Bresnahan, Christine; Blum, Richard. Linux Essentials. 2nd EditionPashley, David. "Qt licensing: Commercial vs LGPLv3 Open-Source".
Qt. "FAQ".
Wysota, Witol; Haas, Lorenz. Game Programming Using Qt. Packt Publishing, 2016.

Comentarios
Publicar un comentario