← Back to team overview

coapp-developers team mailing list archive

Re: CoApp questions

 

Thank you, and the others who responded, for your replies. It definitely helps me understand the rationale for the choices CoApp is making.


-------- Original Message --------
Subject: Re: [Coapp-developers] CoApp questions
From: Garrett Serack <garretts@xxxxxxxxxxxxx>
To: John McNamee <jpm@xxxxxxxxxxxx>, coapp-developers@xxxxxxxxxxxxxxxxxxx <coapp-developers@xxxxxxxxxxxxxxxxxxx>
Date: 9/26/2010 6:28 PM

Howdy,

/(1) Windows Installer / MSI

Does anybody outside of Microsoft really *like* MSI? Wouldn’t a package format based on ZIP archives be a better cultural fit for open source software? I know MSI is the supported method for installing SxS assemblies. For the sake of discussion, let’s assume that isn’t an issue. What other advantages do you see in MSI? Are those advantages worth it?

/

MSI is just more that the supported method for installing assemblies. MSI provides us with a whole host of features that are built in to the OS that we can’t get without a lot of extra (and completely needless) effort--- MSI has a whole host of features that we can build on top of—not attempt to replicate. I’m not going to sit and list every one, but the more significant:

- MSI files are recognized as installers by the OS already. Any other type of file would require us to have software on the system *before* the first package is installed. MSI provides us a method to transparently bootstrap that process and requires no prior knowledge on the part of the user.

- MSI files provide transactional support around the installation of a package. Something goes wrong? Roll ‘em back.

- a lot of enterprise management (Group Policy, etc) of software works around MSI files—a critical feature in rolling out software on thousands of desktops.

- MSI is pretty easy to work with, and supports an extensible model for package metadata already. Why replicate?

- MSI files are easily digitally signed, and again, the operating system knows what to do with that.

- In spite of people’s incorrect opinion on the triviality of manipulating MSI files, they are actually pretty simple to pull data from, extract files and validate the contents.

- zip files, on the other hand, are simply a container that while also fairly trivial to manipulate, really offers absolutely nothing required for package management and would mean we’d have to code up a bunch of needless conventions.

/ (2) Shallow forks vs. upstream support

I understand that shallow forks are needed to get started, but I hope the ultimate goal is getting CoApp adopted by as many upstream packages as possible. I have a dream that some day, I'll be able to grab the latest code for random open source projects and build them on Windows as easily as on Unix.

///

Upstream support would be preferable, but even Ubuntu shallow forks pretty much everything. While the ideal world would have upstream projects shoulder the burden of maintaining Windows builds, it’s not very realistic.


/(3) CMake

Have you looked at CMake (http://www.cmake.org <http://www.cmake.org/>)? There are several cross-platform build systems out there, and none has emerged as a clear standard. However, my observation is that CMake has gained the greatest acceptance. Could CoApp leverage CMake?

///

Yes, I’m more than well acquainted with CMake. Unfortunately, it doesn’t solve any of the hard problems we’re tackling, it simply offers an alternative target for creating build scripts. Sure, CMake generates VC project files in the end anyway, but it’s not making things any easier, and for our purposes, offers little other than an extra indirection (with the possibility of incomplete functionality at build time) without accelerating our activities in the short run.

G



References