Remove extraneous material to just CCS examples.
This commit is contained in:
		
							parent
							
								
									c1f10c3379
								
							
						
					
					
						commit
						c281fff393
					
				
					 1 changed files with 3 additions and 460 deletions
				
			
		|  | @ -1,452 +1,6 @@ | ||||||
| % A Practical Guide to Compliance with the GNU GPL | % Examples of CCS Reports | ||||||
| % Bradley M. Kuhn and Karen M. Sandler | % Bradley M. Kuhn | ||||||
| % Thursday  19 January 2016 | % Tuesday 9 May 2017 | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| # Audience |  | ||||||
| 
 |  | ||||||
| + Our goal here is to move faster or slower based on audience knowledge. |  | ||||||
| 
 |  | ||||||
| + There are folks in this audience who have worked with this stuff for years, |  | ||||||
|   and those who are completely new. |  | ||||||
| 
 |  | ||||||
| + We want these presentations to be valuable to all of you. |  | ||||||
| 
 |  | ||||||
| # Audience |  | ||||||
| 
 |  | ||||||
| + Please, don't be embarrassed: |  | ||||||
|      + Ever GPL expert in the world, including us, started as a student who |  | ||||||
|        knew none of this. |  | ||||||
| 
 |  | ||||||
| + This is a course; raise your hand if you are confused or have a question. |  | ||||||
| 
 |  | ||||||
| + We are glad to go "off-slides" and get your questions answered. |  | ||||||
| 
 |  | ||||||
| # The Tutorial's Textbook |  | ||||||
| 
 |  | ||||||
| + This tutorial actually has a 125-page textbook. |  | ||||||
| 
 |  | ||||||
| + You can download it (PDF or online HTML browse, or the source code!) from |  | ||||||
|   [copyleft.org/guide](https://copyleft.org/guide) |  | ||||||
| 
 |  | ||||||
| + The text is in integration and culmination of every freely licensed |  | ||||||
|   material on copyleft (and GPL in particular) we could find. |  | ||||||
| 
 |  | ||||||
| + We don't mind if you read the text while we talk and raise your hand with questions. |  | ||||||
| 
 |  | ||||||
| # How this Tutorial Go? |  | ||||||
| 
 |  | ||||||
| + Materials presented will mix the simple & complex. |  | ||||||
| 
 |  | ||||||
| + We cannot possibly cover the entire GPL and compliance procedures in merely |  | ||||||
|   two hours. |  | ||||||
|     + a full course could take a whole day or more. |  | ||||||
|     + but we'll give you the key highlights. |  | ||||||
| 
 |  | ||||||
| # Outline |  | ||||||
| 
 |  | ||||||
| + Discuss: motivations, origins, then a few of GPL's sections. |  | ||||||
| 
 |  | ||||||
| + Turn to focus to how it relates to meeting the requirements of the license |  | ||||||
|   (aka compliance). |  | ||||||
| 
 |  | ||||||
| + If you haven't asked enough questions at that point, we'll then still have |  | ||||||
|   lots of time at the end to take questions and answer them. |  | ||||||
| 
 |  | ||||||
| # Why Listen To Us? |  | ||||||
| 
 |  | ||||||
| + Conservancy operates and practices license compliance activities extremely transparently. |  | ||||||
| 
 |  | ||||||
| + So you have access to drafters, interpreters, enforcers. |  | ||||||
| 
 |  | ||||||
| + Someday, we may (or already have) sit across the table from you. |  | ||||||
| 
 |  | ||||||
| + Our transparency does make your job easier.  |  | ||||||
| 
 |  | ||||||
| # The Mindset of GPL |  | ||||||
| 
 |  | ||||||
| + GPL protects software freedom. |  | ||||||
| 
 |  | ||||||
| + Ultimate goal: make sure every user has the four freedoms. |  | ||||||
|      + Freedom to run the software. |  | ||||||
|      + Freedom to study and modify the software. |  | ||||||
|      + Freedom to share the software. |  | ||||||
|      + Freedom to distribute modified versions. |  | ||||||
| 
 |  | ||||||
| + Every clause in GPL was designed to uphold one of these freedoms. |  | ||||||
|      + Or, it's a compromise of drafting in adoption vs. freedom debate. |  | ||||||
| 
 |  | ||||||
| # Using Copyright |  | ||||||
| 
 |  | ||||||
| + GPL is primarily a copyright license. |  | ||||||
|       + Software is copyrighted. |  | ||||||
|       + License grants key freedoms. |  | ||||||
|       + Requirement prohibit activities that take away freedoms. |  | ||||||
| 
 |  | ||||||
| + General concept: copyleft. |  | ||||||
| 
 |  | ||||||
| + Specific implementation: GPL. |  | ||||||
| 
 |  | ||||||
| # Conditional Permissions |  | ||||||
| 
 |  | ||||||
| + A copyleft license grants copyright permissions, conditionally. |  | ||||||
| 
 |  | ||||||
| + Think of the phrase: “provided that” |  | ||||||
| 
 |  | ||||||
| + “provided that”: appears (in some form) only |  | ||||||
|     + 4 times in GPLv2 |  | ||||||
|     + 9 times in GPLv3. |  | ||||||
| 
 |  | ||||||
| # Compare To Proprietary Licenses |  | ||||||
| 
 |  | ||||||
| + Yes, the GPL has its requirements. |  | ||||||
| 
 |  | ||||||
| + But *none* of these activities are ever permitted under proprietary |  | ||||||
|   licenses. |  | ||||||
| 
 |  | ||||||
| + If you don't like what the GPL requires you to do, then just use |  | ||||||
|   proprietary software instead. |  | ||||||
| 
 |  | ||||||
| + That way, you know the answer to every “Am I allowed to?” question is “no” |  | ||||||
| 
 |  | ||||||
| + rather than: “yes, but only as long as you …” |  | ||||||
| 
 |  | ||||||
| + Many business advantages to copyleft... |  | ||||||
| 
 |  | ||||||
| # The Technical Gap |  | ||||||
| 
 |  | ||||||
| + Understanding GPL well requires a some software expertise & legal |  | ||||||
|   expertise. |  | ||||||
| 
 |  | ||||||
| + You don't have to be a professional on either side to grok it. |  | ||||||
|      + but you're best off if you're a professional in one & an amateur |  | ||||||
|        in the other.  |  | ||||||
| 
 |  | ||||||
| + Most important technical concepts you need: |  | ||||||
|      + source code, binaries, methods of distribution. |  | ||||||
| 
 |  | ||||||
| # Modification As a Center Provision |  | ||||||
| 
 |  | ||||||
| + GPL's primary copyright hook is copyright controls on the right to modify. |  | ||||||
| 
 |  | ||||||
| + GPL's central tenant: |  | ||||||
| 
 |  | ||||||
| + You can make a modified version of various types privately as much as you'd like. |  | ||||||
| 
 |  | ||||||
| + When you distribute that modified version, you have requirements to meet. |  | ||||||
| 
 |  | ||||||
| + Technological considerations dictate necessity of more complex rules for |  | ||||||
| certain types of modifications. |  | ||||||
| 
 |  | ||||||
| # GPLv2 § 2(a-b) |  | ||||||
| 
 |  | ||||||
| <span class="fitonslide"> |  | ||||||
| <p>[GPLv2§]2. You may modify your copy or copies of the Program or any |  | ||||||
| portion of it, thus forming a work based on the Program, and copy and |  | ||||||
| distribute such modifications or work under the terms of Section 1 above, |  | ||||||
| provided that you also meet all of these conditions: |  | ||||||
| <br/> |  | ||||||
| <br/> |  | ||||||
| a) You must cause the modified files to carry prominent notices stating |  | ||||||
| that you changed the files and the date of any change. |  | ||||||
| <br/> |  | ||||||
| <br/> |  | ||||||
| b) You must cause any work that you distribute or publish, that in |  | ||||||
| whole or in part contains or is derived from the Program or any |  | ||||||
| part thereof, to be licensed as a whole at no charge to all third |  | ||||||
| parties under the terms of this License. |  | ||||||
| </p> |  | ||||||
| </span> |  | ||||||
| 
 |  | ||||||
| # GPLv3§5(a-c) |  | ||||||
| 
 |  | ||||||
| <span class="fitonslide"> |  | ||||||
| <p> |  | ||||||
| You may convey a work based on the Program, or the modifications to |  | ||||||
| produce it from the Program, in the form of source code under the |  | ||||||
| terms of section 4, provided that you also meet all of these conditions: |  | ||||||
| <br/> |  | ||||||
| <br/> |  | ||||||
| a) The work must carry prominent notices stating that you modified it, and |  | ||||||
| giving a relevant date. |  | ||||||
| <br/> |  | ||||||
| <br/> |  | ||||||
| b) The work must carry prominent notices stating that it is released under |  | ||||||
| this License and any conditions added under section 7.  This requirement |  | ||||||
| modifies the requirement in section 4 to "keep intact all notices". |  | ||||||
| <br/> |  | ||||||
| <br/> |  | ||||||
| c) You must license the entire work, as a whole, under this License to anyone |  | ||||||
| who comes into possession of a copy.  This License will therefore apply, |  | ||||||
| along with any applicable section 7 additional terms, to the whole of the |  | ||||||
| work, and all its parts, regardless of how they are packaged.  This License |  | ||||||
| gives no permission to license the work in any other way, but it does not |  | ||||||
| invalidate such permission if you have separately received it. |  | ||||||
| </p> |  | ||||||
| </span> |  | ||||||
| 
 |  | ||||||
| # GPLv2§2¶ penultimates |  | ||||||
| 
 |  | ||||||
| <span class="fitonslide"> |  | ||||||
| <p> |  | ||||||
| These requirements apply to the modified work as a whole.  If |  | ||||||
| identifiable sections of that work are not derived from the Program, |  | ||||||
| and can be reasonably considered independent and separate works in |  | ||||||
| themselves, then this License, and its terms, do not apply to those |  | ||||||
| sections when you distribute them as separate works.  But when you |  | ||||||
| distribute the same sections as part of a whole which is a work based |  | ||||||
| on the Program, the distribution of the whole must be on the terms of |  | ||||||
| this License, whose permissions for other licensees extend to the |  | ||||||
| entire whole, and thus to each and every part regardless of who wrote it. |  | ||||||
| <br/> |  | ||||||
| <br/> |  | ||||||
| Thus, it is not the intent of this section to claim rights or contest |  | ||||||
| your rights to work written entirely by you; rather, the intent is to |  | ||||||
| exercise the right to control the distribution of derivative or |  | ||||||
| collective works based on the Program. |  | ||||||
| </p> |  | ||||||
| 
 |  | ||||||
| </span> |  | ||||||
| 
 |  | ||||||
| # GPLv3 §0 ¶1-5 |  | ||||||
| <span class="fitonslide"> |  | ||||||
| <p> |  | ||||||
|   "Copyright" also means copyright-like laws that apply to other kinds of |  | ||||||
| works, such as semiconductor masks. |  | ||||||
| <br/> |  | ||||||
| <br/> |  | ||||||
|   "The Program" refers to any copyrightable work licensed under this |  | ||||||
| License.  Each licensee is addressed as "you".  "Licensees" and |  | ||||||
| "recipients" may be individuals or organizations. |  | ||||||
| <br/> |  | ||||||
| <br/> |  | ||||||
| To "modify" a work means to copy from or adapt all or part of the work |  | ||||||
| in a fashion requiring copyright permission, other than the making of an |  | ||||||
| exact copy.  The resulting work is called a "modified version" of the |  | ||||||
| earlier work or a work "based on" the earlier work. |  | ||||||
| <br/> |  | ||||||
| <br/> |  | ||||||
|   A "covered work" means either the unmodified Program or a work based |  | ||||||
| on the Program. |  | ||||||
| </p> |  | ||||||
| 
 |  | ||||||
| # Binaries (Object Code) are Modifications |  | ||||||
| 
 |  | ||||||
| + Software that the computer understands is different than software humans |  | ||||||
|   read. |  | ||||||
| 
 |  | ||||||
| + There is often a process required to modify (and/or translate) the software |  | ||||||
|   from human-readable |  | ||||||
|       + This process can be done ahead of time. |  | ||||||
| 
 |  | ||||||
| + Separation of source and binary was the first way proprietary software |  | ||||||
|   companies discovered to subjugate users. |  | ||||||
|       + GPL uses the fact that binaries are modifications (which are often |  | ||||||
|         distribution) to prevent that subjugation. |  | ||||||
| 
 |  | ||||||
| # GPLv2 § 3(a-b) |  | ||||||
| 
 |  | ||||||
| <span class="fitonslide"> |  | ||||||
| <p> |  | ||||||
| <p>[GPLv2§]3. You may copy and distribute the Program (or a work based on it, |  | ||||||
| under Section 2) in object code or executable form under the terms of |  | ||||||
| Sections 1 and 2 above provided that you also do one of the following: |  | ||||||
| <br/> |  | ||||||
| <br/> |  | ||||||
| a) Accompany it with the complete corresponding machine-readable |  | ||||||
| source code, which must be distributed under the terms of Sections |  | ||||||
| 1 and 2 above on a medium customarily used for software interchange; or, |  | ||||||
| <br/> |  | ||||||
| <br/> |  | ||||||
| b) Accompany it with a written offer, valid for at least three |  | ||||||
| years, to give any third party, for a charge no more than your |  | ||||||
| cost of physically performing source distribution, a complete |  | ||||||
| machine-readable copy of the corresponding source code, to be |  | ||||||
| distributed under the terms of Sections 1 and 2 above on a medium |  | ||||||
| customarily used for software interchange; |  | ||||||
| </p> |  | ||||||
| </span> |  | ||||||
| 
 |  | ||||||
| # GPLv3 § 6(a-b) |  | ||||||
| 
 |  | ||||||
| <span class="fitonslide"> |  | ||||||
| <p> |  | ||||||
| [GPLv3 § ] 6. Conveying Non-Source Forms. |  | ||||||
| <br/> |  | ||||||
| <br/> |  | ||||||
| You may convey a covered work in object code form under the terms |  | ||||||
| of sections 4 and 5, provided that you also convey the |  | ||||||
| machine-readable Corresponding Source under the terms of this License, |  | ||||||
| in one of these ways: |  | ||||||
| <br/> |  | ||||||
| <br/> |  | ||||||
| a) Convey the object code in, or embodied in, a physical product |  | ||||||
| (including a physical distribution medium), accompanied by the |  | ||||||
| Corresponding Source fixed on a durable physical medium |  | ||||||
| customarily used for software interchange. |  | ||||||
| <br/> |  | ||||||
| <br/> |  | ||||||
| b) Convey the object code in, or embodied in, a physical product |  | ||||||
| (including a physical distribution medium), accompanied by a |  | ||||||
| written offer, valid for at least three years and valid for as |  | ||||||
| long as you offer spare parts or customer support for that product |  | ||||||
| model, to give anyone who possesses the object code either (1) a |  | ||||||
| copy of the Corresponding Source for all the software in the |  | ||||||
| product that is covered by this License, on a durable physical |  | ||||||
| medium customarily used for software interchange, for a price no |  | ||||||
| more than your reasonable cost of physically performing this |  | ||||||
| conveying of source, or (2) access to copy the |  | ||||||
| Corresponding Source from a network server at no charge. |  | ||||||
| </p> |  | ||||||
| </span> |  | ||||||
| 
 |  | ||||||
| # GPLv3 § 1 ¶ 1, 4-6 |  | ||||||
| 
 |  | ||||||
| <span class="fitonslide"> |  | ||||||
| <p> |  | ||||||
| The "source code" for a work means the preferred form of the work |  | ||||||
| for making modifications to it.  "Object code" means any non-source |  | ||||||
| form of a work. |  | ||||||
| <br/> |  | ||||||
| <br/> |  | ||||||
| The "Corresponding Source" for a work in object code form means all the |  | ||||||
| source code needed to generate, install, and (for an executable work) run the |  | ||||||
| object code and to modify the work, including scripts to control those |  | ||||||
| activities.  However, it does not include the work's System Libraries, or |  | ||||||
| general-purpose tools or generally available free programs which are used |  | ||||||
| unmodified in performing those activities but which are not part of the work. |  | ||||||
| For example, Corresponding Source includes interface definition files |  | ||||||
| associated with source files for the work, and the source code for shared |  | ||||||
| libraries and dynamically linked subprograms that the work is specifically |  | ||||||
| designed to require, such as by intimate data communication or control flow |  | ||||||
| between those subprograms and other parts of the work. |  | ||||||
| <br/> |  | ||||||
| <br/> |  | ||||||
| The Corresponding Source need not include anything that users |  | ||||||
| can regenerate automatically from other parts of the Corresponding |  | ||||||
| Source. |  | ||||||
| <br/> |  | ||||||
| <br/> |  | ||||||
| The Corresponding Source for a work in source code form is that |  | ||||||
| same work. |  | ||||||
| </p> |  | ||||||
| </span> |  | ||||||
| 
 |  | ||||||
| # 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 CD 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 I've ever experienced is 22 rounds. |  | ||||||
| 
 |  | ||||||
| + We send detailed reports. |  | ||||||
| 
 | 
 | ||||||
| # No Build Instructions | # No Build Instructions | ||||||
| 
 | 
 | ||||||
|  | @ -745,21 +299,10 @@ same work. | ||||||
|     to email NAME@COMPANY.com , which is how the above instructions for  |     to email NAME@COMPANY.com , which is how the above instructions for  | ||||||
|     downloading the source were received. |     downloading the source were received. | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| # More Info / Talk License | # More Info / Talk License | ||||||
| 
 | 
 | ||||||
| <img align="right" src="cc-by-sa-4-0_88x31.png" /> | <img align="right" src="cc-by-sa-4-0_88x31.png" /> | ||||||
| 
 | 
 | ||||||
| + URLs / Social Networking / Email: |  | ||||||
|      - Pls. support Conservancy: [sfconservancy.org/supporter/](https://sfconservancy.org/supporter/) |  | ||||||
|      - If you hold copyrights in Linux, Debian, Samba, or BusyBox, you can |  | ||||||
|        join our enforcement coalition.  [Contact us!](https://sfconservancy.org/linux-compliance/about.html) |  | ||||||
|      - [*The Guide*](https://copyleft.org/guide) is available & [welcomes contributions at copyleft.org](https://copyleft.org). |  | ||||||
|      - Conservancy: [sfconservancy.org](https://sfconservancy.org/) & [@conservancy](https://twitter.com/conservancy/). |  | ||||||
|      - Me: [faif.us](http://faif.us) & [ebb.org/bkuhn](http://ebb.org/bkuhn) |  | ||||||
|      - Slides: [ebb.org/bkuhn/talks](http://ebb.org/bkuhn/talks/ELC-2015/pristine-example.html). |  | ||||||
| 
 | 
 | ||||||
| <span class="fitonslide"> | <span class="fitonslide"> | ||||||
| <p>Presentation and slides are: Copyright © Bradley M. Kuhn (2008–2011, 2015, 2017), Karen M. Sandler (2017), and are licensed under the <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">Creative Commons Attribution-Share Alike 4.0 International License</a>. </p> | <p>Presentation and slides are: Copyright © Bradley M. Kuhn (2008–2011, 2015, 2017), Karen M. Sandler (2017), and are licensed under the <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">Creative Commons Attribution-Share Alike 4.0 International License</a>. </p> | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Bradley M. Kuhn
						Bradley M. Kuhn