So today I spent the day looking into a certain little gem of open source software, courtesy of Google, called Project Omaha.
Some of you might not know it, but when you install any Google app on your computer, you aren't actually downloading that app, but instead downloading the Google Updater, with a tag that identifies which app you're looking for.
Essentially the process goes as such:
The “updater” itself is actually run as a Windows service, which occasionally pings the server for update checks, and auto-updates the apps silently in the background when appropriate. In this way, all of your Google apps are kept up-to-date without ever having to hassle you.
Now obviously, this brings up questions of how people feel about the whole “silent auto-update” thing, but to be honest, if you accepted the ability to install software from a company in the first place, it seems silly that you would decide not to trust their future software. Might as well break out the foil hats. Most likely these concerns are exactly why Google bothered to open source the client software, so that people can see what it's doing.
So the company I work for was looking into a software update solution, and omaha seemed like a possible starting point that could not only do what we wanted it to, but also save us tons of human resources doing it.
Needless to say I was put in charge of trying to download, compile, and test it out, and man was that an adventure!
First off, it is important to note that omaha was first released in May 2007, and hasn't really required updates since mid-2010. This is fine for stability purposes, but means that omaha was initially built in Visual Studio 2005 and then later built in Visual Studio 2008. From what I can tell, however, it is still intended to be built under Visual Studio 2005. There are also a slough of package dependencies that are required to perform build, each of which require their own special dependencies.
For my own purposes, I have added a description of what I went through (as best as I can remember), to my projects page. Specifically, you can find it here.
Worked on project omaha, the google open source software updater.
Building it isn't exactly easy, but I wrote a howto so it can be easier for you here.