I was wondering whether or not XenServer is truly open source. The project has seen quite some back and forth in its history. It was first released in 2006 as a proprietary extension of the Xen hypervisor, called XenEnterprise, by XenSource Inc. Later it became XenServer released by Citrix, still being a proprietary extension of the Xen hypervisor, until Citrix open-sourced it in 2013 and shifted it's business model towards XenServer support. But the information available is confusing.

On the one hand, there is this announcement by Citrix, saying

XenServer 6.2 is now fully open source!

and this slideshow by two Citrix employees which contains some graphics that show everything is open source now.

On the other hand, there is the this XenServer developers page, which says that

there are a small number of XenServer components which are not able to be open sourced.

These components include the Citrix license server daemon and "various" system drivers and user tools.

For me, open source always meant, that you can download and recompile 100% of the source code on your own and don't have any forced linkage to proprietary software. Is this a misconception of mine? How can this project, that is such strongly interwoven with commercial mixed/closed-source components, be called "fully open source"? Where is the statutory border in calling something "fully open source"?

1 Answer 1


I believe your understanding of being able to download and recompile 100% of the source code is the ideal one when concerning open source projects. I would agree with you that not having the source for the system drivers is certainly not "fully" open source. However, when you are integrating with code that somebody else wrote, you often may not have a choice when it comes to open sourcing their code. It sounds like this is the case for some of the XenServer system drivers

Third-party components which Citrix does not own

It's not uncommon to have mixed licensed projects. With most open source licenses, it is perfectly legal to mix proprietary and and open source components as long as they are not linking against each other or borrowing snippets of the other component's code. One common way to do this is to compile the components independently (without sharing code) and have one component fork() and exec() the other component's executable.

  • Thank you for the explanation! Your answer also made me realize, that I might have not pointed out the core of my question really well, so I updated it accordingly. My core question is, where the statutory border in calling something "fully open source" is drawn.
    – Wanderer
    Jan 21, 2017 at 10:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.