Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Of course not, because a core of developers who wanted the project to move forward recognized that multibillion dollar companies were benefiting but not contributing, and a change to the GPL motivated their involvement and brought the project back to life.

Did companies contribute under the BSD license? Of course, some did. But not enough to keep the project from entering a coma. And nobody wanted to fork it if no one was going to contribute.

It's not a trivial anecdote when you can say that the GPL brought a project back to life, because that's what it did.



It's not a trivial anecdote when you can say that the GPL brought a project back to life, because that's what it did.

New, active, non-umich developers -- who also happened to favor the GPL for personal/political reasons -- brought the project back to life. Not the GPL.

The project stagnated because AppleTalk ceased to be used, and AFP over TCP was generally replaced in most corporate installations by Windows Fileshares or WebDAV, and UMich didn't need it anymore -- not because corporate interests were stealing contributor's labor.

It's presumptuous to take a product that was entirely and successfully developed for years under the BSD license and then claim it as a GPL success story because the new maintainers had a moral imperative to relicense.

You wouldn't claim it a success story for their coding style if they also decided to switch to 4 character tabs and newlines before braces.


By the way, I just have to take issue with this:

"It's presumptuous to take a product that was entirely and successfully developed for years under the BSD license and then claim it as a GPL success story because the new maintainers had a moral imperative to relicense."

Something to remember is that the key pain point at this stage of Netatalk's development was that its CNID scheme -- the method by which the server gives a unique identifier to each file/directory and refers to it when communicating with the client -- was broken and frequently led to silent data loss when the server would mistakenly reuse IDs.

This problem was well-known and well-understood. And nobody -- certainly not the big companies who'd fixed the problem in their private forks -- would step up to fix it.

In this context, it's very hard to truthfully characterize Netatalk as "successfully developed for years under the BSD license."

A file server in widespread production use with a well-known data integrity problem? That no one will fix? Call it what you like, but that ain't a healthy project.


You can trump this up however you want to, but how do you weigh your anecdote of a small, abandoned project that now has three active contributors, compared with another University Michigan open source project that underwent a similar transformation -- UMich-LDAP.

UMich LDAP was developed under a BSD-like license. The project stagnated with serious issues that were not fixed. Maintainership was then acquired, the project became OpenLDAP, and it remains highly successful to this day under a liberal BSD-like license, and is even incorporated into commercial products like Apple's Open Directory?

Same original maintainer (umich), same open source maintenance abandonment, better outcome (incredibly widespread use and active development), different license (liberal).


Haha, I never said the BSD license couldn't be used successfully. Now I just think you're trolling.

The project looks like it's in fine health to me...

http://sourceforge.net/project/shownotes.php?release_id=6860...


Not trolling. The point here is that given two projects in the exact same circumstance (abandoned), with the exact same absentee maintainers (umich), and equivalent levels of contributions and code quality (low), both went with two different licenses -- BSD and GPL.

The BSD project saw significantly higher contributions. However, that doesn't imply to me that the BSD license usage was a "success story" any more than the GPL usage was. It merely implies that the specific individuals interested in maintaing the projects had entirely different licensing predilections, and there were different levels of community interest in the projects.

In other words, happenstance.


Happenstance in the case of OpenLDAP I could accept, though again I'm totally unfamiliar with the project. For all I know they were big Waldo fans and were promised signed first editions of the latest book.

It definitely wasn't happenstance with Netatalk though. Why? Because the community (not just devs) felt some of Netatalk's corporate users had taken advantage of them, and avoiding a repeat wasn't considered a wishlist feature, but a must-have. In that light, simply sticking with the BSD license wasn't an option for them. Switching to the GPL broke the logjam.

You can't just decouple the developer's contributions from the community's determination to address the behavior of the storage vendors. A fork and a license change was a foregone conclusion at that point, the only question was whether it would have bothered the BSD-ites enough for them to keep the UMich tree alive. And the answer was a resounding "no."


The fact is that the developers had to write the code themselves anyway. The switch to the GPL didn't cause vendors to contribute CNID fixes, it merely let those specific developers feel better by sophomorically raising the proverbial middle finger to "thieving" commercial interests while they did free work anyway.

Clearly the developers were interested enough to write the code themselves, in which case the fact that they preferred to fork under the GPL license is just as much happenstance as the interested OpenLDAP developers being happy with the existing BSD license.

It's not as if Netatalk changed the license to the GPL and then attracted a large following of GPL-only developers.


"it merely let those specific developers feel better by sophomorically raising the proverbial middle finger to 'thieving' commercial interests"

Oh man. Fine, you don't like the GPL. We get that. But to say the license change should have been irrelevant is to say that developers should be code-crapping robots with nary an expectation of a social contract. Some devs dig BSD. That's great. But some of us actually like Stallman's four freedoms and in certain situations need to see them guaranteed. Deal with it.


It's not a GPL "success story". You preferred the GPL, you were going to write the code anyway, and you did. At no point in this process was the GPL somehow conveying an advantage beyond satiating your desire to lock out external users/contributors who were potential 'thieves'.

The analogy I gave earlier still fits -- you could have just as easily called new code style conventions a "success story", despite the fact that they aren't the primary driver behind getting something done.

The most audacious aspect of the story is that by locking up future work via the GPL, you've done what you accuse external entities of doing: locking out previous BSD-licensed contributors from your future improvements to the project.


Haha! "Thieves." "Locking out." You're just an anti-GPL zealot. If using the GPL makes me audacious, then call me audacious. Now go troll somewhere else.


"New, active, non-umich developers brought the project back to life. Not the GPL." While we're being pedantic, I'll note, completely unnecessarily for our thinking readers, that the GPL was necessary but not sufficient.

"The project stagnated because AppleTalk ceased to be used, and AFP over TCP was generally replaced in most corporate installations by Windows Fileshares or WebDAV."

That's an interesting assertion. No one could plausibly argue that the situation today is any different. And yet the project is alive and kicking.

You can try to explain why in a way which obviates the license, but the reality is that for the players who showed up to the game, the BSD license was a deal breaker. "It's not the GPL!", you say. "It's that the developers preferred it!" Fine. But if your license drives off all your developers, justifiably or not, whether it's morally superior or not, your license has killed the project. Period.

Me? I'd rather choose a license that the developers like. So they, you know: develop.


You can try to explain why in a way which obviates the license, but the reality is that for the players who showed up to the game, the BSD license was a deal breaker. "It's not the GPL!", you say. "It's that the developers preferred it!" Fine. But if your license drives off all your developers, justifiably or not, whether it's morally superior or not, your license has killed the project. Period.

The fact that your missing is that the once-successful project was already dead because the primary authors no longer required it and the technology landscape had changed, not because the BSD licensed was used.

Given that, I agree that the "correct" license was whatever license anyone actually willing to contribute wanted. The fact that the few new developers interested in contributing were GPL proponents is entirely happenstance and not a success story -- the project reached full maturity with years of development under the BSD license!


"The fact that your missing is that the once-successful project was already dead because the primary authors no longer required it and the technology landscape had changed, not because the BSD licensed was used." "The project reached full maturity with years of development under the BSD license!"

Wrong, wrong, wrong. Absolutely wrong. You said that Netatalk in its UMich days was "once successful" and "fully mature," and that its previous users didn't need to maintain it anymore. Neither of those assertions are true.

Fully mature? Reference my earlier post on CNIDs (http://news.ycombinator.com/item?id=799429), but there were grave data-loss and severe locking bugs in Netatalk which persisted from as far back in its BSD heyday as I can recall. In addition, the build scripts were all kinds of broken, and enabling a basic security feature like DHX was sometimes the subject of long web HOWTOs, due to how fraught the software was. Before the project came back to life, I recommended other options to my clients not because Netatalk's function wasn't necessary, but because Netatalk wasn't trustworthy. (Fortunately a few motivated developers wrote the CDB and DBD backends, and the problem disappeared.)

And the idea that its primary users didn't need to maintain it? Hogwash! Not only were many of the major storage vendors continually shipping it in their devices, but they were shipping privately maintained forks of it with fixes for the issues I mentioned. So it _was_ being maintained, but UMich's source tree was out of luck. The BSD license is why they didn't contribute the fixes back, because they didn't have to. And so Netatalk, always kinda broken, stayed kinda broken.

(Yes, Netatalk is pretty much the poster child for BSD projects which have been sorely neglected by their Fortune 500 users. IIRC, Quantum was the sole exception, but don't quote me on that.)

Now, it's reasonable to propose that if Netatalk had had a GPL license from the beginning, storage vendors might not have adopted it. But vendors ship tens of thousands of units every month running the GPL'd version, so it wouldn't hold water. In addition, there's no need to link to Netatalk in order to build an administration interface around it, something their developers and lawyers have surely always known.


Wrong, wrong, wrong. Absolutely wrong. You said that Netatalk in its UMich days was "once successful" and "fully mature," and that its previous users didn't need to maintain it anymore. Neither of those assertions are true. Fully mature? Reference my earlier post on CNIDs

I never ran into the CNID issue when using Netatalk on our Mac OS 8 systems. By the time Mac OS 9/Mac OS X came around, the project's necessity was already diminishing and I (like many others) had long since stopped paying attention.

I seem to recall contributing all of one patch to netatalk, and that wasn't because I was an evil corporate code stealer -- we just didn't need an AFP server anymore.

Fortunately a few motivated developers wrote the CDB and DBD backends, and the problem disappeared.

The BSD license is why they didn't contribute the fixes back, because they didn't have to.

Vendors had absolutely no reason to use a GPL fork unless new contributors then implemented considerable useful code under the GPL. In other words, making it GPL wasn't the magic that got vendors to use the GPL'd software, providing them more value for free did the trick.

But vendors ship tens of thousands of units every month running the GPL'd version, so it wouldn't hold water.

How many of those actually significantly contribute back to the project? I count three active committers.


By the way, I think I've omitted something from the discussion until now that may help you understand why the GPL was perceived as the right license at the right time for Netatalk.

The initial influx of developers after Netatalk's long moribund state was mostly caused by community discussion of the CNID issue. As users' hard drive sizes increased, more files were stored which increased the likelihood of triggering the bug which resulted in data loss. So more and more people hit the mailing list, wondering what was going on, what was going to be done about it, and were very anxious because not only was it a data loss bug, but a silent data loss bug. Even if users kept backups, they wouldn't know to use them unless they happened to notice a file was gone. This made Netatalk feel like a ticking time bomb. As the conversation's pace quickened, it attracted a handful of new developers who had a stake in Netatalk's success.

As users compared notes and the new devs ran tests, they learned, as mentioned before, that some storage vendors had been aware of and resolved the issue in their products, but refused to share the fixes. Users who had lost files became angry. Why? The feeling was that these vendors had benefited from Netatalk for a long time, and now when the community needed help, the vendors were turning their backs on them.

I think anger was an understandable reaction. After all, we're not talking about users missing out on some whiz-bang feature. If a cool new feature on your iPod is steak, then data integrity in a fileserver is water -- you can't live without it. Users were dying of thirst while the storage vendors were chasing them away from their freshwater wells. And so the community reacted, and decided that instead of hoping for the goodwill of others, a different license would be used to guarantee it.

So, yes, a group of BSD-lovin' devs could have written the code, and we might be where we are today. But the community felt it had been taken advantage of under the liberal license, and reacted to prevent a repeat.

In hindsight, the LGPL might've been a better license for libatalk by encouraging corporate use and development, but I'm not sure, and I don't know if that would've mollified the fans of liberal licenses anyway -- not that that latter point actually matters.


"I never ran into the CNID issue when using Netatalk on our Mac OS 8 systems."

That's good! Unfortunately I did, and so did many others. A quick perusal of the old mailing lists will turn up plenty of this. We tried a test rollout in a division of a Fortune 50 company, and our backups saved us -- when a user noticed a file was missing, that is.

"I seem to recall contributing all of one patch to netatalk, and that wasn't because I was an evil corporate code stealer."

Excellent! All patches were appreciated. We could've used more of that. (And we'd have happily accepted patches from the storage vendors, they just wouldn't play ball. I don't think any of us felt the corporations were "evil," just that they were behaving like ... moochers.)

"How many of those actually significantly contribute back to the project? I count three active committers."

First, that's misleading. The three active committers take patches from others as they please. So to get a true picture you'd need to go through the mailing list and see where all the patches originally came from. And I haven't been involved in the project for some years, so you'll need to go research that yourself.

Second, you've completely missed the point. And it's one you should really like.

Netatalk entered a sick state because the people who had the desireable patches chose to hold them back. The BSD license allowed them to do so. Then other developers came in and said, we'll commit our patches, but we want a guarantee that those who ship our work will have to do the same. And that was enough to motivate them to make Netatalk fully mature -- every significant enhancement/fix implemented privately became available publicly, and more, thanks to those devs.

And what was the outcome for ALL of Netatalk's users? The storage vendors were happy because they could stop maintaining their private forks and just ship from upstream. The users were happy because all these bugs were fixed and they had a responsive place to seek help. The devs were happy because they were assured that they were now on equal terms with the storage vendors. Whether the vendors continued development or not wasn't actually the issue.

So everybody won, the users, the developers and the storage vendors.

No, the GPL didn't write the code, but the BSD license allowed the code to remain private, and that's where everybody started losing. The GPL assured everyone that that couldn't ever happen again, which, as it turned out in this case, was a necessary precondition to success.




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: