aliozgur posted on October 7, 2009 10:47

Yesterday I visited Rob Conery's blog and the post about commercial SubSonic support options made me think again about the open source philosophy. In my opinion Rob must decide in which category of Open Source is SubSonic located.

  • Is it a real open source project as defined by OSI
  • Is it an open source project in a way ASP.NET MVC is

If SubSonic is in the first category, I believe NHibernate is in that category, Ayende’s commerical support offering is not acceptable. Since bug fixes are included in that offering and Rob or Ayende are commiters that would not sound right to the community.

If SubSonic is in second category and Rob decide that SubSonic is open source but main official release is maintained and owned only by him or a company that commericial support offering would be ok.

Perfect Examples

Following OSS examples are very well suited to define my objection

Linus Torvalds does not offer bug fixes as a commerical support for the official Linux kernel. He does not because he is the main authority, and the unpaid authority, who decides if a bug fix or patch be applied to the official release of the kernel. (I do no think he has the time to review all submitted patches but he in a way organized the inner workings) But we all know that Suse and RedHat offer bug fixes and patches for their own distribution, which is understandable and valid. I do not mind the way RedHat or Suse patches and bug fixes are applied to the official kernel releases.

Another example is the Mozialla Foundation. If NHibernate had a non profit foundation as Mozilla and the foundation offered commercial support via kind of Mozilla Corporation that would be OK too. And I want to remind you that Mozilla like foundations do not distribute share profit to any third parties.


  1. As far as I know NHibernate is not copyrighted to anybody or any entity. So may other contributors claim copyright for the bugs they introduce which may cause some complications?
  2. The material itself and the functionality that material provides is not paid in OSS projects. Does offering commercial bug fix support right for the official release of the project cause the material to have some sort of monetary value, since fixing bugs is commercialized which means introducing bugs may be commercialized too?
  3. What if I, as a non commiter to NHibernate project, wanted to offer commercial bug fix support too? Do you think that project leads would allow me to be a committer just beacuse of that even if I'm not qualified to be a commiter? Shall I interpret Ayende as monopoly in NHibernate community context? Don't you think that being a virtual/possible monopoly conflicts with the open source?
  4. If an OSS is not copyrighted to anybody or any entity, do you think that OSS project leads hold legal rights to decide whom to let in or kick out?

Posted in: General Development  Tags:


 Rob Conery
October 7. 2009 11:02
Rob Conery
Why in the world would you think that I, as the project owner and main committer, should offer you free support? It's Open Source - there's no support accept for forums.

What Ayende and I are talking about is phone support, etc. If you think that should be free then I'm speechless.

   no site

October 7. 2009 11:08
The problem with Ayende's offering is the bug fix part not the total support offering.
I think you should revise that offering to exclude bug fixes.

October 7. 2009 16:20
Ayende Rahien
I need to spend my time on finding & fixing the bug, right?
I don't get what makes you think that you are entailed to ask for that for free.
Sure, I do a lot of development on NH for free, but that isn't done for customers.

October 7. 2009 16:31
I do not ask any support for free. My point is: since NHibernate is not in the second category it would be better if you excluded bug fixes from your commercial support offering, other offerings are ok. You can request anything you want in order to provide NH concultancy to your customers, even you can offer patches but not bug fixes.

By the way if you sell your own distribution of NH to your customers you can as well offer bug fixes comercially, but bug fixes directly affecting the official NH release can not be treated as a commercial offering.

Commercial bug fix offering on the official release may also cause some copyright issues in the future since NH is not offcially copyrighted to anybody or any entity as far as I know. Other contributers may reject you from fixing their bugs, since they may theoritically claim copyright on the bugs too.

October 8. 2009 03:42
Omer van Kloeten
Hi Ali,

I think I can explain this: Suppose Oren (Ayende) goes ahead and sells his support to client X. Now that client runs across a problem and calls Oren up, since he's so well versed on the topic. Oren then looks into it and sees that it's a bug in the source code. He then proceeds to fix it, sends the fix to Client X, who is happy that they're getting such a nice, quick response from Oren. They then proceed to pay Oren.

All is well and good up until now, right? But wait, the bug is fixed only on both Oren's computer and the client's. Why shouldn't the community benefit from this bugfix? So Oren commits the fix and now the rest of the community benefits.

Oren benefits the money.
Client X benefits by getting *their* bug fixed quickly.
The community benefits from getting a bug fixed in the project (for free).


 Scott Schlesier
October 8. 2009 03:51
Scott Schlesier
I have to agree with Omer.  If my employer asks me to fix a bug in an open source project, I expect to get paid to do it, and would submit a patch to the project maintainers.  I don't see why it's any different for anyone else.

If you need a bug fixed but don't want to pay to get it fixed, you can submit it to the bug tracker and then sit around and wait for someone to fix it for free.  Your choice.

   no site

October 8. 2009 05:18
Justin Angel
Hi Ali,

I'm sorry to jump in here - but you're dead wrong.

First, I'd like to verify that we've got your point down:
1. FooProject is an O/S project
2. FooProgramer is a contributor on FooProject
3. Given that FooProgrammer might be fixing bugs for free, he shouldn't charge money for bug fixing.

What your arguments fail to take into account are the following factors:

1. The probability of a bug getting fixed. The natural assumption here is "There's a bug - it must be fixed and fixed now". Not so. Bugs can live in systems for years without being discovered or fixed.
So, fixing bugs for financial incentives makes sense. In this part of my argument, a bug might be fixed due to commercial support that might have never gotten fixed at all.

2. Urgency - When a business customer pays for bug fixes the expectation is having those available ASAP.
A business customer essentially is paying for the right of being 1st in the bug fixing system.

Just my take on it, but you failed to present a coherent explanation as to why you're opposed to the commercial support offering.

-- Justin

October 7. 2009 16:38
Forgot to mention that, your current role, commiter and if I'm not wrong lead of Linq project, in NH community makes your bug fix offering inappropriate in my opinion. I guess that summerizes my rejection.

October 8. 2009 03:38
Adam D.
Ask for a refund for NH since you're not satisfied.

October 8. 2009 03:40
Tim Scott
By "not acceptable" I guess you mean you do not plan to purchase it.  That's fine.  If on the other hand you are demanding that OSS contributors forever fix your specific problems for free, after having working very hard for free to give you the software, then I think that you see the world in a very strange way.

October 8. 2009 03:45
In my opinion in open source you are not required to fix any bugs, you do that when you have free time or when there are some serious issues. So with "commercial" bug fixes, I would think it like speeding up bug fixes. When customer needs some bug fixed and he needs it fast, then he pays for it. It's the same as he would pay for his employee to write a patch for it, only that employee is not directly working for him.

   no site

October 8. 2009 03:46
Lance Fisher
I think it depends on the nature of the contract for bug fixes.  Obviously, an open source project cannot accept copyrighted work.  e.g. Code to fix a bug under a strictly work for hire agreement.  However, if the bug fix is done under an agreement that the source may be contributed back to the project under the project's license, I don't think there is a problem with it.

What if I, as a company, use NHibernate or SubSonic, and run into a bug that keeps me from shipping.  My staff may not be capable of fixing the bug, but I need it fixed to ship.  What do I do?  A support agreement would be great for this.  What do you see as the best way to resolve this problem?

The other concern is code being contributed to the projects that may not belong.  e.g. A company wants feature X, but the community doesn't want it in the product.  This can be mitigated by the community still choosing whether a patch is contributed or not.  Also, if the problem is just existing bug fixes and not feature requests this becomes a non-issue.

October 8. 2009 03:50
I'm just a third party in this, but I saw this and I really wanted to say something.

I don't think anyone here is arguing that offering commercial technical support (excluding the bug fix comment) for an open source project is in any way violating OS guidelines as specified by OSI.

The second point about offering bug fixing support however disturbs me.

The OSI specification states 10 statutes.  I'm not going to list them here, but none of them specify anything about commercializing bug fixing.  Furthermore, if Ayende was to feel that he wants to commercialize the time and effort he spends as a major contributer to ANY OS project, I feel that is his business.  He is in no way obligated to prioritize his contribution to NH, apart from his own inclinations and/or commercial endeavors.

If people disagree with Ayende's decision, they will simply refuse to pay for the commercial support he is offering.  If they don't, then they will invest.  I am on the latter side and if I ever chose to invest at some point I would be glad that it was with someone as talented and willing as Ayende.

Very Respectfully,..

October 8. 2009 03:54
I'm using NHibernate for a comercial project. Sometimes I have a case when NHibernate has a bug.
Now what am I supposed to do? Stop the project and wait until the bug is fixed? Fix the bug myself? Find a workaround?
All the options will require time to do, which is expensive. Instead we had always know ayende's price so we just pay him for a bug fix.
Then now we have the fix in time for our project, what should we do with the bug? Even if Ayende doesn't submit it to nhibernate, we will since we don't want our project to forever apply the fix ourself whenever there is a new release of nhibernate.

   no site

October 8. 2009 04:36
Neal Blomfield
Think of any OSS bug tracker as a priority queue ( where priority is determined by a number of factors that may or may not make sense to an outsider ).  Paying Ayende to fix an NH bug is essentially paying to make your bug jump to the front of the NH bug queue therefore ensuring it gets fixed within a timeframe you are comfortable with by someone that you can pretty much guarantee knows wth he is doing.

You need to think beyond your initial reaction and question / understand the underlying concept before posting.

October 8. 2009 04:41
Richard Dingwall
I don't see anything wrong with paying someone to look at your bug right now.

Are you imagining a situation where a maintainer refuses to fix bugs for free? Or where they withhold fixes from trunk? Or bend a project to suit one company's needs?

I think this project would get forked pretty quick.

October 8. 2009 04:46
Scott Bellware

There are two dimensions of remunerated work: payment for time, and payment for material.

In this case, the customer isn't paying Ayende for material.

The customer is paying Ayende to put a work item at the very top of his list of top priorities.  It's payment for an expedite.  This is a payment to Ayende for time.

The material - the code - ultimately makes it's way into the public NHibernate source.

Ayende might get around to fixing the bug sooner or later.  The customer is paying Ayende to change his priorities so that the work happens sooner rather than later.  Not only is the customer paying for the work to happen sooner, but the customer is paying for a special kind of "sooner": right now.  And this happens regardless of other priorities that Ayende might have in his pipeline at the time of the engagement for an expedite.

The payment is made to Ayende for Ayende to re-prioritize his pipeline, which means shifting other immediate customer and work priorities downward and possibly even risking other customer relationships.  It's perfectly reasonable to pay Ayende for assuming part of the customer's risk as his own.

October 8. 2009 06:33
Tim Scott
Notwithstanding my snarky reply above...  Maybe you are viewing the comitter as a gatekeeper who abuses power by charging a toll for what was chartered as a freeway?  I would agree with this view if Ayende were charging to apply patches or for granting commit rights to those with merit.  The only legitimate concern I can see is that paying customers would push the software in a direction that suits them but is not best for the community.  Having followed Ayende's work (and Rob's to a lesser extent), it think that is a not a concern in this case.

October 8. 2009 09:32
I want to redefine my objection. I do not say that people can not sell or buy commercial support for OSS projects. What I say is that people dirctly working on the official release of an OSS project can not sell bug fixes in any manner.

Do you think or heard anything about Linus Torvalds selling bug fixes as a commerical support for the official Linux kernel. He does not because he is the main authority, and the unpaid authority, who decides if a bug fix or patch be applied to the official release of the kernel. But we all know that Suse and RedHat offer bug fixes and patches for their own distribution, which is understandable and valid. I do not mind the way RedHat or Suse patches and bug fixes are applied to the official kernel releases.

Another case is the Mozialla Foundation. If NHibernate had a non profit foundation as Mozilla and the foundation offered commercial support via kind of Mozilla Corporation that would be OK too. And I want to remind you that Mozilla like foundations do not distribute share profit to any third parties.

If Ayende was providing his own NHibernate distribution I would have nothing to say about his commerical bug fix offering.

As a result aside for the bug fix part I do not object to the commercial NHibernate support.

October 8. 2009 12:26
Mark Nijhof
So you would rather have Ayende and all the other OSS project committers have their own distributions so they can also do bug fixes while helping out a customer in need, which means that that customer suddenly needs to change their code base to use the _special_ distribution which may (most likely) have other bug fixes and changes in there from other customers which makes it not compatible with the truck any more. Note in this case it also become less and less likely that Ayende will actually fix this bug in the trunk.

Instead of getting paid to fix a bug sooner as in now (like Scott perfectly explains it) and send the patch to the client for their local copy of NHibernate AND commit that back in the trunk? That way the community actually in a whole benefits from the customers need to get this bug fixed ASAP.

Scenario: Customer calls Ayende with a critical problem, needs to be fixed right now. Ayende starts looking at the problem probably remotely and discovers that the problem is actually a bug in the NHibernate source and not an issue at the clients code. After having made that determination he contacts the client and tells them. Yeah I am sorry but you are going to have to wait until this new bug gets on top of the list. That is just silly. Instead Ayende is going to fix the bug, send the patch to the customer and apply the patch to the trunk of NHibernate.

It amazes me that you (and many others a like) think that it is perfectly fine to demand from others that they do something for free for you, the only reason they got to be a committer is because they already gave a huge amount of their personal time for free to the community.

October 8. 2009 14:35
I'm sorry but you can not get the point.Please reread the perfect examples of open source I posted. And answer my questions which make me post this blog entry.

And I'm not that kind of person you noted in your last sentence, please read my previous posts which are related to NHibernate development. I'm also part of that community.

By the way bug fixes may occur as a result of Ayende's commercial support activity, but it would be better if bug fix offering is removed from the commercial support context, I insist on that.

You scenario works well for Ayende, since he is the commiter. What if I as ali, since I'm not a commiter, told my customer that NH has a bug and that have to be fixed but I can not fix that bug because I'm not a commiter and my customer rejects to pay me, since I only discovered the problem but can not solve, and even tell me that it would be better for him to get that commercial support from a NH commiter. Do you think that this is a desired pattern in a open source project?

October 8. 2009 16:28
Mark Nijhof
You can fix the bug, send the patch to the customer and send a patch to the project. Nothing is stopping you from doing that. If indeed it was a bug and you fixed it they would apply the patch anyway. But you don't need to wait until it is applied for it to be useful.

October 8. 2009 14:35
Cool Idea....

So, I have this product that depends on Nhibernate...
There's a bug on Nhibernate that stops my product from working...
I need it solved NOW.... But wait, I'm the only one using that particular
NH feature... So, noone cares, noone will fix that soon enought to me.
But wait, I can pay for someone fix that to me on the time that I NEED. Perfect.

By the way, nice way to make your blog popular, at least for a day.

   no site

October 8. 2009 14:42
Please write down your argument not the perfect case scenario which works well for you. If you want support of that level go and buy some commercial ORM.

And if you noticed this blog does not host any advertisement so I do not benefit from the one day popularity in any way.

October 8. 2009 14:49
Erich Eichinger
As others already pointed out, in other words: Ayende does not get paid for the bugfix. He sells a guarantee for fixing it and fixing it fast! This is huge difference.

It reminds me a little bit on the very unfortunate discussion around Spring a while ago, when SpringSource started to offer maintenance contracts to its customers. Your are selling a promise to your customers, to support and maintain the version of software they have in production. This is not what you get for free on any OSS project out there. And - after all - also OSS developers deserve some refund for their work. People like Ayende spend a lot of time developing that stuff. Where exactly do you expect them to earn their money from? Pay them by either submitting patches or buy bying their support offers. The only problem I can spot in the OSS business model is, that the better the software is, the less support one can sell...

October 8. 2009 14:54
Ayende's offering is different from SpringSource's offering. Please concantrate on my questions at the end of this post, these questions are source of my objection.

October 8. 2009 15:25
It seems nobody yet answered the question about "people directly working on the official release of an OSS project selling bug fixes". That answer given will make your point of view clear about some imaginery minister of finance, personally have companies in some sector and also giving financial decisions and enforces law about that sector. It is very obvious that someone commercially benefiting an OS project would never be a decision maker in that project in any way.

   no site

October 8. 2009 18:33
contador de visitas
Your blog settings are really great and I can truly say it is one of the best I have seen.
Thansks for sharing.

Comments are closed