Recently Matt Mullenweg called out Wix for violating the GPL. Wix's CEO, Avishai Abrahami's post on the company blog missed some of the key issues when it comes to using code licensed under the terms of the GNU General Public License. The GPL doesn't require you to only release the changes made to a dependency. If you use a GPL library in your project, then the entire project is deemed to be a derivate work. This is why the GPL is called a viral license, because if one part of your project is covered by the GPL, then it applies to the entirety of your app. Other people more qualified than me have explained this in more detail, more elegantly than I ever could.
This reminded me of a popular platform that is built on a GPL violation. FlightRadar24 allows users to track flights in real time. FR24's data is collected from multiple sources, including the US FAA and a network of volunteers that run tracking equipment. One of the most common tracking setups uses a Raspberry Pi hooked up to a cheap DVB-T USB tuner. librtlsdr is used to tune the USB stick to the right frequency so it can listen to the tracking signals.
The FlightRadar24 software, FR24Feed, is a single binary that includes a statically linked copy of librtlsdr. On multiple occasions I have asked for a full copy of the source code for the FR24Feed binaries that FlightRadar24 are distributing. They have refused.
FlightRadar are under the mistaken belief that they only have to distribute the source for their modifications to librtlsdr. They have made their patched version of the code available on the FlightRadar24 downloads page. FlightRadar24 say they won't release the source to ensure the quality of their data. I'm sorry, but the GPL doesn't include a clause that excuses you from distributing the source code if you have a bad architecture.
It is disappointing to see FlightRadar24 refusing to comply with the terms of the GPL. I still have everything I need to run a tracking station sitting in a drawer. I'll set up my tracking station once FlightRadar24 release all the full source for FR24Feed.
Over the last few months months I've been corresponding with Dennis Ulrich of Western Digital (WDC) about my concerns with the EULA for the My Book World Edition (MBWE) and their obligations under the GPL. To say it has been a drawn out process is an understatement.
It has taken some time to get WDC to understand the situation. There has been confusing messages about what the situation is with the EULA, the GPL and what license covers what pieces of code. The bottom line is that currently users must check the header of each file to ascertain which license applies to it, even though the downloads are marked as GPL.
Although WDC is moving slowly, they do seem to be commited to making the situation clearer in the next iteration of their MBWE product line. Based on a recent phone call with Dennis, the legal and engineering teams are working together to ensure various licenses complied with and their software engineers are aware of their obligations.
The next version of the MBWE is likely to ship with a revised EULA and properly inform the users of their rights under the GPL. This text is still being developed. At the same time it is still unclear if WDC will backport their changes to their existing NAS products. As it is a simple string change it shouldn't be too hard for them to dedicate a few resources to audit the code and update the strings.
It is unfortunate that WDC appears to have little interest in developing their MBWE product range as a hacker friendly FOSS product. It appears the licensing fix that will be implemented by WDC will more clearly delinate the FOSS and non free components of the MBWE firmware. Clarity is always an important legal consideration, but doesn't help foster a community. WDC seem to have little interest in fostering a hacker community around their products. This is an unfortunate decision by the company.
Many manufacturers of embedded devices only start releasing source for their firmware after being caught out for violating the GPL. WDC is to be commended for complying with the requirements of the GPL from the start. Altough there is no legal requirement for them to make the web gui code and other non free components available, WDC already does. It would be disappointing if they chose to take a backward step and stopped distributing parts of the firmware.
It is possible, and perfectly legal, for WDC to stop distributing the source for the proprietary components. At the same time it would not take much effort for them to release the whole platform as GPL or another FOSS friendly license. WDC is already required to do a code drop every time they release a new version of their hardware or firmware. I suspect it would be faster and easier to push all code to a public git repository than pick through and dump selected components as tarballs on a website.
WDC already have their support team dealing with customer bug reports. Maintaining a mailing list, a bug tracker, a wiki and maybe a public source code repository on somewhere like gitorious is likely to take less than 1 full time employee. The benefit for WDC would be great.
Not only is the hacker community likely to contribute bugs fixes and propose or even develop new features, they can help increase sales. I'm sure the good will generated by the switch to truly open approach to the MBWE product line would outweigh the cost of the additional resources required.
Let's hope Western Digital's fix is a FOSS friendly one. I will post more news as things progress.
Earlier today I purchased a Western Digital My Book World Edition (MBWE) 1Tb NAS as I needed a simple NAS. The MBWE seemed like a good option, it runs GNU/Linux, it is hackable and there is a bit of a community around it. I got the thing home and started setting it up through the web gui so I could enable SSH and NFS on it, until I hit the EULA. Yes I am one of those people who does actually read the EULA of most software before installing it. The EULA didn't strike me as a very free/open source software friendly. It states (emphasis mine):
WESTERN DIGITAL TECHNOLOGIES LICENSE AGREEMENT AND WARRANTY DISCLAIMER
NOTICE: By accepting this License Agreement and/or by installing, using or copying the Licensed Software, You are becoming a party to, indicating Your consent to, and agreeing to be bound by the terms of this License Agreement, without modification. If You do not understand and accept all of the following terms and conditions or You respond "NO" or give any other response that indicates you do not accept this License Agreement, then You must not install, use, or copy the Licensed Software.
(a) "Agreement" and/or "License Agreement" shall mean this License Agreement and any and all documents incorporated by reference; (b) "You" and/or "Your" shall mean the individual or legal entity exercising rights under; (c) "Licensed Software" shall mean computer software owned by Western Digital Technologies and may include associated media, printed materials, and "online" or electronic documentation provided by Western Digital Technologies; and (d) "Western Digital Technologies" shall mean Western Digital Technologies, Inc. and its subsidiaries, affiliates, licensees and agents.
2. LICENSE GRANT.
Subject to the terms of this Agreement, Western Digital Technologies hereby grants You a non-exclusive and non-transferable license to and use for personal or internal purposes the Licensed Software. This license is not a sale of the Licensed Software. Western Digital Technologies has no duty to provide further updates or changes to the Licensed Software.
You acknowledge and agree that You shall not (a) modify, adapt, translate or create any derivative works of the Licensed Software; (b) attempt to disable the Licensed Software by any means or in any manner; (c) attempt to decompile, disassemble, reverse engineer, or otherwise attempt to derive the source code for the Licensed Software; (d) distribute, encumber, sell, rent, lease, sublicense, or otherwise transfer, publish or disclose the Licensed Software to any third-party; or (e) remove or alter any trademark, logo, copyright or other proprietary notices, legends, symbols or labels in the Licensed Software.
Title, ownership and all intellectual property rights in and to the Licensed Software shall remain in Western Digital Technologies and/or its suppliers. The Licensed Software is protected by the copyright laws of the United States and international copyright treaties. Title, ownership rights and intellectual property rights in and to the content accessed through the Licensed Software including any content contained in the Licensed Software media demonstration files is the property of the applicable content owner and may be protected by applicable copyright or other law. This license gives you no rights to such content.
5. DISCLAIMER OF WARRANTY.
THE LICENSED SOFTWARE IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, WESTERN DIGITAL TECHNOLOGIES FURTHER DISCLAIMS ALL WARRANTIES INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE, AND FREEDOM FROM INTERFERENCE WITH ENJOYMENT OR FROM NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY RIGHTS. WESTERN DIGITAL TECHNOLOGIES DOES NOT WARRANT THAT THE LICENSED SOFTWARE WILL MEET YOUR REQUIREEMNTS OR WILL BE ERROR FREE. THE ENTIRE RISK ARISING OUT OF THE USE OR PERFORMANCE OF THE LICENSED SOFTWARE AND DOCUMENTATION REMAINS WITH YOU. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL WESTERN DIGITAL TECHNOLOGIES OR ITS SUPPLIERS BE LIABLE FOR ANY CONSEQUENTIAL, INCIDENTAL, DIRECT, INDIRECT, SPECIAL, PUNITIVE, OR OTHER DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION. DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING OUT OF THIS AGREEMENT OR THE USE OF OR INABILITY TO USE THE LICENSED SOFTWARE, EVEN IF WESTERN DIGITAL TECHNOLOGIES HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. BECAUSE SOME STATES/JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY TO YOU.
This license shall terminate automatically if you fail to comply with the limitations described in this Agreement. No notice shall be required from Western Digital Technologies to effectuate such termination. Upon termination you must destroy all copies of the Licensed Software.
7. U.S. GOVERNMENT RESTRICTED RIGHTS AND EXPORT RESTRICTIONS.
The Licensed Software is provided with RESTRICTED RIGHTS. Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(I)(ii) of The Rights in Technical Data and Computer Software clause of DFARS 252.227- 7013 or subparagraphs (c)(i) and (2)of the Commercial Computer Software-Restricted Rights at 48 CFR 52.227-19, as applicable. Manufacturer is Western Digital Technologies, 20511 Lake Forest Blvd., Lake Forest, CA 92630. You acknowledge that none of the Licensed Software or underlying information or technology may be downloaded or otherwise exported or re-exported into (or to a national or resident of) Angola, Cuba, Iran, Iraq, Libya, North Korea, Sudan, Syria, or any other country to which the U.S. has embargoed goods; or anyone on the U.S. Treasury Department's list of Specially Designated Nationals or the U.S. Commerce Department's Table of Denial Orders. By using the Licensed Software, you are agreeing to the foregoing, and are representing and warranting that you are not located in or under the control of a national or resident of any such country or on any such list.
You hereby agree to indemnify, defend and hold Senvid and Western Digital Technologies from and against any all liabilities, damages, claims, fines and expenses (including reasonable attorney's fees) arising out of any breach of this End User License Agreement and Warranty Disclaimer.
(a) This Agreement constitutes the entire agreement between the parties concerning the subject matter hereof; (b) This Agreement may be amended only by a writing signed by both parties; (c) This License Agreement shall be governed by the laws of the State of California, without regard to conflicts of law provisions, and you consent to the exclusive jurisdiction of the state and federal courts sitting in the State of California; (d) This Agreement shall not be governed by the United Nations Convention on Contracts for the International Sale of Goods; (e) If any provision in this Agreement should be held illegal or unenforceable by a court having jurisdiction, such provision shall be modified to the extent necessary to render it enforceable without losing its intent or severed from this Agreement if no such modification is possible, and other provisions of this Agreement shall remain in full force and effect; (f) A waiver by either party of any term or condition of this Agreement or any breach thereof, in any one instance, shall not waive such term or condition or any subsequent breach thereof; (g) The provisions of this Agreement that require or contemplate performance after the expiration or termination of this Agreement shall be enforceable notwithstanding said expiration or termination; (h) You may not assign or otherwise transfer by operation of law or otherwise this Agreement or any rights or obligations herein except in the case of a merger or the sale of all or substantially all of Your assets to another entity; (i) This Agreement shall be binding upon and shall inure to the benefit of the parties, their successors and assigns; (j) Neither party shall be in default or be liable for any delay, failure in performance (excepting the obligation to pay), or interruption of service resulting directly or indirectly from any cause beyond its reasonable control, and; (k) If any dispute arises under this Agreement, the prevailing party shall be reimbursed by the other party for any and all legal fees and costs associated therewith.
IF YOU ACCEPT the terms of this Agreement: I acknowledge and understand that by ACCEPTING the terms of this Agreement, I am agreeing to be bound by the terms, conditions, and limitations of this Agreement.
IF YOU DO NOT ACCEPT the terms of this Agreement. I acknowledge and understand that by refusing to accept these terms, I have rejected this license agreement and therefore have no legal right to install, use, or copy the Licensed Software.
I should probably preface the rest of this post with IANAL and that this does not constitute legal advice and if you need legal advice pay loads of money to a lawyer (I hope that keeps my lawyer happy).
I took a risk and clicked "I Agree" because I couldn't be bothered driving another 130km round trip to take it back and get something different and also I wanted to start hacking it anyway. I also figured that if WD's lawyers wanted to come after me I had the GPL on my side.
I suspect someone in engineering just copied and pasted the text in, just like they do for all of their software. To their credit WD does make the source code for the firmware for the device available on their website, so it doesn't strike me as an intentional attempt to avoid their obligations under the GPL. This seems like a pretty easy problem to fix, get a couple of people from WD's legal and engineering teams in a room and work out what the new text should be and then have engineering roll a new firmware release.
I have also contacted Western Digital's support department about the problem. Any updates will be posted here.
Update 23-Feb-2010: WDC support have responded apologising for any inconvenience caused and thanking me for bringing this to their attention. They also informed me that the information has been passed onto the relevant person. As yet they haven't responded to my follow up question about being informed when the issue is fixed.
Update 16-Mar-2010: After Western Digital closed the issue as resolved, I queried what the resolution was and received the following response, "Thank you for bringing this to our attention. Your issue has been forwarded to our legal and engineering teams and they are working to get our EULA and the terms of the GPL code in sync with one another. We are striving to get this resolved ASAP". It looks like the issue is now with the legal team at Western Digital.
Now that Dell is shipping Ubuntu loaded machines in the US, there has been some discussion on the Australian Ubuntu LoCo list about when Dell will be shipping them in Australia. The consensus seems to be, not any time soon. I tend to agree, there are many other larger markets Dell is likely to target if Linux/Ubuntu on Dells takes off.
Tom Schinckel mentioned that he is waiting for Dell to offer Window license refunds. I have already obtained one.
About 2 years ago I bought my Dell Latitude D810, which came preloaded with XP Pro. During the order process I asked twice if the OEM copy of XP would run under QEMU (after explaining what it was), I was told both times it would. I was pretty suspicious. After receiving the machine I set it all up, including loading ubuntu on it - I can't remember if I used Hoary or a Breezy Colony. Then I installed QEMU and tried installing XP from the OEM media. So far so good, until it came time to supply the license key. I kept on being told it was invalid and to contact Microsoft. I checked on #qemu on freenode and was told that the Dell OEM version of XP is BIOS locked to Dell kit. No problem, I called Microsoft who (after a 20min hold) referred me to Dell. Another long hold and I was told no go. I started asking for a refund and was transferred to various places. After a while I mentioned that Australian consumer law applied and the product was not functioning as advertised, so I wanted a refund on the faulty part. I was eventually offered a full refund if I returned the whole machine. I wasn't taking that option. Instead offered to contact the media and see if they could be of any assistance, I was then told I would receive a call back in a few days.
About a week later I received a call back from Dell. They made a final offer, I could keep the XP license and they would give me a "goodwill credit" of 150AUD. As I could get XP Pro OEM licenses for about 190AUD, wholesale, I pushed for that. I was told that Dell paid less than 150AUD per XP Pro OEM license, so I could take 150AUD or take nothing. I soon realised that this was the best I was going to get, so I took it. I wasn't required to return the license key as "Dell has no way of cancelling or reusing a license key".
For a bit over 1 hour of effort on the phone, I ended up with an XP Pro OEM license which could be used for dual booting(if I ever wanted to), and 150AUD refunded to my credit card. I am sure Dell doesn't think this sets a precedent, but the NSW Office of Fair Trading might beg to differ. As Dell Australia is based in NSW, NSW consumer law applies to all transactions.
Disclaimer: I am not a lawyer, this is not a legal opinion. I am not responsible if Dell (or anyone else) declines your request for a refund/credit based on your use of the information contained in this post. blah blah, you can't sue me :)