SlideShare una empresa de Scribd logo
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

Más contenido relacionado

Similar a 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 a 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
 

Último

A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationHelp Desk Migration
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationHelp Desk Migration
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEJelle | Nordend
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationWave PLM
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownloadvrstrong314
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdfkalichargn70th171
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandIES VE
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAlluxio, Inc.
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareinfo611746
 
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
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Gáspár Nagy
 
Benefits of Employee Monitoring Software
Benefits of  Employee Monitoring SoftwareBenefits of  Employee Monitoring Software
Benefits of Employee Monitoring SoftwareMera Monitor
 
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
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion Clinic
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowPeter Caitens
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with StrimziStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzisteffenkarlsson2
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Krakówbim.edu.pl
 

Último (20)

A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data Migration
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
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
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
Benefits of Employee Monitoring Software
Benefits of  Employee Monitoring SoftwareBenefits of  Employee Monitoring Software
Benefits of Employee Monitoring Software
 
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
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with StrimziStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 

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

Notas del editor

  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”.