CyanogenMod: GPL not ideal for an open source project
"Focal developer Guillaume Lesniak gives his side of the story in a lengthy post on Google+. In a nutshell, in order for CyanogenMod to offer custom versions of their software to carriers and device makers, the team wants to use a different license than GPL (so that proprietary camera drivers, for instance, can be used) which upsets some members of the developer community — especially folks who contributed work for free, only to find out that CyanogenMod Inc will be making money off that work."
I read this story lately about the CyanogenMod project growing up and becoming an actual corporation. Part of that growth is the potential relicensing away from the GPL if possible to better suit hardware vendors so the vendor's "trade secrets" are not made public due to the viral nature of the GPL.
I'm seeing some similarities between this and other projects where you sign a Contributor License Agreement and get forced into a free software license and then due to terms of the CLA, the developer has the rights to relicense your code under a proprietary license.
Here's some more from the Google Plus:
"Yes, Cyanogen Inc. will need to do changes in CyanogenMod’s source code - because here’s another way they will finance the project: customization for their customers (e.g. carriers). This will imply the work done by the community will be sold to a third party by Cyanogen Inc, and that they have to do changes that they cannot put online publicly.
"A future conversation with Steve Kondik will reveal that they might need to put hardware-specific enhancement for some camera devices, and that has to be hacked in the Camera app code. Putting these changes inside Camera apps instead of Hardware Abstraction Layers (HAL) could break other apps, which ironically kind of go against the goal of CTS (because then, only the “official” camera app will have those enhancements). Of course, those hardware enhancements are trade secrets, so they cannot be published back to CyanogenMod’s public repositories."
If CyanogenMod wants to make money off of free software they have every right to do so under the terms of the GNU GPL. It's always been that way. They also have every right to try and relicense code even if its not in the communities best interest. I won't be terribly happy about that move as I think it is a disservice to its contributors and ultimately end-users. What I would suggest doing is making money off the trademark and good reputation of the project rather than comply with the demands of manufacturers. If manufacturers think CyanogenMod has some value (source code or branding) they need to put up with the conditions of the GNU GPL and any conditions the project/company set. CyanogenMod should be trying to target manufacturers although they shouldn't be complying with demands to change the licensing or make the code available under a difference license just so that a trade secret can be protected.
The sad reality is that many carriers like Verizon will not take your phone unless they can put crap on your phone that you cannot easily uninstall. Isn't this what Ubuntu is pretty much doing? Being at the mercy of the carriers and inviting them to heavily customize the look and put whatever garbage they want on the Ubuntu Phone without restriction.
That might be although if you have a truly desirable product (iPhone, Firefox phone, some Android phones, etc) people will purchase them outright. T-Mobile in the US doesn't even do contracts any more so there is no argument to be had (I don't believe) in customers and subsidized phones (which would otherwise increase costs). Just because most people get their phones from the same company doesn't mean that there is no market for selling phones direct to customers or through non-carriers.
I thought the point of CyanogenMod was to make Android more 'open'? I would hate to see proprietary versions of CM.
I actually use CM on my phone (Galaxy Nexus CDMA, Replicant doesn't support it) and while I know that proprietary drivers/firmware are being used, I thought the point was to have a mostly free system. I use CM without the GApps.
With an announcement like this, it just seems like CyanogenMod will end up like every other Android version out there, besides the stock source code that you can get from Google or Replicant. CM will be taking the path to becoming proprietary.
So, I guess it's time for me to move on and find something more open.
I doubt CyanogeMod is going that far although I definitely think there is probably a lot of criticism to be had here in the approach. That said what I've done with ThinkPenguin hasn't been perfect either. It would be nice if CyanogeMod at least drew a firm line in the sand on what the company would and would not allow such that it pushed things a bit further. By that I mean they say something to the effect of “none of the code we produce will be released under a non-free license”. At least that way you can be pretty confident the core of the software your running is free (at least if you install it yourself).
I should point out that we had some time to play with a firefox phone,
http://stores.ebay.com/ZTE-Mobile-US
I think the good thing is the OS code is free. The bad thing is it includes some non-free software. The ZTE Open I think we concluded (still in the process though) the graphics component is free although the wifi is not. It might actually be a good set of hardware to base a free software friendly phone off if Atheros (ath6k) would release the source under a free software license for the wireless. ZTE though has no plans to continue production though. Now that isn't to say it might not be a good phone to base it off though. The phone is cheap $80. It would probably be less than $80,000 to $160,000 to do a production run (I think) which might put it in the ballpark of something achievable. That is if ZTE would do another run for a larger customer interested in taking on the financial risk of the phones not selling.
I don't know if the phone could be made privacy friendly though. I'd put my money on the phone's modem firmware having access to the main memory and CPU. All bets are off at that point. Plus even if it didn't there is probably zero chance that you'd be able to turn off the modem when not actively in use (even if you didn't need to receive calls). If it were possible to separate the modem from the phone to be closer in resemblance to a computer it might then be possible to turn it off and on via the OS and in doing so it would allow you to use the device to call out and/or check messages in such a way that your tracking was fuzzed a bit (they'd only know you were at a certain location at a certain time if you checked your messages / made a call vs now where they always know where you are, what route you took to get there, etc).