Copyleft and the
GNU General Public License:

A Comprehensive Tutorial
and Guide

Copyright 2003–2005, 2008, 2014–2015 Bradley M. Kuhn.

Copyright 2014–2015 Anthony K. Sebro, Jr.

Copyright 2014 Denver Gingerich.

Copyright 2003–2007, 2014 Free Software Foundation, Inc.

Copyright 2008, 2014 Software Freedom Law Center.

The copyright holders grant the freedom to copy, modify, convey, adapt, and/or redistribute this work (except Appendices BE) under the terms of the Creative Commons Attribution Share Alike 4.0 International License. A copy of that license is available at https://creativecommons.org/licenses/by-sa/4.0/legalcode.

Appendices BE include copies of the texts of various licenses published by the FSF, and they are all licensed under the license, “Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.”. However, those who seek to make modified versions of those licenses should note the explanation given in the GPL FAQ.

As a public, collaborative project, this Guide is primarily composed of the many contributions received via its public contribution process. Please review its Git logs for full documentation of all contributions, and Appendix A contains a list of third-party works from which some material herein was adapted.

The most recent version is available online at https://copyleft.org/guide/. Patches are indeed welcome to this material. Sources can be found in the Git repository at https://k.copyleft.org/guide/.

Contents
Preface
I  Detailed Analysis of the GNU GPL and Related Licenses
1 What Is Software Freedom?
 1.1 The Free Software Definition
 1.2 How Does Software Become Free?
 1.3 A Community of Equality
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.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.2 GPLv2 3: Producing Binaries
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 7: “Give Software Liberty or Give It Death!”
 7.5 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.3 GPLv3 1: Understanding CCS
 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.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.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
Executive Summary
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.2 Preparing Corresponding Source
 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
Preface
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
 Appendix: How to Apply These Terms to Your New Programs
C The GNU Lesser General Public License, version 2.1
 How to Apply These Terms to Your New Libraries
D The GNU General Public License, version 3
E The Affero General Public License, version 3