The iPhone and toilet paper freedom

Geoffg is playing a lawyer in declaring his interpretation of the GPL as the truth, lambasting the Free Software Foundation for not updating some old articles, accusing them of spreading FUD and declaring the iphone as a missed marketing opportunity.

He makes the mistake however of reading the GPLv2 as a definition of freedom, rather than an implementation of it. As this fine person pointed out last year, it’s no good being able to change software if you can’t run it. This is the freedom to change software and use it as toilet paper.

Fine, maybe you can run GPLv2 software on your iphone, but you can’t exercise all the freedoms which the FSF campaign for. According to them, GPLv2 software in closed DRM is exploiting a loophole which GPLv3 was in part written to close.

I can see it’s difficult for people to reconcile their love for free software and their love for Apple products, but maybe it’s best to be mindful of the fact that you’ve bought a computer that you can’t run software on without the permission of a large corporation.

There’s a lot of weirdness in the computer music community around this. RJDJ is a port of the free PureData language to the iphone. Many of those involved are free software developers, but have to give up all their rights to RJDJ, a venture capital funded company. RJDJ in turn license the code back to them under the GPLv3. This means they are free to change and run the code under open operating systems, but not on the iphone. This is weird, using the GPLv3 as a firewall to protect commercial interests on a closed platform, while exploiting the work of a free software community.

Just to clarify; I’m not saying that people shouldn’t run open source software on the iphone, particularly when a permissive license like MIT or BSD is involved. I’m just objecting to ignorance of the FSFs definition of software freedom, which I happen to subscribe to and which is incompatible with the iPhone. I find the RJDJ case weird, but while I know of at least some cognitive dissonance in the RJDJ team, I don’t know that any of the authors are otherwise unhappy with the situation.

UPDATE: Michael from RJDJ contacted me to point out something I got wrong. RJDJ don’t release their whole iphone port of PureData, just part of it — rjlib. This is indeed released under a GPLv3 though; if you want to contribute towards rjlib, you have to transfer your rights to RJDJ or fork the code.

BTW they are also releasing a rather nice looking cross-platform gui-less version of PureData under the LGPLGPLv3 and LGPLv3 called zengarden.


  1. Interesting and thought-provoking. In reality, Apple doesn’t really authorise every app you write, they just give you the certificate to sign and encrypt your binares so they can run on a highly secure envionment. It’s my choice what source code I choose to sign with my certificate and I can even get a wildcard style certificate for those ad hoc projects I might want to mess with without the inconvenience of registering a new App ID. The point that you are making though is that I have to pay for this privilidge instead of it being freely available to me. As a fully paid up co-conspirator in this system, quite honestly I’m glad that doing this helps protect my phone from malicious code (unless I put it there!). I just hope my trust in Apple isn’t misplaced!

  2. Hey Ade, thanks for the clarification, I thought all apps had to go through a vetting process.

    I don’t buy the malicious code argument though. I don’t get malicious code on my linux laptop because I keep it fairly up to date, and it’s all cryptographically signed by trusted repositories. No DRM required.

    Would you prefer it if your laptop was as locked down as your phone? If not, what’s the difference?

  3. All app submissions do go through an approval process, but it’s just a pair of idiots in cubicles each spending a half-hour at most trying to find undeclared boobs or use of Apple-like iconography.

    They don’t even pay attention to obvious copyright / trademark infringement!

    They don’t do any basic static analysis of your object code, even to check for private symbols, and they never have your source code. They don’t even take the obvious step of having some APIs be actually private, or implement real NX protection (you could jump outside your signed code).

  4. “I don’t know that any of the authors are otherwise unhappy with the situation”

    Well, not anymore unhappy, since I left the project. Have we met? πŸ™‚

    “using the GPLv3 as a firewall to protect commercial interests on a closed platform”

    Wow, it sounds like you missed a couple of trains here.

  5. People who say that they love the way in which Apple restricts their freedoms always remind me of S&M participants who beg to be whipped by their master. I find it puzzling but I can’t hold it against them since it’s their choice.

  6. The vetting process only happens if you want to distribute your app through the App Store and be part of the iTunes empire. You can still share your source code openly through your own channels, and individuals wanting to install whatever code they like on their own phones can get their own certificates by buying a developer key and then compiling and installing it on their own devices, even if just for a temporary period of time.

    You’re right – the malicious code argument is somewhat of a red herring, but I can see that developer certificates create a traceable chain of authenticity for any code that would be executed. Also, calling it DRM seems a little inaccurate – yes, it is the same technology that iTunes used to prevent theft of purchased music (FairPlay) but it’s being used for a different purpose here, to ensure that those that write software can be held responsible for their actions and preventing unsigned code from being executed. Given that writing code is a powerful act (something often overlooked), I think there is justifiable cause. Question is, can Apple be trusted to oversee and manage this process?

    Oh yeah, one more thing… the reason you don’t get malicious code on your linux laptop is because you know what you’re doing! The knowledge and understanding you personally have isn’t something you can expect of a large consumer base who are primarily motivated by wow-factor and love of product design. Different marketplace, different goalposts. Apple are just trying to protect their customers.

  7. I think the one thing you can be sure of is that it isn’t about protecting their customers πŸ™‚

    If I understand correctly, they completely control who can develop for their devices. This is not unusual, games console makers have done this for decades, the crucial difference is that it’s only recently that they’ve tried to open them up to the public – for instance xna on the xbox is the same deal as the iphone iirc.

    I think they’ve done this because things like open source and the home brew dev scene have shown that there is an awful lot of creativity out there and they want (probably more accurately, need) a bit of this action.

    This is simply the only way they can get this action while still maintaining control. Maintaining the control is probably the only way the people with the vision could get it past the people with the suits.

    I don’t think apple/etc are evil, I don’t have beef with corporations (worked for one for too long!), but I don’t like the assumption that you don’t truly own a machine in the way that you can’t take it apart and figure out how it works without breaking the law. We can argue about the degree to which this is true with the iphone, but its part of that trend, and it sucks for so many reasons.

    When free software gets embroiled with all this stuff, it’s called tivoization isn’t it?

  8. Paul: Not sure what you mean by missing trains, do you disagree that rj are using GPLv3 as a firewall?

    Ade: OK interesting, still not free software according to the defines of the FSF, I know that’s not your point though. Cryptographically signed software from trusted sources is the norm in linux distros, and keeping it up to date is easy, you just click ‘install updates’ when it tells you to. You can trust Apple, I can trust Canonical. Also yep, code DRM is a bit different from content DRM but is still DRM.

    Dave: Interesting take on things. I feel a bit sad that the fledgling software art community around has seemingly been so swamped by a closed platform.

  9. I find the obsessive nature of apple’s control over this amusing, like the C64 emulator they stopped because the developers hadn’t crippled the BASIC interpreter. I guess they imagined a blossoming scene of uncontrolled development in 8bit BASIC overtaking their efforts.

    Is there any difference between this and Microsoft’s proposed signed binaries which everyone slammed? Is it really just that this is is on a slim shiny sexy computer pretending to be a phone, so it doesn’t seem to matter as much?

    On, I’m really interested to see how this plays out, I think that we can say that the pattern so far in computing is that the proprietary closed methods generate a lot of noise, but lose out in the long term to the open standardised alternatives.

  10. “I think that we can say that the pattern so far in computing is that the proprietary closed methods generate a lot of noise, but lose out in the long term to the open standardised alternatives.”

    Agree 100% with that, Dave. It’s a trend I really hope continues. One thing that worries me is a few long standing bastions of proprietary territory, like Flash. Why hasn’t Gnash killed Flash yet? That worries me slightly.

  11. First of all, Pure Data on which RjDj is based is licensed under a modified BSD license not GPL.

    Secondly, it seems GPL would not be compatible with iPhone development since Apple imposes many restrictions on software distribution and ones ability to compile and run software freely.

    Apple doesn’t allow user applications to use their own or 3rd party dynamic libraries on the iPhone so software licensed under LGPL may not be able to use the limited dynamic library loophole to avoid the conditions of the general GPL. It seems LGPL falls back to GPL on the iPhone.

    Another interesting and related case is that of Smule who sell a number of popular multi-million-dollar selling iPhone apps based on the GPL-licensed library ChucK. These apps, of course, have not been released as GPL open source, nor has the iPhone port of ChucK. They are considered proprietary. One of the founders of the venture-funded Smule is one the authors of ChucK. So Smule must have a special proprietary license for ChucK from the co-author and from Princeton University (where ChucK was originally developed a number of years ago).

  12. Hi Richard,

    Yes the core of pd is BSD, but some parts of the library are GPL, which RJDJ have had to replace with their own GPLv3 code (i.e., rjlib), which despite being ‘free’ they can’t accept patches for, otherwise they can’t use it on the iphone.

    The GPL is _kind of_ compatible with iphone development as long as you own the code and so can license it to apple under a different license. That’s the firewall I was talking about.

    Yes the smule case does sound very similar, I didn’t know about that, thanks. Interesting that another free software project is being subverted in that way. For that to be legal, the ported chuck would not have accepted any patches back under the GPL it is distributed under… A rather non-free use of a free license.

Leave a Reply

Your email address will not be published. Required fields are marked *