The Next Steps toward Software Freedom for Linux

Bradley M. Kuhn

Kernel Recipes 2019

Thursday 26 September 2019 or

How I Ended Up An Activist

I first downloaded Linux in 1992; Finally got it to boot on my machine in 1993 (Linux 0.99pl12).

How I Ended Up An Activist

I was a student in a school with a tiny computer science department.

We had paid for really expensive DecStations running Ultrix.

I convinced the faculty to hire me for the summer to build a Linux lab (in summer of 1993!)

How I Ended Up An Activist

The lab worked, except that people kept walking up to the machines hitting C-A-D trying to reboot them into Windows (even when remote users were logged in).

How I Ended Up An Activist

From linux-0.99pl12/kernel/chr_drv/keyboard.c:
static void do_pad(unsigned char value, char up_flag)
 if ((value == KVAL(K_PCOMMA) || value == KVAL(K_PDOT)) &&
    (kbd_flags & CTRL_KEYS) &&
     (kbd_flags & (ALT_KEYS | ALTGR_KEYS))) {

How I Ended Up An Activist

So, I did this:

static void do_pad(unsigned char value, char up_flag)
 if ((value == KVAL(K_PCOMMA) || value == KVAL(K_PDOT)) &&
    (kbd_flags & CTRL_KEYS) &&
     (kbd_flags & (ALT_KEYS | ALTGR_KEYS))) {
     /* ctrl_alt_del(); */

How I Ended Up An Activist

I found a better way prepping this talk (from linux-0.99pl12/kernel/sys.c):
 * this indicates wether you can reboot 
 * with ctrl-alt-del: the default is yes
static int C_A_D = 1;

How I Ended Up An Activist

Silly, but this experience actually changed my life.

Even though my issue was trivial, having the freedom and permission to make this fix myself showed me immediately the “base case” of software freedom:

the right for downstream users to unilaterally change (big or small) and reinstall for themselves is what matters most.

It's Not About Upstream

Of course, upstream matters!

But there are limits to how much it matters.

Downstream means users, who are the actual real people that a software project serves.

Where Does The Next Generation Come From?

The first generation of Linux developers came from people who hacked their own devices. (We made our laptops, servers and desktops work with Linux.)

Today, billions of small devices are in the wild that run Linux.

Almost none of them comply with Linux's license, GPLv2.

Why Does the License Matter?

The compliance industrial complex has convinced us that licensing is about legalistic notices and statements.

In FOSS, (copyleft) licensing is about making sure users can hack their own devices.

When Embedded Linux Was Young

GPL Enforcement Yielded OpenWRT

Is OpenWRT a Unicorn?

For many years, no other product line of consumer-facing Linux devices had a serious alternative firmware project.

OpenWRT was the right enforcement action at the right time in history because developers were ready and waiting.

Is OpenWRT a Unicorn?

Other alternative firmware projects have not achieved OpenWRT's success to demand vendors to provide Linux sources and cooperate with the community.

During its key history, GPL enforcement on wireless routers was active and ongoing.

Harald's Enforcement & OpenWRT

Harald Welte from 2004–2013 brought more than 15 GPL enforcement actions (most of which were lawsuits) and mostly against wireless router makers:

Harald's Enforcement & OpenWRT

A mere sample of Harald's many enforcement actions (most of which were lawsuits):

  • 2004: Allnet
  • 2004: Asus
  • 2004: SecurePoint
  • 2004: Sitecom
  • 2004: Gigabyte
  • 2004: TomTom
  • 2005: ARP Datacon
  • 2005: Edimax
  • 2005: CeBit
  • 2005: Fortinet
  • 2005: MEDION
  • 2005: Targa
  • 2006: D-Link
  • 2007: Iliad
  • 2011: AVM

GPL Enforcement Is About This

You may copy and distribute the Program (or a work based on it, under § 2) in object code or executable form under the terms of § 1 & 2 above provided that you … [a]ccompany it with the complete corresponding machine-readable source code … The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable.

— GPLv2§3

Linux is Important

There is no doubt in my mind that Linux is the most important GPL'd program in history.

It was successful because users could install it on their own devices.

Linux cannot remain the most important GPL'd program if users can't install their modifications.

Tinkering is what makes software freedom succeed.

Can We Make YA OpenWRT?

OpenWRT is humming along well…

but, is there another class of devices for which we can plan ahead & create a positive symbiotic free firmware development project (supported by GPL enforcement when needed) to bring software freedom for those devices?

Ideas? Let's talk tonight and tomorrow.

What You Can Do

No one expects upstream developers to start downstream projects like OpenWRT.

But, as upstream developers, you (or your employers) are the copyright holders, which are a special class of people under the GPL.

You can help do the right kind of GPL enforcement to get source releases for key products.

Why We Enforce Linux's GPL

Independent developers don't have time for enforcement anymore.

GPL enforcement is boring, complicated work.

Why We Enforce Linux's GPL

While unethical enforcers can get rich, ethical ones like Conservancy — who prioritize getting the source code working and installing — have to fund their work with charitable donations.

You can talk to me tonight and tomorrow if you'd like to put your copyrights forward to help us.

More Info / Talk License

URLs / Social Networking / Email:

Presentation and slides are: Copyright © 2017, 2018, 2019 Bradley M. Kuhn, and are licensed under the Creative Commons Attribution-Share Alike 4.0 International License. Slide Source available.

Some images included herein are ©’ed by others. I believe my use of those images is fair use under USA © law. However, I suggest you remove such images if you redistribute these slides under CC-By-SA 4.0.