Contents
Preface
I Detailed Analysis of the GNU GPL and Related Licenses
1 What Is Software Freedom?
1.1 The Free Software Definition
1.1.1 The Freedom to Run
1.1.2 The Freedom to Change and Modify
1.1.3 The Freedom to Copy and Share
1.1.4 The Freedom to Share Improvements
1.2 How Does Software Become Free?
1.2.1 Public Domain Software
1.2.2 Why Copyright Free Software?
1.2.3 Software and Non-Copyright Legal Regimes
1.2.4 Non-USA Copyright Regimes
1.3 A Community of Equality
1.3.1 The Noncommercial Community
1.3.2 The Commercial Community
1.3.3 Law Analogy
2 A Tale of Two Copyleft Licenses
2.1 Historical Motivations for the General Public License
2.2 Proto-GPLs And Their Impact
2.3 The GNU General Public License, Version 1
2.4 The GNU General Public License, Version 2
2.5 The GNU General Public License, Version 3
2.6 The Innovation of Optional “Or Any Later” Version
2.7 Complexities of Two Simultaneously Popular Copylefts
3 Running Software and Verbatim Copying
3.1 GPLv2 §0: Freedom to Run
3.2 GPLv2 §1: Verbatim Copying
4 Derivative Works: Statute and Case Law
4.1 The Copyright Act
4.2 Abstraction, Filtration, Comparison Test
4.2.1 Abstraction
4.2.2 Filtration
4.2.3 Comparison
4.3 Analytic Dissection Test
4.4 No Protection for “Methods of Operation”
4.5 No Test Yet Adopted
4.6 Cases Applying Software Derivative Work Analysis
4.7 How Much Do Derivative Works Matter?
5 Modified Source and Binary Distribution
5.1 GPLv2 §2: Share and Share Alike
5.1.1 The Simpler Parts of GPLv2 §2
5.1.2 GPLv2 §2(b)
5.1.3 Right to Private Modification
5.2 GPLv2 §3: Producing Binaries
5.2.1 Complete, Corresponding Source (CCS)
5.2.2 Additional Source Provision Options
6 GPL’s Implied Patent Grant
7 Defending Freedom on Many Fronts
7.1 GPLv2 §4: Termination on Violation
7.2 GPLv2 §5: Acceptance, Copyright Style
7.3 GPLv2 §6: GPL, My One and Only
7.4 GPLv2 Irrevocability
7.4.1 The text of the GPLv2
7.4.2 Promissory estoppel
7.4.3 Conclusion
7.5 GPLv2 §7: “Give Software Liberty or Give It Death!”
7.6 GPLv2 §8: Excluding Problematic Jurisdictions
8 Odds, Ends, and Absolutely No Warranty
8.1 GPLv2 §9: FSF as Stewards of GPL
8.2 GPLv2 §10: Relicensing Permitted
8.3 GPLv2 §11: No Warranty
8.4 GPLv2 §12: Limitation of Liability
9 GPL Version 3
9.1 Understanding GPLv3 As An Upgraded GPLv2
9.2 GPLv3 §0: Giving In On “Defined Terms”
9.2.1 Modify and the Work Based on the Program
9.2.2 The Covered Work
9.2.3 Propagate
9.2.4 Convey
9.2.5 Appropriate Legal Notices
9.2.6 Other Defined Terms
9.3 GPLv3 §1: Understanding CCS
9.3.1 Source Code Definition
9.3.2 CCS Definition
9.3.3 The System Library Exception
9.4 GPLv3 §2: Basic Permissions
9.5 GPLv3’s views on DRM and Device Lock-Down
9.6 GPLv3 §3: What Hath DMCA Wrought
9.7 GPLv3 §4: Verbatim Copying
9.8 GPLv3 §5: Modified Source
9.9 GPLv3 §6: Non-Source and Corresponding Source
9.9.1 GPLv3 §6(e): Peer-to-Peer Sharing Networks
9.9.2 User Products, Installation Information and Device Lock-Down
9.9.3 GPLv3 §7: Additional Permissions
9.10 GPLv3 §7: Understanding License Compatibility
9.11 GPLv3 §8: A Lighter Termination
9.12 GPLv3 §9: Acceptance
9.13 GPLv3 §10: Explicit Downstream License
9.14 GPLv3 §11: Explicit Patent Licensing
9.14.1 The Contributor’s Explicit Patent License
9.14.2 Conveyors’ Patent Licensing
9.15 GPLv3 §12: Familiar as GPLv2 §7
9.16 GPLv3 §13: The Great Affero Compromise
9.17 GPLv3 §14: So, When’s GPLv4?
9.18 GPLv3 §15–17: Warranty Disclaimers and Liability Limitation
10 The Lesser GPL
10.1 The First LGPL’d Program
10.2 What’s the Same?
10.3 Additions to the Preamble
10.4 An Application: A Work that Uses the Library
10.5 The Library, and Works Based On It
10.6 Subtleties in Defining the Application
10.7 LGPLv2.1 §6 & LGPLv2.1 §5: Combining the Works
10.8 Distributing Works Based On the Library
10.9 And the Rest
11 LGPLv3
11.1 Section 0: Additional Definitions
11.2 LGPLv3 §1: Exception to GPLv3 §3
11.3 LGPLv3 §2: Conveying Modified Versions
11.4 LGPLv3 §3: Object Code Incorporating Material from Library Header Files
11.5 LGPLv3 §4: Combined Works
12 Integrating the GPL into Business Practices
12.1 Using GPL’d Software In-House
12.2 Business Models
12.3 Ongoing Compliance
II A Practical Guide to GPL Compliance
13 Background
13.1 Who Has Compliance Obligations?
13.2 What Are The Risks of Non-Compliance?
13.3 Understanding Who’s Enforcing
14 Best Practices to Avoid Common Violations
14.1 Evaluate License Applicability
14.2 Monitor Software Acquisition
14.3 Track Your Changes and Releases
14.4 Avoid the “Build Guru”
15 Details of Compliant Distribution
15.1 Binary Distribution Permission
15.1.1 Option (a): Source Alongside Binary
15.1.2 Option (b): The Offer
15.1.3 Option (c): Noncommercial Offers
15.1.4 Option 6(d) in GPLv3: Internet Distribution
15.1.5 Option 6(e) in GPLv3: Software Torrents
15.2 Preparing Corresponding Source
15.2.1 Assemble the Sources
15.2.2 Building the Sources
15.2.3 What About the Compiler?
15.3 Best Practices and Corresponding Source
15.4 Non-Technical Compliance Issues
15.5 Self-Assessment of Compliance
16 When The Letter Comes
16.1 Communication Is Key
16.2 Termination
17 Standard Requests
18 Special Topics in Compliance
18.1 LGPL Compliance
18.2 Upstream Providers
18.3 Mergers and Acquisitions
18.4 User Products and Installation Information
18.5 Beware The Consultant in Enforcers’ Clothing
19 Conclusion
III Case Studies in GPL Enforcement
20 Overview of Community Enforcement
20.1 Termination Begins Enforcement
20.2 Ongoing Violations
20.3 How are Violations Discovered?
20.4 First Contact
21 ThinkPenguin Wireless Router: Excellent CCS
21.1 Consumer Purchase and Unboxing
21.2 Root Filesystem and Kernel Compilation
21.3 U-Boot Compilation
21.4 Root Filesystem and Kernel Installation
21.5 U-Boot Installation
21.6 Firmware Comparison
21.7 Minor Annoyances
21.8 Lessons Learned
22 Bortez: Modified GCC SDK
22.1 Facts
22.2 Lessons
23 Bracken: a Minor Violation in a GNU/Linux Distribution
23.1 The Facts
23.2 Lessons Learned
24 Vigorien: Security, Export Controls, and GPL Compliance
24.1 The Facts
24.2 Lessons Learned
25 Haxil, Polgara, and Thesulac: Mergers, Upstream Providers and Radio Devices
25.1 The Facts
25.2 Lessons Learned
IV Appendices
A Citations of Incorporated Material from Other Published Works
B The GNU General Public License, version 2
C The GNU Lesser General Public License, version 2.1
D The GNU General Public License, version 3
E The Affero General Public License, version 3