Switched to Copyleft logo.
[bkuhn:talks.git] / LinuxTag-2011 / compliance.markdown
1 % 12 Years of GPL Compliance: A Historical Perspective
2 % Bradley M. Kuhn
3 % Friday 13 May 2011
4
5 # My History
6
7 + Worked my first GPL enforcement case in 1999 (as FSF volunteer).
8
9 + Started working for FSF in 2000 (until 2005).
10
11 + Worked at SFLC from 2005-2010.
12
13 + Now Executive Director of Software Freedom Conservancy.
14
15 + Plurality of my time since 1999 has been spent on GPL enforcement.
16
17 # Nature of Free Software Community
18
19 + Through the eyes of a GPL enforcer …
20
21 + The Free Software Community is separated into two equally important groups:
22      + The permissively licensed, who use social pressure to liberate code.
23      + The copyleft licensed, whose license requires liberation.
24
25 + Mine are the stories of the latter.
26
27 # On Requirement By License
28
29 <img src="Constitution.jpg" align="right"  />
30
31 + Social pressure *does* work &hellip;
32      + &hellip; and should be used (and is), even for copylefted software.
33      + &hellip; enforcement is a last resort.
34
35 + GPL == Constitution of Software Freedom Land.
36      + a &ldquo;written down&rdquo; embodiment of core principles.
37
38 + GPL's a detailed implementation of the four freedoms:
39      + freedom to run and study.
40      + freedom to improve.
41      + freedom to share.
42      + freedom to share improvements.
43
44 # How GPL Works (Theoretically)
45
46 <img src="theory-vs-practice.jpg" align="right"  />
47
48 + Copyright: the internationalized standard for authors' controls over works.
49
50 + Use copyright license to grant permission.
51
52 + Make permission conditional on giving your downstream the four freedoms.
53
54 + This is the copyright law hack of copyleft.
55
56 + Copyright rules require compliance with the license.
57
58 # How GPL Works (In Reality)
59
60 <img src="copyleft.jpg" align="right"  />
61
62 + What do you do when someone violates?
63      + (and social pressure for compliance fails)?
64
65 + Copyright enforcement
66      + &hellip; (yes, similar stuff to what the MPAA does: EEP!)
67      + &hellip; but for a *good* cause: the four freedoms.
68      + &ldquo;using the tools of the oppressor against the oppressor&rdquo;
69
70 # Earliest Copyleft Programs
71
72 <img src="emacs.png" align="right" />
73
74 + GNU Emacs: was the first GPL'd program.
75
76 + AFAIK Emacs' copyleft never been violated.
77
78 # Second Copyleft Program
79
80 <img src="gcc_sm.png" align="right"  />
81
82 + GCC: second GPL'd program.
83      + much more interesting to proprietary software companies.
84
85 + So, who was the first GPL violator?
86
87 # The NeXT Shall be First
88
89 <img src="steve-jobs-next.jpg" align="right"  />
90
91 + Objective-C front end.
92
93 # Earliest Post I Could Find
94 <span class="fitonslide">
95 <p>
96 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!usc!apple!bbn!bbn.com!bpalmer<br/>
97 From: bpal...@bbn.com (Brian Palmer)<br/>
98 Newsgroups: gnu.misc.discuss<br/>
99 Subject: Objective Gnu?<br/>
100 Message-ID: &lt;5768@bbn.COM&gt;<br/>
101 Date: 19 Sep 89 15:36:16 GMT<br/>
102 </p>
103
104 <p>In "The NeXT Book" by Bruce Webster, he says: (page 134):</p>
105 <p>
106         Objective C is based on the Gnu C compiler developed by
107         Richard Stallman.  Release 0.9 has merged the Objective
108         C syntax with the the Gnu C compiler to speed up compilation
109         and to produce faster, more efficient code.
110 </p>
111
112
113 <p>Are they using FSF software in their product? Or is Webster just badly
114 explaining the situation ...  and Objective C is just preprocessing and
115 passing C to gcc.</p>
116
117 <p>Otherwise Gang, I see a Copyleft violation right?</p>
118 <br/>
119 Brian
120 </span>
121
122
123 # NeXT Answers
124
125 <span class="fitonslide">
126 <p>
127 Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!apple!gem.mps.ohio-state.edu!tut.cis.ohio-state.edu!NEXT.COM!Matthew_Self<br/>
128 From: Matthew_S...@NEXT.COM<br/>
129 Newsgroups: gnu.gcc<br/>
130 Subject: Objective-C front end for GCC from NeXT<br/>
131 Message-ID: &lt;8909210104.AA14825@batcomputer.NeXT.COM&gt;<br/>
132 Date: 21 Sep 89 01:01:50 GMT<br/>
133 Sender: dae...@tut.cis.ohio-state.edu<br/>
134 </p>
135
136 <p>In response to Steve Simmons' inquiry about an Objective-C
137 front-end for GCC, NeXT will be making our modifications to
138 GCC for Objective-C available very soon.</p>
139
140 <p>Once GCC-1.36 is released (any day now), I will create a patch
141 kit which will be announced on this mailing list.  (The modifications
142 are very small.)</p>
143 <br/>
144
145 Matthew Self
146 </span>
147
148
149 # Thus Begins Jobs' GPL hatred.
150
151 <img src="steve-jobs-bond.jpg" align="right"  />
152
153 + Apple is ditching Samba soon.
154
155 + Apple to this day works hard to ditch GCC.
156      + LLVM funding.
157
158 + Spreads FUD about GPLv3.
159
160 # Tar Wars
161
162 <img width="274" height="383" align=right src="tar-wars.gif"/>
163
164 <p> A long time ago, in a city far far away, the Empires had taken GNU tar
165 and placed it into proprietary backup solutions.  A small band of freedom
166 fighters enforced the GPL to liberate users who were oppressed by the
167 proprietary nature of GPL violators.</p>
168
169 # Tar Wars
170
171 + Tape backup systems essential in late 1990s.
172
173 + Many companies made forks of GNU Tar, and violated.
174
175 + Sysadmins were good at finding these violations.
176
177 + All but one violator came into compliance.
178
179 # Courts may never give compliance.
180
181 + Last GNU tar enforcement I ever did was circa mid-2002.
182
183 + Company decided to *remove* tar &amp; rewrite rather than compliance.
184
185 + Let's sue!
186
187 + Lawyers told me courts are unlikely to order compliance as a remedy.
188
189 + Courts usually give money and an injunction
190      - Company already gave latter of their own accord (de-facto)
191
192 # Coalition of the Willing
193
194 <img align=right src="wrt54g.png"/>
195
196 + Spring 2003: dozens of reports on WRT54G.
197
198 + Discussions begin with Cisco (who'd bought Linksys just weeks before)
199
200 + Story hits slashdot 2003-06-08
201
202 + FSF puts together group to do enforcement.
203      - key members: Erik Andersen (BusyBox) &amp; Harald Welte (Linux)
204
205 # Compliance Takes Soooo Long
206
207 + FSF represents the coalition.
208
209 + Broadcom is discovered as upstream.
210
211 + WRT54G source is released (but wireless driver kept proprietary).
212
213 + Broadcom argues FCC prohibits; FSF agrees not to pursue (can't really anyway).
214
215 + WRT54G releases spawns OpenWRT community.
216
217 + Harald is frustrated.
218
219 # GPL-violations.org
220
221 <img align=right src="harald-welte.jpg"/>
222
223 + FSF was initially shy about lawsuits.
224
225 + Harald disagreed with FSF strategy (in hindsight, he was right).
226
227 + launches multiple lawsuits in Germany (about 8 between 2005-2008).
228
229 + Quite successful, although has same &ldquo;courts generally only grant injunction&rdquo; again.
230
231 # GCC Redux, 2003-2005
232
233 + Embedded systems become major part of industry.
234
235 + GCC is best compiler.
236
237 + Many companies start making GCC-based toolchains.
238
239 + Focus of post-WRT54G enforcement at FSF.
240
241 # Funding Crisis for Enforcement
242
243 + FSF had hoped to raise funds &ldquo;certifying compliance&rdquo;.
244
245 + You can't break even on this for less than $10,000/release.
246
247 + No one is willing to pay (still true today, AFAICT).
248
249 + Those who'd know enough to buy services think they'll get away with violations anyway.
250
251 # Money
252
253 + No one in non-profits is getting rich from this.
254
255 + Who should pay for enforcement: 
256      - Those who *comply* or those who *violate*?
257      - Individual donors?
258
259 + There must be a deterrent.
260
261 + Non-profit enforcement == accountability.
262
263 + Confidentiality is something violators ask for.
264
265 # Enforcement Corruption: MySQL
266
267 <img width="274" height="383" align=right src="marten-mickos.jpg"/>
268
269 + Proprietary relicensing (by holding all copyright).
270
271 + GPL enforcement with profit as its primary (and only?) goal.
272
273 + MySQL would shake down GPL users to buy proprietary licenses they didn't need.
274
275 + I wish I'd identified this as corruption sooner.
276
277 # Embedded Violations Prevalent
278
279 + Erik Andersen becomes exasperated by mid-2006.
280      - post-Linksys compliance, router &amp; NAS market is a violation haven.
281
282 + Erik asks for help.
283
284 + Conservancy becomes his enforcement agent (and gets some others &copy; assignment)
285
286 + Conservancy has had > 100 GPL violations queued for action since 2007.
287      - Conservancy's list is now > 300
288
289 # The Era of GPL Litigation
290
291 + Lawsuits become undeniably necessary.
292      - Dan Ravicher &amp; Aaron Williamson file some in USA: for Conservancy &amp; Erik.
293
294 + Focus is to settle:
295      - What we want more than anything else is full compliance &hellip;
296      - &hellip; on *all* GPL'd and LGPL'd components &hellip;
297      - &hellip; judge is unlikely to grant us all that &hellip;
298      - &hellip; so we work hard to settle on that request &hellip;
299      - &hellip; taking extra money &amp; injunctions only as a consolation prize.
300
301 + But why is full compliance so hard for these companies?
302
303 # Linksys Redux
304
305 + 2003-2004, everything they put out is VxWorks.
306
307 + Circa late 2004, BusyBox/Linux &amp; GNU/Linux slowly becomes the Linksys default again.
308
309 + FSF finally gets fed up and sues.
310
311 + One wonders: Why don't they just come into compliance before getting sued?
312
313 # Challenges of Modern Compliance
314
315 + Saavy violators meant intelligent discussion.
316     + Jobs knew just what he was trying to get away with re: Objective C.
317
318 + Clueless violators means difficult conversations:
319      + Me: &ldquo;Your software violates GPL.&rdquo;
320      + Them: &ldquo;We make hardware.&rdquo;
321      + Me: &ldquo;I know, but it has software in it.  Our members' software. Under the GPL.&rdquo;
322      + Them: &ldquo;No, it doesn't. We make hardware.&rdquo;
323      + Me: &ldquo;But your firmware download&hellip;on *your* website&hellip;that's software.&rdquo;
324      + Them: &ldquo;Oh, that's not ours.  We got that from someone.  Nothing to do with us.&rdquo;
325
326 + Having the above conversation across four phone calls every two months is why I seem so insane most of the time.
327
328 # The Upstream Problem
329
330 <img align=left src="michael-scott.jpg"/>
331
332 When I said that I was king of forwards, you got to understand that I
333 don't come up with this stuff. I just forward it along. You wouldn't
334 arrest a guy who was just passing drugs from one guy to another.
335
336 <p align="right">
337  -- Michael Scott, *The Office* 
338 </p>
339
340 # Suppliers Bully OEMs, AFAICT 
341
342 + I'd be the worst police officer in the world.
343
344 + No one ever turns &ldquo;states' evidence&rdquo;
345      - &hellip; at least they don't for _me_, anyway.
346
347 + Me: &ldquo;Please, just tell me on the record your supplier violated when distributing to you.&rdquo;
348
349 + Them: &ldquo;We'll work with our upstream to get into compliance.&rdquo;
350
351 # Embedded Device Software Freedom
352
353 + Sure, I've got the sources.
354
355 + But, can I build it in the same way the company did?
356
357 + If I get it built, can I install it?
358
359 + By the time I get all that working, will the device be discontinued?
360
361 + Will they get away with it if they do, only to violate in the next product line?
362
363 + In the age of the embedded device, copyleft seeks to answer these questions correctly.
364
365 # GPL Predicted this Problem 
366
367 + Even in 1991, RMS made sure GPLv2 handled this.
368
369 # GPLv2: More than Just Source
370
371 <p>For an executable work, complete source
372 code means all the source code for all modules it contains, plus any
373 associated interface definition files, plus <strong>the scripts used to
374 control compilation and installation of the executable</strong>.</p>
375
376 <p>(empahsis mine)</p>
377
378 # GPLv2: More than Just Source
379
380 + &ldquo;the scripts to control&hellip;&rdquo; gets us close.
381
382 + It handles most of the issues.
383
384 + I even argued it includes authorized install information.
385      + Unfortunately, RMS gave in on that one.
386
387 # GPLv3: Installation Information
388
389 <span class="fitonslide">
390 <p><strong>&ldquo;Installation Information&rdquo;</strong> for a User Product <strong>means any methods,
391 procedures</strong>, authorization keys, <strong>or</strong> other <strong>information required to install
392 and execute modified versions</strong> of a covered work in that User Product from
393 a modified version of its Corresponding Source.  The <strong>information must
394 suffice to ensure that the continued functioning of the modified object
395 code</strong> is in no case prevented or interfered with solely because
396 modification has been made.</p>
397
398 <p>If you convey an object code work under this section in, or with, or
399 specifically for use in, a User Product, and the conveying occurs as
400 part of a transaction in which the right of possession and use of the
401 User Product is transferred to the recipient in perpetuity or for a
402 fixed term (regardless of how the transaction is characterized), the
403 Corresponding Source conveyed under this section must be accompanied
404 by the Installation Information.</p>
405 </span>
406
407 <p>(empahsis mine)</p>
408
409 # GPLv3: Installation Information
410
411 + In my view, just clarifies GPLv2's terse wording.
412
413 + In any event, it makes it certain.
414
415 + Users of device can modify and upgrade their devices &hellip;
416      + &hellip; as it should be.
417
418 + This is one of the reasons projects should upgrade to GPLv3.
419
420 # Today.
421
422 <img align="right" height="473" width="557" src="DQWindmill.gif"/>
423
424 + I continue on GPL enforcement for Conservancy projects.
425      - new reports at least once a week.
426
427 + Matthew Garrett works hard on Android device compliance.
428
429 + FSF is overwhelmed with violation reports.
430
431 + Armijn (of gpl-violations.org) volunteers sporadically.
432
433 # Constant Vigilance!
434
435 <img align="right" src="moody.jpg"/>
436
437 + GPL Violations *are* *everywhere*.
438
439 + My only recourse is &hellip;
440      - Constant Vigilance!
441
442 + BTW, I'll take an even money bet for (almost) any amount:
443      - Give me an hour and an Internet connection &hellip;
444      - &amp; I'll find you a GPL-violating embedded firmware I've never seen before.
445
446 # More Info / Talk License
447
448 + URLs / Social Networking / Email:
449      - Conservancy: sfconservancy.org &amp; @conservancy
450      - Me: ebb.org/bkuhn &amp; @bkuhn (identi.ca only)
451      - FSF Licensing Site: fsf.org/licensing
452      - Report GPL violations: &lt;compliance@sfconservancy.org&gt;
453      - Slides source: gitorious.org/bkuhn-small-hacks/talks
454
455 <span class="fitonslide">
456 <p>Presentation and slides are: Copyright &copy; 2008, 2009, 2010, 2011 Bradley M. Kuhn, and are licensed under:
457 <p><img src="cc-by-sa-3-0_88x31.png"/>
458 the <a href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-Share Alike (CC-By-SA) 3.0 Unported License</a>.</p>
459
460 <p>Some images included herein are copyrighted by others. I believe my use of those images is fair use under USA &amp; German copyright law.  However, you should remove such images if you redistribute these slides under CC-By-SA.
461 </p>
462 </span>