Apple Remove Samba From OS X 10.7 Because of GPLv3
recoiledsnake writes "The upcoming release of Mac OS X 10.7 Lion Server will remove the formerly bundled open source Samba software and replace it with Apple's own tools for Windows file sharing and network directory services. In both Mac OS X Server and client editions, Samba enables Macs to share files with Windows clients on the network and access Windows file servers. It has also later allowed Mac OS X Server to work as an NT Domain Controller to manage network accounts and make roaming profiles and home directories available to Windows PC users. However, the Samba team has moved active development of the project to the more strict GPLv3 license, which prevents Apple from using the software commercially. Apple is now said to be recommending Active Directory to users who are still dependent upon the older NT Domain Controller network directory services. Apple has previously stopped contributing code to GCC and started looking at other options like LLVM because of GCC's switch to GPLv3."
GPL is bad.
Bullshit.
GPLv3 license, which prevents Apple from using the software commercially.
No, it doesn't. That's a ridiculous assertion presented without any evidence or reason.
As wikipedia might demand: Citation needed.
Apple has been moving away from the GPL in all it's forms for a while now. They just got around to us (I'm guessing we were pretty high on the list once they got rid of gcc :-).
Jeremy.
GPL is bad.
Bullshit.
Strong argument there.
And under the GPLv3, you can still do whatever YOU want. The exception comes when you redistribute, because at that point it's not YOU using it, it's SOMEONE ELSE.
This is a gross mis-representation of GPLv3, and obfuscates the real basis of argument that Apple may have in conforming to the licensing terms.
"Flyin' in just a sweet place,
Never been known to fail..."
The more strict GPLv3 license, which prevents Apple from using the software commercially
Uhhh...no it doesn't. Read the license. If you don't want to read the license, just read GNU's handy GPL FAQ, which includes a section on whether or not you can sell GPL software commercially.
I'll give you a hint: the answer is yes, you can.
That said, Apple may have perfectly legitimate reasons for not wanting to use the GPLv3, but an imaginary prohibition on commercial software isn't one of them!
woops, OK. It appears GPLv3 allows commercial use. The summary got it wrong? (surprise!)
Seriously, if you try to promote freedom and free code, you have to allow people to use it how they want.
No, sir, you are confusing liberty with "no charge" free.
The BSD license is free as in beer. A proprietary software developer may take BSD licensed software and use it as the basis for a project of their own without sharing code in return. The users of his software have less liberty to the software's use. That developer exchanges nothing of value for the code that he received.
The GPL license is free as in liberty. Developers who wish to base products on existing GPL software must agree to maintain the liberty of the derived software's users to use the software with the same liberties that the developer did. This is an exchange of something of value: the developer contributes their own code in exchange for receiving the GPL code.
GPL software is not intended to be free of charge to developers who wish to reuse it. Developers who choose the GPL software do not intend to provide their labor without charge to others who will not contribute in return. The GPL promotes liberty, not freeloading.
"However, the Samba team has moved active development of the project to the more strict GPLv3 license, which prevents Apple from using the software commercially. "
Nothing in the GPLv3 prohibits using the software commercially, unless that means taking software that others wrote and released and making it unfree.
As for all the posters who will say now that the GPL is too restrictive and actually has nothing to do with freedom - yes it restricts the freedom of the person distributing the software in either its original or a changed version but only exactly to the extent necessary to guarantee that the person who receives the software gets the same extent of freedom as the original software allowed. The freedom to take other people's freedom away is certainly some kind of freedom, but probably not the kind that the creators of Samba wanted to promote.
It is actually an intended consequence of the GPL to keep companies that want to distribute software in a restricted way (e.g. on "locked" phones where they control what you can install, and probably soon enough on "locked computers" under the pretense of security) from doing this with GPLed software. That Apple cannot use the software for such purposes puts free software and hardware at an advantage and increases the cost for Apple of taking away people's freedom.
Presumably, the developers that put their code under the GPL wanted exactly that.
Yeah, that was my first reaction as well. The summary is flat out wrong the way it is worded, but there are legitimate licensing issues.
The problem is with the iPhone, not OS X (yet). If you distribute binaries covered by the GPLv3 on a device, the license requires you to provide any signing keys, or other information/tools required to run modified versions of the software on the device. The iPhone requires all applications to be signed, and does not provide signing keys to it's users, thus they can't use GPLv3 software (like samba) on iOS.
They probably figure it is easier to maintain a single SMB/CIFS implementation rather than two, so they are ditching it on OS X as well (or they have other plans for OS X that we are not aware of yet).
Personally, I think Apple is trying to totally close their software and hardware ecosystems so only they can provide software, or are the gatekeeper of all software, that will run on any Apple device. The only way to stop this is by voting with our pocketbooks! After this sort of behavior, I am boycotting Apple products like I am Sony's. If I purchase something, I own it and therefor have the right to use it as I see fit, not as someone else does. The way Apple wants it to work is that you are in effect leasing from them. You don't own it, and are constrained with what you can do with/to it.
Sometimes, real fast is almost as good as real-time.
No, they have the liberty to disagree. They are then subject to copyright which by default disallows them to distribute copies of the software.
There is nothing "jacked up" about this.
A natural consequence of their freedom. A benevolent dictator's still a dictator, and in this case benevolence goes against true freedom.
I fully support your right to put restrictions on how I can modify or distribute something you created. Calling these restrictions "liberty," however, is just Orwellian doublespeak.
You're either for software freedom or your not. GPL restricts what you can, therefor is not free.
This kind of "either you see it my way our you're wrong" statement is NOT a good argument.
There are real reasons why the GPL versions (and other licenses) are problematic for various folks, and this kind of assertion acknowledges none of them.
You can learn the factual basis for arguments against or in favor of various open source or free software licenses at the OSI site and at the FSF site.
What?
The GPLv3 prevents someone from redistributing GPL'd software and saying to the end user "you cannot replace this software, you cannot alter or modify it in place." The only people who have a problem with the GPLv3 are those who enjoyed making an end-run around the spirit of the GPLv2 by distributing source but crippling the hardware it was used on.
Having a single primary rule (with a small set of rules designed to support that rule) does not make you a dictator.
How does that support the view that the GPL is bad?
Dilbert RSS feed
The GLv3 doesn't say that you can't use the software commercially. This article looks like just another shot in the whole "Open Source = BAD" war, from yet another FUD-packer (in this case, the member of the AppleInsider staff who wrote the original article).
You're either for personal freedom or you're not. Civil rights stop me from enslaving people, therefore I'm not free.
If I release some "free software", then someone else comes along and entangles it with their own proprietary software and adds their own restrictions, then the part that is my contribution is no longer free. The software itself is not free, in the same way that a slave is not free. The software has been enslaved. So allowing people to do whatever they want to my software is contrary to my software's freedom.
Apparently you don't.
So it's "orwellian" to insist that the people who receive my software, via you, have the same rights as you did, and can use altered versions of it freely in place of the versions you gave them?
Man, you have a fucked up definition of "orwellian." Or perhaps standing up for the freedoms of others is simply antiquated to you. But then, I get the impression that control freaks don't like end-users having freedom, and thus the GPLv3 is inherently reprehensible to them.
However, the Samba team has moved active development of the project to the more strict GPLv3 license, which prevents Apple from using the software commercially.
That should be: However, the Samba team has moved active development of the project to the more strict GPLv3 license, which prevents Apple from using the software commercially in the way they want to use it.
On the iPhone and iPad, Apple wants the device itself to be closed, which means the user is not allowed to install operating system components. Samba is an operating system component. If Apple allowed the end user to replace it, then jailbreaking would be as easy as replacing Samba with a hacked version, then using Samba from within any application. On MacOS X, no problem; you may replace Samba as much as you like; if it doesn't work, it's your problem obviously.
So on iDevices, Apple cannot use GPL v3 code commercially _the way they want to use it_. So they can't use it. At that point it's obviously better to have one code base and replace it on MacOS X as well.
GPL is like promoting free speech until someone saids something YOU don't like. True freedom is letting people do what they want.
The GPL requires that whoever you give the code to - in source or binary form - is just as free to use the code as you were. The way you are "more free" with the BSD is to make others less free, obviously you are more free if your right to swing your fist doesn't end at my nose. Being able to own slaves is a freedom for the slave holder. Except we don't want those kinds of freedoms, because they make others less free. BSD makes Apple more free and OS X users less free than under the GPL. The GPL may not be the absolute and total freedom, but it is the equal and fair freedom.
Live today, because you never know what tomorrow brings
That depends upon your version of 'free'.
GPL forces the freedom of derivatives, BSD retains the freedom to make non-free derivatives.
To some, without the enforced 'freedom' it's not truly free. To others, with the enforced freedom it's not really free.
This isn't an argument anybody is about to win.
Yeah, telling all those congressmen that they "must agree" to uphold the constitution, you'll never get liberty through coercion like that!
What I want is the ability to use it and not be told my customers can't.
So long as you pass on to your customers the benefits that you gained by adopting GPL'd software, no problem. They can use it. If you want to pass on a version with additional restrictions on what they can do with the software, then no, you can't do that. And that's the entire point of the GPL. Is it so hard to understand?
I think you have a good point there. In trying to place extra restrictions and obligations on free software GPL3 will actually reduce the usage of said software.
I don't think anybody disputes that. Simply, for some usage is not the most important goal.
With the due differences, it's like selling a car which verifies if you are drunk before it lets you drive it. Sure, it won't sell as much as other cars, but you know your cars are contributing much less than others to car accidents.
Dilbert RSS feed
Seriously, if you try to promote freedom and free code, you have to allow people to use it how they want.
Exactly. GPLed software can be freely run, studied, modified, and redistributed with modifications. Apple refuses to provide its users with these freedoms, so they cannot use GPLed software.
If you try to define what's allowed and try to get people to do or not to do what YOU want them, you aren't promoting free code. Your code is just as "bad" as proprietary code.
GPL only restricts your ability to take freedom away from your end user. Yes, GPLes software is "bad" for you if you are intending to take the freedoms from your end user. GPL is not "bad" for the software's user in any way shape or form, only for those who would rather abuse copyright and derive monopoly profits from other people's charitable work (e.g. Apple from BSD). Do you seriously not get it?
GPL is like promoting free speech until someone saids something YOU don't like.
And now even a semblance of a rational argument is gone and what you have left is hot air. GPL has nothing to do with freedom of expression (just like copyright, according to the US Supreme Court, has nothing to do with freedom of speech), and everything to do with building a hedge around the public domain. The robber barons stole our public domain by making the copyright terms practically infinite and applying obscene statutory damages to non-commercial violators. Licenses like GPL are legal hacks which help to restore the balance present in the original copyright legislation: creators get some VERY limited distribution monopoly, everyone else gets more and better software.
How did they take your "free software"? Isn't that still available? People here like to point out that you can't steal bits, so the bits of your "free software" must still be in your possession.
You are either for freedom, that stops at the next user, or you are for freedom, that continues after the next person.
"Feel free to beat up anyone you meet" is no freedom either.
GPL = code must be free
BSD= people must be free to do what they want with the code
The problem comes with the intention of allowing the user to modify and use the software. The GPLv2 allowed them to do an end run where you could modify and use the software, but never on the device that it was distributed on.
This was corrected in GPLv3, and control-freak assholes are having a problem with it.
Free for whom?
The GPL protects the *freedom of the code*, not the freedom of developers. Hence the term free software. The BSD allows you to lock the code down, and release binaries only and so is not as good at protecting the freedom of the code.
I really can not fathom that this logic still eludes people. So many assume that it is about their own freedom and so misses the point of the GPL entirely.
And besides, if you want to give freedom to developers, release as Public Domain for crying out loud.
Where all of you GPL-haters keep failing in this argument is that you want to deny rights to software makers. You have to understand that whoever wrote a piece of software owns copyright on it, and can distribute it how they see fit.
If I write a piece of software, I'm free to take one of 3 basic distribution options relevant to the debate:
1) Keep it proprietary, give the code to nobody. Sell compiled versions for money, and/or license the source under NDA to others for money.
2) Give it away under a BSD license (or just make it Public Domain). Anyone can use my software for anything, commercial or not. It's a gift to the world.
3) Give it away under a GPL license. Anyone can use my software for anything, commercial or not. HOWEVER, I stipulate that if you make further enhancements to my code, if you then give the resulting binary to other parties, you are required to also give them a copy of your enhancements in source code form.
None of the options are more or less moral than the others. Licensing code under the GPL does not steal anyone's liberties. It fails to provide you with a liberty you would get if the code were licensed under BSD, but in either case these rights are GRANTED to you by the COPYRIGHT HOLDER. It's a gift either way, and you're saying by failing to give everyone a big enough gift, GPL authors are somehow stealing people's liberties. Bullshit.
That's because it's not liberty for YOU (that's already been granted) but for whomever gets it from you. Stop being so greedy and self-centered with your thought process.
Samba isn't owned by one entity, and so re-licensing under special terms isn't possible. It's one of the advantages (or disadvantages, depending on your point of view :-) of having distributed copyright ownership.
I won't say who offered, but tridge was once offered a multi-million deal to "sell" Samba to a networking company (a long time ago, before people understood what Free Software/Open Source really meant :-).
Jeremy.
The problem with your argument is that the developers of Samba would like to be able to buy a NAS or other hardware device that incorporates Samba and then upgrade it to the latest testing version or change other things about it even if the hardware manufacturer doesn't support it. That's the end of the story in terms of licensing, because no one else owns the Samba code. The Samba developers wanted the ability to modify their own software when it's running on someone else's hardware that they paid money for, and I think that's a fairly reasonable request. Apple's response is basically "Hey, nice code, but we don't really care about your interests and so we won't be using the new version." Either way, Apple wasn't planning on letting people modify the version of CIFS they shipped, or contribute fixes back to the Samba tree, so no real loss there. Long story short, we learned something about Apple's ideology and nothing more.
A new set of SAMBA tools.
What's a "SAMBA tool"? Samba is the name of one particular implementation of the Server Message Block protocol; it's not the name of the protocol itself.
From Jaguar days, when a Mac that went to sleep had to be rebooted to ever reconnect to a Windows share it happily saw before, to (Snow) Leopard when they simply won't connect at all most of the time, at home or at work, even with an IP address
Those sound like client-side issues. The OS X SMB client isn't based on anything from Samba (given that it's a "kernel extension", i.e. a loadable kernel module, basing it on GPLed code would probably be a bit tricky), it's based on the FreeBSD in-kernel SMB client (but has had a lot of additional work done on it). Switching the SMB server from Samba to something else wouldn't affect that.
I fully support your right to put restrictions on how I can modify or distribute something you created. Calling these restrictions "liberty," however, is just Orwellian doublespeak.
You don't have the 'liberty' to enslave other people either. Restrictions sometimes limit the liberty someone might take away from other people.
-- Linux user #369862
GPL is bad.
Bullshit.
Bullshit. BSD license is much more free than GPL.
He didn't say it was "more free", he said it wasn't bad.
BSD is more free, but does little to promote freedom itself. GPL is less free, but it more strongly promotes freedom. Neither is better than the other except when considered in specific contexts. If you ignore context and make a blanket statement about which is freer, you are making a religious argument.
This is why I support true open source licenses that allow both free and proprietary use. They are the real free licenses, not GPL, and unless we deal with that hypocricy Microsoft will always win.
So which licenses are those? even the 3-clause BSD prevents me from claiming ownership of the code and suing other users for copyright infringement, so it's not really free either.
No problem is insoluble in all conceivable circumstances.
You're either for software freedom or your not. GPL restricts what you can, therefor is not free.
Well, maybe. But it does seem reasonable that, if you're gonna take a "free" product and resell it, you should share some of your profits with the product's original producers.
The GPL has taken this attitude toward "free" from the start. You can have it for free if you promise to pass it on to others on the same terms. But if you want to grab someone else's work and make a profit from it, you have to buy it (and get a license to resell it).
See, it's sort of a "tit for tat" thing. If you want it to be free, you have to keep it free; if you want to be paid for it, you have to pay for it.
(For those who have no idea what I'm talking about, note that most GPL'd software is available from the authors with other licenses. The GPL doesn't preclude providing the software with other licenses. It basically just exists to guarantee that if you don't pay for the software, you can't charge others for it. But most of the authors are quite willing to give you a license to sell their software for profit, if you are willing to share those profits with the authors.)
Those who do study history are doomed to stand helplessly by while everyone else repeats it.
Those who release code under a BSD license know that down-stream users can take the code wholesale, or make modifications, and do with it what they will. Those people aren't complaining about it. The only people who seem to make an issue out of it are people who haven't or wouldn't release code under a BSD license. Licenses are essentially a religious debate at this point, so please pardon my analogy when I say that pretending there is a debate on the BSD license is like pretending their is a debate on ID vs Evolution. Only one side is interested in having a debate, and that means there is no debate.
Devil's advocate here:
The downside to the GPL3 is that companies notice one product or piece of code with the v3 license, then their legal team gets scared, throws the baby out with the bathwater and starts over with a closed source product.
I have known one business which produced embedded controllers move from Linux to Windows CE just because their legal eagles feared that the GPL v3.x would force them to give up their trade secrets of some manufacturing methods to any customers that asked.
All and all, I'd would say the GPL v2 is/was the best balance between being able to do what one wanted and redistributing, versus keeping code available for subsequent users. GPL v3 was made with good intentions, but instead of the intended outcome of killing DRM and dealing with patents, it has gotten some businesses to completely dump F/OSS completely and move to closed source systems.
The BSD license is free as in beer.
I don't think you understand what "free in as beer" means. When something is free as in beer, you are welcome to drink as much of it as you want for no charge. You don't get the recipe to the beer, you aren't given the ingredients, you don't get a say in how the beer should taste or could be tweaked for the better.
Closed source software that doesn't doesn't have licensing costs is the analogy described by "free as in beer."
The GPL license is free as in liberty.
Both the GPL and the BSD are free as in liberty, because you are given the code and permission and customize it to do what you want.
In my opinion, the GPL is less free than the BSD license because my liberty becomes limited when I want to distribute my changes in the application to others. With BSD, I'm given the liberty to license the software how I want and I'm given the liberty of not having to provide my source code to others. For a lot of the work that I do, that becomes a big deal -- I can provide software or a service without having to worry about the extra effort required to release something as GPL.
I went to eat some animal crackers and the box said, "Do not eat if seal is broken." I opened the box and sure enough..
Also false--Apple is switching away from GCC because it's clunky, slow, outdated, and the GCC team is hostile to Apple's extensions and does not want Apple's contributions--every developer I know has been very much looking forward to being able to drop GCC and use LLVM.
I think it is a bit of both. Apple has stopped with gcc 4.2 while adding massive amounts of work to LLVM; they could probably have upgraded to a much later version from a technical point of view, but didn't want to for licensing reasons. On the other hand, LLVM is now reaching the point where it is superior to gcc in every respect (massively better compile times, much better error messages, all the compile time information available to the editor and much more) and allows compilation at runtime (great for OpenCL). And it seems that it has a much saner code base that can be improved much easier.
Apple has neither attacked a hacker nor put rootkits on users' systems.
Apple and the FSF may not see eye to eye, but Apple is one of the better corporate citizens when it comes to open source and the end customer.
None of the above has any bearing on whether you want to boycott their closed-system approach. I applaud your boycott, though I won't be joining you.
Make sure everyone's vote counts: Verified Voting
then no, you can't do that
As soon as you utter that phrase, whatever it is you're talking about ceases to be free.
It's not just control freaks that have a problem with it. It's also security-conscious engineering teams. Those bits of GPLv3 betray a fundamental lack of understanding of the need for proper code signing.
First of all, there is no good way to prevent unsigned virus code from running without preventing unsigned user code from running on a device. The last thing you want is a news story talking about how your phone has been compromised by a virus that spreads across the cell network by SMS and has turned your entire ecosystem into the cell phone equivalent of WinZombies. This goes triply for daemons like Samba, which represent prime attack vectors into home and corporate computers, and thus are in desperate need of signature checks.
Unfortunately, any OS vendor that wants to deploy Samba cannot require that it be signed by a proper, valid code signing cert because those cost money, and would represent an additional restriction on the end user's ability to recompile Samba and run the new version. This makes the GPLv3 fundamentally antithetical to proper security as written, at least by my reading. And I'm not the only one who interprets it this way.
More to the point, you cannot create an arbitrarily open ecosystem that allows for anyone to get a code signing cert from anywhere, as this gives you no additional protection over not requiring signing. If you can get a free cert that allows you to run code on arbitrary hardware, then a a virus writer can, too. Thus, the infrastructure must inherently be designed so that third-party code can be authorized on a per-device basis. This is nontrivial, and costs money to maintain. Yet the GPLv3 would require that such a service be free to use in order to comply with a strict reading of its terms. Clearly, this is an untenable position.
In short, this isn't a knee jerk reaction by a bunch of control freaks. Quite the opposite, really. The GPLv3 was a poorly thought out knee jerk reaction to a bunch of control freaks that had a negative impact on consumers. So although I understand why the GPL proponents want these clauses, in the end, they're doing a disservice to themselves and to the community by policies that effectively prevent the proper use of signed binaries.
Check out my sci-fi/humor trilogy at PatriotsBooks.
Either way, Apple wasn't planning on letting people modify the version of CIFS they shipped, or contribute fixes back to the Samba tree, so no real loss there. Long story short, we learned something about Apple's ideology and nothing more.
Wrong : "Apple has been updating and hardening a branch of the Open Group's DCE/RPC library. We'd decided to share
these changes with the community at large and will continue to invest in modernizing and advancing this
code base. The goal is to establish a common, authoritative DCE/RPC codebase that everyone can leverage
or contribute to, under very liberal terms.
We have published Apple's contributions at http://www.dcerpc.org./ Please check out the web site for any
more details. We are looking for someone to port it to the various Linux SMB implementations.
Regards,
James Peach and George Colley
Apple"
If all else fails, immortality can always be assured by spectacular error.
> So, a couple interesting things related to CIFS came to light
> not long ago. The first was playing with Macs. They suck at
> it, horrible performance. In 10.4 they couldn't even talk to the
> NetApp with CIFS at all, they could talk to Windows servers
> but slowly. NFS worked but it was a disaster trying to get
> permissions to work right.
>
> We figured this was in part because they use Samba which
> is not necessarily the fastest thing out there, and was
> originally designed for reverse engineering SMB, not a
> reference CIFS implementation like the NetApp.
Oh dear. Is NetApp marketing really this good ?
Firstly - the Mac client is written by Apple and is called smbfs, it's not Samba at all. It is Open Source code, released by Apple in Darwin. I know the engineers who write it, and they're really good and have been working on it for a while, so I'm sure it's gotten better since you tried it.
Secondly, "a reference CIFS implementation like the NetApp." !!!!
Oh. My. God. :-). NetApps CIFS implementation was written well after Samba, with some judicious peeks at the Samba code in order to implement the hard stuff (this was before Microsoft released their docs). That's ok, that's one of the reasons the Samba code is out there, so people can learn from it.
As for being "a reference CIFS implementation". Just try running Samba's smbtorture4 test suite against NetApp's "a reference CIFS implementation" to discover how much of a "reference" they actually implemented.
Jeremy.
Citation needed on the "need" for code signing. But in any case, allowing users to install their own certificates alongside the manufacturer's would allow signed binaries and also allow the user to run software compiled by themselves; that is, it would allow users to control their own hardware.
How in the hell is that not giving up rights to your patents?
Because it's not giving up all rights to all patents - it's giving up specific rights to specific patents. By using GPLv3'ed Samba, Apple would be allowing use of any patents that Apple has that apply to Samba, by other people in their use of GPLed Samba. If Apple isn't willing to do that, i.e., it's not willing to let other people use Samba, then it damn well shouldn't have the right to use Samba itself.
Please, please reread the whole sentence:
If you want to pass on a version with additional restrictions on what they can do with the software, then no, you can't do that.
"Freedom" does not mean, and never has meant, that you can do whatever you want. The problem is that to allow that will inevitably force someone else to give up their own freedom to do whatever they want. You have to balance the freedoms.
And that's exactly what was said. The GPL prevents placing restrictions on other peoples freedom. A restriction to prevent further restrictions.
You may not like how the GPL decided to balance freedom, but its approach is completely valid.
No it is more in testing. What I find is this:
Windows to Windows: Wire speed.
Windows to NetApp: Wire speed.
Windows to (current) Linux: Wire speed.
MacOS to NetApp: Slow.
MacOS to Windows: Slow.
MacOS with ADmitMac to NetApp: Wire speed.
MacOS with ADmitMac to Windows: Wire speed.
This is with current OS 10.6. With older MacOS it didn't work with the NetApp at all.
Like it or not, this is what my testing indicates, and my only conclusion can be that Apple either is using code that is bad with CIFS, or that they are making it slow on purpose. Like I said, Thursby (who makes ADmitMac) has a grade-A CIFS client and we license their software in part because of it.
I agree on technical points. GCC is a mess of a code base to work with; good luck with anyone trying to port it. LLVM is not so bad in that respect. I could whip out a proof-of-concept port to a new architecture over a week of work, never having looked at LLVM before. I gave up the same task on gcc codebase after two weeks: it was an incomprehensible mess.
A successful API design takes a mixture of software design and pedagogy.