125 lines
2.9 KiB
Markdown
125 lines
2.9 KiB
Markdown
% The What and How of GPL Violations
|
|
% Bradley M. Kuhn
|
|
% Tuesday 9 May 2017
|
|
|
|
# What's a GPL Violation?
|
|
|
|
+ GPL (both v2 and v3) require:
|
|
+ The whole work licensed under GPL.
|
|
+ (which means all copyrighted material added must be under
|
|
GPL-compatible licenses.)
|
|
+ Complete, Corresponding Source (CCS) of that work provided, under GPL.
|
|
|
|
+ The licenses terminate upon violation …
|
|
+ … thus failure to comply means lost distribution rights.
|
|
+ … enforcement uses this rights termination as leverage to
|
|
restore compliance.
|
|
|
|
# Enforcement is Technical
|
|
|
|
+ Copyleft's policy goals related to technical acts.
|
|
+ modifying, building, and installing software is a technical process.
|
|
|
|
+ In embedded systems, this process is rarely straightforward.
|
|
+ Yet GPL requires that such be possible.
|
|
|
|
+ In enforcement, we talk about “the CCS adequately meeting GPL's requirements”
|
|
|
|
# Compliance-Friendly Development
|
|
|
|
+ Use revision control ...
|
|
- ... to pull in vendor branch.
|
|
- ... to tag releases.
|
|
|
|
+ Avoid "Build Guru" ...
|
|
- ... by documenting build process.
|
|
- ... and versioning it, too.
|
|
|
|
# GPL Binary Requirements
|
|
|
|
(v2 § 3, v3 § 6)
|
|
|
|
+ Four options:
|
|
- Source alongside binary (v2/v3).
|
|
- Offer for source (v2/v3).
|
|
- Internet side-by-side distribution (v3).
|
|
- Torrent distribution (v3).
|
|
|
|
# Source Alongside Binary
|
|
|
|
+ Simplest option
|
|
|
|
+ **Obligations end at distribution time.**
|
|
|
|
+ Physical media required.
|
|
|
|
# Offer For Source
|
|
|
|
+ Useful if not shipping media already.
|
|
|
|
+ Lasts three years.
|
|
|
|
+ Mail fulfillment required (not in v3).
|
|
|
|
# Side-By-Side Distribution
|
|
|
|
+ Not in GPLv2, pedantically speaking.
|
|
|
|
+ Always been considered compliant for v2.
|
|
|
|
+ v3 clarifies this.
|
|
|
|
# Peer-to-Peer Distribution
|
|
|
|
+ v2 obviously couldn't consider this.
|
|
|
|
+ v3 allows distribution of equally seeded source and binary.
|
|
|
|
# Preparing Corresponding Source
|
|
|
|
(v2 § 3, v3 § 1)
|
|
|
|
+ Make sure all sources are present.
|
|
- revision system helps a lot here.
|
|
|
|
+ Build scripts
|
|
- make sure someone skilled in art can build it.
|
|
|
|
# Termination
|
|
|
|
(v2 § 4, v3 § 8)
|
|
|
|
+ v2 is automatic and permanent.
|
|
|
|
+ v3 has auto-reinstatement.
|
|
- 60 day self-correction timeout.
|
|
- 30 day penalty-less after notice.
|
|
|
|
+ Usually, you need copyright holder to reinstate.
|
|
|
|
# Actual Enforcement
|
|
|
|
+ [*The Principles of Community-Oriented GPL Enforcement* at sfconservancy.org/linux-compliance/principles.html](https://sfconservancy.org/linux-compliance/principles.html).
|
|
|
|
+ Send a Letter, carefully finding right person.
|
|
|
|
+ Communication is key.
|
|
|
|
+ Ask for CCS candidates.
|
|
|
|
|
|
# The "Rounds"
|
|
|
|
+ Ideally (it's only happened to me twice) the first source release is
|
|
perfect.
|
|
+ but we don't live in an ideal world.
|
|
|
|
+ The worst we've ever experienced is 22 rounds.
|
|
|
|
+ We send detailed reports.
|
|
|
|
# More Info / Talk License
|
|
|
|
<img align="right" src="cc-by-sa-4-0_88x31.png" />
|
|
|
|
|