The Anatomy of a Modern GPL Violation

Post Syndicated from Bradley M. Kuhn original http://ebb.org/bkuhn/blog/2009/12/06/anatomy-gpl-violation.html

I’ve been thinking the last few weeks about the evolution of the GPL
violation. After ten years of being involved with GPL enforcement, it
seems like a good time to think about how things have changed.

Roughly, the typical GPL violation tracks almost directly the adoption
and spread of Free Software. When I started finding GPL violations, it
was in a day when Big Iron Unix was still king (although it was only a
few years away from collapse), and the GNU tools were just becoming
state of the art. Indeed, as a sysadmin, I typically took a proprietary
Unix system, and built a /usr/local/ filled with the GNU tools, because
I hated POSIX tools that didn’t have all the GNU extensions.

At the time, many vendors were discovering the same frustrations I was
as a sysadmin. Thus, the typical violation in those days was a
third-party vendor incorporating some GNU tools into their products, for
use on some Big Iron Unix. This was the age of the violating backup
product; we saw frequently backup products that violated the GPL on GNU
tar in those days.

As times changed, and computers got truly smaller, the embedded
Unix-like system was born. GNU/Linux and (more commonly) BusyBox/Linux
were the perfect solutions for this space. What was once a joke on
comp.os.linux.advocacy in the 1990s began to turn into a reality: it was
actually nearly possible for Linux to run on your toaster.

The first class of embedded devices that were BusyBox/Linux-based were
the wireless routers. Throughout the 2000s, the typical violation was
always some wireless router. I still occasionally see those types of
products violating the GPL, but I think the near-constant enforcement
done by Erik Andersen, FSF, and Harald Welte throughout the 2000’s has
led the wireless router violation to become the exception rather than
the rule. That enforcement also led to the birth of community-focused
development of the OpenWRT and DD-WRT, that all started from that first
enforcement that we (Erik, Harald and FSF (where I was at the time)) all
did together in 2002 to ensure the WRT54G source release.

In 2009, there’s a general purpose computer in almost every electronics
product. Putting a computer with 8MB RAM and a reasonable processor in
a device is now a common default. Well, BusyBox/Linux was always the
perfect operating system for that type of computer! So, when you walk
through the aisles of the big electronics vendors today, it’s pretty
likely that many of the devices you see are BusyBox/Linux ones.

Some people think that a company can just get away with ignoring the
GPL and the requirements of copyleft. Perhaps if a company has five
customers total, and none of them ask for source, your violation may
never be discovered. But, if you produce a mass market product based on
BusyBox/Linux, some smart software developer is going to eventually buy
one. They are going to get curious, and when they poke, they’ll see
what you put in there. And, that developer’s next email is going to be
to me to tell me all about that device. In my ten years of enforcement
experience, I find that a company’s odds of “getting away”
with a GPL violation are incredibly low. The user community eventually
notices and either publicly shames the company (not my preferred
enforcement method), or they contact someone like me to pursue
enforcement privately and encourage the company in a friendly way to
join the FLOSS community rather than work against it.

I absolutely love that so many companies have adopted BusyBox/Linux as
their default platform for many new products. Since circa 1994 when I
first saw the “can my toaster run Linux?” joke, I’ve dreamed
of time when it would be impossible to buy a mass-market electronics
product without finding FLOSS inside. I’m delighted we’ve nearly
reached that era during my lifetime.

However, such innovation is made possible by the commons created by the
GPL. I have dedicated a large portion of my adult life to GPL
enforcement precisely because I believe deeply in the value of that
commons. As I find violator after violator, I look forward to welcoming
them to our community in a friendly way, and ask them to respect the
commons that gave them so much, and give their code back to the
community that got them started.