Apple replaces Samba for Windows networking services
appleinsider.com
appleinsider.com
My biggest gripe was discovering that for a user foo, you can't just give the user permission to access a file on a network share through the GUI, you must also make sure that foo can access the file at the Unix level. Potentially I guess if they're building from the ground up they can get better integration, though I'm skeptical of their ability to do better than Samba.
I like to say that anyone who thinks all Apple products are designed well and work as you expect means that person has never used OSX Server.
My biggest gripe was discovering that for a user foo, you can't just give the user permission to access a file on a network share through the GUI, you must also make sure that foo can access the file at the Unix level.
In some sense, this is the way samba works (it uses file system permissions for user share mode, once they've been authenticated, unless you override it with things like the force user, force group, or force mode parameters -- which you can't effectively set on OSX). Unfortunately, since the GUI hides actual samba configuration from you, you never find this out.
I had been under the impression that the concept/implementation was fine, until Microsoft started diddling with the system in order to mess them around.
Specifically: wasn't Samba based on a 'clean room' implementation of some Microsoft protocol or something like that? And when it took off Microsoft were in the middle of their 'kill Linux in the enterprise at all costs' jihad and so they kept changing the protocol that the Samba guys were trying to interface/interact with?
While the Samba team had a huge task, this does not excuse the extremely crappy implementation over the years: corrupt TDBs, lack of change notify, no native ACL support, oplock crashes due to the non-asynchronous, single threaded nature of each smbd, horrible Winbind scalability problems, domain join bugs, no real named pipe abstraction layer, no alternate data stream support, etc. And the code is just horrible to look at.
IIRC this is a lot easier than it used to be now that MS has to publish protocol specs.
> "[Samba] is a portable, user space application, and is actively supported on Solaris. [on the other hand] The Solaris CIFS service is a native kernel implementation; a first-class citizen of the Solaris operating system"
I think ACLs are a bug, not a feature. They are too complex to administer both correctly and efficiently; a capability-oriented approach would be better, but that's fantasy, alas. Again, POSIX permission bits do just fine for my use cases.
Reliable FCNs would be nice though.
It is really a horrible protocol where you can see how it evolved and was extended from windows version to version...
This was fine back when all software was written in C/C++... except that was of course never the case.
> I'd like to incorporate GPL-covered software in my proprietary system. Can I do this?
> You cannot incorporate GPL-covered software in a proprietary system.
...followed by a series of ifs-and-buts that include completely vague terms like "at arms length".
MacOS X is a proprietary system. It includes support for Windows file sharing. Assuming that Samba was used for this, does this mean that MacOS was not incorporating Samba? Or does it mean that Apple was in violation? Or does it mean that somehow Apple was meeting one of the vague requirements for separation between Samba and MacOS?
(I'm not raising this as a question of differences between GPL v2 and GPL v3.)
Given the case histories involving the GPL so far, I could see Apple's legal team advising Apple to put as much distance between them and the GPL as possible. Non-compliance due to one gray area or another could force Apple to release tons of proprietary source code.
I think that shrugging this situation off with "well, that's their decision" is completely disingenuous. Yes, it's their decision to make, but they will most certainly decide in a particular way as a direct result of the situation they're looking at.
No, it cannot. Anyone who repeats this FUD is revealing he has no understanding of the issues. The GPL may not be exceedingly clear, but this is entirely an issue of copyright law. Maybe they will be forced to stop distributing something until they replace a component, and maybe they could be forced to pay damages, but there is no mechanism that the GPL could force them to release anything they didn't want to.
> The case was settled with release of the Monsoon version of the source and payment of an undisclosed amount of money...
> The Xterasys case [ed: separate case] was settled on December 17 for release of source code used and an undisclosed payment.
(I'm not including cases that were settled with a stipulation of "active compliance".)
http://en.wikipedia.org/wiki/GPL#The_GPL_in_court
> Cisco settled the case six months later agreeing ... to make source code of FSF programs freely available on its website.
Granted, that last one doesn't sound all that bad.
Given that the GPL does compel the release of source code for derivative works, and given that one of the FSF's tactics in lawsuit settlements is to ask for the release of source code, let's not go misapplying the FUD label, OK?
edit: I don't mean that to sound snarky. Rather, I'd like to see less "Bah, that's just FUD", and more explanation and clarity when responding to people's concerns about the GPL.
They could have instead replaced the GPL code with non-GPL code, possibly paid some damages, and been done with the matter with their source remaining secret.
You can't force a GPL violator to release source. All you can do is offer them a deal where they release the source in exchange for less/no monetary damages.
One reason Apple would care is it is now shipping a bunch of locked down hardware (the iDevices). Although those probably don't run Samba right now they may have set up a general policy to not have that risk.
http://en.wikipedia.org/wiki/GNU_General_Public_License#Vers...
It looks like GPLv3 only gives Apple the option of stopping distributing Samba, or of finding a way to get a patent license that covers everyone who obtains a copy of Samba that can be traced back to Apple. The latter could get very expensive.
Or, it may be completely unrelated to GPLv3 and Apple simply no longer wishes to "walk a fine line" in this particular area.
However, neither Solaris nor Apple are typical corporations in terms of using licensed 3rd party code; given the terms the GPL poses, wouldn't you expect to see more smaller companies, or companies that operate primarily on the web to adopt GPL'd projects?
To me, this echoes my problems with the GPLv3: how can software be truly free (as in freedom) if it's not free to be used commercially?
This seems eminently reasonable to me. If you want to allow people to do closed-source commercial projects with your code, BSD license it.
(I am, of course, ignoring support here, because support is really a separate product that could even be provided by a third party.)
If you are using my GPL contributions for free then you can't turn around and stop your customers using those contributions.
GPL is significantly more free than closed-source commercial.
Two groups of people are negatively impacted by the GPL.
First, people who want to ship closed-source versions of code they didn't write in exchange for money, against the will of the package author. Hard to feel sorry for these people.
Second, people with BSD/MIT/Apache licensed open source project who want to make it possible for other people to ship closed-source versions of their code for money. A valid concern, but a pragmatic one, not an ideological one. BSD gives away "too much"; GPL holds back "too much". There's no happy medium.
Let's take the ideological cast off this ("freedom", "commercial", "semantic games"). The issue here is simple and practical.
I can also come around and clean out your gutters for free.
To drop the metaphor: I'm not saying that you can't license your code under GPL. If you don't want me using your software, that's your right. By placing the code under GPL, you are communicating that I am not free to use the software as I please. That is, again, your right — all I ask is that you be honest about the fact that use of the code is very much restricted.
If anybody using your code is effectively barred from commercial endeavors, then for people who make money off their software, it does not grant them any more freedom than closed-source code does. To say a license grants freedom because you're free not to use the code is just weird.
I agree with you, for what it's worth. I much prefer the BSDL exactly for reasons like this.
This problem is so significant that no major Linux distro puts its system libraries under the GPL. It is clear that they believe the GPL would interfere with more than just the freeloading business model.
The only people affected by the GPL are people who want to sell software they didn't write. It's hard for me to get worked up about that: the overwhelming majority of all commercial software is more restrictive.
Anyway, I'm not saying that people shouldn't be able to license their software under the GPL. If you don't want me using your code, that's your right. But if they do GPL it, from my POV as a potential user of the code, it might as well be closed-source. Thus I object to the statement "It is free to be used commercially," when it is actually free for any other use but impractical for commercial use. (Even in your Sleepycat example, it was the non-GPL version that they used in their commercial pursuits.)
I'm OK with the existence of GPL software. I like it when people use a more permissive license, but your code is yours to do with what you will. What bothers me is what people say about the GPL, because I think it's misleading.
There is this common idea in the free software community that it is not hostile to commercial software. That's what I don't like. If people came out and said, "Yeah, my GPL source code has very severe restrictions that make it unsuitable for integration in commercial software," I would agree and wish them happy coding. But they don't say that. They use the misleading banner of "free," and even try to deny that it's incompatible with commercial software.
Based on all the evidence I've seen, I believe commercial software pretty much has to be offered under a proprietary license in 99% of cases. The GPL says I can't do that if I use so much as one line of GPL code written by somebody else. That means that using GPL code in my software renders it unsaleable.
So, when you said, "It is free to be used commercially … if you keep its derived works open source," I objected to that. If you can only release your software under the GPL, you're probably not going to make a lot of money selling it — it strains the definition of "commercial." You can't even use the Sleepycat model, where there's a GPL version and a commercial one.
It's your right to put your software under that license. But I think it's important for people to understand that it completely shuts out commercial use, even if the commercial use is largely original. We shouldn't downplay that.
But not because that software is being sold, or because it is profitable, or corporate, or big-business, or commercial or any of those things. It is hostile because it is "proprietary" and that (in the FSF's opinion) tilts the power balance too far towards the vendor, allowing all sorts of abuses.
Where I think you are getting confused is that some of those abuses are highly profitable and so those are the most visible successes to you.
But people like to sum this complicated area up as the GPL being "anti-business" or not "business-friendly", which is highly misleading. You'll note that quite a lot of non-software businesses are quite happy to use GPL code since a) they are not in the business of selling proprietary code and b) proprietary code gives too much power to the vendor. There's plenty of room for businesses to supply GPL software to these companies.
On that topic: Whether or not the GPL was designed to be hostile to commercial software, it is hostile to commercial software in the real world. I don't know of a single piece of GPL software that makes decent revenue on its own.
It's unfortunate if you happen to be the mythical lone inventor that all the laws that patent trolls thrive on was supposed to benefit. They were the collateral damage caused by something that was supposed to benefit society through you, and as patent laws get reformed you'll be the collateral damage caused by something intended to benefit society by curtailing them.
The other elephant in the room is web apps, which the GPL has no power over. There are plenty of people selling that software for a living while building on GPL code. If you're trying to sell desktop apps then you're now more and more competing with them. Again, the GPL has changed the environment you compete in whether you wanted it to or not, and this time it's worse competition because it's more profitable.
You really, really, really need re-evaluate your take on this. GPL is the most indie-friendly of the licenses. There's a valid gripe against it: it fractures the open source community into "people who can use GPL code" and "people who can't use GPL code". But that has nothing to do with commercialization. Once you BSD license something, it is extraordinarily difficult to commercialize the code itself.
Way back when, I wanted to hack sleepycat db support into a closed source third party platform that had an extension API. It would have taken a bit of code, and a dll load.
Not my application, I didn't have source for it, and I was willing to release my extension as GPL. Sleepycat didn't see it my way and wanted something like 10k/year and a maintenance agreement for the right to do the code and release it a GPL.
So, to sum up, the GPL prevented me from writing and releasing GPLd code.
I doubt it although I wish this becomes true, the protocol is a pain in the ass, even Samba has some quirks, Samba is a very large software (probably millions of lines of code) just to compare.
I just cannot see Apple spending so much time developing this solution only because of their dislike of the GPLv3, sounds dumb to me.
Using OS X Server as a PDC for Windows 7 machines is the big ticket reason.
It's not that you can't commercialize GPL software, it's that while doing so you need to still ensure a set of freedoms for the user. That's the essential part of freedom as defined by the FSF. See the 4 freedoms (http://www.gnu.org/philosophy/free-sw.html).
It took a long time for companies to accept the GPLv2 restrictions when developing products and now some are balking at GPLv3. Google even has a no-GPL policy for anything on the Android userspace.
You can of course disagree with this way of working and prefer something like BSD/MIT licensing instead. I wonder if anyone has done a comparison of how much contribution from commercial entities BSD and GPL projects have generated.
Ignoring that Free Software is in fact used commercially everyday, it is important to realize that certain freedoms must be restricted in order to preserve overall freedom. Like how your freedom to locate your fist is constrained by the location of my chin. Or how your freedom to stuff a ballot box is constrained by the preservation of a just, fair, democratic election.
http://news.ycombinator.com/item?id=2227753
Key points:
It might be more accurate to call it "freed" software. The goal of the GPL is to uncage domesticated software and let it roam wild forever, never collared again. The people who distribute software in this fashion won't let you put it back in the zoo.
And again, FSF is not saying that users are free to do what they want. You are not free, according to them. They say that software is free, in the sense of the software freedoms. That sentence essentially would only parse to $0 before Stallman came along.
GPL's goal is to maximize users' freedom, not developers'.
GPL forbids developers to take freedom away from users, as software with commercial terms or DRM becomes non-free for users.