SlideShare a Scribd company logo
1 of 11
Download to read offline
Using Qt under
LGPL-3.0
Burkhard Stubert
The Specialist in Smart User Interfaces
for Industrial Machinery
Qt Greece, 2023-11-24, Athens
§§§
Many Good Questions – No Good Answers
2
Can I keep my code closed?
How many products use Qt
LGPL-3.0
Do I have to satisfy the anti-
tivoisation clause?
What are the implications on
the system architecture?
Can I void warranty for
system with modified Qt?
Can I link Qt statically? Can I charge for installing
modified Qt?
Convey Combined Work:
Product + Physical Medium
3
Source code of Qt libs
Text of LGPLv3 and GPLv3
Copyright notices
Modifications
Installation information (B2C only)
+
Qt libraries:
Object code
Application:
Object code
GPLv3 (6a)
LGPLv3 (4)
Display in GUI
Can use web
server instead
Treat every package
as if under (L)GPLv3
Convey Combined Work:
Product + Written Offer
4
Source code of Qt libs
Text of LGPLv3 and GPLv3
Copyright notices
Modifications
Installation information (B2C)
Qt libraries:
Object code
Application:
Object code
GPLv3 (6b)
LGPLv3 (4)
Display in GUI
+ Written offer:
Valid for max(3y, support)
Offer unknown
to licenses other
than LGPL
When to Provide Installation Information
• User Product =
• [tangible] “consumer product” [...]
normally used for personal, family,
or household purposes, or
• anything designed or sold for
incorporation into a dwelling
• In doubt: it’s a User Product!
• Examples: phones, TVs, STBs, home
appliances, cars, medical devices,
security cameras
• Commercial Product:
• Examples: tractors, harvesters,
trucks, professional appliances,
medical devices, heavy-duty
cameras, vending machines
5
User
Product?
No
Yes
Installation
Information
Installation
Information
B2C B2B
• Installation Information =
• Anything required to build a modified
Qt version, install and execute it on the
User Product (e.g., Yocto build scripts)
LGPL-3.0 + Proprietary
6
Lib/App
Proprietary
.h/.c
LGPL-3.0
Lib/App
Proprietary
Combined
Proprietary
lib.a
LGPL-3.0
Lib/App
Proprietary
Combined
Proprietary
lib.so
LGPL-3.0
(4d1) (4d0)
Convey *.o
No combined
work
Used for Qt apps on iOS
Lib/App
Any
executable
LGPL-3.0
Lib/App
Proprietary
Calls
IPC
Combined
LGPLv3
Essential, Free Add-On, Paid Add-On Modules
7
Core
D-Bus
Gui
Network
Qml
Quick
Quick Controls
Quick Dialogs
Quick Layouts
Quick Test
Test
Widgets
3D Serial Bus
Bluetooth Serial Port
Concurrent Shader Tools
Help Spatial Audio
Image Formats SQL
Multimedia State Machine
NFC SVG
OPC UA TextToSpeech
OpenGL UI Tools
PDF Wayland Client
Positioning WebChannel
Print Support WebEngine
Quick Widgets WebView
Remote Objects XML
SCXML
Charts
CoAP
Data Visualization 3D
Http Server
Lottie Animation
MQTT
Network Authorization
Quick 3D
Quick 3D Physics
Quick Timeline
Virtual Keyboard
Wayland Compositor
Essential Modules Free Add-On Modules Paid Add-On Modules
Many Good Questions – Many Good Answers
8
Can I keep my code closed?
How many products use Qt
LGPL-3.0
Do I have to satisfy the anti-
tivoisation clause?
What are the implications on
the system architecture?
Can I void warranty for
system with modified Qt?
Can I link Qt statically? Can I charge for installing
modified Qt?
Yes: object files
The vast majority!
B2C: yes – B2B: no Yes, within reason
Yes!
Yes!
Decide early & consciously!
Compatibility of FOSS-Licenses
GPL-2.0 GPL-3.0 LGPL-2.1 LGPL-3.0 Apache-2.0 MIT, BSD-3 MPL -2.0 EPL
GPLv2 GPL-2.0 XXX GPLv2 XXX XXX GPL-2.0 GPL-2.0 XXX
GPLv3 XXX GPL-3.0 GPL-3.0 GPL-3.0 GPL-3.0 GPL-3.0 GPL-3.0 XXX
LGPLv2.1 GPL-2.0 GPL-3.0 LGPL-2.1 LGPL-3.0 XXX LGPL-2.1 LGPL-2.1 XXX
LGPLv3 XXX GPL-3.0 LGPL-3.0 LGPL-3.0 LGPL-3.0 LGPL-3.0 LGPL-3.0 XXX
Apache 2.0 XXX GPL-3.0 XXX LGPL-3.0 Apache-2.0 Apache 2.0 XXX XXX
MIT, BSD-3 GPL-2.0 GPL-3.0 LGPL-2.1 LGPL-3.0 Apache-2.0 MIT, BSD-3 MPL-2.0 EPL
MPL 2.0 GPL-2.0 GPL-3.0 LGPL-2.1 LGPL-3.0 XXX MPL-2.0 MPL-2.0 XXX
EPL XXX XXX XXX XXX XXX EPL XXX EPL
9
Do Not Mix Qt LGPL and Qt for Device Creation
• If company C builds proprietary
software SW with Qt4DC license,
• all developers working on SW must
have Qt4DC licenses (incl.
contractors)
• developers must not use Qt tools
from Qt4DC to build SW using Qt
LGPL
• Qt4DC SW must not link Qt LGPL
libraries
• Qt4DC SW must not even call Qt LGPL
SW
• If C builds SW with Qt LGPL,
• flip Qt4DC and Qt LGPL above
• Recommendation:
• Either build product completely with
Qt4DC or completely with Qt LGPL.
• Do not mix Qt4DC and Qt LGPL during
development and deployment.
• Changing from Qt4DC to Qt LGPL
or from Qt LGPL to Qt4DC
• Possible with every release
• Qt4DC license period cannot be
cancelled early
• Follow recommendation above
10
🙏 Thank You 🙏
Mail: burkhard.stubert@embeddeduse.com
Web: https://embeddeduse.com
Newsletter : https://burkhardstubert.substack.com

More Related Content

Similar to Using Qt under LGPL-3.0

Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...GetInData
 
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...GetInData
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOpsBrice Fernandes
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOpsBrice Fernandes
 
Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Joel W. King
 
Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Joel W. King
 
How to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin EcosystemHow to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin EcosystemInfluxData
 
How to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin EcosystemHow to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin EcosystemInfluxData
 
KubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfKubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfWeaveworks
 
KubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfKubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfWeaveworks
 
MQTT and SensorThings API MQTT Extension
MQTT and SensorThings API MQTT ExtensionMQTT and SensorThings API MQTT Extension
MQTT and SensorThings API MQTT ExtensionSensorUp
 
MQTT and SensorThings API MQTT Extension
MQTT and SensorThings API MQTT ExtensionMQTT and SensorThings API MQTT Extension
MQTT and SensorThings API MQTT ExtensionSensorUp
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTStéphanie Roger
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTStéphanie Roger
 
Delivering Quality at Speed with GitOps
Delivering Quality at Speed with GitOpsDelivering Quality at Speed with GitOps
Delivering Quality at Speed with GitOpsWeaveworks
 
Delivering Quality at Speed with GitOps
Delivering Quality at Speed with GitOpsDelivering Quality at Speed with GitOps
Delivering Quality at Speed with GitOpsWeaveworks
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDSunnyvale
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDSunnyvale
 

Similar to Using Qt under LGPL-3.0 (20)

Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
 
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
Functioning incessantly of Data Science Platform with Kubeflow - Albert Lewan...
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOps
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOps
 
Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)
 
Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)
 
How to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin EcosystemHow to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin Ecosystem
 
How to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin EcosystemHow to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin Ecosystem
 
KubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfKubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdf
 
KubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdfKubeCon EU 2022 Istio, Flux & Flagger.pdf
KubeCon EU 2022 Istio, Flux & Flagger.pdf
 
MQTT and SensorThings API MQTT Extension
MQTT and SensorThings API MQTT ExtensionMQTT and SensorThings API MQTT Extension
MQTT and SensorThings API MQTT Extension
 
MQTT and SensorThings API MQTT Extension
MQTT and SensorThings API MQTT ExtensionMQTT and SensorThings API MQTT Extension
MQTT and SensorThings API MQTT Extension
 
Meet Qt
Meet QtMeet Qt
Meet Qt
 
Meet Qt
Meet QtMeet Qt
Meet Qt
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
 
Delivering Quality at Speed with GitOps
Delivering Quality at Speed with GitOpsDelivering Quality at Speed with GitOps
Delivering Quality at Speed with GitOps
 
Delivering Quality at Speed with GitOps
Delivering Quality at Speed with GitOpsDelivering Quality at Speed with GitOps
Delivering Quality at Speed with GitOps
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
 

Recently uploaded

Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfSrushith Repakula
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabbereGrabber
 
Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024
Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024
Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024Primacy Infotech
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfWSO2
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfMehmet Akar
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesNeo4j
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfkalichargn70th171
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdftimtebeek1
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024SimonedeGijt
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfVictor Lopez
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)Roberto Bettazzoni
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems ApproachNeo4j
 
Malaysia E-Invoice digital signature docpptx
Malaysia E-Invoice digital signature docpptxMalaysia E-Invoice digital signature docpptx
Malaysia E-Invoice digital signature docpptxMok TH
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Soroosh Khodami
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanNeo4j
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024MulesoftMunichMeetup
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionWave PLM
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...naitiksharma1124
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletAndrea Goulet
 

Recently uploaded (20)

Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
AI Hackathon.pptx
AI                        Hackathon.pptxAI                        Hackathon.pptx
AI Hackathon.pptx
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024
Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024
Odoo vs Shopify: Why Odoo is Best for Ecommerce Website Builder in 2024
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdf
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdf
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
 
Malaysia E-Invoice digital signature docpptx
Malaysia E-Invoice digital signature docpptxMalaysia E-Invoice digital signature docpptx
Malaysia E-Invoice digital signature docpptx
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 

Using Qt under LGPL-3.0

  • 1. Using Qt under LGPL-3.0 Burkhard Stubert The Specialist in Smart User Interfaces for Industrial Machinery Qt Greece, 2023-11-24, Athens §§§
  • 2. Many Good Questions – No Good Answers 2 Can I keep my code closed? How many products use Qt LGPL-3.0 Do I have to satisfy the anti- tivoisation clause? What are the implications on the system architecture? Can I void warranty for system with modified Qt? Can I link Qt statically? Can I charge for installing modified Qt?
  • 3. Convey Combined Work: Product + Physical Medium 3 Source code of Qt libs Text of LGPLv3 and GPLv3 Copyright notices Modifications Installation information (B2C only) + Qt libraries: Object code Application: Object code GPLv3 (6a) LGPLv3 (4) Display in GUI Can use web server instead Treat every package as if under (L)GPLv3
  • 4. Convey Combined Work: Product + Written Offer 4 Source code of Qt libs Text of LGPLv3 and GPLv3 Copyright notices Modifications Installation information (B2C) Qt libraries: Object code Application: Object code GPLv3 (6b) LGPLv3 (4) Display in GUI + Written offer: Valid for max(3y, support) Offer unknown to licenses other than LGPL
  • 5. When to Provide Installation Information • User Product = • [tangible] “consumer product” [...] normally used for personal, family, or household purposes, or • anything designed or sold for incorporation into a dwelling • In doubt: it’s a User Product! • Examples: phones, TVs, STBs, home appliances, cars, medical devices, security cameras • Commercial Product: • Examples: tractors, harvesters, trucks, professional appliances, medical devices, heavy-duty cameras, vending machines 5 User Product? No Yes Installation Information Installation Information B2C B2B • Installation Information = • Anything required to build a modified Qt version, install and execute it on the User Product (e.g., Yocto build scripts)
  • 6. LGPL-3.0 + Proprietary 6 Lib/App Proprietary .h/.c LGPL-3.0 Lib/App Proprietary Combined Proprietary lib.a LGPL-3.0 Lib/App Proprietary Combined Proprietary lib.so LGPL-3.0 (4d1) (4d0) Convey *.o No combined work Used for Qt apps on iOS Lib/App Any executable LGPL-3.0 Lib/App Proprietary Calls IPC Combined LGPLv3
  • 7. Essential, Free Add-On, Paid Add-On Modules 7 Core D-Bus Gui Network Qml Quick Quick Controls Quick Dialogs Quick Layouts Quick Test Test Widgets 3D Serial Bus Bluetooth Serial Port Concurrent Shader Tools Help Spatial Audio Image Formats SQL Multimedia State Machine NFC SVG OPC UA TextToSpeech OpenGL UI Tools PDF Wayland Client Positioning WebChannel Print Support WebEngine Quick Widgets WebView Remote Objects XML SCXML Charts CoAP Data Visualization 3D Http Server Lottie Animation MQTT Network Authorization Quick 3D Quick 3D Physics Quick Timeline Virtual Keyboard Wayland Compositor Essential Modules Free Add-On Modules Paid Add-On Modules
  • 8. Many Good Questions – Many Good Answers 8 Can I keep my code closed? How many products use Qt LGPL-3.0 Do I have to satisfy the anti- tivoisation clause? What are the implications on the system architecture? Can I void warranty for system with modified Qt? Can I link Qt statically? Can I charge for installing modified Qt? Yes: object files The vast majority! B2C: yes – B2B: no Yes, within reason Yes! Yes! Decide early & consciously!
  • 9. Compatibility of FOSS-Licenses GPL-2.0 GPL-3.0 LGPL-2.1 LGPL-3.0 Apache-2.0 MIT, BSD-3 MPL -2.0 EPL GPLv2 GPL-2.0 XXX GPLv2 XXX XXX GPL-2.0 GPL-2.0 XXX GPLv3 XXX GPL-3.0 GPL-3.0 GPL-3.0 GPL-3.0 GPL-3.0 GPL-3.0 XXX LGPLv2.1 GPL-2.0 GPL-3.0 LGPL-2.1 LGPL-3.0 XXX LGPL-2.1 LGPL-2.1 XXX LGPLv3 XXX GPL-3.0 LGPL-3.0 LGPL-3.0 LGPL-3.0 LGPL-3.0 LGPL-3.0 XXX Apache 2.0 XXX GPL-3.0 XXX LGPL-3.0 Apache-2.0 Apache 2.0 XXX XXX MIT, BSD-3 GPL-2.0 GPL-3.0 LGPL-2.1 LGPL-3.0 Apache-2.0 MIT, BSD-3 MPL-2.0 EPL MPL 2.0 GPL-2.0 GPL-3.0 LGPL-2.1 LGPL-3.0 XXX MPL-2.0 MPL-2.0 XXX EPL XXX XXX XXX XXX XXX EPL XXX EPL 9
  • 10. Do Not Mix Qt LGPL and Qt for Device Creation • If company C builds proprietary software SW with Qt4DC license, • all developers working on SW must have Qt4DC licenses (incl. contractors) • developers must not use Qt tools from Qt4DC to build SW using Qt LGPL • Qt4DC SW must not link Qt LGPL libraries • Qt4DC SW must not even call Qt LGPL SW • If C builds SW with Qt LGPL, • flip Qt4DC and Qt LGPL above • Recommendation: • Either build product completely with Qt4DC or completely with Qt LGPL. • Do not mix Qt4DC and Qt LGPL during development and deployment. • Changing from Qt4DC to Qt LGPL or from Qt LGPL to Qt4DC • Possible with every release • Qt4DC license period cannot be cancelled early • Follow recommendation above 10
  • 11. 🙏 Thank You 🙏 Mail: burkhard.stubert@embeddeduse.com Web: https://embeddeduse.com Newsletter : https://burkhardstubert.substack.com

Editor's Notes

  1. “may” refers to ”under your terms”, not to “convey”.
  2. (GPL 6a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
  3. (GPL 6b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
  4. “may” refers to ”under your terms”, not to “convey”.