How Tudor England solved my installation problem

Yesterday I used a piece of technology to solve a problem that I’ve never before used successfully. To call me shocked would be something of an understatement. But before I get to that, let’s get some background.

One of the side effects of ditching cable is that you end up spending your time watching TV series on Netflix that you had completely ignored before. Currently I am one episode away from being done with the first season of Showtime’s The Tudors, a series that more or less tells the story of England’s King Henry VIII.

210px Henry VIII kingofengland 1491 1547

The real King Henry VIII doesn’t look much like Jonathan Rhys Meyers. Weird.

Kinda.

Sorta.

It just takes the occasional liberty taken with people, places, events and a major liberty taken with overall cleanliness of 16th century England.

It does however capture the general idea of the history that Henry desperately wanted a male heir to the throne but was largely unsuccessful. When his first wife,  Catherine of Aragon doesn’t have a son she gets divorced and the Church of England splits from the Catholic Church.

170px Catherine aragon

Catherine of Aragon

When his second wife, Anne Boleyn also doesn’t have a son things got a little more drastic and Henry had her head removed from its spot upon her shoulders. This sort of thing would become something of a regular occurrence during the rest of his rein.

170px Anneboleyn2

Anne Boleyn with head

I actually went on a tour of the Tower of London where Boleyn was beheaded about ten years ago. I even took this picture since I thought it was funny that they had trashcans stationed about every ten feet.

London tower litter can

In retrospect I suppose with that many heads rolling you needed somewhere to dispose of them.

During the same trip I was standing on a corner trying to figure out which direction to look before crossing the street  when I noticed a guy wearing a shirt like this one:

5073730913 8fb5abc0f8

That’s the corporate symbol of the company Ximian, which along with places like Eazel, were trying to make a living selling open source desktop software. Remember, this was around 2000-2001, the .com bubble hadn’t burst yet and making money in software still meant following the old Slashdot plan:

  1. Write application
  2. Profit!

Eazel eventually went belly up, go figure, but Ximian did something that at the time shocked the Linux community. (Had Henry VIII been around he would have been so mad he’d have probably beheaded someone. It didn’t take much.) They started the Mono project to port Microsoft’s .Net framework to Linux/Unix.

At the time I remember thinking things like:

“You’ve got to be kidding.”

“There’s no way this ends well.”

“The day I use .Net code on Linux is they day take my gcc compiler out of my cold, dead fingers.”

Fast forward to present and I’m sure to your relief the actual *point* of this story. Here I find myself using Mono for something where it was the only tool that would solve my problem. The product I work on, the ALM Reporting Platform, is written in Grails with Groovy and Java and is packaged into InstallAnywhere installers for Windows, Mac OS X, and Linux. The problem I was facing was that the Windows installer was showing up as unknown publisher when I installed on Windows 7:

NewImage

That’s no good. What I needed to do was digitally sign the installer with our certificates so that instead of unknown we’d come up as verified.

The way to do this is to use some tools from Microsoft to sign the installer with your certificate. I even found an example of how to do it in InstallAnywhere’s knowledge base.

Trouble is, my build environment is a Mac. There is no Windows machine for me to use these tools on and I’d really hate to have to setup some convoluted two machine setup for my relative simple build needs. In a moment of a desperation I wondered if I could run signcode.exe under Mono on the Mac. Then I wondered even further if Mono shipped with a version of signcode.exe. Not having much hope I opened up a terminal and blindly gave it a shot.

Screen shot 2011 02 04 at 4 52 23 PM

Oh. My. God.

I ran the command with my cert and my installer, copied it over to my Windows 7 box, double-clicked and crossed my fingers. Here is what I saw:

NewImage

I then integrated the command into my official build environment and marked the bug as fixed. And to fix it I used Mono, the .Net of Unix. The very thing that ten years ago I thought I’d never use turns into the tool that saved my bacon. Whaddya know.

And I’ll bet when you started reading this you didn’t think I could tie Tudor England into digitally signing a software installer did you? I’m sure Anne Boleyn would be thrilled. Well maybe half thrilled.

 

 

 

About Grant

I grew up on the mean cul-du-sacs of Troy, Ohio, USA. I first started "programming" at the age of five on an Atari 400 when I used BASIC to draw an ASCII picture of robot with wheels on his feet. Why the emphasis on feet with wheels? At the time it was a big deal, I didn't have wheels on my feet which forced me to walk everywhere. I would have been so much cooler to just skate around. Since then I've gone on to work on all manners of different technologies, but rest assured if I ever write another robot program he won't just be walking around. Perhaps some tank treads...
This entry was posted in .Net, Apple, Installers, Tudor. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>