No GPL Apps for Apple's App Store
zdnet.com
zdnet.com
Don't get me wrong, I am fine with software that is BSD- or MIT- licensed. But I think for the best culture of contribution and sharing, you need to clearly set your expectations in the form of a license, and the GPL does exactly that.
If Apple wants the world of GPL'd code to be available on their devices, the solution is simple -- allow side-loading.
Additionally, a client that changes your app is not required to send you the changes back unless s/he distributes it. Modifying it for his/her own purposes doesn't mean you are entitled to a copy of their changes.
I guess they have their reasons for not just opening up provisioning for everybody, although doing that would sure help them win over the open source crowd (not that they really care about that in any way).
I think they sat down and tried to create a platform that would be commercially viable, but wouldn't descend into anarchy, e.g. would stay 'family friendly'. In order to ensure that, they need to maintain control. But hey, a bunch of control freaks picked a system that would maximise their control... news at 11 everyone.
Funnily enough, the GPL is also a walled garden environment. You can tell that they'd really prefer to have a system where everything (in their system) was GPLed. Please note the distinction here, they're not saying that everyone should or has to GPL their software, they're saying that if you bring your toys to their sandpit, you have to share... and they don't care what happens in that other sandpit, everyone else can go hang. If you don't like it, go play in the other sandpit where no one shares.
Therefore I am of the opinion that it is perilously close to hypocrisy for GPL fans to complain about walled gardens. The old saying about people who live in glass houses applies here I think.
That's quite a stretched definition of walled garden. GPL is easy: We believe consumers have rights. If you want to use software we write as parts of yours, we forbid you to disrespect those rights. Simple as that. Yes - their rights are more important than yours. It's not about the kids playing in the sandpit. It has always been about the kids that use - and have to rely on - the toys the kids in the sandpit make.
You really don't get it, do you?
I do get it. Just because I don't share your sad devotion to that ancient religion doesn't mean I don't understand it.
I think you need to go do some research. There was a good bio on RMS that came out ~10 years ago, you should go read it.
I think your, to use some of the language you so cleverly brought up, sad misunderstanding of the dynamics at play pretty much demonstrates you don't enjoy a solid grasp of what is involved here and the consequences of licenses like the GPL.
You really don't get it.
This really does underscore, however, how important it is to license your code carefully. If you want to make it completely free (as in, "I don't care what you do with it" free), use BSD. If you want to make sure that your software is never used restrictively and that it continually promotes the free software ethos, then GPL is a great tool.
Could you take said code, remove the license and make it available commercially? Sure, it is your code, but any older or previous copies are still available under the BSD license.
Sadly, it's also free as "please, BigNastyCorp, feel free to take away any freedoms from your users who depend on my work". While BSD may be "more free" according to some, it's the freedoms of the users we are (or should be) protecting. For those, *GPL is the license of choice.
The GPL is designed to ensure the maximum freedoms of developers.
That it simultaneously destroys any hope that those same developers can enrich themselves by selling the software is supremely ironic, as it forces them to live as wage slaves under the whims of their corporate overlords. Thus they gain one sort of liberty but at the expense of giving up other economic freedoms.
Frankly if someone came up to me and said that in their ideal world I wouldn't be able to sell software or build my own software company, I'd want to burn them at the stake for heresy. Fortunately the world is big enough for everyone. :D
Care to explain your reasoning?
> The GPL is designed to ensure the maximum freedoms of developers.
That's why it explicitly prohibits you from using GPL'ed code under proprietary licenses.
No. If you intend to engage in an intelligent debate, you should, at least, educate yourself to a point you actually can.
> That it simultaneously destroys any hope that those same developers can enrich themselves by selling the software
You can always double-license it, MySQL-style. Again, GPL is not for the developers, but for the users. In your case, it's likely you use more software than you create, so, in the end, the GPL actually benefits you despite your own misgivings and misconceptions.
> I wouldn't be able to sell software
Why? What I can't have is a monopoly on the GPL'ed software I sell. OTOH, nobody can have a monopoly on GPL'ed software. And that's a very good thing for the users, who are sure they will have both the software and the technical means to maintain it on the unlikely event I am hit by a bus.
My reasoning is that the GPL is about what you can do with the code the program is based on. USERS don't do stuff with code. Programmers do stuff with code. A user is not going to take an annoying bug in your app and fix it, but (given guaranteed access to the source) a developer might.
> You can always double-license it, MySQL-style.
cough Indeed. uncough
They use it, they trust it works and they hire programmers to do stuff on their behalf.
> but (given guaranteed access to the source) a developer might.
Do you know of any other license that guarantees access to source from every downstream fork?
Every time society attaches a price tag to an unlimited resource like copies of software, we make ourselves poorer overall by minimizing our benefit from wealth that can't be used up or worn out. In my ideal world, software is developed as work for hire, because it's actually skilled labor that's scarce and needs to be rationed out by the economy. Doctors don't sell medicine, plumbers don't sell pipe, why should developers sell copies of binaries rather than hours of work?
Because selling copies is far more scalable and profitable?
The GPL proposes to give users that right. Since I am in that uncomfortable user position a lot, I am all for it.
For a perhaps overused metaphor, I wouldn't buy a car with the hood welded shut.
"please GPL, feel free to take my source code, slap the GPL on it and nanana at me when new changes are made that I now can't incorporate"
Look at the whole OpenBSD wireless drivers fiasco that happened. Really us BSD guys have not much to worry about when it comes to corporations (I've had my BSD licensed source code used by big business, and they have donated money to my little dinky project because it was useful for them), we have to worry our source code is not taken by the GPL crowd as they slap the GPL on any changes and suddenly any improvements made I am not able to use eventhough it is still technically Open Source.
From personal experience, BSD becomes GPL hurts WAY more than some corporation taking the code and using it and letting me know either by email or by donating money to my small project.
(The code for the BSD project is no longer online after I found some flaws in it that I didn't want to fix, so please don't ask)
Does it really feel better when it's a multi-billion dollar making that? Does it feel better when they withhold their improvements (if any) from you and their users?
BTW, BSD allows that and BSD proponents insist that's perfectly fine to make proprietary forks of their software, that they don't care about what you make with the software. If you feed offended by what those people are doing - forking your software and giving users extra assurances you don't - maybe BSD should not be your choice anyway.
BSD is for when you don't care what people do with your code. If you wanted corporations to pay for your code, you could have gone GPL and offered a double license option. You cannot build a business on expecting donations from happy generous for-profit corporations. In their position, if I really wanted to pay for your work, I would not donate to your project - I would hire you.
And, personally, I too feel bad about you not being able to incorporate improvements made under the GPL to your code. If I ever made such contribution, I would make sure I also made it to your upstream BSD codebase, under BSD. The license of the project is your choice.
How is it stealing if it's open source, and the end result is the best desktop OS ever created? Sheesh
And Apple's work on open source Clang/LLVM and WebKit has been quite significant has it not?
As a funny sidenote, one could say that if you choose GPL you need to consult your legal-department. But if you choose BSD you don't even need a legal-department.
As pointed out in other replies, Apple is working on clang because it doesn't want to deal with the GPL (unless you own Apple stock, you're the one losing because of this decision), and WebKit because it's derived from LGPL code.
How much work is Apple putting into making Darwin a usable Free Software OS? Versus how much work have Red Hat, Canonical, Novell, IBM etc. have put into making Linux available in a number of different, free distributions? The reason all has to do with GPL and copyleft. There is very little incentive for companies to invest in BSD code, and no disincentive for them to steal it. If Linux wasn't GPLed, it wouldn't be where it is today.
There's nothing wrong with what Apple is doing. However, if you think that somehow Apple releasing some of their code under the BSD justifies restricting their end-users to their locked-in App Store and their fight against the GPL, there is something morally off with your thinking.
Claiming that this makes the BSD a better choice than the GPL shows that you don't understand that Apple doesn't care about you and your open source; they'll take whatever is convenient. You're the one losing out, and you're justifying it to yourself as a good thing.
I know it's a strawman argument, but if you feel superior to Apple, how come you didn't come up with the iPhone innovation? Saying Apple doesn't care about me when they obsess about designing amazing products that blow away anything that existed before is a little big disingenuous.
Companies like Google are releasing all sorts of code under BSD on the off chance it gets used, or maybe even improved, or maybe even becomes some sort of de facto standard. Releasing the code under GPL would mostly disincentivize these behaviors.
There's also no reason why you can't dual-license a product, or license different parts of the same codebase under different licenses (for example, I release the unit test files in my Free Software projects into the public domain).
It's less confusing/misleading than free-as-in-beer vs free-as-in-speech vs free-as-in-dammit-you-cant-do-that-tivo.
> Apple is working on clang because it doesn't want to deal with the GPL (unless you own Apple stock, you're the one losing because of this decision)
Have you seen the sh##t g++ provides for error messages? clang++ is a massive improvement.
> There is very little incentive for companies to invest in BSD code, and no disincentive for them to steal it.
Which is of course why http://www.postgresql.org/community/contributors/ only includes people working out of their mothers' basements, why http://www.sqlite.org/index.html doesn't show any corporate sponsors, and why BSD died years ago...
> If Linux wasn't GPLed, it wouldn't be where it is today.
Yeah, I think the original license had something about "no commercial use" in it.
> think that somehow Apple releasing some of their code under the BSD justifies restricting their end-users to their locked-in App Store
I don't see how there's any relation between those?
> shows that you don't understand that Apple doesn't care about you and your open source; they'll take whatever is convenient
"Caring" is an emotion, which organizations don't seem to have.
Apple also has an entire website dedicated to the various pieces of source code for their OS, and other tools, and are actively developing clang/llvm (they hired the creator) which is under a BSD license ... WebKit is also a thriving open source implementation of a rendering engine for a browser and is actively used by various different projects.
Your comment brings absolutely nothing to this discussion other than unsubstantiated claims and misinformation.
a) out of date or unrealized (for which they are entitled to do with BSD code, but when it comes to GPL I file complaints)
b) redacted and uncompilable (they purposely remove source code for specific targets that is still listed in the build environment, or hold back critical header files for dependent libraries)
c) limited in scope (they release WebCore, because it is LGPL, but they actually /don't/ release a lot of WebKit)
Also, it is quite clear to everyone involved that the reason that they are actively developing Clang/LLVM is so that they can avoid gcc 4.3+, when it went GPLv3. It was hard enough for them before: gcc was the one place they have been unable to redact and hoard their ARM contributions, but with GPLv3 the situation becomes untenable for them.
So, since then, Apple's Xcode compiler has rapidly slipped out of date, and now they are forced to take over development of a BSD project just to stay competitive.
Frankly, this is actually a /win/ for the GPL: despite Apple's claims, Clang/LLVM is still very very far behind GCC in terms of correctness and compliance (certainly with recent specifications, like C++0x), which has made Apple's less-free choices result in an increasingly "dispreferred" deployment target for many projects.
(c) Actually, you can get the WebKit code and build it, and you'll have a WebKit browser to run. I've done it. Don't know what you are talking about. Did you expect the whole code for Safari? They sure give enough Webkit source for Google, Nokia, the GTK people et al to build a full featured browser upon...
2) "Also, it is quite clear to everyone involved that the reason that they are actively developing Clang/LLVM is so that they can avoid gcc 4.3+, when it went GPLv3."
Actually, it is not at all "clear". They started using it way back in 2005. Actually they wanted a better, faster, more flexible and dynamic compiler infrastructure, and LLVM provided that. And they use it for other stuff too, from graphics code to MacRuby.
3) "since then, Apple's Xcode compiler has rapidly slipped out of date, and now they are forced to take over development of a BSD project just to stay competitive".
Actually Apple had made huge improvements to XCode's compiler in XCode 3, even adding several new features to the core Objective-C language, and also made a HUGE improvement to the overall IDE and compiler (new static analyzer, new debugger, AST-based syntax assistance and code completion etc) with XCode 4 (currently in public beta 5).
4) despite Apple's claims, Clang/LLVM is still very very far behind GCC in terms of correctness and compliance
Bzzz, wrong.
5) (certainly with recent specifications, like C++0x)
Which are not even standard yet, and noone cares about while actually SHIPPING code.
Whatever man...
1) c: Unfortunately, this is not generally true: Apple keeps an internal fork of WebKit that has numerous abilities not in their public trees, which happens to be why Android and WebOS both have totally incompatible mechanisms for adding multi-touch support to JavaScript despite iOS having been out with that functionality for years prior.
To be quite explicit, I dare you to find and recompile WebKit for iOS. Mobile is where all the action is these days, and Apple knows that: deal with it.
2) All but one of the previous gcc contributors from Apple are no longer allowed to read the gcc-patches mailing list, and they are also not allowed to work with any code from gcc 4.3+: Apple is now permanently locked at gcc 4.2 and cannot even backport changes from gcc 4.2.2 (as this was re-marked as GPLv3 when it was released). This is a serious /serious/ problem for Apple, as they /need/ a compiler.
3) I don't understand in the slightest why improvements to the debugger, an external analyzer, or better syntax completion in the IDE, have anything at all to do with the core compiler.
4) I'm sorry, but this has been my impression as a toolchain integrator and distribution vendor. LLVM, which only even supports two platforms (although having seriously broken semi-support for ARM) is often stated to be "catching up" in correctness to gcc, but is not there yet. The opinion that LLVM is somehow epic is something you only hear from incredibly pro-Apple developers. I mean, even Apple's port of gcc explicitly chooses incorrect results occasionally for performance (an interesting specific case being ___divdc3).
5) It is in "final final final draft". Meanwhile, even for C++, Clang doesn't totally work yet. Until just a couple months ago, Clang's website claimed the following:
> However, the implementation of Clang C++ is still somewhat immature, with remaining bugs that may cause compiler crashes, erroneous errors and warnings, or miscompiled code.
AFAIK, this situation has not changed since then, and my attempts to use it recently have, in fact, been met with the compiler crashing out instead of generating any code at all.
4) I'm sorry, but this has been my impression as a toolchain integrator and distribution vendor. LLVM, which only even supports two platforms (although having seriously broken semi-support for ARM) is often stated to be "catching up" in correctness to gcc, but is not there yet. The opinion that LLVM is somehow epic is something you only hear from incredibly pro-Apple developers. I mean, even Apple's port of gcc explicitly chooses incorrect results occasionally for performance (an interesting specific case being ___divdc3).
In order to keep their user-base on Actionscript/Flash, Adobe was banking on LLVM to get Flash to work on iOS devices before they were legally restricted from doing so. With the lifting of the ban, Adobe can now deploy Flash-based code on iOS devices[1]. LLVM is also used in many other commercial software project, so your argument doesn't hold.[1] http://www.adobe.com/devnet/logged_in/abansod_iphone.html
(Interestingly enough, the compiler in question that generated incorrect code so often that I had a catalog ruleset of "things not to do" was llvm-gcc, when I was first deploying Cydia and Telesphoreo to the jailbroken iPhone community. However, that was a while ago, and LLVM doesn't have those shockingly bad issues anymore.)
(It was just a few weeks ago, though, when chpwn started trying to get Cydia compiling with LLVM and kept getting "internal compiler error" on what seemed like some reasonably simple C++.)
If you want an example, as you obviously don't believe me, RIGHT NOW Apple is not in compliance with the GPL as they have not released the source code to WebCore, which is licensed under LGPL, /as shipped/ for iOS 4.1 or 4.2. They have no requirement to release WebKit (which they simply /don't/ for mobile), but they /have/ to release WebCore.
Seriously: why did /anyone/ upvote this comment? The poster was either needlessly inflammatory without any new contributions ("Bzzz, wrong"), reliant upon straw men (I never claimed to want the code to Safari or any other project that is not explicitly open source), unrelated to the conversation (lumping unrelated features into the "compiler"), or downright off-topic (discussing anything other than Apple's open source website). Please educate me here.
How come GPLv3 (as opposed to GPLv2) is not in Apple's liking?
http://gcc.gnu.org/ml/gcc/2008-02/msg00516.html
For more details from other people who were discussing this issue, you can read a later thread that attempted to go into further detail, although I will not claim it will be elucidating:
Curiously, I don't remember them being "forced" to use KHTML as their starting point...
See here for a nice chart where you can see those jumps in commits: http://techcrunch.com/2010/02/06/google-apple-webkit/
Directly benefiting FreeBSD: http://wiki.freebsd.org/BuildingFreeBSDWithClang
They've contributed infinitely more than "nothing" back. Literally...
- Webkit = LGPL = No Choice
- LLVM because gcc is a no go (GPL)
Now, here some downvotes too, because i insulted your oh so holy Apple company, boohoo..http://lists.freebsd.org/pipermail/freebsd-chat/2004-July/00...
http://www.trollaxor.com/2004/02/thank-apple-for-freebsd.htm...
As mentioned in the first link by Paul Robinson,
"If FreeBSD wanted more than attribution, perhaps the choice of BSD license was a bad idea. :-)"
Apple contributes back lots.
We're very happy that the BSD license has allowed Apple to use our code.
GPL3 has gone far beyond that; instead of just requiring that the software be usable as a starting point and building block for new work, it now also mandates that it be user-serviceable. You don't just need to be allowed to modify the tivo software to make your own dvr, now you also need to be able to modify the software in-place on your existing device.
If you can't do that to your TiVo, is it really yours?
If you are happy with your TiVo, then good for you. If you are not, you cannot bend it to your will. It would be much better if users could do that, but, unfortunately, we are not that lucky.
You can always sell your TiVo and build your own DVR.
Great. This way you take away freedoms from the users.
> unless you really do care about the GNU project more than shipping code & solutions.
No. You chose GPL when you really care about the freedoms your users deserve.
The GPL is designed to ensure the maximum freedoms of developers.
But, this is just another prime example of the bizarre logic of Apple bashing. Never mind that Apple does more to give back to open source community than most, lets ignore the facts and bash Apple. Let me give you some more:
Greenpeace bashing Apple even though Apple was actually doing more to reduce environmental impact than any of the beige box companies. Greenpeace's logic was that even though the beige box companies were worse, they had promised to at some distant future unspecified point in time take unspecified steps to at that point be better than what Apple was today... Apple of course said no such thing about their future plans... so Greenpeace was puffing on the vaporware announcement, and bashing the company that was actually taking real steps. Incredible.
Adobe bashing Apple for not putting flash onto their phone - when no other smart phone in the world ran flash... and it would be 3 years before a serious full implementation would come out from a competitor (and lo and behold it was an awful user experience and it killed battery life).
---
Frankly, as a developer there are an absolute truckload of things to complain about Apple that get ignored, but the ones people pick to focus on are just bizarre.
The only reason he has grounds to send C&D letters to Apple is because he holds copyright over his contributions to VLC. The other developers don't give a shit that the Apple-distributed binaries aren't redistributable by default, given that the iOS port is still fully open source and is trivially redistributable/compilable on jailbroken devices.
If a project is initially started under the GPL, it's stuck that way forever even if they get all-new developers after a while who don't care. If a project is started by someone new to the area, the FSF and supporters are vocal enough that there's a decent chance they'll pick the GPL by default without really considering it. If a project links to a GPL library, there's a decent chance they'll bow to pressure of the FSF's overbroad redefinition of "derivative work" and (re-)license their project as GPL regardless of their own preferences.
It's all quite self-reinforcing and doesn't require reasoned intent from any of the participants.
For all the people screaming about how GPL forces X, Y and Z, there is a really simple solution that has been tried and proven to work before:
just DUAL LICENCE
A dual licence allows you to work inside the GPL walled garden, and also outside of it in the real world. You can literally have the best of both worlds. It preserves maximum freedoms for the users.
What it doesn't do is advance the agenda of the GPL, which is to create a self contained and self sufficient ecosystem consisting solely of the GPL. So when dual licencing you can say, well, we're not at that utopian programmer's paradise yet, so it doesn't matter, but the less commitment people have to a strong GPL, the longer it will take to reach that ideal world.
Whether you need those things might be debatable, but Apple doesn't give you freedom to have them, and adds DRM to prevent you from modifying the app.
DRM is indeed an issue, but that goes toward the tivoization clause that VLC explicitly did not adopt.
If they consider an ability to ship the software more important than users' freedoms (in GPL sense), they should've been using appropriate license. I'm not saying GPL is a good or bad choice, but talking about being responsible in (licensing) decisions and statements.
If you own the copyright, completely, you can license under virtually any license, ever, at any time. Period.
But if you have an open-source project with tons of contributors, well, they licensed their work under the terms of a specific license. And in the case of the GPL, it explicitly means that their contributions CANNOT be redistributed under ANY terms that conflict with the “freedoms” guaranteed to end users, etc., by the GPL. However, you can at any time release a BSD-licensed work under the GPL. This is part of why the GPL is sometimes called “viral” — once it touches you, it’s hard/impossible to escape, see?
So what would have to happen would be for everyone who ever contributed to VLC to say, “Okay, I’m chill with BSD,” and the code contributed by anyone who refused to do so would need re-written e.g. in a cleanroom to avoid copyright infringement. :-/
And since one of the VLC developers has already invoked the GPL to prevent the distribution of an iOS version, the same developer would probably block BSD relicensing for the same reason.
Edit: Here's a good overview on it http://opensource.com/law/10/9/copyright-aggregation
In theory, yes. However you need to track down every contributor and get them to agree to the new licence. It's a logistically hard thing and might not even succeed.
Frankly, the entire open source community should pat itself on the back that this sort of thing doesn't happen more often. People being what they are, this is a genuine Christmas miracle.
What he should do, is pull a Theo and go off and fork the project, instead of trying to ruin it for everyone else.
Say someone (A) wanted to use my clip in a bigger project, but couldn't give me attribution because someone else higher up in the bigger project (B) insists on not crediting any outsiders.
Would it be wrong of me in this hypothetical to demand that I either be attributed or they don't get to use my clip? Should I even feel guilty?
Bill, like anyone's going to want to use my clips of ducks quacking or sword waving.