SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
Copyright 2019, Burkhard Stubert
Using Qt under LGPLv3
Burkhard Stubert – Solopreneur & Chief Architect, Embedded Use
I help teams succeed with embedded systems
Copyright 2019, Burkhard Stubert
When Downloading Open-Source Qt from qt.io
Screenshot: 6 March 2018
2
Nonsense!
Copyright 2019, Burkhard Stubert
Outline – Using Qt under LGPLv3
• The obligations of Qt LGPLv3: made understandable
• When to use Qt LGPLv3 and when Qt Commercial
• How Yocto and Fossology help with FOSS compliance
3
Copyright 2019, Burkhard Stubert
LGPLv3 Obligations: “4. Combined Works”
• You may convey Combined Work under your terms, if you ...
• give prominent notice that Application uses Qt libraries under LGPLv3 (4a), and
• provide copies of LGPLv3 and GPLv3 licenses (4b), and
• display copyright notices of Qt libraries and license texts of LGPLv3 and GPLv3 in
Application’s GUI (4c), and
• use a shared library mechanism for linking Application with modified but interface-compatible
versions of Qt libraries (4d1), and
• provide installation information (according to section 6 of GPLv3) how to build a modified Qt
version, how to install Qt on device, and how to run Application with Qt on device (4e).
For B2C: yes. For B2B: no.
4
Copyright 2019, Burkhard Stubert
The Combined Work: Application + Qt Libraries
5
Application(s)
closed source, proprietary
Qt Libraries
LGPLv3, GPLv3, Commercial
Auxiliary Libraries
GPL, LGPL, BSD, MIT, Apache, many others
System Libraries
GPL but exempted
Linux Kernel
GPLv2
For both Qt Commercial and Qt LGPLv3:
Compliance check needed for all modules
(500-1000 modules)
For both Qt Commercial and Qt LGPLv3:
Compliance check needed (< 20 modules)
Effort for checks: Qt LGPLv3 ≈ Qt Commercial
Copyright 2019, Burkhard Stubert
Convey Combined Work under Your Terms
6
Application
proprietary
Qt Library
LGPLv3
Combined Work
proprietary
Application
proprietary
Qt Library
Commercial
Combined Work
proprietary
Application
proprietary
Qt Library
GPLv3
Combined Work
GPLv3 violation
+ LGPLv3 obligations + Qt Commercial obligations
(e.g., royalties, per-developer fees)
LGPLv3 = GPLv3 + extra permissions
Copyright 2019, Burkhard Stubert
Convey Combined Work:
Product + Physical Medium
7
Source code of Qt libs
Text of LGPLv3 and GPLv3
Copyright notices
Modifications
Installation information
+
Qt libraries:
Object code
Application:
Object code
GPLv3 (6a)
LGPLv3 (4)
Display in GUI
Copyright 2019, Burkhard Stubert
Convey Combined Work:
Product + Written Offer
8
Source code of Qt libs
Text of LGPLv3 and GPLv3
Copyright notices
Modifications
Installation information
Qt libraries:
Object code
Application:
Object code
GPLv3 (6b)
LGPLv3 (4)
Display in GUI
+ Written offer:
Valid for max(3y, support)
Copyright 2019, Burkhard Stubert
Displaying License and Copyright in GUI (1)
9
Copyright 2019, Burkhard Stubert
Displaying License and Copyright in GUI (2)
10
Copyright 2019, Burkhard Stubert
Displaying License and Copyright in GUI (3)
11
Copyright 2019, Burkhard Stubert
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 used
at home, security cameras
• Commercial Product:
• Examples: tractors, harvesters, trucks,
professional appliances, medical
devices in hospitals
12
User
Product?
NoYes
Installation
Information
Installation
Information
B2C B2B
• Installation Information =
• Anything required to build a modified
Qt version, install and execute it on the
User Product
Copyright 2019, Burkhard Stubert
Example Installation Information (1)
13
(1) User installs SDK (built by bitbake meta-toolchain-qt5)
/path/to/<distro>-glibc-x86_64-meta-toolchain-qt5-armv7at2hf-neon-toolchain-2.4.2.sh
(2) User unpacks all Qt source archives into /path/to/qt5
(3) User performs shadow build in /path/to/build-qt5
../qt5/configure -prefix /usr/local/qt -extprefix /path/to/install-qt5 
-device linux-imx6-g++ 
-device-option CROSS_COMPILE=/path/to/sdk/sysroots/x86_64-fslcsdk-linux/usr/bin/
arm-fslc-linux-gnueabi/arm-fslc-linux-gnueabi- 
-sysroot /path/to/sdk/sysroots/armv7at2hf-neon-fslc-linux-gnueabi 
-opensource –confirm-license <more options>
make –j32
make install
Copyright 2019, Burkhard Stubert
Example Installation Information (2)
• (4) User installs Qt shared libraries on product
• Copy Qt shared libs from USB drive to product
• Download Qt shared libs from server to product
• Copy Qt shared libs from connected laptop to product (via CAN or Ethernet)
• ...
• Notes on (4):
• Shared libs may be signed
• Warning OK that user loses warranty, support and even vehicle operation license
• Qt libs can undergo AppStore-like approval process
• Functionality must not be restricted – unless modified Qt behaves maliciously
14
Copyright 2019, Burkhard Stubert
Outline – Using Qt under LGPLv3
• The obligations of Qt LGPLv3: made understandable
• When to use Qt LGPLv3 and when Qt Commercial
• How Yocto and Fossology help with FOSS compliance
15
Copyright 2019, Burkhard Stubert
Costs of Qt Commercial vs. Qt LGPLv3
Year Qt Commercial Costs €
1 3 developers: 5700 € each
1000 units: 7.50 € each
24,600
2 3 developers: 1900 € each
1000 units: 7.50 € each
13,200
3 3 developers: 1900 € each
1000 units: 7.50 € each
13,200
4 3 developers: 1900 € each
1000 units: 7.50 € each
13,200
5 3 developers: 1900 € each
1000 units: 7.50 € each
13,200
License check of non-Qt packages 20,000
Sum 97,400
16
Year Qt LGPLv3 Costs €
1 Initial effort 12,000
2 Update effort 3,000
3 Update effort 3,000
4 Update effort 3,000
5 Update effort 3,000
Sum 24,000
~80% effort needed for non-Qt packages: 20,000
Needed in Qt Commercial as well!
LGPLv3 cost independent of number of developers
and units!
Copyright 2019, Burkhard Stubert
What’s the Additional Value of Qt Commercial?
• Commercial-only features
• No user update of Qt libraries required
• Qt for Device Creation (Boot2Qt)
• Qt Lite (esp. for Cortex-M)
• Qt Virtual Keyboard (also: GPLv3)
• Qt 3D Designer: GPLv3 runtime
• Qt Support Helpdesk
• Qt for Automotive (extra fee)
• Qt for Automation: MQTT, OPC UA
(extra fee)
• Qt Safe Renderer (extra fee)
• Qt Application Manager (extra fee)
17
• Also available for LGPLv3
• Static linking (LGPLv3/4d0)
• Qt Quick compiler (since Qt 5.12)
• Qt Virtual Keyboard (if run in separate
process)
Copyright 2019, Burkhard Stubert
Outline – Using Qt under LGPLv3
• The obligations of Qt LGPLv3: made understandable
• When to use Qt LGPLv3 and when Qt Commercial
• How Yocto and Fossology help with FOSS compliance
18
Copyright 2019, Burkhard Stubert
Some Wishful Thinking ...
19
Magic ScriptYocto recipes
/path/to/qtmultimedia
qtmultimedia-5.11.3+<rev>-patched.tar.gz
LICENSE.LGPL3
LICENSE.GPL3
USED-LICENSE -> LICENSE.LGPL3
COPYRIGHT
MODIFICATIONS
/path/to/qtserialbus
...
For every package:
Copyright 2019, Burkhard Stubert
The Harsh Reality ...
20
bitbake
Yocto recipes
tmp/deploy/sources/arm-poky-linux-gnueabi/
qtmultimedia-5.11.3+<rev>/
qtmultimedia-5.11.3+<rev>-patched.tar.gz
tmp/deploy/licenses/qtmultimedia
generic_*
LICENSE.FDL LICENSE.GPL2 LICENSE.GPL3
LICENCE.GPL3-EXCEPT LICENSE.LGPL3
recipeinfo
Fossology
upload export
Identify licenses and
copyright notices
qtmultimedia.spdx
convey.py
/path/to/qtmultimedia
qtmultimedia-5.11.3+<rev>-patched.tar.gz
LICENSE.LGPL3 LICENSE.GPL3
USED-LICENSE -> LICENSE.LGPL3
COPYRIGHT MODIFICATIONS
???
Copyright 2019, Burkhard Stubert
Creating Source Archives with Yocto
21
Create archives for patched sources
of all FOSS packages:
# In local.conf or distro configuration
INHERIT += "archiver"
COPYLEFT_TARGET_TYPES = "target"
COPYLEFT_LICENSE_EXCLUDE = "CLOSED Proprietary"
COPYLEFT_LICENSE_INCLUDE = ""
Don’t create source archive
for Application:
# In application recipe
LICENSE = "CLOSED"
Note: By default only GPL*, LGPL* and AGPL* included
Rebuild your Linux image with bitbake
Copyright 2019, Burkhard Stubert
Output of Yocto Build
22
tmp/deploy/licenses/qtmultimedia
generic_BSD generic_GFDL-1.3 generic_GPL-2.0
generic_GPL-3.0 generic_LGPL-3.0
generic_The-Qt-Company-Commercial
generic_The-Qt-Company-GPL-Exception-1.0
LICENSE.FDL LICENSE.GPL2 LICENSE.GPL3
LICENCE.GPL3-EXCEPT LICENSE.LGPL3
recipeinfo
tmp/deploy/sources/arm-poky-linux-gnueabi/
qtmultimedia-5.11.3+<rev>/
qtmultimedia-5.11.3+<rev>-patched.tar.gz
LICENSE: GFDL-1.3 & BSD & ( GPL-3.0 &
The-Qt-Company-GPL-Exception-1.0 |
The-Qt-Company-Commercial ) & ( GPL-2.0+ |
LGPL-3.0 | The-Qt-Company-Commercial )
PR: r0
PV: 5.11.3+<rev>
???
Use Fossology to clarify license situation!
Copyright 2019, Burkhard Stubert
License Analysis with Fossology:
Upload > From File
23
Nomos Keywords:
Find potential license texts
Nomos Regular Expressions:
Finds and identifies most relevant license texts
and their variants
Monk Full Text Matches:
Finds and identifies known license texts
Copyright 2019, Burkhard Stubert
License Analysis with Fossology:
Browse > qtmultimedia-<rev>-patched.tar.gz
24
Goal:
Green clearing status for all files
Clear irrelevant folders:
Mark all folders except src as irrelevant,
because they are not used in product
Copyright 2019, Burkhard Stubert
License Analysis with Fossology:
Bulk Recognition of Source Files (1)
25
(1) Select typical
source file
(2) Use bulk recognition
for identifying all
similar files
Copyright 2019, Burkhard Stubert
License Analysis with Fossology:
Bulk Recognition of Source Files (2)
26
(1) Add LGPL-3.0 as identified license
(2) Remove all other licenses
(3) From selected file, copy search text for identification
(4) Perform actions (1) and (2) to all files matching (3)
Copyright 2019, Burkhard Stubert
License Analysis with Fossology:
Bulk Recognition of Source Files (3)
27
Copyright 2019, Burkhard Stubert
License Analysis with Fossology:
Individual Check for Remaining Red Files
• src/multimedia/doc
• Mark folder as irrelevant
• src/mulimediawidgets/doc
• Mark folder as irrelevant
• src/plugins/winrt
• qwinrtcameraflashcontrol.cpp/h: license
text slightly different to one used in bulk
scan
• Identify license for each file individually
• In root directory:
• Mark LICENSE.(FDL | GPL2 | GPL3 |
GPL3-EXCEPT) as irrelevant
• Set LICENSE.LGPL3 as main license
28
All files and folders green!
License check done!
Copyright 2019, Burkhard Stubert
Copyright Analysis with Fossology:
Ignore Irrelevant Folders (1)
29
Irrelevant folders
Copyright 2019, Burkhard Stubert
Copyright Analysis with Fossology:
Ignore Irrelevant Folders (2)
30
(1) Select irrelevant occurrences
(2) Delete selected occurrences
Folder: config.tests
Copyright 2019, Burkhard Stubert
Copyright Analysis with Fossology:
Ignore Irrelevant Folders (3)
31
Copyright 2019, Burkhard Stubert
Copyright Analysis with Fossology:
Result
32
Down from 102 entries!
Copyright 2019, Burkhard Stubert
Export Results of License and Copyright Analysis
33
From combobox, select
Generate SPDX report in tag:value format
Save report qtmultimedia.spdx in
tmp/deploy/licenses/qtmultimedia/
Copyright 2019, Burkhard Stubert
License and Copyright Report:
qtmultimedia.spdx – Package Information
34
PackageName: qtmultimedia-5.11.3+gitAUTOINC+6966a09c9a-r0-patched.tar.gz
PackageFileName: qtmultimedia-5.11.3+gitAUTOINC+6966a09c9a-r0-patched.tar.gz
SPDXID: SPDXRef-upload10
PackageDownloadLocation: NOASSERTION
PackageVerificationCode: 1ca0b32cc48660f2e14d0711484bd4299ed08cde
PackageChecksum: SHA1: 68b79d7255dd1e50296c154bb935deb16fadd561
PackageChecksum: MD5: 251f4ce5a3f7383a79cacdefe4c56e96
PackageLicenseConcluded: LGPL-3.0
PackageLicenseDeclared: LGPL-3.0
PackageLicenseComments: <text> licenseInfoInFile determined by Scanners:
- nomos ("3.4.0-78-g625bdf3".625bdf)
- monk ("3.4.0-78-g625bdf3".625bdf) </text>
PackageLicenseInfoFromFiles: NOASSERTION
PackageCopyrightText: NOASSERTION
Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-upload10
Copyright 2019, Burkhard Stubert
License and Copyright Report:
qtmultimedia.spdx – File Information
35
##File
FileName:
git/src/multimedia/radio/qradiotuner.cpp
SPDXID: SPDXRef-item19743
FileChecksum: SHA1: ca858ab8655...
FileChecksum: MD5: 51862849aa23...
LicenseConcluded: LGPL-3.0
LicenseInfoInFile: LGPL-3.0
LicenseInfoInFile: LicenseRef-Dual-license
LicenseInfoInFile: GPL-2.0+
LicenseInfoInFile: LicenseRef-Qt.Commercial
FileCopyrightText: <text> Copyright (C) 2016 The
Qt Company Ltd. Contact:
https://www.qt.io/licensing/ </text>
##File
FileName: git/examples/multimedia/declarative-
camera/ZoomControl.qml
SPDXID: SPDXRef-item18287
FileChecksum: SHA1: 66758b5dddd...
FileChecksum: MD5: 6145e7cb5e10...
LicenseConcluded: NOASSERTION
LicenseInfoInFile: BSD-3-Clause
LicenseInfoInFile: LicenseRef-Dual-license
LicenseInfoInFile: LicenseRef-Qt.Commercial
FileCopyrightText: NOASSERTION
Copyright 2019, Burkhard Stubert
Resources
• License texts
• LGPLv3:
https://www.gnu.org/licenses/lgpl-3.0-
standalone.html
• GPLv3:
https://www.gnu.org/licenses/gpl-3.0-
standalone.html
• Lawyers
• Dr. Miriam Ballhausen, Senior
Associate, Bird & Bird LLP
• Dr. Catharina Maracke, Associate
Professor of IT and Data Law, Kühne
Logistics University
• Dr. Till Jaeger, Attorney at Law, JBB
• Books
• Heather Meeker: ”Open Source For
Business – A Practical Guide to Open
Source Software Licensing”, 2nd edition
2017
• Till Jaeger, Axel Metzger: ”Open Source
Software – Rechtliche
Rahmenbedingungen der freien
Software”, 4. Auflage 2016, C. H. Beck
36
This presentation is licensed under a Creative Commons
Attribution-ShareAlike 4.0 International License.
Copyright 2019, Burkhard Stubert
Thank you J
Mail: burkhard.stubert@embeddeduse.com
Web: http://www.embeddeduse.com

Weitere ähnliche Inhalte

Was ist angesagt?

Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucket
Medhat Dawoud
 

Was ist angesagt? (20)

Top Open Source Licenses Explained
Top Open Source Licenses ExplainedTop Open Source Licenses Explained
Top Open Source Licenses Explained
 
A prentation on github
A prentation on githubA prentation on github
A prentation on github
 
Padrão Adapter
Padrão AdapterPadrão Adapter
Padrão Adapter
 
プロフィール文書って何?
プロフィール文書って何?プロフィール文書って何?
プロフィール文書って何?
 
GitHub Basics - Derek Bable
GitHub Basics - Derek BableGitHub Basics - Derek Bable
GitHub Basics - Derek Bable
 
Using Git and BitBucket
Using Git and BitBucketUsing Git and BitBucket
Using Git and BitBucket
 
Docker infiniband
Docker infinibandDocker infiniband
Docker infiniband
 
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?
 
GNU GPL, LGPL, Apache licence Types and Differences
GNU GPL, LGPL, Apache licence Types and DifferencesGNU GPL, LGPL, Apache licence Types and Differences
GNU GPL, LGPL, Apache licence Types and Differences
 
How to Send IDOC to SAP using MuleSoft
How to Send IDOC to SAP using MuleSoftHow to Send IDOC to SAP using MuleSoft
How to Send IDOC to SAP using MuleSoft
 
Hexagonal architecture
Hexagonal architectureHexagonal architecture
Hexagonal architecture
 
Introduction To Confluence
Introduction To ConfluenceIntroduction To Confluence
Introduction To Confluence
 
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
ネットワークスイッチ構築実践 1.VLAN・LinkAggregation編
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)
 
Introduction to GitHub
Introduction to GitHubIntroduction to GitHub
Introduction to GitHub
 
Github
GithubGithub
Github
 
Git basics
Git basicsGit basics
Git basics
 
Running High-Speed Serverless with nuclio
Running High-Speed Serverless with nuclioRunning High-Speed Serverless with nuclio
Running High-Speed Serverless with nuclio
 
GitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLabGitFlow, SourceTree and GitLab
GitFlow, SourceTree and GitLab
 
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
 

Ähnlich wie Using Qt under LGPLv3

gitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdfgitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdf
saraichiba2
 
Final Design Report_REVFINAL
Final Design Report_REVFINALFinal Design Report_REVFINAL
Final Design Report_REVFINAL
Jacob Ramey
 

Ähnlich wie Using Qt under LGPLv3 (20)

Using Qt under LGPL-3.0
Using Qt under LGPL-3.0Using Qt under LGPL-3.0
Using Qt under LGPL-3.0
 
Using Qt under LGPL-3.0
Using Qt under LGPL-3.0Using Qt under LGPL-3.0
Using Qt under LGPL-3.0
 
Readme
ReadmeReadme
Readme
 
Gerrit Code Review v3.2 and v3.3
Gerrit Code Review v3.2 and v3.3Gerrit Code Review v3.2 and v3.3
Gerrit Code Review v3.2 and v3.3
 
Embedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationEmbedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integration
 
gitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdfgitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdf
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes way
 
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)
 
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
 
Flux is incubating + the road ahead
Flux is incubating + the road aheadFlux is incubating + the road ahead
Flux is incubating + the road ahead
 
Tools for FPGA Development
Tools for FPGA DevelopmentTools for FPGA Development
Tools for FPGA Development
 
How to keep Eclipse on the bleeding edge in the Linux world
How to keep Eclipse on the bleeding edge in the Linux worldHow to keep Eclipse on the bleeding edge in the Linux world
How to keep Eclipse on the bleeding edge in the Linux world
 
Package a PyApp as a Flatpak Package: An HTTP Server for Example @ PyCon APAC...
Package a PyApp as a Flatpak Package: An HTTP Server for Example @ PyCon APAC...Package a PyApp as a Flatpak Package: An HTTP Server for Example @ PyCon APAC...
Package a PyApp as a Flatpak Package: An HTTP Server for Example @ PyCon APAC...
 
DockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐるDockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐる
 
Building a Remote Control Robot with Automotive Grade Linux
Building a Remote Control Robot with Automotive Grade LinuxBuilding a Remote Control Robot with Automotive Grade Linux
Building a Remote Control Robot with Automotive Grade Linux
 
容器與IoT端點應用
容器與IoT端點應用容器與IoT端點應用
容器與IoT端點應用
 
Final Design Report_REVFINAL
Final Design Report_REVFINALFinal Design Report_REVFINAL
Final Design Report_REVFINAL
 
What should you know about Net Core?
What should you know about Net Core?What should you know about Net Core?
What should you know about Net Core?
 
Docker opens the Doors for IoT
Docker opens the Doors for IoTDocker opens the Doors for IoT
Docker opens the Doors for IoT
 
Shifter singularity - june 7, 2018 - bw symposium
Shifter  singularity - june 7, 2018 - bw symposiumShifter  singularity - june 7, 2018 - bw symposium
Shifter singularity - june 7, 2018 - bw symposium
 

Mehr von Burkhard Stubert

Landmaschinen-HMIs für 2016 (in German)
Landmaschinen-HMIs für 2016 (in German)Landmaschinen-HMIs für 2016 (in German)
Landmaschinen-HMIs für 2016 (in German)
Burkhard Stubert
 
Developing Driver Terminal for Forage Harvester with QML and Qt
Developing Driver Terminal for Forage Harvester with QML and QtDeveloping Driver Terminal for Forage Harvester with QML and Qt
Developing Driver Terminal for Forage Harvester with QML and Qt
Burkhard Stubert
 

Mehr von Burkhard Stubert (7)

Webinar: Building Embedded Applications from QtCreator with Docker
Webinar: Building Embedded Applications from QtCreator with DockerWebinar: Building Embedded Applications from QtCreator with Docker
Webinar: Building Embedded Applications from QtCreator with Docker
 
A Deep Dive into QtCanBus
A Deep Dive into QtCanBusA Deep Dive into QtCanBus
A Deep Dive into QtCanBus
 
Qt World Summit 2017: Qt vs. Web - Total Cost of Ownership
Qt World Summit 2017: Qt vs. Web - Total Cost of OwnershipQt World Summit 2017: Qt vs. Web - Total Cost of Ownership
Qt World Summit 2017: Qt vs. Web - Total Cost of Ownership
 
Burkhard Stubert: Project Portfolio and Expertise
Burkhard Stubert: Project Portfolio and ExpertiseBurkhard Stubert: Project Portfolio and Expertise
Burkhard Stubert: Project Portfolio and Expertise
 
Landmaschinen-HMIs für 2016 (in German)
Landmaschinen-HMIs für 2016 (in German)Landmaschinen-HMIs für 2016 (in German)
Landmaschinen-HMIs für 2016 (in German)
 
Developing Driver Terminal for Forage Harvester with QML and Qt
Developing Driver Terminal for Forage Harvester with QML and QtDeveloping Driver Terminal for Forage Harvester with QML and Qt
Developing Driver Terminal for Forage Harvester with QML and Qt
 
Practical QML - Key Navigation, Dynamic Language and Theme Change
Practical QML - Key Navigation, Dynamic Language and Theme ChangePractical QML - Key Navigation, Dynamic Language and Theme Change
Practical QML - Key Navigation, Dynamic Language and Theme Change
 

Kürzlich hochgeladen

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 

Kürzlich hochgeladen (20)

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 

Using Qt under LGPLv3

  • 1. Copyright 2019, Burkhard Stubert Using Qt under LGPLv3 Burkhard Stubert – Solopreneur & Chief Architect, Embedded Use I help teams succeed with embedded systems
  • 2. Copyright 2019, Burkhard Stubert When Downloading Open-Source Qt from qt.io Screenshot: 6 March 2018 2 Nonsense!
  • 3. Copyright 2019, Burkhard Stubert Outline – Using Qt under LGPLv3 • The obligations of Qt LGPLv3: made understandable • When to use Qt LGPLv3 and when Qt Commercial • How Yocto and Fossology help with FOSS compliance 3
  • 4. Copyright 2019, Burkhard Stubert LGPLv3 Obligations: “4. Combined Works” • You may convey Combined Work under your terms, if you ... • give prominent notice that Application uses Qt libraries under LGPLv3 (4a), and • provide copies of LGPLv3 and GPLv3 licenses (4b), and • display copyright notices of Qt libraries and license texts of LGPLv3 and GPLv3 in Application’s GUI (4c), and • use a shared library mechanism for linking Application with modified but interface-compatible versions of Qt libraries (4d1), and • provide installation information (according to section 6 of GPLv3) how to build a modified Qt version, how to install Qt on device, and how to run Application with Qt on device (4e). For B2C: yes. For B2B: no. 4
  • 5. Copyright 2019, Burkhard Stubert The Combined Work: Application + Qt Libraries 5 Application(s) closed source, proprietary Qt Libraries LGPLv3, GPLv3, Commercial Auxiliary Libraries GPL, LGPL, BSD, MIT, Apache, many others System Libraries GPL but exempted Linux Kernel GPLv2 For both Qt Commercial and Qt LGPLv3: Compliance check needed for all modules (500-1000 modules) For both Qt Commercial and Qt LGPLv3: Compliance check needed (< 20 modules) Effort for checks: Qt LGPLv3 ≈ Qt Commercial
  • 6. Copyright 2019, Burkhard Stubert Convey Combined Work under Your Terms 6 Application proprietary Qt Library LGPLv3 Combined Work proprietary Application proprietary Qt Library Commercial Combined Work proprietary Application proprietary Qt Library GPLv3 Combined Work GPLv3 violation + LGPLv3 obligations + Qt Commercial obligations (e.g., royalties, per-developer fees) LGPLv3 = GPLv3 + extra permissions
  • 7. Copyright 2019, Burkhard Stubert Convey Combined Work: Product + Physical Medium 7 Source code of Qt libs Text of LGPLv3 and GPLv3 Copyright notices Modifications Installation information + Qt libraries: Object code Application: Object code GPLv3 (6a) LGPLv3 (4) Display in GUI
  • 8. Copyright 2019, Burkhard Stubert Convey Combined Work: Product + Written Offer 8 Source code of Qt libs Text of LGPLv3 and GPLv3 Copyright notices Modifications Installation information Qt libraries: Object code Application: Object code GPLv3 (6b) LGPLv3 (4) Display in GUI + Written offer: Valid for max(3y, support)
  • 9. Copyright 2019, Burkhard Stubert Displaying License and Copyright in GUI (1) 9
  • 10. Copyright 2019, Burkhard Stubert Displaying License and Copyright in GUI (2) 10
  • 11. Copyright 2019, Burkhard Stubert Displaying License and Copyright in GUI (3) 11
  • 12. Copyright 2019, Burkhard Stubert 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 used at home, security cameras • Commercial Product: • Examples: tractors, harvesters, trucks, professional appliances, medical devices in hospitals 12 User Product? NoYes Installation Information Installation Information B2C B2B • Installation Information = • Anything required to build a modified Qt version, install and execute it on the User Product
  • 13. Copyright 2019, Burkhard Stubert Example Installation Information (1) 13 (1) User installs SDK (built by bitbake meta-toolchain-qt5) /path/to/<distro>-glibc-x86_64-meta-toolchain-qt5-armv7at2hf-neon-toolchain-2.4.2.sh (2) User unpacks all Qt source archives into /path/to/qt5 (3) User performs shadow build in /path/to/build-qt5 ../qt5/configure -prefix /usr/local/qt -extprefix /path/to/install-qt5 -device linux-imx6-g++ -device-option CROSS_COMPILE=/path/to/sdk/sysroots/x86_64-fslcsdk-linux/usr/bin/ arm-fslc-linux-gnueabi/arm-fslc-linux-gnueabi- -sysroot /path/to/sdk/sysroots/armv7at2hf-neon-fslc-linux-gnueabi -opensource –confirm-license <more options> make –j32 make install
  • 14. Copyright 2019, Burkhard Stubert Example Installation Information (2) • (4) User installs Qt shared libraries on product • Copy Qt shared libs from USB drive to product • Download Qt shared libs from server to product • Copy Qt shared libs from connected laptop to product (via CAN or Ethernet) • ... • Notes on (4): • Shared libs may be signed • Warning OK that user loses warranty, support and even vehicle operation license • Qt libs can undergo AppStore-like approval process • Functionality must not be restricted – unless modified Qt behaves maliciously 14
  • 15. Copyright 2019, Burkhard Stubert Outline – Using Qt under LGPLv3 • The obligations of Qt LGPLv3: made understandable • When to use Qt LGPLv3 and when Qt Commercial • How Yocto and Fossology help with FOSS compliance 15
  • 16. Copyright 2019, Burkhard Stubert Costs of Qt Commercial vs. Qt LGPLv3 Year Qt Commercial Costs € 1 3 developers: 5700 € each 1000 units: 7.50 € each 24,600 2 3 developers: 1900 € each 1000 units: 7.50 € each 13,200 3 3 developers: 1900 € each 1000 units: 7.50 € each 13,200 4 3 developers: 1900 € each 1000 units: 7.50 € each 13,200 5 3 developers: 1900 € each 1000 units: 7.50 € each 13,200 License check of non-Qt packages 20,000 Sum 97,400 16 Year Qt LGPLv3 Costs € 1 Initial effort 12,000 2 Update effort 3,000 3 Update effort 3,000 4 Update effort 3,000 5 Update effort 3,000 Sum 24,000 ~80% effort needed for non-Qt packages: 20,000 Needed in Qt Commercial as well! LGPLv3 cost independent of number of developers and units!
  • 17. Copyright 2019, Burkhard Stubert What’s the Additional Value of Qt Commercial? • Commercial-only features • No user update of Qt libraries required • Qt for Device Creation (Boot2Qt) • Qt Lite (esp. for Cortex-M) • Qt Virtual Keyboard (also: GPLv3) • Qt 3D Designer: GPLv3 runtime • Qt Support Helpdesk • Qt for Automotive (extra fee) • Qt for Automation: MQTT, OPC UA (extra fee) • Qt Safe Renderer (extra fee) • Qt Application Manager (extra fee) 17 • Also available for LGPLv3 • Static linking (LGPLv3/4d0) • Qt Quick compiler (since Qt 5.12) • Qt Virtual Keyboard (if run in separate process)
  • 18. Copyright 2019, Burkhard Stubert Outline – Using Qt under LGPLv3 • The obligations of Qt LGPLv3: made understandable • When to use Qt LGPLv3 and when Qt Commercial • How Yocto and Fossology help with FOSS compliance 18
  • 19. Copyright 2019, Burkhard Stubert Some Wishful Thinking ... 19 Magic ScriptYocto recipes /path/to/qtmultimedia qtmultimedia-5.11.3+<rev>-patched.tar.gz LICENSE.LGPL3 LICENSE.GPL3 USED-LICENSE -> LICENSE.LGPL3 COPYRIGHT MODIFICATIONS /path/to/qtserialbus ... For every package:
  • 20. Copyright 2019, Burkhard Stubert The Harsh Reality ... 20 bitbake Yocto recipes tmp/deploy/sources/arm-poky-linux-gnueabi/ qtmultimedia-5.11.3+<rev>/ qtmultimedia-5.11.3+<rev>-patched.tar.gz tmp/deploy/licenses/qtmultimedia generic_* LICENSE.FDL LICENSE.GPL2 LICENSE.GPL3 LICENCE.GPL3-EXCEPT LICENSE.LGPL3 recipeinfo Fossology upload export Identify licenses and copyright notices qtmultimedia.spdx convey.py /path/to/qtmultimedia qtmultimedia-5.11.3+<rev>-patched.tar.gz LICENSE.LGPL3 LICENSE.GPL3 USED-LICENSE -> LICENSE.LGPL3 COPYRIGHT MODIFICATIONS ???
  • 21. Copyright 2019, Burkhard Stubert Creating Source Archives with Yocto 21 Create archives for patched sources of all FOSS packages: # In local.conf or distro configuration INHERIT += "archiver" COPYLEFT_TARGET_TYPES = "target" COPYLEFT_LICENSE_EXCLUDE = "CLOSED Proprietary" COPYLEFT_LICENSE_INCLUDE = "" Don’t create source archive for Application: # In application recipe LICENSE = "CLOSED" Note: By default only GPL*, LGPL* and AGPL* included Rebuild your Linux image with bitbake
  • 22. Copyright 2019, Burkhard Stubert Output of Yocto Build 22 tmp/deploy/licenses/qtmultimedia generic_BSD generic_GFDL-1.3 generic_GPL-2.0 generic_GPL-3.0 generic_LGPL-3.0 generic_The-Qt-Company-Commercial generic_The-Qt-Company-GPL-Exception-1.0 LICENSE.FDL LICENSE.GPL2 LICENSE.GPL3 LICENCE.GPL3-EXCEPT LICENSE.LGPL3 recipeinfo tmp/deploy/sources/arm-poky-linux-gnueabi/ qtmultimedia-5.11.3+<rev>/ qtmultimedia-5.11.3+<rev>-patched.tar.gz LICENSE: GFDL-1.3 & BSD & ( GPL-3.0 & The-Qt-Company-GPL-Exception-1.0 | The-Qt-Company-Commercial ) & ( GPL-2.0+ | LGPL-3.0 | The-Qt-Company-Commercial ) PR: r0 PV: 5.11.3+<rev> ??? Use Fossology to clarify license situation!
  • 23. Copyright 2019, Burkhard Stubert License Analysis with Fossology: Upload > From File 23 Nomos Keywords: Find potential license texts Nomos Regular Expressions: Finds and identifies most relevant license texts and their variants Monk Full Text Matches: Finds and identifies known license texts
  • 24. Copyright 2019, Burkhard Stubert License Analysis with Fossology: Browse > qtmultimedia-<rev>-patched.tar.gz 24 Goal: Green clearing status for all files Clear irrelevant folders: Mark all folders except src as irrelevant, because they are not used in product
  • 25. Copyright 2019, Burkhard Stubert License Analysis with Fossology: Bulk Recognition of Source Files (1) 25 (1) Select typical source file (2) Use bulk recognition for identifying all similar files
  • 26. Copyright 2019, Burkhard Stubert License Analysis with Fossology: Bulk Recognition of Source Files (2) 26 (1) Add LGPL-3.0 as identified license (2) Remove all other licenses (3) From selected file, copy search text for identification (4) Perform actions (1) and (2) to all files matching (3)
  • 27. Copyright 2019, Burkhard Stubert License Analysis with Fossology: Bulk Recognition of Source Files (3) 27
  • 28. Copyright 2019, Burkhard Stubert License Analysis with Fossology: Individual Check for Remaining Red Files • src/multimedia/doc • Mark folder as irrelevant • src/mulimediawidgets/doc • Mark folder as irrelevant • src/plugins/winrt • qwinrtcameraflashcontrol.cpp/h: license text slightly different to one used in bulk scan • Identify license for each file individually • In root directory: • Mark LICENSE.(FDL | GPL2 | GPL3 | GPL3-EXCEPT) as irrelevant • Set LICENSE.LGPL3 as main license 28 All files and folders green! License check done!
  • 29. Copyright 2019, Burkhard Stubert Copyright Analysis with Fossology: Ignore Irrelevant Folders (1) 29 Irrelevant folders
  • 30. Copyright 2019, Burkhard Stubert Copyright Analysis with Fossology: Ignore Irrelevant Folders (2) 30 (1) Select irrelevant occurrences (2) Delete selected occurrences Folder: config.tests
  • 31. Copyright 2019, Burkhard Stubert Copyright Analysis with Fossology: Ignore Irrelevant Folders (3) 31
  • 32. Copyright 2019, Burkhard Stubert Copyright Analysis with Fossology: Result 32 Down from 102 entries!
  • 33. Copyright 2019, Burkhard Stubert Export Results of License and Copyright Analysis 33 From combobox, select Generate SPDX report in tag:value format Save report qtmultimedia.spdx in tmp/deploy/licenses/qtmultimedia/
  • 34. Copyright 2019, Burkhard Stubert License and Copyright Report: qtmultimedia.spdx – Package Information 34 PackageName: qtmultimedia-5.11.3+gitAUTOINC+6966a09c9a-r0-patched.tar.gz PackageFileName: qtmultimedia-5.11.3+gitAUTOINC+6966a09c9a-r0-patched.tar.gz SPDXID: SPDXRef-upload10 PackageDownloadLocation: NOASSERTION PackageVerificationCode: 1ca0b32cc48660f2e14d0711484bd4299ed08cde PackageChecksum: SHA1: 68b79d7255dd1e50296c154bb935deb16fadd561 PackageChecksum: MD5: 251f4ce5a3f7383a79cacdefe4c56e96 PackageLicenseConcluded: LGPL-3.0 PackageLicenseDeclared: LGPL-3.0 PackageLicenseComments: <text> licenseInfoInFile determined by Scanners: - nomos ("3.4.0-78-g625bdf3".625bdf) - monk ("3.4.0-78-g625bdf3".625bdf) </text> PackageLicenseInfoFromFiles: NOASSERTION PackageCopyrightText: NOASSERTION Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-upload10
  • 35. Copyright 2019, Burkhard Stubert License and Copyright Report: qtmultimedia.spdx – File Information 35 ##File FileName: git/src/multimedia/radio/qradiotuner.cpp SPDXID: SPDXRef-item19743 FileChecksum: SHA1: ca858ab8655... FileChecksum: MD5: 51862849aa23... LicenseConcluded: LGPL-3.0 LicenseInfoInFile: LGPL-3.0 LicenseInfoInFile: LicenseRef-Dual-license LicenseInfoInFile: GPL-2.0+ LicenseInfoInFile: LicenseRef-Qt.Commercial FileCopyrightText: <text> Copyright (C) 2016 The Qt Company Ltd. Contact: https://www.qt.io/licensing/ </text> ##File FileName: git/examples/multimedia/declarative- camera/ZoomControl.qml SPDXID: SPDXRef-item18287 FileChecksum: SHA1: 66758b5dddd... FileChecksum: MD5: 6145e7cb5e10... LicenseConcluded: NOASSERTION LicenseInfoInFile: BSD-3-Clause LicenseInfoInFile: LicenseRef-Dual-license LicenseInfoInFile: LicenseRef-Qt.Commercial FileCopyrightText: NOASSERTION
  • 36. Copyright 2019, Burkhard Stubert Resources • License texts • LGPLv3: https://www.gnu.org/licenses/lgpl-3.0- standalone.html • GPLv3: https://www.gnu.org/licenses/gpl-3.0- standalone.html • Lawyers • Dr. Miriam Ballhausen, Senior Associate, Bird & Bird LLP • Dr. Catharina Maracke, Associate Professor of IT and Data Law, Kühne Logistics University • Dr. Till Jaeger, Attorney at Law, JBB • Books • Heather Meeker: ”Open Source For Business – A Practical Guide to Open Source Software Licensing”, 2nd edition 2017 • Till Jaeger, Axel Metzger: ”Open Source Software – Rechtliche Rahmenbedingungen der freien Software”, 4. Auflage 2016, C. H. Beck 36
  • 37. This presentation is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Copyright 2019, Burkhard Stubert Thank you J Mail: burkhard.stubert@embeddeduse.com Web: http://www.embeddeduse.com