I've been toying with the idea of coLinux being able to act as a library for applications.
Scenario of use:
There are numerous applications that work fine for Linux, except it would be nice to deploy them in the Windows world.
Instead of porting these applications to Windows, an installer and a small launcher app could be written. This launcher app would launch and act as the interface between the Windows and coLinux worlds.
- the Linux builtin pppd server has several adavantages over the built in PPP server in Windows.
- A more extreme example is to package the Evolution email client as a no fuzz Windows application.
For coLinux to be able to "act as a library", it would have to meet various criterea:
- Generally coLinux should "have no hair". If a developer decides that the most expedient way to implement something in his "Window application" is to run an underlying coLinux machine, he should be able to do so without consulting anybody *and* nobody should be able to tell(i.e. the user shouldn't be presented with questions or issues about installation incompatibilities, etc.).
- Relatively straightforward to bundle with the launcher application.
- It would have to be able to support side-by-side installs. This is the kicker. Any number of different coLinux machines, regardless of their versions, would have to be able to co-exist on a machine without colliding. This goes for any components that coLinux depends on as well.
- The CygWin X server could perhaps be forced to follow these same criterea.
For your Evolution example you wouldn't just need to include Evolution, but every single dependency it had in that package. To me that would seem to be just bloat. After all, the GTK toolkit already runs on both Windows and Linux, making it not that hard to port GTK apps. It would seem to be fair simpler to just do it the 'old fashioned way' and just port the code that making a giant wrapper.
Plus I'm not sure if the developers would really like releasing coLinux under a BSD like license so it could be hidden in proprietary applications w/o contributing to the actual project.