My non-lawyerly reading of the GPL says no, or at least, not without some significant buy-in from Apple.
This is the relevant portion of GPLv2 section 3:
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code ...
Since all iPhone apps must be distributed through a third-party (Apple's "App Store"), that would make Apple the "distributor." Which would mean that Apple -- acting as the distributor of GPL-licensed object code -- must provide source code or a written offer to provide source code. It's analogous to a Linux distribution -- they distribute binaries of upstream GPL programs, so they need to host the source code as well.
Is this correct, and if so, will Apple be set up to do this?
(My non-lawyerly reading of GPLv3 just makes my head spin, so I won't even venture an opinion about that.)
It's been about 18 months since Slashdot linked to Tim O'Reilly for linking to Jason Kottke for linking to Cory Doctorow for linking to me for switching from Mac to Linux. (Best comment: "this is just another A-list blogger circle-jerk." As if that was my fault!)
At the time, Jason said, "If I were Apple, I'd be worried about this. Two lifelong Mac fans are switching away from Macs to PCs running Ubuntu Linux: first it was Mark Pilgrim and now Cory Doctorow. Nerds are a small demographic, but they can also be the canary in the coal mine with stuff like this."
18 months later, Apple has sold 4 million crippled phones, billions of crippled songs, and people are predicting that Mac sales are up 40% year over year. And I wouldn't bet against their new movie rental venture either (although this chart is amusing).
So after 18 months, I think we can safely say that no, Cory and I were not "canaries in the coal mine." There are not hordes of fed-up consumers rejecting Apple's vision of cryptographic lock-in. There are not mass graves where people ceremoniously dump their crippled, non-general-purpose computing devices. Outside of Planet Debian and my own personal echo chamber, nobody gives a shit about Freedom 0.
You knew this, of course, but I just wanted to let you know that I knew, too.
Almost two years ago, I wrote:
Last week, in a stroke of breathtaking arrogance, Apple redefined "web apps" to mean sites designed for a single hardware platform:
Web apps donâ€™t just extend the functionality of iPhone and iPod touch, they do it in style. Since web apps are websites designed specifically for the 3.5-inch screen, youâ€™ll find the viewing experience amazing.
(Yes, yes, I realize the whole gallery of web apps is just a smokescreen designed to fake you out and test your faith and hide the fact that they're going to open up their platform to native development ANY MINUTE NOW. Because HOW COULD THEY NOT, and so on and so forth. I believe the phrase you're looking for is "Oh, good grief.")
I swear to God, I'm so tired of being right all the time. It was fun for a while, but now it's just depressing.
I have nothing to say about the iPhone that hasn't been said already. Apple made it very clear what they were offering: a carrier-locked, closed-development mobile computing device where every aspect of the user experience would be controlled by Apple. I'm told it can also make phone calls. If that's what you want, then buy it. If not, then don't. If you want an iPhone without the phone, buy an iPod Touch, but it doesn't run third-party applications either. (So much for the "network security" argument, but never mind that.)
Buy it for what it is, or don't buy it at all. Your choices don't get any more granular than that. Apple has been unwaveringly clear that the iPhone is theirs. Not yours, not Ambrosia's, not J. Random Hacker's. You may own the hardware, but you only have a limited license to use the software, and an ongoing contract to use the network. If you don't like those terms, your only recourse is to shop somewhere else to begin with.
I have a friend who purchased an iPhone on day 1. She will never hack it to add unauthorized applications or get it to work with another carrier. She uses it every day, raves about it, and says it has changed her life. She doesn't even resent the $200 price drop. Her only regret is that she couldn't buy it sooner.
Apple is betting that there are a lot of people like her, and not a lot of people like... well, like me. Or, if you hacked your iPhone, like you either.
Once upon a time, I bought an iPod Video 5G. It did what I wanted. It was based on documented video standards, so I could make my own videos. I still use it every day (connected to an iGroove in my home office). But it's been a bit of a hassle to continue using it after leaving the Apple universe and switching to Linux on my primary workstation. Smart people have reverse-engineered the undocumented iPod database and allowed it to work (syncing music with Amarok or videos with gtkPod), but I view these as temporary hacks to get me through this transition period, after upgrading my desktop but before upgrading my music device. (That reverse-engineering is an ongoing effort, by the way. I don't know or care if Apple was intentionally malicious or if it was just collateral damage, the end result is the same: time and effort spent chasing Apple's tail.) When this iPod dies, I won't buy another; I'll buy something that works out-of-the-box with my Linux workstation. Live by the penguin, die by the penguin. Apple doesn't want my business, so why reward them?
I don't understand this continuing obsession with buying things that you need to break before they do what you want. It's not just the iPhone; people did the exact same thing with the AppleTV too. Primarily to add support for other video codecs, like DivX and XviD. Why? (No seriously, why? I bought a Philips DVP 5960 for $60. It's a DivX-certified DVD player with a USB port. Out of the box, it'll play a DVD-R full -- or a thumb drive full -- of AVI files.) I thought the big draw for Apple hardware was that "It Just Works." By breaking it, you must know you're giving up the "Just Works" factor, so what's left? Rounded corners?
My current theory is that it's some twisted form of wish fulfillment. "I wish this company understood the value of openness, but they don't, so I'm going to keep buying their closed, crippled shit until they get it." Yeah, let me know how that works out for you. And while you were waiting breathlessly for them to "get it," Apple locked out third-party videos. And third-party hardware. And third-party ringtones, applications, and carriers.
ProsperityOpenness is just around the corner!
John Gruber makes this point, perhaps more constructively:
Thereâ€™s only one way to pressure Apple into opening up iPhone development, and it isnâ€™t by developing underground iPhone apps. Itâ€™s by not buying iPhones. Money talks, and right now, there doesnâ€™t seem to be a shortage of people willing to give Apple money in exchange for a completely closed iPhone.
An update to this post from 2006, I gave up on
mp4creator and switched to
MP4Box. The new-and-improved version also works properly with widescreen video.
The new script is here: podencoder. The latest version is now hosted on Google Code.
See my original post for usage examples, which still work. One new feature is the
fitto4x3 option (-f flag on the command line, or fitto4x3=1 in the configuration file), which crops the left and right sides of widescreen video to fit on the iPod's 320×240 screen. I like this; you might not. The option is off by default. Either way, widescreen video will display properly on the iPod (not be smooshed vertically or horizontally).
This script targets the 5G video iPod, which has a 2-inch screen with 320×240 pixel resolution. If Apple has released a widescreen iPod by the time you read this, this script is not for you. Sorry.
mplayer, compiled with MPEG-2 and AC3 support
MP4Box, part of the GPAC project
zenity, if you want graphical dialogs and progress bars
On Debian Sid, you can install the prerequisites by adding the debian-multimedia repository and typing
$ sudo aptitude install lsdvd mplayer mencoder gpac zenity
Please don't ask me how to install these prerequisites on other operating systems. I can't help you because I don't know.