add slides for upcoming Korean public domain + FOSS conference

This commit is contained in:
Harald Welte 2019-06-23 09:27:55 +02:00
parent b3256853d9
commit e06e1ffd84
2 changed files with 391 additions and 0 deletions

299
2019/korea/gpl-germany.tex Normal file
View File

@ -0,0 +1,299 @@
\documentclass[11pt]{beamer}
\usetheme{default}
%\setbeamertemplate{frametitle}{}
\newenvironment{myline}
%{\usebeamerfont{frametitle}\usebeamercolor[fg]{frametitle}\vfill\centering}
{\usebeamerfont{frametitle}\vfill\centering}
{\par\vfill}
\usetheme{Warsaw}
\usecolortheme{whale}
\title{GNU GPL enforcement cases in Germany}
%\subtitle{Subtitle}
\author{Harald~Welte}
\date[June 2019, Seoul/Korea]{Public Domain \& Open Source Conference, June 2019}
\institute{gpl-violations.org}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}{Outline}
\tableofcontents[hideallsubsections]
\end{frame}
\begin{frame}{About the speaker}
\begin{itemize}
\item I'm not a lawyer, this is not legal advice
\item Free Software developer for more than 20 years
\item Used to work on the Linux kernel from 1999-2009
\item By coincidence among the first people enforcing the GNU GPL in court
\item Since 2009 developing FOSS in cellular communications (Osmocom)
\item Living and working in Berlin, Germany.
\end{itemize}
\end{frame}
\section{History: First GPL enforcement in German court}
\begin{frame}{History leading to the case (2003)}
\begin{itemize}
\item Linux started to get used in consumer DSL/WiFi routers
\item 2003 Linksys WRT54G enforcement in US / FSF-led coalition
\item some dissatisfied at slow progress / little results
\item more similar devices are showing up in German market
\item I was head of netfilter/iptables development back then
\item companies disrespecting our development model made me very upset
\item I did some research on the legal situation and was looking for a competent lawyer
\item Luckily I found Dr. Till Jaeger, who had already published extensively on FOSS back then
\end{itemize}
\end{frame}
\begin{frame}{Welte vs. Sitecom (2004)}
Timeline
\begin{itemize}
\item March 18, 2004: Warning Letter to Sitecom
\item March 22, 2004: Sitecom asks for extension of deadline, granted by plaintiff
\item March 30, 2004: No declaration to cease+desist received
\item April 1, 2004: Request for grant of preliminary injunction filed
\item April 2, 2004: Injunction granted by district court Munich
\item April 13, 2004: Preliminary injunction served to Sitecom
\item April 20, 2004: Sitecom files appeal against injunction
\item May 19, 2004: Court issues ruling, upholding injunction
\end{itemize}
LG München, Az~21~O~6123/04
\end{frame}
\begin{frame}{Welte vs. Sitecom (2004)}
\begin{itemize}
\item Timeline reflects standard procedural code in copyright infringements in Germany
\item preliminary injunction can only be requested in {\em urgent} cases, which typically means {\em no less then 30 days after plaintiff knows about infringement}
\item short amount of time for declaration to cease and desist and fixing GPL compliance
\item if product is sold (or firmware downloadable) all over Germany, all courts are competent, plaintiff can chose
\item District court of Munich (LG München) didn't show any doubt about validity of GPL under German law
\end{itemize}
\end{frame}
\begin{frame}{Welte vs. Sitecom aftermath}
\begin{itemize}
\item Sitecom did some half-hearted attempts at fixing that one first product we found
\item preliminary injunction is not on a single product, but on the software netfilter/iptables
\item Unfortunately, Sitecom didn't change their habits / processes
\item April 20, 2005: Sitecom has to pay 5000 EUR to the court for a GPL violation in another product (WL-111), infringing the preliminary injunction.
\item May 22, 2006: Found another incompliant product: Warning notice about WL-105i
\end{itemize}
\end{frame}
\begin{frame}{After that first German case}
more lawsuits
\begin{itemize}
\item Welte vs. Fortinet (2005)
\item Welte vs. D-Link (2006)
\item Welte vs. Skype (2008)
\item gpl-violations.org slows down from 2008 onwards
\item Welte vs. Fantec (2013)
\end{itemize}
many more out of court enforcements (hundreds) with companies ranging from Siemens to Sun
\end{frame}
\begin{frame}{gpl-violations.org becomes dormant}
\begin{itemize}
\item I'm an engineer. Anything except writing code or designing electronics is a distraction
\item Legal work of license enforcement with gpl-violations.org took a lot of time
\item It was a great team working with Armijn Hejmel, Till Jaeger and colleagues
\item Ultimately, I am personally liable in all copyright lawsuits
\begin{itemize}
\item Requires deep personal involvement in lots of details
\end{itemize}
\item We had successfully demonstrated to the industry the GPL is upheld by court, and GPL compliance matters
\begin{itemize}
\item at least parts of the industry began to change their habits
\item mission accomplished
\end{itemize}
\item gpl-violations.org became dormant / inactive
\end{itemize}
\end{frame}
\begin{frame}{}
fast-forward to 2016
\end{frame}
\section{Enforcement by Patrick McHardy}
\begin{frame}{Patrick McHardy GPL enforcement caeses}
\begin{itemize}
\item Patrick McHardy was another German Linux Kernel developer starting GPL enforcement
\item by coincidence he was also involved with netfilter/iptables
\item he started his enforcement around the time he stopped contributing actual code
\item enforcement process is similar to what was described before
\item unfortunately, enforcement doesn't seem to be compliance-centric but profit-driven
\end{itemize}
\end{frame}
\begin{frame}{Patrick McHardy GPL enforcement caeses}
\begin{itemize}
\item Patrick secluded himself from Linux and netfilter developers
\item for many years he refuses to respond to any of our inquuries
\item his enforcement often seems to emphasize on minor infractions or grey areas like requiring a German translation of the GPL
\item he's not publishing his actions, but acting in secret
\item many assume he's largely financially motivated
\item suspended from netfilter team as a result
\item other netfilter core team members sign {\em principles of community oriented GPL enforcement}
\end{itemize}
\end{frame}
\begin{frame}{McHardy vs. Geniatech (2016-2018)}
From a high level, pretty similar to other infringement cases
\begin{itemize}
\item test purchase is made
\item warning notice is filed
\item no declaration to cease and desist
\item preliminary injunction applied for at LG Köln; granted (Az~14~O~188/17)
\item appeal against preliminary injunction turned down
\end{itemize}
\end{frame}
\begin{frame}{The details matter}
\begin{itemize}
\item Scope of preliminary injunction is very broad:
\item Defendant shall cease and desist from
\begin{itemize}
\item ever publishing, selling, offering for download any version of Linux (whether Patrick McHardy has any copyright in that or not)
\item putting hyperlinks on their website to any version of Linux
\item asking users to download ant version of Linux
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}{Appeal at OLG Köln (2018)}
\begin{itemize}
\item More than 1000 pages of filings of the parties (!)
\item Linux kernel development model makes McHardy {\em modifying author}, not {\em co-author}.
\item modifying author can only ask for cease and desist on those portions he wrote, not entire work
\item McHardy did not sufficiently show what exactly his contributions were and how they were forming themselves copyrightable works
\item McHardy did not substantiate what copyrightable contributions he has made outside of netfilter/iptables
\item McHardy decided to withdraw his case at this point, avoiding the higher district court to ever get to issue a verdict on the case.
\end{itemize}
\end{frame}
\begin{frame}{Legal concept: Miturheber vs. Bearbeiterurheber}
German copyright distinguishes between
\begin{itemize}
\item {\em Miturheber} (co-author)
\begin{itemize}
\item multiple authors plan and create a work together
\item any of the co-authors can claim cease+desist for the full work
\end{itemize}
\item {\em Bearbeiterurheber} (modifying author)
\begin{itemize}
\item a pre-existing work gets edited/modified by another author
\item the modifying author can only claim cease+desist on his part
\end{itemize}
\end{itemize}
This turns out to be one of the more important legal formalities discussed in recent GPL enforcement cases.
\end{frame}
\section{Enforcement by Christoph Hellwig}
\begin{frame}{Hellwig vs VMware (2016-2019)}
\begin{itemize}
\item not a classic (embedded) Linux GPL violation case
\item Linux kernel not used as a whole / as OS kernel
\item parts of Linux, such as SCSI-mid-layer, USB stack, radix tree and tons of device drivers used inside proprietary ESXi vmkernel
\item no preliminary injunction involved
\end{itemize}
\end{frame}
\begin{frame}{First court case at LG Hamburg (Az~310~O~89/15)}
\begin{itemize}
\item initial lack of understanding of the court on how the parts are pieced together
\item large focus on legal formalitiies such as standing
\item co-authorship (Miturheberschaft) vs.\ editor authorship (Bearbeiterurheberrecht)
\end{itemize}
\end{frame}
\begin{frame}{Second court case at OLG Hamburg (Az~5~U~146/16)}
Hearing on Nov. 28, 2018
\begin{itemize}
\item court has difficulties understanding which functionalities / code Hellwig is basing his claims on
\item court states Hellwig cannot claim editing copyright (Bearbeiterurheberrecht) on Linux as a whole
\item court believes the ruling at the previous court is a valid ruling based on the filings made
\begin{itemize}
\item editing copyright only on the part edited
\item no rights on the original program
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}{Second court case at OLG Hamburg (Az~5~U~146/16)}
\begin{itemize}
\item general statements and pointers to public sources are insufficient to prove authorship/rights
\item the concrete copies of code sections must be pointed out
\item it is insufficient if only an expert witness can show something
\item in some of the code, copyright statements hint that co-authorship might exist, while the claims were all based on editing authorship
\item difficulties with "what is a work". If the entire vmkernel+vmklinux and linux derived portions are one work, then Hellwig's parts are proportionally small.
\end{itemize}
\end{frame}
\begin{frame}{Second court (OLG Hamburg): Case dismissed}
\begin{itemize}
\item case was dismissed entirely based on formal grounds
\item court claims Hellwig didn't demonstrate clearly enough that his copyrighted work ended up in VMwares product
\item court didn't actually have to rule on the merits of the case
\end{itemize}
\end{frame}
\begin{frame}{Why is this happening all in Germany?}
\begin{itemize}
\item no copyright registration required
\item preliminary injunction must be applied for very quickly
\item preliminary injunction granted without hearing defendant
\item preliminary injunction doesn't require injunction bond
\item lots of precedent primarily due to the 2004 to 2008 cases
\item legal costs are regulated and not as insanely expensive as some other jurisdictions that shall not be named
\end{itemize}
\end{frame}
\begin{frame}{Further Reading}
\begin{itemize}
\item gpl-violations.org cases
\begin{itemize}
\tiny
\item \url{http://gpl-violations.org/} (News section)
\end{itemize}
\item McHardy cases
\begin{itemize}
\tiny
\item \url{https://www.netfilter.org/files/statement.pdf}
\item \url{https://netfilter.org/licensing.html}
\item \url{https://blog.fossa.io/patrick-mchardy-and-copyright-profiteering-44f7c28c0693/}
\item \url{http://laforge.gnumonks.org/blog/20180307-mchardy-gpl/}
\item \url{https://ifosslr.org/index.php/ifosslr/article/view/128/246}
\end{itemize}
\item Hellwig / VMware
\begin{itemize}
\tiny
\item \url{https://sfconservancy.org/copyleft-compliance/vmware-lawsuit-faq.html}
\item \url{http://laforge.gnumonks.org/blog/20151029-vmware_gpl/}
\item \url{http://laforge.gnumonks.org/blog/20160225-vmware-gpl/}
\end{itemize}
\item List of judgements / verdicts (not only) in Germany
\begin{itemize}
\tiny
\item \url{https://ifross.github.io/ifrOSS/Cases}
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}{Thanks}
Thanks for your attention.
You have a General Public License to ask questions now :)
\end{frame}
\end{document}

View File

@ -0,0 +1,92 @@
Osmocom and LTE
===============
:author: Harald Welte <laforge@gnumonks.org>
:copyright: 2019 by Harald Welte (License: CC-BY-SA)
:backend: slidy
:max-width: 45em
== Osmocom and LTE
* most of Osmocom CNI is written by paid developers these days
* developments mostly determined by customer requirements
* sysmocom isn't facing any significnat LTE requirements for years
* Result: No _native_ LTE support in any Osmocom components
* However: we do have small LTE related bits
** SI2quater for broadcasting eUTRAN neighbors over GSM
** SGs interface for 2G/3G side of CSFB and for SMS-over-SGs
== Irrespective of Osmocom...
What do we need to run a combined 2G/4G network?
1. shared subscriber database (HLR + HSS)
2. advertisement of respective neighbor cells
3. shared PS tunnel endpoint (GGSN + P-GW)
optionally:
* SGs interface in MME and MSC for CSGB + SMS-over-SGs
* Inter-RAT PS handover
* SRVCC (Single Radio Voice Call Continuity)
== Shared Subscriber Database
* Required mainly for Authentication
* poor man's hack: Simply install same IMSI/Key material in both HLR and HSS
** will result in auth re-sync on every authentication due to non-synchronized SEQ/SQN of UMTS AKA
* proper solution:
** Single HLR with both GSUP and DIAMETER, or
** DIAMETER-to-GSUP translator (to make LTE use OsmoHLR), or
** GSUP-to-DIAMETER translator (to make OsmoMSC/SGSN use HSS)
== Advertisement of neighbor cells
* GSM must advertise eUTRAN neighbors
** we have SI2quater support in osmo-bts
** TEMS phones show proper/valid decode
* LTE must advertise GSM neighbors
** no "OML" for S1-AP
** configuration mechanism is vendor-proprietary
== Shared PS tunnel endpoint
* if the MS/eUE moves from GPRS to LTE, it wants to keep PDP/PDN contexts
* solution: implementing P-GW and GGSN functionality in one element
** ergw might be able to do that (untested, complex)
** OsmoGGSN doesn't speak GTPv2C (required for P-GW)
** nextepc P-GW doesn't speak GTPv1C (required for GGSN)
Solution:
* play with ergw, or
* adopt nextepc GTPv2C code generator to use msgb/libosmo* and add GTPv2C to OsmoGGSN
== SGs interface
* Osmocom already implements full SGs interface
* Interaction with MME on LTE side needs only interop testing
== Inter-RAT PS handover
* inter-RAT HO offers seamless migration between GERAN + eUTRAN
* uses S3 interface between MME and SGSN (GTPv2C based)
* uses S4 interface between S-GW and SGSN (GTPv2C based)
* tbh, I don't know the details here.
* any help appreciated
* https://www.tech-invite.com/3m23/toc/tinv-3gpp-23-401_zh.html
* probably a long way for Osmocom to support it, given that we don't really do any inter-SGSN HO even inside a single RAT.
== Conclusions
The logical steps to improve our LTE interworking are:
1. split HLR/HSS and split GGSN/P-GW (today)
2. GSUP-to-DIAMETER translator for shared HLR/HSS
3. shared GGSN/P-GW for
== EOF
End of File