From e06e1ffd8488b969a52342f0f6dfd588f3d18c2d Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 23 Jun 2019 09:27:55 +0200 Subject: add slides for upcoming Korean public domain + FOSS conference --- 2019/korea/gpl-germany.tex | 299 +++++++++++++++++++++ .../osmodevcon2019-osmocom_and_lte.adoc | 92 +++++++ 2 files changed, 391 insertions(+) create mode 100644 2019/korea/gpl-germany.tex create mode 100644 2019/osmodevcon2019-osmocom_and_lte/osmodevcon2019-osmocom_and_lte.adoc (limited to '2019') diff --git a/2019/korea/gpl-germany.tex b/2019/korea/gpl-germany.tex new file mode 100644 index 0000000..519b6c5 --- /dev/null +++ b/2019/korea/gpl-germany.tex @@ -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} diff --git a/2019/osmodevcon2019-osmocom_and_lte/osmodevcon2019-osmocom_and_lte.adoc b/2019/osmodevcon2019-osmocom_and_lte/osmodevcon2019-osmocom_and_lte.adoc new file mode 100644 index 0000000..bd71b2f --- /dev/null +++ b/2019/osmodevcon2019-osmocom_and_lte/osmodevcon2019-osmocom_and_lte.adoc @@ -0,0 +1,92 @@ +Osmocom and LTE +=============== +:author: Harald Welte +: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 -- cgit v1.2.3