summaryrefslogtreecommitdiff
path: root/2012/gpl-freedomhec2012/gpl_compliance.tex
blob: 158dd5cc611549fe6f7afcd27a5a60e55c478f4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
% $Header: /cvsroot/latex-beamer/latex-beamer/solutions/conference-talks/conference-ornate-20min.en.tex,v 1.7 2007/01/28 20:48:23 tantau Exp $

\documentclass{beamer}

% This file is a solution template for:

% - Talk at a conference/colloquium.
% - Talk length is about 20min.
% - Style is ornate.



% Copyright 2004 by Till Tantau <tantau@users.sourceforge.net>.
%
% In principle, this file can be redistributed and/or modified under
% the terms of the GNU Public License, version 2.
%
% However, this file is supposed to be a template to be modified
% for your own needs. For this reason, if you use this file as a
% template and not specifically distribute it as part of a another
% package/program, I grant the extra permission to freely copy and
% modify this file as you see fit and even to delete this copyright
% notice. 


\mode<presentation>
{
  \usetheme{Warsaw}
  % or ...

  \setbeamercovered{transparent}
  % or whatever (possibly just delete it)
}


\usepackage[english]{babel}
% or whatever

\usepackage[latin1]{inputenc}
% or whatever

\usepackage{times}
\usepackage[T1]{fontenc}
% Or whatever. Note that the encoding and the font should match. If T1
% does not look nice, try deleting the line with the fontenc.


\title{Current Developments in GPL Compliance}

\author{Harald Welte}

\institute
{gpl-violations.org}
% - Use the \inst command only if there are several affiliations.
% - Keep it simple, no one is interested in your street address.

\date[FreedomHEC 2012] % (optional, should be abbreviation of conference name)
{FreedomHEC 2012, Taipei}
% - Either use conference name or its abbreviation.
% - Not really informative to the audience, more for people (including
%   yourself) who are reading the slides online

\subject{Embedded Linux}
% This is only inserted into the PDF information catalog. Can be left
% out. 



% If you have a file called "university-logo-filename.xxx", where xxx
% is a graphic format that can be processed by latex or pdflatex,
% resp., then you can add a logo as follows:

% \pgfdeclareimage[height=0.5cm]{university-logo}{university-logo-filename}
% \logo{\pgfuseimage{university-logo}}



% Delete this, if you do not want the table of contents to pop up at
% the beginning of each subsection:
%\AtBeginSubsection[]
%{
%  \begin{frame}<beamer>{Outline}
%    \tableofcontents[currentsection,currentsubsection]
%  \end{frame}
%}


% If you wish to uncover everything in a step-wise fashion, uncomment
% the following command: 

%\beamerdefaultoverlayspecification{<+->}


\begin{document}

\begin{frame}
  \titlepage
\end{frame}

\begin{frame}{Outline}
  \tableofcontents
  % You might wish to add the option [pausesections]
\end{frame}


% Structuring a talk is a difficult task and the following structure
% may not be suitable. Here are some rules that apply for this
% solution: 

% - Exactly two or three sections (other than the summary).
% - At *most* three subsections per section.
% - Talk about 30s to 2min per frame. So there should be between about
%   15 and 30 frames, all told.

% - A conference audience is likely to know very little of what you
%   are going to talk about. So *simplify*!
% - In a 20min talk, getting the main ideas across is hard
%   enough. Leave out details, even if it means being less precise than
%   you think necessary.
% - If you omit details that are vital to the proof/implementation,
%   just say so once. Everybody will be happy with that.

\begin{frame}{About the speaker}
\begin{itemize}
\item Programming computers since 1989
\item Linux user + application developer since 1994
\item Linux kernel development since 1999
\item GNU GPL license enforcement since 2003
\item IT security expert, network protocol security
\item Board-level Electrical Engineering
\item System-level Software for PPC, ARM, x86
\item IANAL, but companies not complying with the license forced me to spend lots of time with legal issues
\end{itemize}
\end{frame}


\section{Historical Development}

\begin{frame}{Historical development}
\begin{itemize}
	\item 1970ies: Softare becomes copyrightable
	\item 1980ies: GNU project, GPLv1
	\item 1990ies: Linux kernel, GPLv2, servers
	\item 2000s: Linux and FOSS is everywhere
\end{itemize}
\end{frame}

\subsection{FOSS is everywhere}

\begin{frame}{Linux and Free Software (FOSS) everywhere}
\begin{figure}[h]
\centering
\includegraphics[width=100mm]{linux_netfilter_singapore_entertainment.jpg}
\end{figure}
\end{frame}

\begin{frame}{More Linux - More License Violations}
\begin{itemize}
	\item Boom of Linux results in many {\em new companies} using it in products
	\item Such Linux newbies do not have a history in the FOSS community
	\item They also do not share the same culture, values and norms
	\item They simply use Linux to reduce royalty cost for proprietary OS
	\item They run into trouble (GPL violations)
\end{itemize}
\end{frame}

\subsection{GPL enforcement}

\begin{frame}{More License Violations - More Enforcement}
\begin{itemize}
	\item New Linux based products continue to enter the market
	\item License compliance often very bad
	\item Community is deeply upset about the violation of its rules
	\item Often perceived as insult of the FOSS community culture
	\item Lack of respect of corporations towards community
	\item Legal enforcement is often the only possible way for community to educate corporations
\end{itemize}
\end{frame}

\begin{frame}{GPL enforcement}
\begin{itemize}
	\item Before 2003: Mostly Free Software Foundation
	\item 2003-now: gpl-violations.org (Europe), ~ 200 cases
	\item 2005-2010: SFLC (United States)
	\item 2010-now: SFC (United States)
	\item publicly invisible enforcement
	\begin{itemize}
		\item e.g. MySQL (dual-licensing)
		\item e.g. Asterisk (dual-licensing)
	\end{itemize}
\end{itemize}
\end{frame}

\section{Beyond minimal license compliance}

\subsection{FOSS communities vs. license terms}

\begin{frame}{FOSS community is technical, not legal}
\begin{itemize}
	\item FOSS is created by software developers working together in
collaborative ways, often without any formal structure
	\item Individuals, Universities as well as Corporations
contribute their work
	\item Cooperation in a culture of sharing
	\item Even direct competitors like Intel and AMD cooperate in Linux
development, because everyone needs it
	\item FOSS communities are deeply technical. They hate company
politics.
	\item License is {\bf just} a last resort of protection against
those who absolutely don't understand FOSS
\end{itemize}
\end{frame}

\begin{frame}{Beyond pure legal compliance with licenses}
\begin{itemize}
	\item Compliance with the legal terms of the license is the
absolute bare minimum that companies have to do
	\item If you use FOSS in your products, please consider
establishing a healthy relationship with the communities that drive
development of this software
	\item It is not a customer / supplier relationship!
	\item The community expects you to participate in development
\end{itemize}
\end{frame}

\subsection{Becoming part of the community}

\begin{frame}{Why should you join?}
Benefits to Embedded electronics companies
\begin{itemize}
	\item Larger number of engineers can help you improve your product
	\begin{itemize}
		\item optimize performance (battery, speed, ...)
		\item fix more bugs than your in-house R\&D
		\item have more ideas/innovation than all engineers combined inside your company!
	\end{itemize}
	\item Be recognized within the community as {\em somebody who understands}
	\begin{itemize}
		\item allows you to attract skilled developers from the FOSS world who would otherwise never consider working for you
		\item makes you more attractive to most technical customer base of {\em early adopters}
	\end{itemize}
	\item Reduce cost of maintaining your code base
\end{itemize}
\end{frame}

\begin{frame}{How to become part of the community}
\begin{itemize}
	\item Permit your engineers to engage in technical discussions on mailing lists
	\item Submit your modifications to the respective upstream projects
	\item Join technical conferences and discuss technical issues
	\item Encourage the community to innovate and extend your products
\end{itemize}
\end{frame}

\begin{frame}{When and how to release source code}
\begin{itemize}
	\item Legal requirement:
	\begin{itemize}
		\item You're used to release source code at the time product ships because the license forces you to
	\end{itemize}
	\item Community norm:
	\begin{itemize}
		\item Your engineers interact with the project maintainers during R\&D
		\item Source code of your modifications undergoes review + inclusion in mainline
	\end{itemize}
\end{itemize}
\end{frame}

\begin{frame}{Quality of the source code release}
\begin{itemize}
	\item Legal requirement / Reality:
	\begin{itemize}
		\item {\em complete and corresponding} source code
		\item Often does not compile
		\item Often contains proprietary kernel modules of questionable legality
		\item Often provides no (simple) way of installing re-compiled program on the actual device
	\end{itemize}
	\item Community norm:
	\begin{itemize}
		\item {\em complete and corresponding} source code
		\item no proprietary kernel modules that constrain e.g.  updates to later kernels
		\item complete utilities to install modified version of software on the device
		\item maybe even some instructions on how to do so
	\end{itemize}
\end{itemize}
\end{frame}

\begin{frame}{Summary}
\begin{itemize}
	\item Show respect for the FOSS development model based on
mutual respect and understanding
	\item Actively engage and discuss with the community
	\item Don't try to cheat your way out of license compliance
	\item Treat community as partner in development of your products
	\item Don't treat them like your enemy (DRM, Tivo-ization)!
\end{itemize}
\end{frame}

\section{Current Developments}

\subsection{Software Freedom Conservancy}

\begin{frame}{Software Freedom Conservancy}
\begin{itemize}
	\item gpl-violations.org is no longer alone
	\item SFC is doing busybox enforcement in the US
	\item Some people/entities are upset about that...
	\item ... but we {\bf need} to see more enforcement
	\item SFC activities sometimes misrepresented in public!
\end{itemize}
\end{frame}

\begin{frame}{Software Freedom Conservancy}
\begin{itemize}
	\item It's great to see enforcement outside Europe
	\item It's great to see cases go to court in the US
	\item We need more precedent in favor of GPL enforcement to
		deter people from intentionally taking the risk of
		infringement
	\item 
\end{itemize}
\end{frame}

\begin{frame}{Software Freedom Conservancy / beyond busybox}
\begin{itemize}
	\item Some Linux kernel developers will work with SFC
	\item SFC is now able to enforce GPL on Linux kernel, not just busybox
	\item Lots of devices have Linux kernel but no busybox (e.g. Android)
\end{itemize}
\end{frame}

\subsection{The AVM Case}

\begin{frame}{The AVM Case}{Background (1/2)}
\begin{itemize}
	\item AVM is commercially most successful vendor of DSL CPE (Fritz!Box)
	\item They heavily use Linux and other FOSS in their products
	\item They also have an unusual amount of proprietary code in
		the devices, compared to most other vendors (e.g. bypass
		netfilter/iptables and use their own packet filter/NAT)
	\item Cybits is a German vendor of parental control / child safe
		content filtering software (proprietary)
\end{itemize}
\end{frame}

\begin{frame}{The AVM Case}{Background (2/2)}
\begin{itemize}
	\item Cybits has developed a version of their filtering software
		that can be installed by the user onto the AVM Fritz!Box
	\item The installation procedure downloaded a AVM firmware
		update, extracts the root filesystem, changes some
		scripts, deactivates individual programs and adds their
		own software into the filesystem image
	\item The modified image is then installed by the user into his
		device
\end{itemize}
\end{frame}

\begin{frame}{The AVM Case}{The Dispute (preliminary proceedings)}
\begin{itemize}
	\item AVM now asks court to grant injunction against Cybits
		modifying {\em their firmware}, based on copyright,
		trademark and unfair competition claims
	\item Court grants that injunction based on AVMs claims
	\item Cybits disputes that first decision
	\item Harald Welte / gpl-violations.org become {\em side intervener}
\end{itemize}
\end{frame}

\begin{frame}{The AVM Case}{The Dispute (preliminary proceedings)}
\begin{itemize}
	\item {\em side intervener} because AVM tries to use legal means
		to restrict the freedom granted by the GPL: The ability
		to modify GPL licensed code, and to use such modified
		versions
	\item As Cybits only modifies code that is not copyrighted by
		AVM, AVM cannot make copyright based claims
	\item Court lifts preliminary injunction on condition that some
		erroneous display in the web interface are resolved by
		Cybits
\end{itemize}
\end{frame}

\begin{frame}{The AVM Case}{The Dispute (main proceedings)}
\begin{itemize}
	\item AVM sues Cybits in main proceedings, Harald Welte side
		intervenes again
	\item AVM is making claims over claims and files tons of papers,
		up to a point where I have doubts that the court is able
		to read all of them
	\item Among other things, they always try to present the
		firmware as something whole to which they own rights.
		But if specifically asked, they do not explicitly claim
		it's a derivative or collective work
	\item Court accepts the fact that GPL licensed software is used
\end{itemize}
\end{frame}

\begin{frame}{The AVM Case}{The Dispute (ridiculous AVM claims)}
\begin{itemize}
	\item AVM claims that an illegal modification under copyright
		law is happening, as Cybits is modifying their code by
		unloading AVM's proprietary kernel module and replacing
		it with standard kernel modules like ip\_tables.
	\item AVM claims that illegal copying happens as one of AVM's
		programs is copied from flash into RAM when Cybits
		installations scripts are executing it
	\item AVM claims copyright is about software, not firmware (lol)
\end{itemize}
\end{frame}

\begin{frame}{The AVM Case}{December 2011: The verdict}
\begin{itemize}
	\item Court rules that AVM cannot restrict Cybits based on
		copyright law due to the provisions of the GPL
	\item Court rules that the firmware (including all GPL and
		non-gpl licensed components) constitutes a collective
		work
	\item Court rules that thus the entire collective work becomes
		{\em infected} by the GPL (!)
\end{itemize}
\end{frame}

\begin{frame}{The AVM Case}{Analysis of the verdict}
\begin{itemize}
	\item Court has made a very far-reaching verdict
	\item What is the result of the {\em infection} of the
		collective work?
	\item Why is it not {\em mere aggregation on a storage medium}?
	\item Was AVM insisting that the firmware is somehow one
		item/entity all along the court case the reason for this
		somewhat unexpected outcome?
\end{itemize}
\end{frame}

\begin{frame}{The AVM Case}{What do we learn from it?}
\begin{itemize}
	\item Some companies are behaving outrageous in terms of GPL compliance
	\item Trying to fight very hard to restrict the freedom of the
		GPL can come back very hard to your own disadvantage.
	\item AVM has publicly proven that they're probably the worst
		aggressor against the freedom of the GPL, and they have
		failed to get away with it.
\end{itemize}
\end{frame}

\subsection{Current focus at gpl-violations.org}

\begin{frame}{Chinese Android Phones}
\begin{itemize}
	\item traditionally, we only see major brands/vendors like HTC,
		Samsung, LG, Motorola in Europe
	\item at the moment, TCT, ZTE, Huawei and others are starting to
		become available
	\item we're taking a {\em very} close look at all those devices
		and have just obtained an injunction against TCT Mobile
		(Alcatel branded)
	\item Chinese vendors must learn that they have to respect
		copyright and the GPL when they ship to EU or US market
\end{itemize}
\end{frame}

\begin{frame}{Chinese Oscilloscopes (DSO)}
\begin{itemize}
	\item did you know there are fairly decent Linux based DSO
		(digital storage oscilloscopes) available?
	\item wouldn't every system-level engineer dream of being able
		to enhance the software on a DSO with his custom
		analysis / trigger / protocol decoder code?  Or for
		factory testing/automation purpose?
	\item as part of GPL enforcement, Hantek/Tekway have now
		released the source code to bootloader/kernel, including
		the kernel drivers for their DSO hardware!
\end{itemize}
\end{frame}

\begin{frame}{no-name / store-branded OEM devices}
\begin{itemize}
	\item Actually found one German "cheap electronics vendor" who
		sell more than 13 currently active products in a
		completely GPL in-compliant way
	\item Pretty big surprise, given all the enforcement that has
		been done in recent years
\end{itemize}
\end{frame}

\begin{frame}{Cooperation with Free Software Foundation Europe}
\begin{itemize}
	\item Cases that we have finished enforcement on are handed over
		to FSFE
	\item FSFE volunteers will continue to monitor compliance,
		especially of firmware updates for them
	\item If any such future incompliance is found, case gets handed
		back to gpl-violations.org for enforcement of
		contractual penalty and declaration of cease+desist
	\item Contractual penalty gets donated to FSFE
\end{itemize}
\end{frame}

\begin{frame}{Thanks}
\begin{itemize}
	\item Thanks for your attention
	\item Feel free to raise questions
\end{itemize}
\end{frame}

\end{document}
personal git repositories of Harald Welte. Your mileage may vary