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