jump to navigation

GNU GPLed Software and the iPhone
Tuesday, 26 August 2008

Posted by austin in: Apple, Technology, iPhone, trackback

Last month, Aristotle Pagaltzis claimed that “John Gruber doesn’t understand freedom“. This is in response to Gruber’s post about the release of the WordPress iPhone application source code.

Unsurprisingly, Aristotle is probably wrong, as is the FSF. Their own history with respect to running applications on non-GNU GPLed operating systems suggests this. I’m going to briefly address Aristotle’s comments in regards to the FSF’s definition of “free software”1.

The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.

Study? Yes. Adapt? Technically, with the source code, yes, except, without a developer key from Apple the most useful thing I can do with the changed source code is print it out and use that as… toilet paper.

On many Unixes, compilers were an added cost. This still remains true on some platforms (and gcc isn’t an acceptable replacement on some platforms). Without access to a compiler, the most useful thing you can do with the changed source code is, as Aristotle says, toilet paper. Note as well that there’s still the “Operating System exception” in the use of the GNU GPL. Specifically, I can use any services or libraries provided by the operating system without infecting the operating system or the GNU GPLed software that I’m compiling.

You may as well complain that the development toolchain requires that you purchase a Macintosh computer to write an iPhone application, since there’s no version for Windows or Linux. (Nor is there likely to ever be.) I see the requirement for a developer key as analogous to the requirement of a compiler and easily falling under the “Operating System exception” for execution purposes.

The freedom to redistribute copies so you can help your neighbor (freedom 2).

As long as my neighbour is the App Store, I suppose.

You can still do this, either through ad hoc distribution or through Apple’s own system. You can also redistribute the changed source without limitation. The GNU GPL says nothing about requiring that distributions be binary distributions.

Being free to do these things means (among other things) that you do not have to ask or pay for permission [emphasis mine].
You should also have the freedom to make modifications and use them privately in your own work or play, without even mentioning that they exist. If you do publish your changes, you should not be required to notify anyone in particular, or in any particular way [ditto].

Uhm, except Apple, right? Right?

This is where Aristotle has gone completely off the rails with respect to iPhone software development.

As a license agreement, the GNU GPL does not impose—nay, cannot impose—requirements on third parties. This is partially the source of the “Operating System exception”; you cannot force IBM to release the source of AIX just because you build, run, and/or distribute a GNU GPLed piece of software on it. (If you want to write well-accepted software for AIX, you’re not going to use gcc; you’re going to use IBM’s xlC, which is really expensive.)

I can, without limitation, make modifications to the WordPress iPhone application and use it privately with my developer key. I don’t have to tell anyone that I’m doing this, at all. (My iPod Touch still has some demo programs on it.) I can also, without limitation, post my modified source (which, again, is all the GNU GPL gives a damn about) anywhere I want without telling anyone else anything about it.

What I can’t do, without going through the App Store, is publish a compiled binary for other people to use without having to effectively buy the compiler.

But none2 of my rights under the GNU GPL have been violated. Period. Because the GNU GPL just cares about the software in the abstract, not in a specific compiled form.

I guess those silly hippies at the Free Software Foundation were right.

I guess those silly hippies forgot to read their own licence and recognise their own history when it comes to their licence. You and I might prefer a more open App Store with fewer restrictions on what software can run and how it could be distributed, but nothing about iPhone software development violates the GNU GPL, as much as people would love to pretend that it does.

Notes

  1. ↑1 This is 1984-style propaganda, pure and simple. GNU GPLed software isn’t “free”; it’s encumbered. Those encumbrances may be for a greater good, but stop lying and calling it “free”. There’s absolutely no need for that crap.
  2. ↑2 Yes, none. I can give you the .ipa file for an iPhone application if you want it; you just have no way to install it on your device to make it run. But the GNU GPL doesn’t require that I give binaries out at will, but it does require that the source be made freely available to recipients of binaries.
Tags:

Comments

Sorry, comments are closed for this entry