Is Linksys shirking the GPL? (Maybe not.)
| Email weblog link | ||
| Discuss | ||
| Blog this |

Rob Flickenger
Jul. 29, 2003 08:39 PM
Permalink
![]()
The goal of recent fiddling has been to get a captive portal (such as NoCatSplash) running on this puppy, as well as to clean up their sloppy web interface, and possibly add some nifty new features (like IP tunnels, IPv6, wireless client mode, as well as some other obvious nicities).
This project has not been without its technical hurdles. One early problem was that of the format of their firmware updates. While the code contained within might be released under the GPL, Linksys is under no obligation to release the details of this file format. And yes, I asked them directly, but to date have gotten no reply.
No matter, with the help of many interested people around the globe, we have been able to decipher the (relatively simple) firmware file format, and even make a little utility that will generate a valid firmware for you. (Note that it's really easy to kill your AP with "bad" firmware, but that's another story altogether...)
Now that we are able to execute arbitrary commands on the WRT54G, it is obvious that Linksys is running modified software covered by the GPL. One perfect example of this is Zebra, the advanced dynamic routing software package. By opening the firmware file directly, as well as by making queries through the makeshift ping interface mentioned earlier, we noticed that the zebra running on the WRT54G doesn't use the standard configuration file locations. This means that it must certainly be a modified binary.
So, naturally curious, I wanted to find out what Linksys had to do to get Zebra running on this hardware. I stopped by the Linksys "GPL Code Center", and downloaded their zebra archive.
You can imagine my disappointment when I realized that this is in fact just a copy of the original source code available from zebra.org. Where are the changes to the source tree? I have just asked Linksys that very question, but as they still haven't gotten back to my first query, I expect my email to be filed under irrelevant and forgotten.
I believe the GPL is an important document that is intended to prevent exactly this sort of theft of code. Any company that incorporates GPL software into a commercial product and attempts to skirt the licensing terms is nothing short of a thief, building on the stolen effort of countless contributors.
And evidently, I'm not the first to notice that these binaries are compiled with a modified GCC (with a signature string of "GCC: (GNU) 3.0 20010422 (prerelease) with bcm4710a0 modifications"). That bcm4710 refers to the Broadcom chipset that this AP is actually made from. If Broadcom is using a modified GCC for their reference design, and are making this available to their developers, aren't they bound by the GPL to make the source code to those modifications available as well?
I will definitely be interested to see what comes of this unprecedented interest in a mainstream Linux product. If you are interested in finding out about how the WRT54G (or other Linux router from Linksys) actually operates, I urge you to write to Linksys and Broadcom, and ask (politely but firmly) for the details. I hope we can get through to these large manufacturers that while they are certainly welcome to use Open Source software in their products (and thereby benefit from the tremendous public effort spent on them), the community expects them to likewise respect the terms of licensing.
*** Update: 11:54pm 7/29/03 ***
I just got a response from Linksys support! (I'd post the email, but their disclaimer asks me not to.)
Evidently, we've moved on to "2nd level support", whatever that means. Hey, it's one round further than last time. I will keep you posted.
Oh, and in other news, Ross Jordan got a shell on the WRT54G! I'm so jealous. We worked on this all Hack night and didn't get it first. Great work, Ross! NoCatSplash, you'll be next!
***Update: 11:42am 7/31/03 ***
Thanks, slashdot readers for your usual valuable insight and candor. ;)
As many have pointed out, I did overlook the fact that Zebra could be compiled with options that change the location of the default configuration files. Naturally, this isn't a source code modification, so it is entirely possible that Linksys is running a "stock" zebra.
Interestingly enough, now having pulled down several sources and compared them against the original distributions, it appears that Linksys is releasing at least some of their changes. I noticed differences in ppp, iptables, and udhcp (although the latter is missing the Makefile, probably just an oversight). There are also differences in the 2.4.5.kernel tree, although obviously there are no drivers for the wireless card.
What about other binaries in the filesystem? tftpd is heavily modified (ah, but it's released under the BSD license). The epi_ttcp program that Ross used to get a shell, based on ttcp? Also BSD licensed. Their very, very hacked httpd is evidently based on mini_httpd, which is (you guessed it) BSD licensed. As far as I can tell without having exhaustively looked at every piece of available code, Linksys appears to be trying to comply with the terms of the GPL (as I understand them anyway), and putting many customizations into BSD code, which doesn't require source distribution.
The question of the modified GCC is still open, but as many have pointed out, since Linksys doesn't distribute the modified GCC binary, they are under no obligation to provide the source. Fotunately for this project, our testing suggests that we may not need the modified compiler after all. If you are a developer using Broadcom's reference design, and they provided you with a binary GCC distribution, please request the source and redistribute it, as you would be well within your rights to do so.
For more updates on the continuing saga with Linksys and the Linux kernel, try this weblog.
Rob Flickenger is a long time supporter of FreeNetworks and DIY networking. Rob is the author of three O'Reilly books: Building Wireless Community Networks, Linux Server Hacks, and Wireless Hacks.
You must be logged in to the O'Reilly Network to post a comment.
Showing messages 1 through 18 of 18.
-
WET54G
2003-10-28 10:12:14 anonymous2 [Reply | View]
Will it work with Air Port card equipped iBook?
-
What about section 2 of the GPL?
2003-07-31 23:50:31 anonymous2 [Reply | View]
Couple of points people have missed in this debate:
1) Froom the GPL:
"...The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it..."
Clearly, the firmware image on the Linksys router is a "work" containing the "Program"
2) From the GPL:
"...But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it...."
This is in Section 2, under it, ALL files that make up the Linksys firmware are automatically GPLed because they are "part of a whole"
In summary, if the Linksys firmware was easily taken apart and the individual pieces easily modified, then the entire firmware would not be GPL. But because it isn't, the firmware, and all drivers and such in it, are under GPL.
- Ted Mittelstaedt
- Author, FreeBSD Corporate Networker's Guide
It is a single unified file, it cannot be eas
-
All of this shows the danger of GPLed software to programmers and innovators
2003-07-31 23:10:05 anonymous2 [Reply | View]
This whole affair demonstrates the true nature of the GPL. It's designed to sabotage businesses. In particular, it's intended to strip them of the ability to add unique value to their products -- which, in turn, is an essential element of success. VA Linux had to drop out of the hardware business because they couldn't get a competitive edge -- which happened, in turn, because they embraced GPLed code. Linksys, if the GPL zealots have their way, will go the same route.
Linksys was foolish indeed to use GPLed code at all. Instead, they should have used BSD-licensed code, which is friendly to programmers and to the businesses which issue their paychecks. The BSD and MIT licenses, as well as other truly free licenses, promote innovation and allow programmers to be rewarded for innovating. The viral, spiteful, anti-business, anti-programmer GPL does the opposite.
--Brett Glass
-
Other GPL Violations...
2003-07-31 20:10:52 anonymous2 [Reply | View]
I had the priviledge of hearing Tim speak this past weekend. It's interesting he commented tangentally to this. He stated that Google, YahooMaps, PayPal, and eBay are all running linux, yet we've got no source from them. Does anyone believe they have not modified?
I'm not saying that they should turn over all thier assests, or even reveal what they have done, but it does provide some contrast to this story in that these are held as icons of the OSS movement, and not disected.
-
actually...
2003-07-31 11:21:05 anonymous2 [Reply | View]
"(I'd post the email, but their disclaimer asks me not to.)"
IMBw, but I think that's just tough cookies for them - they can *ask* you not to all they like, but they can't stop you unless you signed an NDA...
-
What proof?
2003-07-31 10:41:46 anonymous2 [Reply | View]
What proof is there that they've modified Zebra, except the different locations of configuration files?
Surely the changes to the source code made by autoconf don't count as vendor modifications.
-
Noted on linux-kernel too
2003-07-31 10:25:24 anonymous2 [Reply | View]
Might want to contact
Andrew Miklas as well, he's noted the same thing and was also chugging through Linksys support.
Note that Dell did something similar, and resolved it admirably when Colm MacCárthaigh asked -- the source for the GPLed components of their Dell Truemobile 1184 is now up on the web, details here.
Take note Linksys! ;)
-
Others
2003-07-31 08:46:16 anonymous2 [Reply | View]
What about other vendors? I know that Watchguard uses Linux and a bunch of other utilities but, I don't see any mention of the source anywhere.
Further more, I believe that some of the Watchguard specific modules require GPL licensing or LGPL at the least because of their tie in to the kernel and the other GPL utilities. Where are they?
-
Provable GPL violation only by Linksys
2003-07-31 08:45:29 anonymous2 [Reply | View]
Linksys has definitely violated the GPL by not making their source changes available to you, the consumer, after purchasing their GPL-enhanced product.
Broadcom, on the other hand, should they have provided Linksys with a modified gcc, MAY have violated the GPL, but no one (but Linksys) can prove that.
The GPL is a one-step process from distributor to distributee. After Broadcom got their copy of gcc, they can alter it all they want. As long as they don't plan on distributing this new gcc, then they're fine with not releasing the source. And if they DO plan on distributing their gcc, they can also limit distribution as much or as little as possible. It's their prerogative as distributor. GPL doesn't say that you have to give your code to EVERYONE yourself.
However, once they distribute their gcc, it is distributed under GPL, and Linksys can re-distribute it freely. Broadcom cannot make Linksys sign any additional agreements which infringe on the rights the GPL provides.
-
what other Linksys products use linux...
2003-07-31 08:42:50 anonymous2 [Reply | View]
I've wondered if my BEFW11S4 uses linux under the covers... All the articles and code released seems to concentrate just on WRT54G...
what about all the other linksys routers out there?
Where's the source?
Anyone know?
-
what other Linksys products use linux...
2003-07-31 08:41:45 anonymous2 [Reply | View]
I've wondered if my BEFW11S4 uses linux under the covers... All the articles and code released seems to concentrate just on WRT54G...
what about all the other linksys routers out there?
Where's the source?
Anyone know?
-
autoconf and an itchy trigger finger
2003-07-31 08:39:32 anonymous2 [Reply | View]
Let's all bash SHO for yelling about an unproven violation of rights, then start bitching Linksys out when someone doesn't know how to use an autoconf'd package.
I hope this posts clearly -- Damned O'Reilly not having a preview option makes this a gamble...
chet@bunny:~/tmp/zebra-0.93b$ ./configure --help | grep dir
--srcdir=DIR find the sources in DIR [configure dir or `..']
Installation directories:
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--datadir=DIR read-only architecture-independent data [PREFIX/share]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--infodir=DIR info documentation [PREFIX/info]
--mandir=DIR man documentation [PREFIX/man]
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
headers in a nonstandard directory <include dir>
chet@bunny:~/tmp/zebra-0.93b$
-
File Locations?
2003-07-31 07:21:08 anonymous2 [Reply | View]
Are you sure that the file locations aren't just configurable with a configure script? Perhaps they were using --prefix and --sysconfdir as well as other standard configure flags? This would not be a source modification.
-
GCC and GPL
2003-07-31 06:55:03 anonymous2 [Reply | View]
The author mentioned Linksys using GCC for the WAP software develpment, and suggested that if they were distributing the modified GCC to their developers, then they were obligated to make the source available publicly.
I do not believe this is correct, as I believe the GPL obligates companies to make the source code for GPL code they *sell* (perhaps distribute) available to those to whom they sell binaries.
So I agree that Linksysshould be making the modified zebra code available becuse they distribute the binary with their product, but I disagree that theya re obligated to distribute source forthe modified GCC which they kept internal to their company to compile that zebra software.
In other works a company could use a modified GCC to compile thousands of different proprietary programs for a radical new CPU, and be under no obligation to distribute the source for the modified GCC just because they used it to compile their software. They would have to give the GCC source if they also included the GCC binaries in what they sold so customers could compile programs for the radical new CPU.
My $0.02.
-
GPL and GCC
2003-07-31 06:50:38 anonymous2 [Reply | View]
You asked
"If Broadcom is using a modified GCC for their reference design, and are making this available to their developers, aren't they bound by the GPL to make the source code to those modifications available as well?"
No,the are not bound at all to release any changes to the gpl that the use internally, only if the release the binaries of that modified GCC do they have to publish the Source.
They can use thier own copy of the compiler to produce all the binaries that they want. That is why you can gpl source code that can only be compiled by a non-free compiler.
mike
-
Contact copyright holder
2003-07-31 03:21:15 anonymous2 [Reply | View]
You should notify the copyright holder(s) of the GPL package that is seemingly being misused. He (she, they) is certainly in the position of asking Linksys for clarification, and possibly threatening legal action.
-
Linksys support
2003-07-30 10:42:15 Kevin Bingham | [Reply | View]
Rob,
Good luck with Linksys support. Last time I emailed them for support I received an unclear response. "Is Linksys farming their support overseas?", I inanely thought. I looked at the response's header, and yes, they do.
Keep up the good work!
-
GCC Issues
2003-07-30 06:03:20 jbeimler [Reply | View]
I don't think you have much chance of getting the GCC patches. Linksys isn't shipping GCC, just code compiled with it. Whomever made the bcm4710 modifications is required to give Linksys the code if it is requested, but I can't see how an end user could get the code for gcc without getting the compiler directly from the distributor.
| Showing messages 1 through 18 of 18. |
Return to weblogs.oreilly.com.
Weblog authors are solely responsible for the content and accuracy of their weblogs, including opinions they express, and O'Reilly Media, Inc., disclaims any and all liabililty for that content, its accuracy, and opinions it may contain.
This work is licensed under a
Creative Commons License.






