Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
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)
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!
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
“may” refers to ”under your terms”, not to “convey”.
(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.
(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.
“may” refers to ”under your terms”, not to “convey”.