Now this is interesting. Microsoft developer Garrett Serack has acknowledged that it is generally easier to roll out a, for instance, complex stack of open source server software on Linux than it is on Windows. He also offers a solution – he’s working on a project to bring package management to Windows. This project will be community-driven, and Serack has the full blessing from Microsoft.
He first identifies the problem: Windows is very different from Linux and other similar systems, and on Linux, it is much easier to roll out a complex set of open source server software than it is on Windows. Basically, it’s far easier to build applications from source on Linux than it is on Windows due to the autoconf and similar tools.
“When that same application needs to be built on Windows, it takes some effort. Finding the dependencies and getting them to compile (which is inconsistent from library-to-library on Windows) and then building the application itself – again, inconsistent – generates a binary that you can run,” he explains, “Nearly all of the time, if someone posts those binaries, they bundle up their copies of the shared libraries along with the application. The trouble is, that there is no common versioning, or really, sharing of shared libraries on Windows. If your app and my app both use the same library, they could (and often do) ship with a different version of it.”
This is a problem that needs resolving, and Serack is proposing just that. He has started a project that will not simply implement the UNIX way on top of Windows – instead, it will be designed fully with the Windows way of doing things in mind, which should deliver advantages over just draping a UNIX environment over Windows.
For instance, it will use WinSxS to handle multiple versions of the same binary, “including multiple copies of the same version of the same library, compiled with different compilers”. Both 64bit and 32bit will be handled side-by-side, without collisions. MSI will be used, and files will be placed in Windows-specific locations. There’s a whole lot more stuff that this new technology, named the Common Opensource Application Publishing Platform (CoApp for short), will support.
Another very positive aspect of this project is that will be entirely community-driven, with the full blessing of Microsoft; however, Serack does not have to confer with the company about the project. “The folks here at Microsoft have recognized the value in this project – and have kindly offered to let me work on it full-time,” he details, “I’m running the project; Microsoft is supporting my efforts in this 100%. The design is entirely the work of myself and the CoApp community, I don’t have to vet it with anyone inside the company. This really makes my job a dream job – I get to work on a project that I’m passionate about, make it open source, and let it take me where it makes sense.”
A project page has been set up at Launchpad, and a wiki is available as well. This sounds like a very ambitious and welcome project for Windows open source developers.