From 0ad08b92d532bc820ffde6961a0ecef7f27ad500 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 16 Aug 2016 12:02:02 +0200
Subject: [PATCH 01/43] Would help online contributors send small changes?
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
HT: Loïc Dachary
... who told me about this project.
---
TODO.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/TODO.md b/TODO.md
index 159e1c7..099777a 100644
--- a/TODO.md
+++ b/TODO.md
@@ -8,3 +8,5 @@
copyleft.org/guide/ I set a few of these up by hand already, but perhaps
there's a way that tex4ht could dump an list of URL redirects automatically
when it builds the HTML.
+* https://hypothes.is/ might be useful for quickly allowing web readers
+ to add changes.
From f1106e4c34e426548fc79c1b67cfa9caade96a42 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 25 Oct 2016 15:22:18 -0700
Subject: [PATCH 02/43] Note new commit bits given out to three others.
---
CONTRIBUTING.md | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index a0e6e22..c6e440a 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -9,8 +9,11 @@ Free Software project.
## Who Is In Charge?
Currently, [Bradley M. Kuhn](http://ebb.org/bkuhn/) is the editor-in-chief of
-this Guide project. However, many other contributors have given patches and
-improvements to the text. Review the
+this Guide project. Bradley shares commit access with Ben Cotton, Donald
+Roberston, and Engel Nyst.
+
+Also, many other contributors have given patches and improvements to the
+text. Review the
[commit log in the Git repository](https://k.copyleft.org/guide/changelog)
for more details on who has contributed to the project.
From c7bf90446e453c51153214cd9d30a40b01fb2414 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 25 Oct 2016 15:24:07 -0700
Subject: [PATCH 03/43] Correct reference to wrong section.
---
CONTRIBUTING.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c6e440a..4d63032 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -83,7 +83,8 @@ procedures when doing so:
0. Target all changes for the 'next' branch (see below). Likely, use of a
secondary branch will be useful for the following steps (perhaps use the
- procedure below entitled "Contributing via Gitorious" to do so).
+ procedure below entitled "Contributing via copyleft.org's Kallithea
+ instance" to do so).
1. If possible, follow this procedure for the first commit that begins the
work of integrating the third party text.
From be0abd7b1e186d5d9863d13eccea8cf2e39c79e4 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 25 Oct 2016 15:34:29 -0700
Subject: [PATCH 04/43] Document the One Rule for merging into master.
---
CONTRIBUTING.md | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 4d63032..a198162 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -175,7 +175,9 @@ spelling, grammar, formatting or anything urgent, submitting a patch against
'master' may make more sense.
To use the instructions below for proposals against the 'master' branch, just
-replace 'next' everywhere below with 'master'.
+replace 'next' everywhere below with 'master'. However, please read below
+the section entitled "Why Changes Should Target 'next' Branch" below before
+pushing anything to the master branch.
### Contributing via copyleft.org's Kallithea instance
@@ -284,6 +286,31 @@ request.
about the merge request. Include the URL of the merge request in the
post.
+## Why Changes Should Target 'next' Branch
+
+The instructions above encourage you to submit your changes to the 'next'
+branch, which is found
+[on k.copyleft.org](https://k.copyleft.org/guide/files/next), and is
+auto-deployed to
+[copyleft.org/guide-next/](https://copyleft.org/guide-next/).
+
+The "official" Copyleft Guide is published on
+[copyleft.org/guide/](https://copyleft.org/guide/) automatically from the
+'master' branch of the repository.
+
+Since many use this Guide as a reference, non-trivial changes are merged into
+the "official" Copyleft Guide carefully and only after
+discussion on
+[the mailing list](http://lists.copyleft.org/cgi-bin/mailman/listinfo/discuss).
+
+There is one key rule with regard to merging changes from 'next' to 'master':
+
+> Treat 'master' branch as if by committing there, you have single-handledly
+> defined for the world what copyleft is.
+
+If you have commit access to the public master branch, please carefully head
+this.
+
## Gitorious Apocalypse Recovery
If you used to contribute via Gitorious, *don't panic*! We were careful to
From e670a6ed6caf10df6ce779ffb7914a26dcd344d1 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 06:51:59 -0500
Subject: [PATCH 05/43] Copy 1hr-GPL.markdown to specific-sections.md
cp 1hr-GPL/1hr-GPL.markdown 30min-specific-sections/specific-sections.md
Start from the 1hr version to make a short version that talks about just
a few specific sections of the GPL.
---
.../specific-sections.md | 418 ++++++++++++++++++
1 file changed, 418 insertions(+)
create mode 100644 presentations/30min-specific-sections/specific-sections.md
diff --git a/presentations/30min-specific-sections/specific-sections.md b/presentations/30min-specific-sections/specific-sections.md
new file mode 100644
index 0000000..5c28913
--- /dev/null
+++ b/presentations/30min-specific-sections/specific-sections.md
@@ -0,0 +1,418 @@
+% Brief Introduction to the GNU General Public License
+% Bradley M. Kuhn
+% Monday 24 March 2014
+
+
+# Audience Polls
+
++ My 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.
+
++ Please, don't be embarrassed:
+ + Ever GPL expert in the world, including me, started as a student who
+ knew none of this.
+
+# IANAL
+
+IANAL
+
+# My Affiliations
+
++ Formerly had John's job, Executive Director of FSF, years ago.
+
++ Currently: on Board of Directors of FSF.
+
++ President of Software Freedom Conservancy.
+
+# How These Orgs Relate to GPL?
+
++ FSF
+ + Invented copyleft.
+ + Authors & stewards of the GPL.
+ + Holder of copyrights on many key GNU programs …
+ + … and therefore enforcers of those copyrights.
+
++ Software Freedom Conservancy
+ + Adviser on legal issues of copyright, etc. to Free Software projects.
+ + Holder of some copyrights on its member projects.
+ + Enforcer of GPL on behalf of many copyright holders in:
+ + BusyBox, Samba, Mercurial, and the kernel named Linux.
+
+# How this Hour Will Go?
+
++ Materials presented will mix the simple & complex.
+
++ We cannot possibly cover the entire GPL in one hour.
+
++ Discuss: motivations, origins, then a few of GPL's sections.
+
++ I understand the mix of backgrounds in the audience.
+
+# A Restaurant's Lawyer?
+
++ Considering why you want to learn this.
+
++ What if your client was a restaurant?
+
++ What would you want to need to know?
+
+# Restaurant Lawyer: What'd You Study?
+
++ If you were a restaurant's lawyer:
+
++ Probably three areas of law you'd focus on:
+ + building codes.
+ + health and safety regulations.
+ + tax regulations.
+
++ Who would want to hear from?
+
+# Restaurant Lawyer: What'd You Study?
+
++ Figure out the motivations behind the building code:
+ + What parts are arcane and less important to inspectors?
+ + How do inspections work?
+ + What are the penalties?
+
++ Figure out the same for health & safety:
+ + Who inspects, and when?
+ + What's the health code say, and what checklist do inspectors use?
+
++ Likely Questions:
+ + Who's in charge of all this?
+ + What's purpose and intent of these regulations?
+ + Can I meet the inspectors?
+
+# Why Listen To Us?
+
++ FSF: Understanding the purpose and intent of the GPL.
+
++ Conservancy & FSF:
+ + both enforce the GPL.
+ + if your client violates, you will hear from one of us.
+
++ Such access to drafters, interpreters, enforcers is highly unique.
+
++ 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.
+
+
+
+
+
+> Copyright protection subsists … original works of authorship fixed in any tangible medium of expression … from which they can be perceived, reproduced, or otherwise communicated, either directly or with the aid of a machine or device.
+
+
+ — 17 USC §102
+
+
+
+# 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 tell your
+ client to use the proprietary software instead.
+
++ That way, they know the answer to every question is “no”
+
++ rather than: “yes, but only as long as you …”
+
+# 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.
+
+# Considering Sections of the GPL
+
++ With the remaining time …
+ + in interest of the experts in the audience …
+ + let's dig into a few specific sections.
+
++ GPL ♥ 17 USC§106(2) & 17 USC§106(3)
+
++ Modification and distribution.
+
+# Why Permission to Modify?
+
++ Your new copyrights are your copyrights:
+ + you are affixing it in a tangible medium.
+
++ Exclusive right of copyright holders:
+ + Control on “preparation of derivative works”
+ + Distribution of the work.
+ + Note the combination of these.
+
++ Again, see 17 USC§106
+
++ N.B.: “derivative works” is USA-centric, modify is more international)
+
+# 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)
+
+
+[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:
+
+
+a) You must cause the modified files to carry prominent notices stating
+that you changed the files and the date of any change.
+
+
+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.
+
+
+
+# GPLv3§5(a-c)
+
+
+
+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:
+
+
+a) The work must carry prominent notices stating that you modified it, and
+giving a relevant date.
+
+
+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".
+
+
+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.
+
+
+
+# GPLv2§2¶ penultimates
+
+
+
+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.
+
+
+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.
+
+
+
+
+# GPLv3 §0 ¶1-5
+
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+
+ "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.
+
+
+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.
+
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+
+# 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)
+
+
+
+
[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:
+
+
+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,
+
+
+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;
+
+
+
+# GPLv3 § 6(a-b)
+
+
+
+[GPLv3 § ] 6. Conveying Non-Source Forms.
+
+
+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:
+
+
+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.
+
+
+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.
+
+
+
+# GPLv3 § 1 ¶ 1, 4-6
+
+
+
+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.
+
+
+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.
+
+
+The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+
+The Corresponding Source for a work in source code form is that
+same work.
+
+
+
+
+# The GPL is a Complex Topic
+
++ An in-depth seminar on GPL's provisions is a one-day course …
+ + … but the written materials discuss every section in depth.
+
++ Keep in mind: every requirement has a carefully considered purpose to
+ uphold freedom of users.
+
++ Software freedom licenses have a moral perspective.
+ + This is probably the most difficult thing for lawyers to understand.
From 079ce32bf0b4fbb09b47727c1e482b658636feb9 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 07:02:13 -0500
Subject: [PATCH 06/43] Shorten length; include only section discussion
Shorten this down to include discussion only of specific GPL sections.
---
.../specific-sections.md | 181 +-----------------
1 file changed, 3 insertions(+), 178 deletions(-)
diff --git a/presentations/30min-specific-sections/specific-sections.md b/presentations/30min-specific-sections/specific-sections.md
index 5c28913..f89f524 100644
--- a/presentations/30min-specific-sections/specific-sections.md
+++ b/presentations/30min-specific-sections/specific-sections.md
@@ -1,141 +1,8 @@
-% Brief Introduction to the GNU General Public License
+% Considering Key Sections of the GPL
% Bradley M. Kuhn
-% Monday 24 March 2014
+% Tuesday 9 May 2017
-# Audience Polls
-
-+ My 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.
-
-+ Please, don't be embarrassed:
- + Ever GPL expert in the world, including me, started as a student who
- knew none of this.
-
-# IANAL
-
-IANAL
-
-# My Affiliations
-
-+ Formerly had John's job, Executive Director of FSF, years ago.
-
-+ Currently: on Board of Directors of FSF.
-
-+ President of Software Freedom Conservancy.
-
-# How These Orgs Relate to GPL?
-
-+ FSF
- + Invented copyleft.
- + Authors & stewards of the GPL.
- + Holder of copyrights on many key GNU programs …
- + … and therefore enforcers of those copyrights.
-
-+ Software Freedom Conservancy
- + Adviser on legal issues of copyright, etc. to Free Software projects.
- + Holder of some copyrights on its member projects.
- + Enforcer of GPL on behalf of many copyright holders in:
- + BusyBox, Samba, Mercurial, and the kernel named Linux.
-
-# How this Hour Will Go?
-
-+ Materials presented will mix the simple & complex.
-
-+ We cannot possibly cover the entire GPL in one hour.
-
-+ Discuss: motivations, origins, then a few of GPL's sections.
-
-+ I understand the mix of backgrounds in the audience.
-
-# A Restaurant's Lawyer?
-
-+ Considering why you want to learn this.
-
-+ What if your client was a restaurant?
-
-+ What would you want to need to know?
-
-# Restaurant Lawyer: What'd You Study?
-
-+ If you were a restaurant's lawyer:
-
-+ Probably three areas of law you'd focus on:
- + building codes.
- + health and safety regulations.
- + tax regulations.
-
-+ Who would want to hear from?
-
-# Restaurant Lawyer: What'd You Study?
-
-+ Figure out the motivations behind the building code:
- + What parts are arcane and less important to inspectors?
- + How do inspections work?
- + What are the penalties?
-
-+ Figure out the same for health & safety:
- + Who inspects, and when?
- + What's the health code say, and what checklist do inspectors use?
-
-+ Likely Questions:
- + Who's in charge of all this?
- + What's purpose and intent of these regulations?
- + Can I meet the inspectors?
-
-# Why Listen To Us?
-
-+ FSF: Understanding the purpose and intent of the GPL.
-
-+ Conservancy & FSF:
- + both enforce the GPL.
- + if your client violates, you will hear from one of us.
-
-+ Such access to drafters, interpreters, enforcers is highly unique.
-
-+ 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.
-
-
-
-
-
-> Copyright protection subsists … original works of authorship fixed in any tangible medium of expression … from which they can be perceived, reproduced, or otherwise communicated, either directly or with the aid of a machine or device.
-
-
- — 17 USC §102
-
-
-
# Conditional Permissions
+ A copyleft license grants copyright permissions, conditionally.
@@ -148,41 +15,11 @@
+ 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 tell your
- client to use the proprietary software instead.
-
-+ That way, they know the answer to every question is “no”
-
-+ rather than: “yes, but only as long as you …”
-
-# 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.
-
# Considering Sections of the GPL
-+ With the remaining time …
- + in interest of the experts in the audience …
- + let's dig into a few specific sections.
-
+ GPL ♥ 17 USC§106(2) & 17 USC§106(3)
-+ Modification and distribution.
++ GPL hinges on modification and distribution.
# Why Permission to Modify?
@@ -404,15 +241,3 @@ The Corresponding Source for a work in source code form is that
same work.
-
-
-# The GPL is a Complex Topic
-
-+ An in-depth seminar on GPL's provisions is a one-day course …
- + … but the written materials discuss every section in depth.
-
-+ Keep in mind: every requirement has a carefully considered purpose to
- uphold freedom of users.
-
-+ Software freedom licenses have a moral perspective.
- + This is probably the most difficult thing for lawyers to understand.
From cee13b2be4e76729d93f27c8488c4b82fb3f8d43 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 07:07:10 -0500
Subject: [PATCH 07/43] Add final slide with links to pertinent sections.
---
.../30min-specific-sections/specific-sections.md | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/presentations/30min-specific-sections/specific-sections.md b/presentations/30min-specific-sections/specific-sections.md
index f89f524..1c4a391 100644
--- a/presentations/30min-specific-sections/specific-sections.md
+++ b/presentations/30min-specific-sections/specific-sections.md
@@ -241,3 +241,16 @@ The Corresponding Source for a work in source code form is that
same work.
+
+# More Info / Talk License
+
+
+
++ Specific Sections of Copyleft Guide relating to these topics:
+ - [Modified Source and Binary Distribution](https://copyleft.org/guide/comprehensive-gpl-guidech6.html#x9-410005)
+ - [GPLv3 §5: Modified Source](https://copyleft.org/guide/comprehensive-gpl-guidech10.html#x13-780009.8)
+ - [GPLv3 §6: Non-Source and Corresponding Source](https://copyleft.org/guide/comprehensive-gpl-guidech10.html#x13-790009.9)
+
+
+Presentation and slides are: Copyright © Bradley M. Kuhn (2008–2011, 2015, 2017), Karen M. Sandler (2017), and are licensed under the Creative Commons Attribution-Share Alike 4.0 International License.
+
From ed0b045c26f5f03b46df29c75960d2ecd93c4ff3 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 07:15:39 -0500
Subject: [PATCH 08/43] 2hr compliance to select sides for violation intro
cp -pa presentations/2hr-GPL-compliance-focus/2hr-GPL.md presentations/20min-violation-intro/violation-intro.md
---
.../20min-violation-intro/violation-intro.md | 766 ++++++++++++++++++
1 file changed, 766 insertions(+)
create mode 100644 presentations/20min-violation-intro/violation-intro.md
diff --git a/presentations/20min-violation-intro/violation-intro.md b/presentations/20min-violation-intro/violation-intro.md
new file mode 100644
index 0000000..8a99469
--- /dev/null
+++ b/presentations/20min-violation-intro/violation-intro.md
@@ -0,0 +1,766 @@
+% A Practical Guide to Compliance with the GNU GPL
+% Bradley M. Kuhn and Karen M. Sandler
+% Thursday 19 January 2016
+
+
+# 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)
+
+
+[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:
+
+
+a) You must cause the modified files to carry prominent notices stating
+that you changed the files and the date of any change.
+
+
+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.
+
+
+
+# GPLv3§5(a-c)
+
+
+
+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:
+
+
+a) The work must carry prominent notices stating that you modified it, and
+giving a relevant date.
+
+
+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".
+
+
+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.
+
+
+
+# GPLv2§2¶ penultimates
+
+
+
+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.
+
+
+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.
+
+
+
+
+# GPLv3 §0 ¶1-5
+
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+
+ "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.
+
+
+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.
+
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+
+# 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)
+
+
+
+
[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:
+
+
+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,
+
+
+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;
+
+
+
+# GPLv3 § 6(a-b)
+
+
+
+[GPLv3 § ] 6. Conveying Non-Source Forms.
+
+
+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:
+
+
+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.
+
+
+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.
+
+
+
+# GPLv3 § 1 ¶ 1, 4-6
+
+
+
+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.
+
+
+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.
+
+
+The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+
+The Corresponding Source for a work in source code form is that
+same work.
+
+
+
+# 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
+
+
+ The primary issues we found were a dearth of build instructions as well
+ as a complete lack of installation instructions. There was no
+ information that mentioned how one might build each package so we had to
+ guess about which Makefile and/or build script to run for each package.
+ And in many cases it was not possible or straight-forward to build - this
+ must be resolved in the next source candidate.
+
+# Making General Recommendations
+
+
+ We generally recommend that the source release be a single file (ie. one
+ tarball containing all packages required for the build) that includes a
+ README or similar in the main directory explaining exactly how to build
+ and install all of the packages. See section 21.2 of
+ http://compliance.guide/pristine-example for an excellent example.
+
+# Suspicious, But Not Captious.
+
+
+ Also, we noticed that some packages mentioned in the "OPEN SOURCE
+ SOFTWARE NOTICE" included with the device (and also downloaded as part of
+ the source release; see
+ Open_Source_Software_Notice_and_Privacy_Policy.pdf ) could not be found
+ in the source release. For example, we found "Software: Samba 3.0.XX" in
+ the notice, but could not find any trace of Samba in the source release.
+ Please ensure that all the software included in the notice is included in
+ the source release as well.
+
+# Nesting Doll Packages
+
+
+
+ Once extracted, the 3 .rar files above produce the following output
+ files:
+ * busybox-1.21.1.rar
+ * AB_A0101.123.tar.gz
+ * source.rar
+ * a small text file that gives two-word descriptions of the above files
+
+
+# Actual(ly Trying to) Build
+
+
+
+ This file included no instructions for how one might build it so we
+ tried to run "make" but received the following error:
+
+ $ make
+ .../busybox-1.21.1/scripts/gcc-version.sh: line 11:
+ arm-none-linux-gnueabi-gcc: command not found
+
+# Toolchain?
+
++ The toolchain is rarely considered mandatory as part of “the
+ scripts”.
+
++ Admittedly, it doesn't *control* compilation, it *is* compilation.
+
++ The script here is explaining precisely what type of toolchain is needed.
+
++ Something like: “GCC vX built with the following ./configure
+ line” is usually adequate.
+
++ But including the toolchain is a nice step to make it easy for your users.
+
+
+> the scripts used to **control compilation** and installation of the executable.
+
+
+— GPLv2§3
+
+
+
+# We Guess at Compiler Anyway
+
+
+ So we searched for an arm-none-linux-gnueabi- cross-compiler in the
+ other files but could not find one. We then tried to use our own (be
+ editing the PATH appropriately), which did get us past this error. Note
+ that this is not acceptable in a source release - the cross-compiler
+ that a user must use needs to be clearly indicated (name, version, etc.)
+ and/or included with the source release.
+
+# Feedback on Small Problems
+
+
+
+ Once we had the custom cross-compiler configured, we then ran into these
+ errors:
+
+ $ make
+ .../busybox-1.21.1/scripts/gen_build_files.sh: Permission denied
+ make: *** [gen_build_files] Error 127
+
+ $ make
+ .../busybox-1.21.1/scripts/mkconfigs: Permission denied
+ make: *** [include/config/MARKER] Error 126
+
+ $ make
+ /bin/sh: applets/usage_compressed: Permission denied
+ make[1]: *** [include/usage_compressed.h] Error 126
+ make: *** [applets_dir] Error 2
+
+ $ make
+ .../busybox-1.21.1/scripts/trylink: Permission denied
+ make: *** [busybox_unstripped] Error 126
+
+ In each case, we found the mentioned file and then added executable
+ permissions to it (ie. "chmod u+x scripts/gen_build_files.sh"). This
+ must be fixed in the next source release - please set the executable
+ bits on the above files appropriately in the archive file you
+ distribute.
+
+# Install Instructions missing
+
+
+ After fixing the above, a "busybox" binary was generated. However,
+ there were no instructions to indicate how one might install this binary
+ on the device. Such instructions are required by GPLv2, under which
+ BusyBox is licensed. Please include the instructions in your next
+ source release.
+
+# Build "Only Seems" To build
+
+
+ For the AAB_A0101.123.tar.gz package, we ran "./build.sh", the build
+ took about 140 seconds, which is less than one would expect for building
+ all of the programs listed in the "OPEN SOURCE SOFTWARE NOTICE". The
+ only files we could immediately find that were clearly the result of
+ this "./build.sh" invocation were some kernel image binaries, found in
+ path/path/path/path/path/KERNEL_OBJ . This path was not mentioned at
+ all and we had to guess at where they might be.
+
+# Maybe Proprietary Kernel Modules?
+
+
+ Furthermore, there were no .ko files generated, which is abnormal for a
+ build of the kernel, Linux. Please ensure that all .ko files which are
+ used on the system are generated with "./build.sh" or a similar script.
+
+# Weird versioning
+
+
+
+ * The following libraries have different versions in the firmware than
+ is built from the candidate CCS. Specifically, your candidate CCS
+ contains version "1800", and the firmware has version "2400". Since
+ most of these libraries are licensed under the LGPL, you are required
+ to have the complete, corresponding source present for the correct
+ version as distributed in the firmware. You also must include the
+ "scripts to control compilation and installation of the executable".
+
+ * lib/libgio-2.0.so.0.2400.2
+ * lib/libglib-2.0.so.0.2400.2
+ * lib/libgmodule-2.0.so.0.2400.2
+ * lib/libgobject-2.0.so.0.2400.2
+ * lib/libgthread-2.0.so.0.2400.2
+ * lib/libz.so.1.2.5 (version 1.2.2 is provided in the sources)
+
+# Weird Build Issues Over Many Candidates
+
+
+ You mentioned in your Round 6 commentary that you have corrected the
+ thatlib issues. However, we are unable to see what you mean. There are
+ now two copies of thatlib, one in 2624.7_524/uclinux-rootfs/lib/thatlib/,
+ as well as the one in yourlibs. We aren't sure which one you intend to
+ be built to generate the binaries on the firmware. When we try to build
+ the yourlibs one from scratch, by cleaning the whole area, we get the
+ following build issues. Here's what we did:
+
+# Getting Really build-technical
+
+
+
+ We ran:
+
+ make -C libsrc/thatlib install
+
+ which did not work because of a missing Makefile error. We read the
+ build source and discovered that the Makefile, etc, for that directory
+ is generated by running:
+
+ cd libsrc/thatlib/thatlib-0.9.22_mipsel-uclibc; sh configure_thatlib_mipsel-uclibc
+
+ Once we did that
+
+ make -C libsrc/thatlib install
+
+ worked correctly. The only remaining binaries were in build source and
+ discovered that the Makefile, etc, for that directory is generated by
+ running:
+
+ cd libsrc/thatlib/thatlib-0.9.22_mipsel-uclibc; sh configure_thatlib_mipsel-uclibc
+
+# Getting Really build-technical
+
+
+
+ Once we did that
+
+ make -C libsrc/thatlib install
+
+ worked correctly. The only remaining binaries were in
+ ./libsrc/thatlib/\{YOURLIB_ROOT_DIR\}/ which looks like a build with a
+ misconfigured environment somehow, so we simply removed that
+ directory.
+
+ Then, after running make clean, thatlib failed with the following
+ errors. Random .o/.so files laying around in the thatlib source
+ directory, and then it failing to build correctly after they are
+ removed. If there some set of .so files you claim are not required
+ as part of the C&CS since thatlib is LGPL'd, we understand that, but
+ the rest of the sources must build and install those other .so's.
+ Here's the build error we get in the bdvdlibs version:
+
+# Getting Really build-technical
+
+
+
+ mkdir .libs/libthatlibwm_default.a.tmp
+ (cd .libs/libthatlibwm_default.a.tmp && ar x ../../.libs/libthatlibwm_default.a)
+ mkdir .libs/libthatlibwm_default.a.tmp
+ (cd .libs/libthatlibwm_default.a.tmp && ar x ../../.libs/libthatlibwm_default.a)
+ /opt/toolchains/crosstools_sf-linux-2.6.18.0_gcc-4.2-9ts_uclibc-nptl-0.9.29-20070423_20080702/bin//mipsel-uclibc-
+ ld -o libthatlibwm_default.o -r .libs/libthatlibwm_default.a.tmp/*.o
+ /opt/toolchains/crosstools_sf-linux-2.6.18.0_gcc-4.2-9ts_uclibc-nptl-0.9.29-20070423_20080702/bin//mipsel-uclibc-
+ ld: .libs/libthatlibwm_default.a.tmp/default.o: Relocations in generic ELF (EM: 3)
+ /opt/toolchains/crosstools_sf-linux-2.6.18.0_gcc-4.2-9ts_uclibc-nptl-0.9.29-20070423_20080702/bin//mipsel-uclibc-
+ ld: .libs/libthatlibwm_default.a.tmp/default.o: Relocations in generic ELF (EM: 3)
+ /opt/toolchains/crosstools_sf-linux-2.6.18.0_gcc-4.2-9ts_uclibc-nptl-0.9.29-20070423_20080702/bin//mipsel-uclibc-
+ ld: .libs/libthatlibwm_default.a.tmp/default.o: Relocations in generic ELF (EM: 3)
+ /opt/toolchains/crosstools_sf-linux-2.6.18.0_gcc-4.2-9ts_uclibc-nptl-0.9.29-20070423_20080702/bin//mipsel-uclibc-
+ ld: .libs/libthatlibwm_default.a.tmp/default.o: Relocations in generic ELF (EM: 3)
+ .libs/libthatlibwm_default.a.tmp/default.o: could not read symbols: File in wrong format
+ make[4]: *** [libthatlibwm_default.o] Error 1
+
+# Proprietary Linux Modules Are Everywhere
+
+
+ We did find one .ko file that was already included in the package, but
+ wasn't built when we ran "./build.sh". This is
+ path/path/android_X.X/device/device-type/mydevice.ko , which notes that
+ its license is "GPL v2" in the modinfo, but for which we could find no
+ source code in the source release. Please ensure that the source code
+ for mydevice.ko is included in the next source candidate.
+
+# Proprietary Linux Modules Are Everywhere
+
+
+
+ * The following files are derivative of the kernel named Linux and
+ therefore covered by the GPL. However, no source code, scripts to
+ control compilation nor installation are included in your CCS
+ candidate:
+ lib/modules/myfilesystem.ko
+ lib/modules/mydevicecontroller.ko
+ lib/modules/myblockdevice.ko
+ lib/modules/mypcicard.ko
+
+# Non-Technical GPL Compliance Issues
+
+
+ Regarding over the air updates: we'd like to see a screenshot or other
+ details documenting what has now been implemented by BestBuy to make
+ sure the offer for source appears to users appropriately after
+ upgrade. There was a consensus reached on the last conference call
+ how this would be done, so we only need follow up and implementation
+ on that.
+
+
+# Binary Comparison.
+
+
+
+ Note that we did not receive a firmware image to compare this with
+ (though we do have the device). Company's website did not appear to
+ have any firmware images available for download. It would be helpful to
+ have such an image for the next CCS check.
+
+ The above source candidate was downloaded from
+ http:///sourcez.company.com/en/search/index.htm?keywords=X1234Y, which
+ was alluded to in Company's 2017-01-18 email to us that said:
+
+ "You can check this website
+ http://sourcez.company.com/en/search/index.htm "
+
+ The email did not mention how to use that website, but we found that by
+ entering "X1234Y" into the top right search box that we could find the
+ source file list.
+
+ Note that the offer for source included in the web UI of the device said
+ to email NAME@COMPANY.com , which is how the above instructions for
+ downloading the source were received.
+
+
+
+
+# More Info / Talk License
+
+
+
++ 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).
+
+
+Presentation and slides are: Copyright © Bradley M. Kuhn (2008–2011, 2015, 2017), Karen M. Sandler (2017), and are licensed under the Creative Commons Attribution-Share Alike 4.0 International License.
+
From 82d46f8782fbcc526d8a22fa8d8be3bc2960b851 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 07:27:37 -0500
Subject: [PATCH 09/43] Reduce slides to only those introducing violations
---
.../20min-violation-intro/violation-intro.md | 643 +-----------------
1 file changed, 2 insertions(+), 641 deletions(-)
diff --git a/presentations/20min-violation-intro/violation-intro.md b/presentations/20min-violation-intro/violation-intro.md
index 8a99469..1cbc270 100644
--- a/presentations/20min-violation-intro/violation-intro.md
+++ b/presentations/20min-violation-intro/violation-intro.md
@@ -1,337 +1,7 @@
-% A Practical Guide to Compliance with the GNU GPL
-% Bradley M. Kuhn and Karen M. Sandler
+% The What and How of GPL Violations
+% Bradley M. Kuhn
% Thursday 19 January 2016
-
-# 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)
-
-
-[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:
-
-
-a) You must cause the modified files to carry prominent notices stating
-that you changed the files and the date of any change.
-
-
-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.
-
-
-
-# GPLv3§5(a-c)
-
-
-
-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:
-
-
-a) The work must carry prominent notices stating that you modified it, and
-giving a relevant date.
-
-
-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".
-
-
-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.
-
-
-
-# GPLv2§2¶ penultimates
-
-
-
-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.
-
-
-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.
-
-
-
-
-# GPLv3 §0 ¶1-5
-
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
-
- "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.
-
-
-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.
-
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
-
-# 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)
-
-
-
-
[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:
-
-
-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,
-
-
-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;
-
-
-
-# GPLv3 § 6(a-b)
-
-
-
-[GPLv3 § ] 6. Conveying Non-Source Forms.
-
-
-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:
-
-
-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.
-
-
-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.
-
-
-
-# GPLv3 § 1 ¶ 1, 4-6
-
-
-
-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.
-
-
-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.
-
-
-The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
-
-The Corresponding Source for a work in source code form is that
-same work.
-
-
-
# What's a GPL Violation?
+ GPL (both v2 and v3) require:
@@ -447,319 +117,10 @@ same work.
+ The worst I've ever experienced is 22 rounds.
+ We send detailed reports.
-
-# No Build Instructions
-
-
- The primary issues we found were a dearth of build instructions as well
- as a complete lack of installation instructions. There was no
- information that mentioned how one might build each package so we had to
- guess about which Makefile and/or build script to run for each package.
- And in many cases it was not possible or straight-forward to build - this
- must be resolved in the next source candidate.
-
-# Making General Recommendations
-
-
- We generally recommend that the source release be a single file (ie. one
- tarball containing all packages required for the build) that includes a
- README or similar in the main directory explaining exactly how to build
- and install all of the packages. See section 21.2 of
- http://compliance.guide/pristine-example for an excellent example.
-
-# Suspicious, But Not Captious.
-
-
- Also, we noticed that some packages mentioned in the "OPEN SOURCE
- SOFTWARE NOTICE" included with the device (and also downloaded as part of
- the source release; see
- Open_Source_Software_Notice_and_Privacy_Policy.pdf ) could not be found
- in the source release. For example, we found "Software: Samba 3.0.XX" in
- the notice, but could not find any trace of Samba in the source release.
- Please ensure that all the software included in the notice is included in
- the source release as well.
-
-# Nesting Doll Packages
-
-
-
- Once extracted, the 3 .rar files above produce the following output
- files:
- * busybox-1.21.1.rar
- * AB_A0101.123.tar.gz
- * source.rar
- * a small text file that gives two-word descriptions of the above files
-
-
-# Actual(ly Trying to) Build
-
-
-
- This file included no instructions for how one might build it so we
- tried to run "make" but received the following error:
-
- $ make
- .../busybox-1.21.1/scripts/gcc-version.sh: line 11:
- arm-none-linux-gnueabi-gcc: command not found
-
-# Toolchain?
-
-+ The toolchain is rarely considered mandatory as part of “the
- scripts”.
-
-+ Admittedly, it doesn't *control* compilation, it *is* compilation.
-
-+ The script here is explaining precisely what type of toolchain is needed.
-
-+ Something like: “GCC vX built with the following ./configure
- line” is usually adequate.
-
-+ But including the toolchain is a nice step to make it easy for your users.
-
-
-> the scripts used to **control compilation** and installation of the executable.
-
-
-— GPLv2§3
-
-
-
-# We Guess at Compiler Anyway
-
-
- So we searched for an arm-none-linux-gnueabi- cross-compiler in the
- other files but could not find one. We then tried to use our own (be
- editing the PATH appropriately), which did get us past this error. Note
- that this is not acceptable in a source release - the cross-compiler
- that a user must use needs to be clearly indicated (name, version, etc.)
- and/or included with the source release.
-
-# Feedback on Small Problems
-
-
-
- Once we had the custom cross-compiler configured, we then ran into these
- errors:
-
- $ make
- .../busybox-1.21.1/scripts/gen_build_files.sh: Permission denied
- make: *** [gen_build_files] Error 127
-
- $ make
- .../busybox-1.21.1/scripts/mkconfigs: Permission denied
- make: *** [include/config/MARKER] Error 126
-
- $ make
- /bin/sh: applets/usage_compressed: Permission denied
- make[1]: *** [include/usage_compressed.h] Error 126
- make: *** [applets_dir] Error 2
-
- $ make
- .../busybox-1.21.1/scripts/trylink: Permission denied
- make: *** [busybox_unstripped] Error 126
-
- In each case, we found the mentioned file and then added executable
- permissions to it (ie. "chmod u+x scripts/gen_build_files.sh"). This
- must be fixed in the next source release - please set the executable
- bits on the above files appropriately in the archive file you
- distribute.
-
-# Install Instructions missing
-
-
- After fixing the above, a "busybox" binary was generated. However,
- there were no instructions to indicate how one might install this binary
- on the device. Such instructions are required by GPLv2, under which
- BusyBox is licensed. Please include the instructions in your next
- source release.
-
-# Build "Only Seems" To build
-
-
- For the AAB_A0101.123.tar.gz package, we ran "./build.sh", the build
- took about 140 seconds, which is less than one would expect for building
- all of the programs listed in the "OPEN SOURCE SOFTWARE NOTICE". The
- only files we could immediately find that were clearly the result of
- this "./build.sh" invocation were some kernel image binaries, found in
- path/path/path/path/path/KERNEL_OBJ . This path was not mentioned at
- all and we had to guess at where they might be.
-
-# Maybe Proprietary Kernel Modules?
-
-
- Furthermore, there were no .ko files generated, which is abnormal for a
- build of the kernel, Linux. Please ensure that all .ko files which are
- used on the system are generated with "./build.sh" or a similar script.
-
-# Weird versioning
-
-
-
- * The following libraries have different versions in the firmware than
- is built from the candidate CCS. Specifically, your candidate CCS
- contains version "1800", and the firmware has version "2400". Since
- most of these libraries are licensed under the LGPL, you are required
- to have the complete, corresponding source present for the correct
- version as distributed in the firmware. You also must include the
- "scripts to control compilation and installation of the executable".
-
- * lib/libgio-2.0.so.0.2400.2
- * lib/libglib-2.0.so.0.2400.2
- * lib/libgmodule-2.0.so.0.2400.2
- * lib/libgobject-2.0.so.0.2400.2
- * lib/libgthread-2.0.so.0.2400.2
- * lib/libz.so.1.2.5 (version 1.2.2 is provided in the sources)
-
-# Weird Build Issues Over Many Candidates
-
-
- You mentioned in your Round 6 commentary that you have corrected the
- thatlib issues. However, we are unable to see what you mean. There are
- now two copies of thatlib, one in 2624.7_524/uclinux-rootfs/lib/thatlib/,
- as well as the one in yourlibs. We aren't sure which one you intend to
- be built to generate the binaries on the firmware. When we try to build
- the yourlibs one from scratch, by cleaning the whole area, we get the
- following build issues. Here's what we did:
-
-# Getting Really build-technical
-
-
-
- We ran:
-
- make -C libsrc/thatlib install
-
- which did not work because of a missing Makefile error. We read the
- build source and discovered that the Makefile, etc, for that directory
- is generated by running:
-
- cd libsrc/thatlib/thatlib-0.9.22_mipsel-uclibc; sh configure_thatlib_mipsel-uclibc
-
- Once we did that
-
- make -C libsrc/thatlib install
-
- worked correctly. The only remaining binaries were in build source and
- discovered that the Makefile, etc, for that directory is generated by
- running:
-
- cd libsrc/thatlib/thatlib-0.9.22_mipsel-uclibc; sh configure_thatlib_mipsel-uclibc
-
-# Getting Really build-technical
-
-
-
- Once we did that
-
- make -C libsrc/thatlib install
-
- worked correctly. The only remaining binaries were in
- ./libsrc/thatlib/\{YOURLIB_ROOT_DIR\}/ which looks like a build with a
- misconfigured environment somehow, so we simply removed that
- directory.
-
- Then, after running make clean, thatlib failed with the following
- errors. Random .o/.so files laying around in the thatlib source
- directory, and then it failing to build correctly after they are
- removed. If there some set of .so files you claim are not required
- as part of the C&CS since thatlib is LGPL'd, we understand that, but
- the rest of the sources must build and install those other .so's.
- Here's the build error we get in the bdvdlibs version:
-
-# Getting Really build-technical
-
-
-
- mkdir .libs/libthatlibwm_default.a.tmp
- (cd .libs/libthatlibwm_default.a.tmp && ar x ../../.libs/libthatlibwm_default.a)
- mkdir .libs/libthatlibwm_default.a.tmp
- (cd .libs/libthatlibwm_default.a.tmp && ar x ../../.libs/libthatlibwm_default.a)
- /opt/toolchains/crosstools_sf-linux-2.6.18.0_gcc-4.2-9ts_uclibc-nptl-0.9.29-20070423_20080702/bin//mipsel-uclibc-
- ld -o libthatlibwm_default.o -r .libs/libthatlibwm_default.a.tmp/*.o
- /opt/toolchains/crosstools_sf-linux-2.6.18.0_gcc-4.2-9ts_uclibc-nptl-0.9.29-20070423_20080702/bin//mipsel-uclibc-
- ld: .libs/libthatlibwm_default.a.tmp/default.o: Relocations in generic ELF (EM: 3)
- /opt/toolchains/crosstools_sf-linux-2.6.18.0_gcc-4.2-9ts_uclibc-nptl-0.9.29-20070423_20080702/bin//mipsel-uclibc-
- ld: .libs/libthatlibwm_default.a.tmp/default.o: Relocations in generic ELF (EM: 3)
- /opt/toolchains/crosstools_sf-linux-2.6.18.0_gcc-4.2-9ts_uclibc-nptl-0.9.29-20070423_20080702/bin//mipsel-uclibc-
- ld: .libs/libthatlibwm_default.a.tmp/default.o: Relocations in generic ELF (EM: 3)
- /opt/toolchains/crosstools_sf-linux-2.6.18.0_gcc-4.2-9ts_uclibc-nptl-0.9.29-20070423_20080702/bin//mipsel-uclibc-
- ld: .libs/libthatlibwm_default.a.tmp/default.o: Relocations in generic ELF (EM: 3)
- .libs/libthatlibwm_default.a.tmp/default.o: could not read symbols: File in wrong format
- make[4]: *** [libthatlibwm_default.o] Error 1
-
-# Proprietary Linux Modules Are Everywhere
-
-
- We did find one .ko file that was already included in the package, but
- wasn't built when we ran "./build.sh". This is
- path/path/android_X.X/device/device-type/mydevice.ko , which notes that
- its license is "GPL v2" in the modinfo, but for which we could find no
- source code in the source release. Please ensure that the source code
- for mydevice.ko is included in the next source candidate.
-
-# Proprietary Linux Modules Are Everywhere
-
-
-
- * The following files are derivative of the kernel named Linux and
- therefore covered by the GPL. However, no source code, scripts to
- control compilation nor installation are included in your CCS
- candidate:
- lib/modules/myfilesystem.ko
- lib/modules/mydevicecontroller.ko
- lib/modules/myblockdevice.ko
- lib/modules/mypcicard.ko
-
-# Non-Technical GPL Compliance Issues
-
-
- Regarding over the air updates: we'd like to see a screenshot or other
- details documenting what has now been implemented by BestBuy to make
- sure the offer for source appears to users appropriately after
- upgrade. There was a consensus reached on the last conference call
- how this would be done, so we only need follow up and implementation
- on that.
-
-
-# Binary Comparison.
-
-
-
- Note that we did not receive a firmware image to compare this with
- (though we do have the device). Company's website did not appear to
- have any firmware images available for download. It would be helpful to
- have such an image for the next CCS check.
-
- The above source candidate was downloaded from
- http:///sourcez.company.com/en/search/index.htm?keywords=X1234Y, which
- was alluded to in Company's 2017-01-18 email to us that said:
-
- "You can check this website
- http://sourcez.company.com/en/search/index.htm "
-
- The email did not mention how to use that website, but we found that by
- entering "X1234Y" into the top right search box that we could find the
- source file list.
-
- Note that the offer for source included in the web UI of the device said
- to email NAME@COMPANY.com , which is how the above instructions for
- downloading the source were received.
-
-
-
-
# More Info / Talk License
-+ 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).
Presentation and slides are: Copyright © Bradley M. Kuhn (2008–2011, 2015, 2017), Karen M. Sandler (2017), and are licensed under the Creative Commons Attribution-Share Alike 4.0 International License.
From 21a273aea321199c32132ff0179dd220ca3a8d0e Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 07:39:25 -0500
Subject: [PATCH 10/43] Update date.
---
presentations/20min-violation-intro/violation-intro.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/presentations/20min-violation-intro/violation-intro.md b/presentations/20min-violation-intro/violation-intro.md
index 1cbc270..ed315e9 100644
--- a/presentations/20min-violation-intro/violation-intro.md
+++ b/presentations/20min-violation-intro/violation-intro.md
@@ -1,6 +1,6 @@
% The What and How of GPL Violations
% Bradley M. Kuhn
-% Thursday 19 January 2016
+% Tuesday 8 May 2017
# What's a GPL Violation?
From ed9ca638e9234d72ed4e7710f1f5627461f87063 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 07:39:39 -0500
Subject: [PATCH 11/43] CD is not the primary shipped media these days.
---
presentations/20min-violation-intro/violation-intro.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/presentations/20min-violation-intro/violation-intro.md b/presentations/20min-violation-intro/violation-intro.md
index ed315e9..029e02a 100644
--- a/presentations/20min-violation-intro/violation-intro.md
+++ b/presentations/20min-violation-intro/violation-intro.md
@@ -55,7 +55,7 @@
# Offer For Source
-+ Useful if not shipping CD already.
++ Useful if not shipping media already.
+ Lasts three years.
From 0c977a2d49d599f1acf799be68f9cb5249f1a8f1 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 07:39:48 -0500
Subject: [PATCH 12/43] Make plural.
---
presentations/20min-violation-intro/violation-intro.md | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/presentations/20min-violation-intro/violation-intro.md b/presentations/20min-violation-intro/violation-intro.md
index 029e02a..c1816bc 100644
--- a/presentations/20min-violation-intro/violation-intro.md
+++ b/presentations/20min-violation-intro/violation-intro.md
@@ -114,14 +114,12 @@
perfect.
+ but we don't live in an ideal world.
-+ The worst I've ever experienced is 22 rounds.
++ The worst we've ever experienced is 22 rounds.
+ We send detailed reports.
+
# More Info / Talk License
-
-Presentation and slides are: Copyright © Bradley M. Kuhn (2008–2011, 2015, 2017), Karen M. Sandler (2017), and are licensed under the Creative Commons Attribution-Share Alike 4.0 International License.
-
From 0d17adcb1a645aa0c1c498736b6d83d0140ea867 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 07:41:30 -0500
Subject: [PATCH 13/43] correct date again.
---
presentations/20min-violation-intro/violation-intro.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/presentations/20min-violation-intro/violation-intro.md b/presentations/20min-violation-intro/violation-intro.md
index c1816bc..6566c90 100644
--- a/presentations/20min-violation-intro/violation-intro.md
+++ b/presentations/20min-violation-intro/violation-intro.md
@@ -1,6 +1,6 @@
% The What and How of GPL Violations
% Bradley M. Kuhn
-% Tuesday 8 May 2017
+% Tuesday 9 May 2017
# What's a GPL Violation?
From c1f10c3379e8d96977ef2ff7f9245d888c032624 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 07:52:35 -0500
Subject: [PATCH 14/43] Larger presentation -> CCS report examples
cp -pa presentations/2hr-GPL-compliance-focus/2hr-GPL.md presentations/ccs-report-examples/ccs-examples.md
Plan to reduce this just to the CCS examples.
---
.../ccs-report-examples/ccs-examples.md | 766 ++++++++++++++++++
1 file changed, 766 insertions(+)
create mode 100644 presentations/ccs-report-examples/ccs-examples.md
diff --git a/presentations/ccs-report-examples/ccs-examples.md b/presentations/ccs-report-examples/ccs-examples.md
new file mode 100644
index 0000000..8a99469
--- /dev/null
+++ b/presentations/ccs-report-examples/ccs-examples.md
@@ -0,0 +1,766 @@
+% A Practical Guide to Compliance with the GNU GPL
+% Bradley M. Kuhn and Karen M. Sandler
+% Thursday 19 January 2016
+
+
+# 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)
+
+
+[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:
+
+
+a) You must cause the modified files to carry prominent notices stating
+that you changed the files and the date of any change.
+
+
+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.
+
+
+
+# GPLv3§5(a-c)
+
+
+
+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:
+
+
+a) The work must carry prominent notices stating that you modified it, and
+giving a relevant date.
+
+
+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".
+
+
+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.
+
+
+
+# GPLv2§2¶ penultimates
+
+
+
+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.
+
+
+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.
+
+
+
+
+# GPLv3 §0 ¶1-5
+
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+
+ "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.
+
+
+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.
+
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+
+# 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)
+
+
+
+
[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:
+
+
+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,
+
+
+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;
+
+
+
+# GPLv3 § 6(a-b)
+
+
+
+[GPLv3 § ] 6. Conveying Non-Source Forms.
+
+
+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:
+
+
+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.
+
+
+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.
+
+
+
+# GPLv3 § 1 ¶ 1, 4-6
+
+
+
+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.
+
+
+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.
+
+
+The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+
+The Corresponding Source for a work in source code form is that
+same work.
+
+
+
+# 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
+
+
+ The primary issues we found were a dearth of build instructions as well
+ as a complete lack of installation instructions. There was no
+ information that mentioned how one might build each package so we had to
+ guess about which Makefile and/or build script to run for each package.
+ And in many cases it was not possible or straight-forward to build - this
+ must be resolved in the next source candidate.
+
+# Making General Recommendations
+
+
+ We generally recommend that the source release be a single file (ie. one
+ tarball containing all packages required for the build) that includes a
+ README or similar in the main directory explaining exactly how to build
+ and install all of the packages. See section 21.2 of
+ http://compliance.guide/pristine-example for an excellent example.
+
+# Suspicious, But Not Captious.
+
+
+ Also, we noticed that some packages mentioned in the "OPEN SOURCE
+ SOFTWARE NOTICE" included with the device (and also downloaded as part of
+ the source release; see
+ Open_Source_Software_Notice_and_Privacy_Policy.pdf ) could not be found
+ in the source release. For example, we found "Software: Samba 3.0.XX" in
+ the notice, but could not find any trace of Samba in the source release.
+ Please ensure that all the software included in the notice is included in
+ the source release as well.
+
+# Nesting Doll Packages
+
+
+
+ Once extracted, the 3 .rar files above produce the following output
+ files:
+ * busybox-1.21.1.rar
+ * AB_A0101.123.tar.gz
+ * source.rar
+ * a small text file that gives two-word descriptions of the above files
+
+
+# Actual(ly Trying to) Build
+
+
+
+ This file included no instructions for how one might build it so we
+ tried to run "make" but received the following error:
+
+ $ make
+ .../busybox-1.21.1/scripts/gcc-version.sh: line 11:
+ arm-none-linux-gnueabi-gcc: command not found
+
+# Toolchain?
+
++ The toolchain is rarely considered mandatory as part of “the
+ scripts”.
+
++ Admittedly, it doesn't *control* compilation, it *is* compilation.
+
++ The script here is explaining precisely what type of toolchain is needed.
+
++ Something like: “GCC vX built with the following ./configure
+ line” is usually adequate.
+
++ But including the toolchain is a nice step to make it easy for your users.
+
+
+> the scripts used to **control compilation** and installation of the executable.
+
+
+— GPLv2§3
+
+
+
+# We Guess at Compiler Anyway
+
+
+ So we searched for an arm-none-linux-gnueabi- cross-compiler in the
+ other files but could not find one. We then tried to use our own (be
+ editing the PATH appropriately), which did get us past this error. Note
+ that this is not acceptable in a source release - the cross-compiler
+ that a user must use needs to be clearly indicated (name, version, etc.)
+ and/or included with the source release.
+
+# Feedback on Small Problems
+
+
+
+ Once we had the custom cross-compiler configured, we then ran into these
+ errors:
+
+ $ make
+ .../busybox-1.21.1/scripts/gen_build_files.sh: Permission denied
+ make: *** [gen_build_files] Error 127
+
+ $ make
+ .../busybox-1.21.1/scripts/mkconfigs: Permission denied
+ make: *** [include/config/MARKER] Error 126
+
+ $ make
+ /bin/sh: applets/usage_compressed: Permission denied
+ make[1]: *** [include/usage_compressed.h] Error 126
+ make: *** [applets_dir] Error 2
+
+ $ make
+ .../busybox-1.21.1/scripts/trylink: Permission denied
+ make: *** [busybox_unstripped] Error 126
+
+ In each case, we found the mentioned file and then added executable
+ permissions to it (ie. "chmod u+x scripts/gen_build_files.sh"). This
+ must be fixed in the next source release - please set the executable
+ bits on the above files appropriately in the archive file you
+ distribute.
+
+# Install Instructions missing
+
+
+ After fixing the above, a "busybox" binary was generated. However,
+ there were no instructions to indicate how one might install this binary
+ on the device. Such instructions are required by GPLv2, under which
+ BusyBox is licensed. Please include the instructions in your next
+ source release.
+
+# Build "Only Seems" To build
+
+
+ For the AAB_A0101.123.tar.gz package, we ran "./build.sh", the build
+ took about 140 seconds, which is less than one would expect for building
+ all of the programs listed in the "OPEN SOURCE SOFTWARE NOTICE". The
+ only files we could immediately find that were clearly the result of
+ this "./build.sh" invocation were some kernel image binaries, found in
+ path/path/path/path/path/KERNEL_OBJ . This path was not mentioned at
+ all and we had to guess at where they might be.
+
+# Maybe Proprietary Kernel Modules?
+
+
+ Furthermore, there were no .ko files generated, which is abnormal for a
+ build of the kernel, Linux. Please ensure that all .ko files which are
+ used on the system are generated with "./build.sh" or a similar script.
+
+# Weird versioning
+
+
+
+ * The following libraries have different versions in the firmware than
+ is built from the candidate CCS. Specifically, your candidate CCS
+ contains version "1800", and the firmware has version "2400". Since
+ most of these libraries are licensed under the LGPL, you are required
+ to have the complete, corresponding source present for the correct
+ version as distributed in the firmware. You also must include the
+ "scripts to control compilation and installation of the executable".
+
+ * lib/libgio-2.0.so.0.2400.2
+ * lib/libglib-2.0.so.0.2400.2
+ * lib/libgmodule-2.0.so.0.2400.2
+ * lib/libgobject-2.0.so.0.2400.2
+ * lib/libgthread-2.0.so.0.2400.2
+ * lib/libz.so.1.2.5 (version 1.2.2 is provided in the sources)
+
+# Weird Build Issues Over Many Candidates
+
+
+ You mentioned in your Round 6 commentary that you have corrected the
+ thatlib issues. However, we are unable to see what you mean. There are
+ now two copies of thatlib, one in 2624.7_524/uclinux-rootfs/lib/thatlib/,
+ as well as the one in yourlibs. We aren't sure which one you intend to
+ be built to generate the binaries on the firmware. When we try to build
+ the yourlibs one from scratch, by cleaning the whole area, we get the
+ following build issues. Here's what we did:
+
+# Getting Really build-technical
+
+
+
+ We ran:
+
+ make -C libsrc/thatlib install
+
+ which did not work because of a missing Makefile error. We read the
+ build source and discovered that the Makefile, etc, for that directory
+ is generated by running:
+
+ cd libsrc/thatlib/thatlib-0.9.22_mipsel-uclibc; sh configure_thatlib_mipsel-uclibc
+
+ Once we did that
+
+ make -C libsrc/thatlib install
+
+ worked correctly. The only remaining binaries were in build source and
+ discovered that the Makefile, etc, for that directory is generated by
+ running:
+
+ cd libsrc/thatlib/thatlib-0.9.22_mipsel-uclibc; sh configure_thatlib_mipsel-uclibc
+
+# Getting Really build-technical
+
+
+
+ Once we did that
+
+ make -C libsrc/thatlib install
+
+ worked correctly. The only remaining binaries were in
+ ./libsrc/thatlib/\{YOURLIB_ROOT_DIR\}/ which looks like a build with a
+ misconfigured environment somehow, so we simply removed that
+ directory.
+
+ Then, after running make clean, thatlib failed with the following
+ errors. Random .o/.so files laying around in the thatlib source
+ directory, and then it failing to build correctly after they are
+ removed. If there some set of .so files you claim are not required
+ as part of the C&CS since thatlib is LGPL'd, we understand that, but
+ the rest of the sources must build and install those other .so's.
+ Here's the build error we get in the bdvdlibs version:
+
+# Getting Really build-technical
+
+
+
+ mkdir .libs/libthatlibwm_default.a.tmp
+ (cd .libs/libthatlibwm_default.a.tmp && ar x ../../.libs/libthatlibwm_default.a)
+ mkdir .libs/libthatlibwm_default.a.tmp
+ (cd .libs/libthatlibwm_default.a.tmp && ar x ../../.libs/libthatlibwm_default.a)
+ /opt/toolchains/crosstools_sf-linux-2.6.18.0_gcc-4.2-9ts_uclibc-nptl-0.9.29-20070423_20080702/bin//mipsel-uclibc-
+ ld -o libthatlibwm_default.o -r .libs/libthatlibwm_default.a.tmp/*.o
+ /opt/toolchains/crosstools_sf-linux-2.6.18.0_gcc-4.2-9ts_uclibc-nptl-0.9.29-20070423_20080702/bin//mipsel-uclibc-
+ ld: .libs/libthatlibwm_default.a.tmp/default.o: Relocations in generic ELF (EM: 3)
+ /opt/toolchains/crosstools_sf-linux-2.6.18.0_gcc-4.2-9ts_uclibc-nptl-0.9.29-20070423_20080702/bin//mipsel-uclibc-
+ ld: .libs/libthatlibwm_default.a.tmp/default.o: Relocations in generic ELF (EM: 3)
+ /opt/toolchains/crosstools_sf-linux-2.6.18.0_gcc-4.2-9ts_uclibc-nptl-0.9.29-20070423_20080702/bin//mipsel-uclibc-
+ ld: .libs/libthatlibwm_default.a.tmp/default.o: Relocations in generic ELF (EM: 3)
+ /opt/toolchains/crosstools_sf-linux-2.6.18.0_gcc-4.2-9ts_uclibc-nptl-0.9.29-20070423_20080702/bin//mipsel-uclibc-
+ ld: .libs/libthatlibwm_default.a.tmp/default.o: Relocations in generic ELF (EM: 3)
+ .libs/libthatlibwm_default.a.tmp/default.o: could not read symbols: File in wrong format
+ make[4]: *** [libthatlibwm_default.o] Error 1
+
+# Proprietary Linux Modules Are Everywhere
+
+
+ We did find one .ko file that was already included in the package, but
+ wasn't built when we ran "./build.sh". This is
+ path/path/android_X.X/device/device-type/mydevice.ko , which notes that
+ its license is "GPL v2" in the modinfo, but for which we could find no
+ source code in the source release. Please ensure that the source code
+ for mydevice.ko is included in the next source candidate.
+
+# Proprietary Linux Modules Are Everywhere
+
+
+
+ * The following files are derivative of the kernel named Linux and
+ therefore covered by the GPL. However, no source code, scripts to
+ control compilation nor installation are included in your CCS
+ candidate:
+ lib/modules/myfilesystem.ko
+ lib/modules/mydevicecontroller.ko
+ lib/modules/myblockdevice.ko
+ lib/modules/mypcicard.ko
+
+# Non-Technical GPL Compliance Issues
+
+
+ Regarding over the air updates: we'd like to see a screenshot or other
+ details documenting what has now been implemented by BestBuy to make
+ sure the offer for source appears to users appropriately after
+ upgrade. There was a consensus reached on the last conference call
+ how this would be done, so we only need follow up and implementation
+ on that.
+
+
+# Binary Comparison.
+
+
+
+ Note that we did not receive a firmware image to compare this with
+ (though we do have the device). Company's website did not appear to
+ have any firmware images available for download. It would be helpful to
+ have such an image for the next CCS check.
+
+ The above source candidate was downloaded from
+ http:///sourcez.company.com/en/search/index.htm?keywords=X1234Y, which
+ was alluded to in Company's 2017-01-18 email to us that said:
+
+ "You can check this website
+ http://sourcez.company.com/en/search/index.htm "
+
+ The email did not mention how to use that website, but we found that by
+ entering "X1234Y" into the top right search box that we could find the
+ source file list.
+
+ Note that the offer for source included in the web UI of the device said
+ to email NAME@COMPANY.com , which is how the above instructions for
+ downloading the source were received.
+
+
+
+
+# More Info / Talk License
+
+
+
++ 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).
+
+
+Presentation and slides are: Copyright © Bradley M. Kuhn (2008–2011, 2015, 2017), Karen M. Sandler (2017), and are licensed under the Creative Commons Attribution-Share Alike 4.0 International License.
+
From c281fff393e7a623f939400a7703cad597580496 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 08:12:21 -0500
Subject: [PATCH 15/43] Remove extraneous material to just CCS examples.
---
.../ccs-report-examples/ccs-examples.md | 463 +-----------------
1 file changed, 3 insertions(+), 460 deletions(-)
diff --git a/presentations/ccs-report-examples/ccs-examples.md b/presentations/ccs-report-examples/ccs-examples.md
index 8a99469..b4be755 100644
--- a/presentations/ccs-report-examples/ccs-examples.md
+++ b/presentations/ccs-report-examples/ccs-examples.md
@@ -1,452 +1,6 @@
-% A Practical Guide to Compliance with the GNU GPL
-% Bradley M. Kuhn and Karen M. Sandler
-% Thursday 19 January 2016
-
-
-# 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)
-
-
-[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:
-
-
-a) You must cause the modified files to carry prominent notices stating
-that you changed the files and the date of any change.
-
-
-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.
-
-
-
-# GPLv3§5(a-c)
-
-
-
-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:
-
-
-a) The work must carry prominent notices stating that you modified it, and
-giving a relevant date.
-
-
-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".
-
-
-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.
-
-
-
-# GPLv2§2¶ penultimates
-
-
-
-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.
-
-
-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.
-
-
-
-
-# GPLv3 §0 ¶1-5
-
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
-
- "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.
-
-
-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.
-
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
-
-# 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)
-
-
-
-
[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:
-
-
-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,
-
-
-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;
-
-
-
-# GPLv3 § 6(a-b)
-
-
-
-[GPLv3 § ] 6. Conveying Non-Source Forms.
-
-
-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:
-
-
-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.
-
-
-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.
-
-
-
-# GPLv3 § 1 ¶ 1, 4-6
-
-
-
-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.
-
-
-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.
-
-
-The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
-
-The Corresponding Source for a work in source code form is that
-same work.
-
-
-
-# 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.
+% Examples of CCS Reports
+% Bradley M. Kuhn
+% Tuesday 9 May 2017
# No Build Instructions
@@ -745,21 +299,10 @@ same work.
to email NAME@COMPANY.com , which is how the above instructions for
downloading the source were received.
-
-
-
# More Info / Talk License
-+ 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).
Presentation and slides are: Copyright © Bradley M. Kuhn (2008–2011, 2015, 2017), Karen M. Sandler (2017), and are licensed under the Creative Commons Attribution-Share Alike 4.0 International License.
From cbc2c4f08213875eb1c49c4b10eba3c7c12d3514 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 08:12:38 -0500
Subject: [PATCH 16/43] Add introduction slide.
---
presentations/ccs-report-examples/ccs-examples.md | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/presentations/ccs-report-examples/ccs-examples.md b/presentations/ccs-report-examples/ccs-examples.md
index b4be755..e5a1ce3 100644
--- a/presentations/ccs-report-examples/ccs-examples.md
+++ b/presentations/ccs-report-examples/ccs-examples.md
@@ -2,6 +2,16 @@
% Bradley M. Kuhn
% Tuesday 9 May 2017
+# CCS "Round" Reports
+
++ Evaluate each CCS candidate.
+
++ Someone "skilled in the art" attempts to build.
+
++ Detailed notes are sent, asking for new CCS candidate "round".
+
++ Some anonyomized real world examples.
+
# No Build Instructions
From 81f752510ae31bac9432de10055fee6a293c4ccf Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 08:22:08 -0500
Subject: [PATCH 17/43] Links to related Guide sections.
---
presentations/ccs-report-examples/ccs-examples.md | 3 +++
1 file changed, 3 insertions(+)
diff --git a/presentations/ccs-report-examples/ccs-examples.md b/presentations/ccs-report-examples/ccs-examples.md
index e5a1ce3..e71d926 100644
--- a/presentations/ccs-report-examples/ccs-examples.md
+++ b/presentations/ccs-report-examples/ccs-examples.md
@@ -313,6 +313,9 @@
++ Specific Sections of Copyleft Guide relating to these topics:
+ - [The Pristine Example](https://copyleft.org/guide/comprehensive-gpl-guidech22.html#x29-15900021)
+ - [Details of a Compliant Distribution](https://copyleft.org/guide/comprehensive-gpl-guidech16.html#x21-12700015)
Presentation and slides are: Copyright © Bradley M. Kuhn (2008–2011, 2015, 2017), Karen M. Sandler (2017), and are licensed under the Creative Commons Attribution-Share Alike 4.0 International License.
From 72d37b38c5d05aa0347ff05b72a2fe3bf419d5f0 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 08:57:02 -0500
Subject: [PATCH 18/43] Non-Copyright systems slide first draft.
---
.../non-copyright-systems/non-copyright.md | 64 +++++++++++++++++++
1 file changed, 64 insertions(+)
create mode 100644 presentations/non-copyright-systems/non-copyright.md
diff --git a/presentations/non-copyright-systems/non-copyright.md b/presentations/non-copyright-systems/non-copyright.md
new file mode 100644
index 0000000..df672c6
--- /dev/null
+++ b/presentations/non-copyright-systems/non-copyright.md
@@ -0,0 +1,64 @@
+% GPL's Handling of Non-Copyright Systems
+% Bradley M. Kuhn
+% Tuesday 9 May 2017
+
+# Non-Copyright Systems
+
++ Patents, NDAs, & other agreements often impact software.
+
++ GPL is essentially a copyright license.
+ - so, how does GPL handle these systems?
+
++ As always, GPL has **conditional** permissions.
+ - some such conditions relate to these other legal regimes.
+
++ Compliance for these is much more legalistic than technical.
+
+
+# GPLv2§7
+
+
+[GPLv2§]7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+
+
+# GPLv3 Improvements
+
++ GPLv3 expands GPLv2§7 into multiple sections.
+
++ Creates detailed rules.
+ - an improvement
+ - legal compliance analysis is less complicated.
+
+# Staffing Question
+
++ In complex environments, both lawyers & developers should analyze
+ compliance obligations.
+
++ Simple environments (i.e., no actual proprietary components in product),
+ less expertise & cross-disciplinary staff time needed.
+
+# More Info / Talk License
+
+
+
++ Specific Sections of Copyleft Guide relating to these topics:
+ - [GPLv2 §7: “Give Software Liberty or Give It Death!”](https://copyleft.org/guide/comprehensive-gpl-guidech8.html#x11-540007.4)
+ - [GPLv3 §10: Explicit Downstream License](https://copyleft.org/guide/comprehensive-gpl-guidech10.html#x13-880009.13)
+ - [GPLv3 §11: Explicit Patent Licensing](https://copyleft.org/guide/comprehensive-gpl-guidech10.html#x13-890009.14)
+ - [GPLv3 §12: Familiar as GPLv2 §7](https://copyleft.org/guide/comprehensive-gpl-guidech10.html#x13-920009.15)
+
+
+Presentation and slides are: Copyright © Bradley M. Kuhn (2008–2011, 2015, 2017), Karen M. Sandler (2017), and are licensed under the Creative Commons Attribution-Share Alike 4.0 International License.
+
From 0860716fb1871a1ab6ceb551bc5a452093106bf4 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 09:23:42 -0500
Subject: [PATCH 19/43] Add copyright notice.
---
presentations/20min-violation-intro/violation-intro.md | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/presentations/20min-violation-intro/violation-intro.md b/presentations/20min-violation-intro/violation-intro.md
index 6566c90..1970216 100644
--- a/presentations/20min-violation-intro/violation-intro.md
+++ b/presentations/20min-violation-intro/violation-intro.md
@@ -122,4 +122,6 @@
-
+
+Presentation and slides are: Copyright © Bradley M. Kuhn (2008–2011, 2015, 2017), Karen M. Sandler (2017), and are licensed under the Creative Commons Attribution-Share Alike 4.0 International License.
+
From e00e9b305e2562f6bc55dac35e0ec1f696785de5 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 09:24:11 -0500
Subject: [PATCH 20/43] Set up Makefile and add CC By SA logo.
---
.../30min-specific-sections/Makefile | 83 ++++++++++++++++++
.../cc-by-sa-4-0_88x31.png | Bin 0 -> 5083 bytes
.../30min-specific-sections/pres-cmd | 9 ++
3 files changed, 92 insertions(+)
create mode 100644 presentations/30min-specific-sections/Makefile
create mode 100644 presentations/30min-specific-sections/cc-by-sa-4-0_88x31.png
create mode 100755 presentations/30min-specific-sections/pres-cmd
diff --git a/presentations/30min-specific-sections/Makefile b/presentations/30min-specific-sections/Makefile
new file mode 100644
index 0000000..760adc4
--- /dev/null
+++ b/presentations/30min-specific-sections/Makefile
@@ -0,0 +1,83 @@
+# Makefile for Presentation
+#
+# You can change the PRESENTATION_BASE below, or if you like, or set it as
+# an environment variable before you type make.
+
+ifndef PRESENTATION_BASE
+PRESENTATION_BASE=2hr-GPL
+INSTALL_DIR=/home/bkuhn/Files/Personal/Website/www.ebb.org/web-public/bkuhn/talks/LCA-2017-Tutorial/
+endif
+
+DO_INCREMENTAL_POINTS = -i -s
+
+
+# This should be the path to your checkout of the repository. Under that
+# directory, you must have a checkout of /Admin/Forms/TeX.
+
+PATH := $(PATH):/usr/share/tex4ht
+
+
+PANDOC=/usr/bin/pandoc
+TEX4HT=tex4ht
+T4HT=t4ht
+PDFLATEX = pdflatex
+LATEX = /usr/bin/latex
+BIBTEX = bibtex
+FIG2DEV = fig2dev
+DVIPS=/usr/bin/dvips
+
+PDF_FIGS = ui/conservancy/logo.pdf
+EPS_FIGS = ui/conservancy/logo.eps
+
+all: err $(PRESENTATION_BASE).ps $(PRESENTATION_BASE).html
+all: $(PRESENTATION_BASE).html
+
+.SUFFIXES: .fig .postscript .eps .pdf .pstex_t .pstex .ps .dvi .tex
+
+.postscript.pdf:
+ ps2pdf $< $@
+
+.postscript.eps:
+ ps2epsi $< $@
+
+.dvi.ps:
+ $(DVIPS) $< -o $@
+
+.tex.dvi:
+ $(LATEX) $<
+
+.fig.pdf:
+ $(FIG2DEV) -L pdf -p "portrait" -c $< > $@
+
+.fig.pstex_t:
+ $(FIG2DEV) -L pstex_t $< > $@
+
+.fig.pstex:
+ $(FIG2DEV) -L pstex $< > $@
+
+$(PRESENTATION_BASE).tex: $(PDF_FIGS) $(PRESENTATION_BASE).md
+ $(PANDOC) -S -s -f markdown -t latex $(PRESENTATION_BASE).md -o $(PRESENTATION_BASE).tex
+
+$(PRESENTATION_BASE).pdf: $(PRESENTATION_BASE).tex $(PDF_FIGS)
+ $(PANDOC) -S -s -f markdown -t latex $(PRESENTATION_BASE).md -o $(PRESENTATION_BASE).tex
+ $(PDFLATEX) $(PRESENTATION_BASE).tex
+ $(PDFLATEX) $(PRESENTATION_BASE).tex
+
+$(PRESENTATION_BASE).html: $(PRESENTATION_BASE).md
+ $(PANDOC) $(DO_INCREMENTAL_POINTS) -s -S --template ./ui/conservancy/pandoc-s5-template.html -f markdown -t s5 $(PRESENTATION_BASE).md -o $(PRESENTATION_BASE).html
+
+$(PRESENTATION_BASE).dvi: $(PRESENTATION_BASE).tex $(EPS_FIGS)
+ $(LATEX) $(PRESENTATION_BASE).tex
+ $(LATEX) $(PRESENTATION_BASE).tex
+
+clean:
+ /bin/rm -f $(PRESENTATION_BASE).ps $(PRESENTATION_BASE).pdf $(PRESENTATION_BASE).log texput.log $(PRESENTATION_BASE).lg $(PRESENTATION_BASE).tmp $(PRESENTATION_BASE).xref *.4ct *.4tc *.aux *.dvi $(PRESENTATION_BASE)*.html *.idv *.lg *.tmp $(PRESENTATION_BASE).css $(PRESENTATION_BASE).log $(PRESENTATION_BASE).out $(PRESENTATION_BASE)-js.* $(PRESENTATION_BASE).tex
+
+err: ; $(ERR)
+
+install: all
+ /bin/rm -rf $(INSTALL_DIR)/ui
+ /usr/bin/rsync -HavP ./ $(INSTALL_DIR)
+ /bin/rm -rf $(INSTALL_DIR)/ui
+ /usr/bin/rsync -HavP ../ui/ $(INSTALL_DIR)/ui/
+ ./pres-cmd
diff --git a/presentations/30min-specific-sections/cc-by-sa-4-0_88x31.png b/presentations/30min-specific-sections/cc-by-sa-4-0_88x31.png
new file mode 100644
index 0000000000000000000000000000000000000000..f0a944e0b89642ae282047846e55393007b04686
GIT binary patch
literal 5083
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
literal 0
HcmV?d00001
diff --git a/presentations/30min-specific-sections/pres-cmd b/presentations/30min-specific-sections/pres-cmd
new file mode 100755
index 0000000..2bf81cc
--- /dev/null
+++ b/presentations/30min-specific-sections/pres-cmd
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+talk=lca-2017-2
+
+rsync -HavP ./ /home/pres/$talk/
+rm -rf /home/pres/$talk/ui
+rsync -HavP ~/talks/ui/ /home/pres/$talk/ui/
+find /home/pres/$talk -exec chmod gou+r {} \;
+find /home/pres/$talk -type d -exec chmod gou+rx {} \;
From 962fc7b9aaf6706edd483e226285d336675cabc6 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 09:40:19 -0500
Subject: [PATCH 21/43] Add Karen's name.
---
presentations/30min-specific-sections/specific-sections.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/presentations/30min-specific-sections/specific-sections.md b/presentations/30min-specific-sections/specific-sections.md
index 1c4a391..639e95c 100644
--- a/presentations/30min-specific-sections/specific-sections.md
+++ b/presentations/30min-specific-sections/specific-sections.md
@@ -1,5 +1,5 @@
% Considering Key Sections of the GPL
-% Bradley M. Kuhn
+% Bradley M. Kuhn & Karen M. Sandler
% Tuesday 9 May 2017
From 6c38adff6c8c9bba7b29d588d4fea08c5f58573b Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 09:40:24 -0500
Subject: [PATCH 22/43] Karen corrected me on this term.
---
presentations/30min-specific-sections/specific-sections.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/presentations/30min-specific-sections/specific-sections.md b/presentations/30min-specific-sections/specific-sections.md
index 639e95c..281e06a 100644
--- a/presentations/30min-specific-sections/specific-sections.md
+++ b/presentations/30min-specific-sections/specific-sections.md
@@ -24,7 +24,7 @@
# Why Permission to Modify?
+ Your new copyrights are your copyrights:
- + you are affixing it in a tangible medium.
+ + you are fixed it in a tangible medium.
+ Exclusive right of copyright holders:
+ Control on “preparation of derivative works”
From e90904a6279134f4d535d893baff51ed7795915e Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 09:40:33 -0500
Subject: [PATCH 23/43] Working Makefile installation.
---
presentations/30min-specific-sections/Makefile | 12 ++++++------
presentations/30min-specific-sections/pres-cmd | 2 +-
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/presentations/30min-specific-sections/Makefile b/presentations/30min-specific-sections/Makefile
index 760adc4..6f9beb2 100644
--- a/presentations/30min-specific-sections/Makefile
+++ b/presentations/30min-specific-sections/Makefile
@@ -4,8 +4,7 @@
# an environment variable before you type make.
ifndef PRESENTATION_BASE
-PRESENTATION_BASE=2hr-GPL
-INSTALL_DIR=/home/bkuhn/Files/Personal/Website/www.ebb.org/web-public/bkuhn/talks/LCA-2017-Tutorial/
+PRESENTATION_BASE=specific-sections
endif
DO_INCREMENTAL_POINTS = -i -s
@@ -76,8 +75,9 @@ clean:
err: ; $(ERR)
install: all
- /bin/rm -rf $(INSTALL_DIR)/ui
- /usr/bin/rsync -HavP ./ $(INSTALL_DIR)
- /bin/rm -rf $(INSTALL_DIR)/ui
- /usr/bin/rsync -HavP ../ui/ $(INSTALL_DIR)/ui/
+ /usr/bin/rsync -HavP --exclude ui ./ copyleft.org:/var/www/presentations/$(PRESENTATION_BASE)/
+ -ssh copyleft.org 'mkdir -p /var/www/presentations/$(PRESENTATION_BASE)/ui/conservancy/'
+ /usr/bin/rsync -HavP ui/conservancy/ copyleft.org:/var/www/presentations/$(PRESENTATION_BASE)/ui/conservancy/
+ -ssh copyleft.org 'find /var/www/presentations/$(PRESENTATION_BASE) -exec chmod gou+r {} \;'
+ -ssh copyleft.org 'find /var/www/presentations/$(PRESENTATION_BASE) -type d -exec chmod gou+rx {} \;'
./pres-cmd
diff --git a/presentations/30min-specific-sections/pres-cmd b/presentations/30min-specific-sections/pres-cmd
index 2bf81cc..33aff64 100755
--- a/presentations/30min-specific-sections/pres-cmd
+++ b/presentations/30min-specific-sections/pres-cmd
@@ -1,6 +1,6 @@
#!/bin/sh
-talk=lca-2017-2
+talk=half-day-gpl/specific-sections
rsync -HavP ./ /home/pres/$talk/
rm -rf /home/pres/$talk/ui
From 5326ee76ab1ea1b30466b5516f951472bcf649dd Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 09:45:32 -0500
Subject: [PATCH 24/43] Copied over Makefile and CC BY SA logo.
---
presentations/20min-violation-intro/Makefile | 83 ++++++++++++++++++
.../cc-by-sa-4-0_88x31.png | Bin 0 -> 5083 bytes
presentations/20min-violation-intro/pres-cmd | 9 ++
3 files changed, 92 insertions(+)
create mode 100644 presentations/20min-violation-intro/Makefile
create mode 100644 presentations/20min-violation-intro/cc-by-sa-4-0_88x31.png
create mode 100755 presentations/20min-violation-intro/pres-cmd
diff --git a/presentations/20min-violation-intro/Makefile b/presentations/20min-violation-intro/Makefile
new file mode 100644
index 0000000..6f9beb2
--- /dev/null
+++ b/presentations/20min-violation-intro/Makefile
@@ -0,0 +1,83 @@
+# Makefile for Presentation
+#
+# You can change the PRESENTATION_BASE below, or if you like, or set it as
+# an environment variable before you type make.
+
+ifndef PRESENTATION_BASE
+PRESENTATION_BASE=specific-sections
+endif
+
+DO_INCREMENTAL_POINTS = -i -s
+
+
+# This should be the path to your checkout of the repository. Under that
+# directory, you must have a checkout of /Admin/Forms/TeX.
+
+PATH := $(PATH):/usr/share/tex4ht
+
+
+PANDOC=/usr/bin/pandoc
+TEX4HT=tex4ht
+T4HT=t4ht
+PDFLATEX = pdflatex
+LATEX = /usr/bin/latex
+BIBTEX = bibtex
+FIG2DEV = fig2dev
+DVIPS=/usr/bin/dvips
+
+PDF_FIGS = ui/conservancy/logo.pdf
+EPS_FIGS = ui/conservancy/logo.eps
+
+all: err $(PRESENTATION_BASE).ps $(PRESENTATION_BASE).html
+all: $(PRESENTATION_BASE).html
+
+.SUFFIXES: .fig .postscript .eps .pdf .pstex_t .pstex .ps .dvi .tex
+
+.postscript.pdf:
+ ps2pdf $< $@
+
+.postscript.eps:
+ ps2epsi $< $@
+
+.dvi.ps:
+ $(DVIPS) $< -o $@
+
+.tex.dvi:
+ $(LATEX) $<
+
+.fig.pdf:
+ $(FIG2DEV) -L pdf -p "portrait" -c $< > $@
+
+.fig.pstex_t:
+ $(FIG2DEV) -L pstex_t $< > $@
+
+.fig.pstex:
+ $(FIG2DEV) -L pstex $< > $@
+
+$(PRESENTATION_BASE).tex: $(PDF_FIGS) $(PRESENTATION_BASE).md
+ $(PANDOC) -S -s -f markdown -t latex $(PRESENTATION_BASE).md -o $(PRESENTATION_BASE).tex
+
+$(PRESENTATION_BASE).pdf: $(PRESENTATION_BASE).tex $(PDF_FIGS)
+ $(PANDOC) -S -s -f markdown -t latex $(PRESENTATION_BASE).md -o $(PRESENTATION_BASE).tex
+ $(PDFLATEX) $(PRESENTATION_BASE).tex
+ $(PDFLATEX) $(PRESENTATION_BASE).tex
+
+$(PRESENTATION_BASE).html: $(PRESENTATION_BASE).md
+ $(PANDOC) $(DO_INCREMENTAL_POINTS) -s -S --template ./ui/conservancy/pandoc-s5-template.html -f markdown -t s5 $(PRESENTATION_BASE).md -o $(PRESENTATION_BASE).html
+
+$(PRESENTATION_BASE).dvi: $(PRESENTATION_BASE).tex $(EPS_FIGS)
+ $(LATEX) $(PRESENTATION_BASE).tex
+ $(LATEX) $(PRESENTATION_BASE).tex
+
+clean:
+ /bin/rm -f $(PRESENTATION_BASE).ps $(PRESENTATION_BASE).pdf $(PRESENTATION_BASE).log texput.log $(PRESENTATION_BASE).lg $(PRESENTATION_BASE).tmp $(PRESENTATION_BASE).xref *.4ct *.4tc *.aux *.dvi $(PRESENTATION_BASE)*.html *.idv *.lg *.tmp $(PRESENTATION_BASE).css $(PRESENTATION_BASE).log $(PRESENTATION_BASE).out $(PRESENTATION_BASE)-js.* $(PRESENTATION_BASE).tex
+
+err: ; $(ERR)
+
+install: all
+ /usr/bin/rsync -HavP --exclude ui ./ copyleft.org:/var/www/presentations/$(PRESENTATION_BASE)/
+ -ssh copyleft.org 'mkdir -p /var/www/presentations/$(PRESENTATION_BASE)/ui/conservancy/'
+ /usr/bin/rsync -HavP ui/conservancy/ copyleft.org:/var/www/presentations/$(PRESENTATION_BASE)/ui/conservancy/
+ -ssh copyleft.org 'find /var/www/presentations/$(PRESENTATION_BASE) -exec chmod gou+r {} \;'
+ -ssh copyleft.org 'find /var/www/presentations/$(PRESENTATION_BASE) -type d -exec chmod gou+rx {} \;'
+ ./pres-cmd
diff --git a/presentations/20min-violation-intro/cc-by-sa-4-0_88x31.png b/presentations/20min-violation-intro/cc-by-sa-4-0_88x31.png
new file mode 100644
index 0000000000000000000000000000000000000000..f0a944e0b89642ae282047846e55393007b04686
GIT binary patch
literal 5083
zcmV<16C~`3P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T
zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p
z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&nehQ1i
z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW
zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X
zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4
zfg=2N-7=cNnjjOr{yriy6mMFgG#l
znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U
zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya?
z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y
zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB
zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt
z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C
z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB
zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe
zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0
z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$
z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4
z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu
zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu
z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E
ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw
zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX
z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i&
z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01
z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R
z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw
zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD
zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3|
zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy
zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z
zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C`
z008P>0026e000+nl3&F}000Q~Nkl0x(=yA<`H9zo;y7lu1KkAHW+`R1R0{t-h6aWM?@6`shN
z3n7GI01yDUaq~J@mIceQ;5ZH}%YkEAu$*~iSuhL>mSMm!48Sm!77!2+oj@l#blpgr
zrWsdVgQn@wb&b~PM5pZuA=b;#{No@8_a6cPFaU@JF2`|3V!2YDg=rjJgHnE-PRF^hwHZ!8V@V;R|O)=}>9cpx2+
zuyx0lRe`Zy`WXP^lUx4)&+`;ip689k@fcP{(08s6Q&UsRQs{QO(f+%3w6yGks%g+P
z6{>0`O@*pzl;M?_T+ZSL|M?OZ;}g{rD3swz~q2vt>`Cc^?)H*L8M=&uW3BXlB+LZJXjk`Rl<
z(9qD}_=tQykG8fp$g&KV%Z1*)-erTZ-ufxPxBhhtH5RZnJZktF2e^VDARG=O6beBQ
zgas8Q5(%`mwNap(JWY6i;BWX|Z7o!_h+?rwnOqU%GJD+lW)~*169@zX7#tidO*_-H
z*qNS4BoGV+(d22unR7kM0-%!q$;nAfO->rKvA!Pl_4O;(e{laHumHfBHkju)@SKym
zq9`JrP9qYDEDA0F1Ofr%aydH1CbAPa-*>@b%USA?Fr{Sv*#W#amc~SO0+J-5{nV)?
zKPC_eK$0X(WG8TMEWIq7Tdx1_moLNn{0lgG_y~?3J_7IaFW}RgH&>+J5*7eh%Pr$L
z3@alJaFfa8ylJzT2!eoQGD$&}hhz*7kAUO&${@3r+Xn~8^2f$I#9}dcnw!i0%ZdwP
zEEaS0T};aLkKVqG?yd;xpLrHuuMY=WTLA#S{?%*vQ-6Qe`W*lp3^rKYcdm~DH8?o9
zBx@G~+3MT(hd$GnHo;{~pPDs23vuBP{P=5Eu2XLz91c?!u0#Yu
zpd&stHHB+euhR{S0rJ8o!jekQPb3l*^NaOaNbGHU-!+K!*AG9SWj}uDB>+I7P{5ZD
z9#pNL0&KAOFfRLXF%B#8o}C<=T&pQDqaC{Ppy
zp->2Zzkgoc`1m+ol_g0+B9TBUl`?jKHei7gxFxT=q$`ujR9ws~<^}?RdG(e0EF|`}
zH9U{@lP9sUww9KS-o8!q&ow+(wSF6ejSsbUXqz{0rVZNK+Nk}><#KeOgbPr26#DQwYBEB#s4%bosxJ6tXo
z5{U%-em~V^_k;8KJp6t?`uqFga=CCKbYj^bUrGP=9ouoBwG{_iTj6PLUX^~zVC#kJ
zTy>Z&%wl|eoHmF=BJ|;#Hf?eMXVqmgnR#`VSi0(5bs)sH9R`6lrsmzemwU?f6yg{A
z@y^?QkYyRNEJGAUh@uEV5TGauCBsUBG3%|LuG^z`N3mhU21L7}kcVUlf`IAiX@_SJ
zkH=|@!Rz%R5{Xdu#^Z6?)?Nnyjg5`S=ks{+M=#<+>^vUL&7oMFLs2cFSX7}|aS2_6
zuIV%gU%pfOHij!{u;=!jf1{>m13nx1458nI=(aE%4zKE^tpEuCoPGN&e!6Ej=8AKe
zD;A*^izupP09Oe3eA@%=EC70>N6hVZllY(GBy&Ga?qtTudw+Rv)hr-{
zESk5Mtyce1&s;TwEeXF7!qHzGrKb=|au`>yTwV0oexI}tUT+IMYrAsgD$YjFu6~iI
zz^=7oZuv7Ro%gMV#mr*+)~(yNpfl2i`X9J$rxEsWBOHFK^^Yf0laqM&d<-MQBWtq?
z+dy1v)3DI97JKHJ0c^>xmR;DhcMrC0--hqIT+SG-=~{hNDB$j$ySQ=f#+m{9O)+>W
x8^7)VKarISLkQW(FwB3SK(P)R3__Uy4FK>(yR3Yb!O;K!002ovPDHLkV1lxPh(-Va
literal 0
HcmV?d00001
diff --git a/presentations/20min-violation-intro/pres-cmd b/presentations/20min-violation-intro/pres-cmd
new file mode 100755
index 0000000..33aff64
--- /dev/null
+++ b/presentations/20min-violation-intro/pres-cmd
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+talk=half-day-gpl/specific-sections
+
+rsync -HavP ./ /home/pres/$talk/
+rm -rf /home/pres/$talk/ui
+rsync -HavP ~/talks/ui/ /home/pres/$talk/ui/
+find /home/pres/$talk -exec chmod gou+r {} \;
+find /home/pres/$talk -type d -exec chmod gou+rx {} \;
From 6999e756976cc8662f031ed5411c3a88fba545b0 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 09:48:00 -0500
Subject: [PATCH 25/43] Various changes based on Karen's verbal comments.
---
.../30min-specific-sections/specific-sections.md | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/presentations/30min-specific-sections/specific-sections.md b/presentations/30min-specific-sections/specific-sections.md
index 281e06a..929ae34 100644
--- a/presentations/30min-specific-sections/specific-sections.md
+++ b/presentations/30min-specific-sections/specific-sections.md
@@ -17,7 +17,7 @@
# Considering Sections of the GPL
-+ GPL ♥ 17 USC§106(2) & 17 USC§106(3)
++ GPL interacts extensively with 17 USC§106(2) & 17 USC§106(3)
+ GPL hinges on modification and distribution.
@@ -37,8 +37,6 @@
# 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.
@@ -149,10 +147,9 @@ on the Program.
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.
++ Separation of source and binary create first proprietary software.
+ GPL uses the fact that binaries are modifications (which are often
- distribution) to prevent that subjugation.
+ distribution) to prevent proprietarization.
# GPLv2 § 3(a-b)
From e0c3ae433b1ac90570f9b6edb78489ee0d8ebca7 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 09:48:48 -0500
Subject: [PATCH 26/43] Change base name to the one in this presentation.
---
presentations/20min-violation-intro/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/presentations/20min-violation-intro/Makefile b/presentations/20min-violation-intro/Makefile
index 6f9beb2..87309f2 100644
--- a/presentations/20min-violation-intro/Makefile
+++ b/presentations/20min-violation-intro/Makefile
@@ -4,7 +4,7 @@
# an environment variable before you type make.
ifndef PRESENTATION_BASE
-PRESENTATION_BASE=specific-sections
+PRESENTATION_BASE=violation-intro
endif
DO_INCREMENTAL_POINTS = -i -s
From 8ea8b1135de73c69fff8b5d1ee83fea718614ec5 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 09:49:46 -0500
Subject: [PATCH 27/43] Add Karen's name.
---
presentations/20min-violation-intro/violation-intro.md | 2 +-
presentations/ccs-report-examples/ccs-examples.md | 2 +-
presentations/non-copyright-systems/non-copyright.md | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/presentations/20min-violation-intro/violation-intro.md b/presentations/20min-violation-intro/violation-intro.md
index 1970216..90c75c0 100644
--- a/presentations/20min-violation-intro/violation-intro.md
+++ b/presentations/20min-violation-intro/violation-intro.md
@@ -1,5 +1,5 @@
% The What and How of GPL Violations
-% Bradley M. Kuhn
+% Bradley M. Kuhn & Karen M. Sandler
% Tuesday 9 May 2017
# What's a GPL Violation?
diff --git a/presentations/ccs-report-examples/ccs-examples.md b/presentations/ccs-report-examples/ccs-examples.md
index e71d926..528b17e 100644
--- a/presentations/ccs-report-examples/ccs-examples.md
+++ b/presentations/ccs-report-examples/ccs-examples.md
@@ -1,5 +1,5 @@
% Examples of CCS Reports
-% Bradley M. Kuhn
+% Bradley M. Kuhn & Karen M. Sandler
% Tuesday 9 May 2017
# CCS "Round" Reports
diff --git a/presentations/non-copyright-systems/non-copyright.md b/presentations/non-copyright-systems/non-copyright.md
index df672c6..869ee96 100644
--- a/presentations/non-copyright-systems/non-copyright.md
+++ b/presentations/non-copyright-systems/non-copyright.md
@@ -1,5 +1,5 @@
% GPL's Handling of Non-Copyright Systems
-% Bradley M. Kuhn
+% Bradley M. Kuhn & Karen M. Sandler
% Tuesday 9 May 2017
# Non-Copyright Systems
From 61dfaa4e6bcf9260c07780cfc614940b110380ed Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 09:50:40 -0500
Subject: [PATCH 28/43] Rename presentation to this one.
---
presentations/20min-violation-intro/pres-cmd | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/presentations/20min-violation-intro/pres-cmd b/presentations/20min-violation-intro/pres-cmd
index 33aff64..0de0259 100755
--- a/presentations/20min-violation-intro/pres-cmd
+++ b/presentations/20min-violation-intro/pres-cmd
@@ -1,6 +1,6 @@
#!/bin/sh
-talk=half-day-gpl/specific-sections
+talk=half-day-gpl/violation-intro
rsync -HavP ./ /home/pres/$talk/
rm -rf /home/pres/$talk/ui
From 9e63f702b02eec4c71fd7b868708fe34d90f0709 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 09:50:49 -0500
Subject: [PATCH 29/43] Copy over install scripts and CC BY SA logo.
---
presentations/ccs-report-examples/Makefile | 83 ++++++++++++++++++
.../cc-by-sa-4-0_88x31.png | Bin 0 -> 5083 bytes
presentations/ccs-report-examples/pres-cmd | 9 ++
3 files changed, 92 insertions(+)
create mode 100644 presentations/ccs-report-examples/Makefile
create mode 100644 presentations/ccs-report-examples/cc-by-sa-4-0_88x31.png
create mode 100755 presentations/ccs-report-examples/pres-cmd
diff --git a/presentations/ccs-report-examples/Makefile b/presentations/ccs-report-examples/Makefile
new file mode 100644
index 0000000..6f9beb2
--- /dev/null
+++ b/presentations/ccs-report-examples/Makefile
@@ -0,0 +1,83 @@
+# Makefile for Presentation
+#
+# You can change the PRESENTATION_BASE below, or if you like, or set it as
+# an environment variable before you type make.
+
+ifndef PRESENTATION_BASE
+PRESENTATION_BASE=specific-sections
+endif
+
+DO_INCREMENTAL_POINTS = -i -s
+
+
+# This should be the path to your checkout of the repository. Under that
+# directory, you must have a checkout of /Admin/Forms/TeX.
+
+PATH := $(PATH):/usr/share/tex4ht
+
+
+PANDOC=/usr/bin/pandoc
+TEX4HT=tex4ht
+T4HT=t4ht
+PDFLATEX = pdflatex
+LATEX = /usr/bin/latex
+BIBTEX = bibtex
+FIG2DEV = fig2dev
+DVIPS=/usr/bin/dvips
+
+PDF_FIGS = ui/conservancy/logo.pdf
+EPS_FIGS = ui/conservancy/logo.eps
+
+all: err $(PRESENTATION_BASE).ps $(PRESENTATION_BASE).html
+all: $(PRESENTATION_BASE).html
+
+.SUFFIXES: .fig .postscript .eps .pdf .pstex_t .pstex .ps .dvi .tex
+
+.postscript.pdf:
+ ps2pdf $< $@
+
+.postscript.eps:
+ ps2epsi $< $@
+
+.dvi.ps:
+ $(DVIPS) $< -o $@
+
+.tex.dvi:
+ $(LATEX) $<
+
+.fig.pdf:
+ $(FIG2DEV) -L pdf -p "portrait" -c $< > $@
+
+.fig.pstex_t:
+ $(FIG2DEV) -L pstex_t $< > $@
+
+.fig.pstex:
+ $(FIG2DEV) -L pstex $< > $@
+
+$(PRESENTATION_BASE).tex: $(PDF_FIGS) $(PRESENTATION_BASE).md
+ $(PANDOC) -S -s -f markdown -t latex $(PRESENTATION_BASE).md -o $(PRESENTATION_BASE).tex
+
+$(PRESENTATION_BASE).pdf: $(PRESENTATION_BASE).tex $(PDF_FIGS)
+ $(PANDOC) -S -s -f markdown -t latex $(PRESENTATION_BASE).md -o $(PRESENTATION_BASE).tex
+ $(PDFLATEX) $(PRESENTATION_BASE).tex
+ $(PDFLATEX) $(PRESENTATION_BASE).tex
+
+$(PRESENTATION_BASE).html: $(PRESENTATION_BASE).md
+ $(PANDOC) $(DO_INCREMENTAL_POINTS) -s -S --template ./ui/conservancy/pandoc-s5-template.html -f markdown -t s5 $(PRESENTATION_BASE).md -o $(PRESENTATION_BASE).html
+
+$(PRESENTATION_BASE).dvi: $(PRESENTATION_BASE).tex $(EPS_FIGS)
+ $(LATEX) $(PRESENTATION_BASE).tex
+ $(LATEX) $(PRESENTATION_BASE).tex
+
+clean:
+ /bin/rm -f $(PRESENTATION_BASE).ps $(PRESENTATION_BASE).pdf $(PRESENTATION_BASE).log texput.log $(PRESENTATION_BASE).lg $(PRESENTATION_BASE).tmp $(PRESENTATION_BASE).xref *.4ct *.4tc *.aux *.dvi $(PRESENTATION_BASE)*.html *.idv *.lg *.tmp $(PRESENTATION_BASE).css $(PRESENTATION_BASE).log $(PRESENTATION_BASE).out $(PRESENTATION_BASE)-js.* $(PRESENTATION_BASE).tex
+
+err: ; $(ERR)
+
+install: all
+ /usr/bin/rsync -HavP --exclude ui ./ copyleft.org:/var/www/presentations/$(PRESENTATION_BASE)/
+ -ssh copyleft.org 'mkdir -p /var/www/presentations/$(PRESENTATION_BASE)/ui/conservancy/'
+ /usr/bin/rsync -HavP ui/conservancy/ copyleft.org:/var/www/presentations/$(PRESENTATION_BASE)/ui/conservancy/
+ -ssh copyleft.org 'find /var/www/presentations/$(PRESENTATION_BASE) -exec chmod gou+r {} \;'
+ -ssh copyleft.org 'find /var/www/presentations/$(PRESENTATION_BASE) -type d -exec chmod gou+rx {} \;'
+ ./pres-cmd
diff --git a/presentations/ccs-report-examples/cc-by-sa-4-0_88x31.png b/presentations/ccs-report-examples/cc-by-sa-4-0_88x31.png
new file mode 100644
index 0000000000000000000000000000000000000000..f0a944e0b89642ae282047846e55393007b04686
GIT binary patch
literal 5083
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
literal 0
HcmV?d00001
diff --git a/presentations/ccs-report-examples/pres-cmd b/presentations/ccs-report-examples/pres-cmd
new file mode 100755
index 0000000..33aff64
--- /dev/null
+++ b/presentations/ccs-report-examples/pres-cmd
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+talk=half-day-gpl/specific-sections
+
+rsync -HavP ./ /home/pres/$talk/
+rm -rf /home/pres/$talk/ui
+rsync -HavP ~/talks/ui/ /home/pres/$talk/ui/
+find /home/pres/$talk -exec chmod gou+r {} \;
+find /home/pres/$talk -type d -exec chmod gou+rx {} \;
From d5daec79418daa7ec14a49be0d0dc844d43d64cf Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 09:52:05 -0500
Subject: [PATCH 30/43] Change Karen requested verbally.
---
presentations/20min-violation-intro/violation-intro.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/presentations/20min-violation-intro/violation-intro.md b/presentations/20min-violation-intro/violation-intro.md
index 90c75c0..6e24798 100644
--- a/presentations/20min-violation-intro/violation-intro.md
+++ b/presentations/20min-violation-intro/violation-intro.md
@@ -21,7 +21,7 @@
+ modifying, building, and installing software is a technical process.
+ In embedded systems, this process is rarely straightforward.
- + Yet GPL requires that such be possible.
+ + GPL's requirements are strict.
+ In enforcement, we talk about “the CCS adequately meeting GPL's requirements”
From 8b4068996f4d15f4b1a847d77886ac70416ccf93 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 09:52:15 -0500
Subject: [PATCH 31/43] Change name to this presentation.
---
presentations/ccs-report-examples/Makefile | 2 +-
presentations/ccs-report-examples/pres-cmd | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/presentations/ccs-report-examples/Makefile b/presentations/ccs-report-examples/Makefile
index 6f9beb2..4fc50f3 100644
--- a/presentations/ccs-report-examples/Makefile
+++ b/presentations/ccs-report-examples/Makefile
@@ -4,7 +4,7 @@
# an environment variable before you type make.
ifndef PRESENTATION_BASE
-PRESENTATION_BASE=specific-sections
+PRESENTATION_BASE=ccs-examples
endif
DO_INCREMENTAL_POINTS = -i -s
diff --git a/presentations/ccs-report-examples/pres-cmd b/presentations/ccs-report-examples/pres-cmd
index 33aff64..4aba501 100755
--- a/presentations/ccs-report-examples/pres-cmd
+++ b/presentations/ccs-report-examples/pres-cmd
@@ -1,6 +1,6 @@
#!/bin/sh
-talk=half-day-gpl/specific-sections
+talk=half-day-gpl/ccs-examples
rsync -HavP ./ /home/pres/$talk/
rm -rf /home/pres/$talk/ui
From d9260dfb6a87208d5a0080644f677ac2d6fe47f3 Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 09:55:04 -0500
Subject: [PATCH 32/43] Copy over build details and CC BY SA logo.
---
presentations/non-copyright-systems/Makefile | 83 ++++++++++++++++++
.../cc-by-sa-4-0_88x31.png | Bin 0 -> 5083 bytes
presentations/non-copyright-systems/pres-cmd | 9 ++
3 files changed, 92 insertions(+)
create mode 100644 presentations/non-copyright-systems/Makefile
create mode 100644 presentations/non-copyright-systems/cc-by-sa-4-0_88x31.png
create mode 100755 presentations/non-copyright-systems/pres-cmd
diff --git a/presentations/non-copyright-systems/Makefile b/presentations/non-copyright-systems/Makefile
new file mode 100644
index 0000000..4fc50f3
--- /dev/null
+++ b/presentations/non-copyright-systems/Makefile
@@ -0,0 +1,83 @@
+# Makefile for Presentation
+#
+# You can change the PRESENTATION_BASE below, or if you like, or set it as
+# an environment variable before you type make.
+
+ifndef PRESENTATION_BASE
+PRESENTATION_BASE=ccs-examples
+endif
+
+DO_INCREMENTAL_POINTS = -i -s
+
+
+# This should be the path to your checkout of the repository. Under that
+# directory, you must have a checkout of /Admin/Forms/TeX.
+
+PATH := $(PATH):/usr/share/tex4ht
+
+
+PANDOC=/usr/bin/pandoc
+TEX4HT=tex4ht
+T4HT=t4ht
+PDFLATEX = pdflatex
+LATEX = /usr/bin/latex
+BIBTEX = bibtex
+FIG2DEV = fig2dev
+DVIPS=/usr/bin/dvips
+
+PDF_FIGS = ui/conservancy/logo.pdf
+EPS_FIGS = ui/conservancy/logo.eps
+
+all: err $(PRESENTATION_BASE).ps $(PRESENTATION_BASE).html
+all: $(PRESENTATION_BASE).html
+
+.SUFFIXES: .fig .postscript .eps .pdf .pstex_t .pstex .ps .dvi .tex
+
+.postscript.pdf:
+ ps2pdf $< $@
+
+.postscript.eps:
+ ps2epsi $< $@
+
+.dvi.ps:
+ $(DVIPS) $< -o $@
+
+.tex.dvi:
+ $(LATEX) $<
+
+.fig.pdf:
+ $(FIG2DEV) -L pdf -p "portrait" -c $< > $@
+
+.fig.pstex_t:
+ $(FIG2DEV) -L pstex_t $< > $@
+
+.fig.pstex:
+ $(FIG2DEV) -L pstex $< > $@
+
+$(PRESENTATION_BASE).tex: $(PDF_FIGS) $(PRESENTATION_BASE).md
+ $(PANDOC) -S -s -f markdown -t latex $(PRESENTATION_BASE).md -o $(PRESENTATION_BASE).tex
+
+$(PRESENTATION_BASE).pdf: $(PRESENTATION_BASE).tex $(PDF_FIGS)
+ $(PANDOC) -S -s -f markdown -t latex $(PRESENTATION_BASE).md -o $(PRESENTATION_BASE).tex
+ $(PDFLATEX) $(PRESENTATION_BASE).tex
+ $(PDFLATEX) $(PRESENTATION_BASE).tex
+
+$(PRESENTATION_BASE).html: $(PRESENTATION_BASE).md
+ $(PANDOC) $(DO_INCREMENTAL_POINTS) -s -S --template ./ui/conservancy/pandoc-s5-template.html -f markdown -t s5 $(PRESENTATION_BASE).md -o $(PRESENTATION_BASE).html
+
+$(PRESENTATION_BASE).dvi: $(PRESENTATION_BASE).tex $(EPS_FIGS)
+ $(LATEX) $(PRESENTATION_BASE).tex
+ $(LATEX) $(PRESENTATION_BASE).tex
+
+clean:
+ /bin/rm -f $(PRESENTATION_BASE).ps $(PRESENTATION_BASE).pdf $(PRESENTATION_BASE).log texput.log $(PRESENTATION_BASE).lg $(PRESENTATION_BASE).tmp $(PRESENTATION_BASE).xref *.4ct *.4tc *.aux *.dvi $(PRESENTATION_BASE)*.html *.idv *.lg *.tmp $(PRESENTATION_BASE).css $(PRESENTATION_BASE).log $(PRESENTATION_BASE).out $(PRESENTATION_BASE)-js.* $(PRESENTATION_BASE).tex
+
+err: ; $(ERR)
+
+install: all
+ /usr/bin/rsync -HavP --exclude ui ./ copyleft.org:/var/www/presentations/$(PRESENTATION_BASE)/
+ -ssh copyleft.org 'mkdir -p /var/www/presentations/$(PRESENTATION_BASE)/ui/conservancy/'
+ /usr/bin/rsync -HavP ui/conservancy/ copyleft.org:/var/www/presentations/$(PRESENTATION_BASE)/ui/conservancy/
+ -ssh copyleft.org 'find /var/www/presentations/$(PRESENTATION_BASE) -exec chmod gou+r {} \;'
+ -ssh copyleft.org 'find /var/www/presentations/$(PRESENTATION_BASE) -type d -exec chmod gou+rx {} \;'
+ ./pres-cmd
diff --git a/presentations/non-copyright-systems/cc-by-sa-4-0_88x31.png b/presentations/non-copyright-systems/cc-by-sa-4-0_88x31.png
new file mode 100644
index 0000000000000000000000000000000000000000..f0a944e0b89642ae282047846e55393007b04686
GIT binary patch
literal 5083
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
literal 0
HcmV?d00001
diff --git a/presentations/non-copyright-systems/pres-cmd b/presentations/non-copyright-systems/pres-cmd
new file mode 100755
index 0000000..4aba501
--- /dev/null
+++ b/presentations/non-copyright-systems/pres-cmd
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+talk=half-day-gpl/ccs-examples
+
+rsync -HavP ./ /home/pres/$talk/
+rm -rf /home/pres/$talk/ui
+rsync -HavP ~/talks/ui/ /home/pres/$talk/ui/
+find /home/pres/$talk -exec chmod gou+r {} \;
+find /home/pres/$talk -type d -exec chmod gou+rx {} \;
From d1cd46589643c593c04cb2a6a28117e26d2e720a Mon Sep 17 00:00:00 2001
From: "Bradley M. Kuhn"
Date: Tue, 9 May 2017 11:15:22 -0500
Subject: [PATCH 33/43] Presentations as prepared by Karen for OSCON 2017.
---
...egal-Issues-for-Understanding-Copyleft.odp | Bin 0 -> 287682 bytes
.../Landscape-of-GPL-Enforcement.odp | Bin 0 -> 1330070 bytes
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 presentations/Basic-Legal-Issues-for-Understanding-Copyleft.odp
create mode 100644 presentations/Landscape-of-GPL-Enforcement.odp
diff --git a/presentations/Basic-Legal-Issues-for-Understanding-Copyleft.odp b/presentations/Basic-Legal-Issues-for-Understanding-Copyleft.odp
new file mode 100644
index 0000000000000000000000000000000000000000..124c0e1188e042f987ac59f0316a92beb4cafe0b
GIT binary patch
literal 287682
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 |