Automating the installation of a
#Windows package that is really not designed for multi-user installation is decidedly un
-fun. It's especially unfun when:
1. The setup.exe doesn't prompt for a multi-user vs "self" install
2. The setup.exe absolutely refuses to install to paths with spaces in their name (you know, like
C:\Program Files\<APPLICATION_NAME>
Ultimately had to kludge around the limitations by leveraging temporary #NTFS filesystem-junctions (what we, who normally only dick with
#Linux, might call "symbolic links").
1. Create junction
2. Point the setup.exe at the junction-path
3. Once the setup.exe completes, nuke the junction-path
4. Update the registry-entries that tell Windows where to find the application's uninstaller
The #Linux installation wasn't great, either, but the "installer" limitations were marginally less-kludgey to work around. The software doesn't come as an
#RPM, so, it didn't come with any
#SELinux rules (on the plus side of not being an RPM, I didn't have to worry if it used a signature or file-digest algorithms that weren't FIPS-compatible). Since the installation-targets are SELinux (and
#FIPS!) enabled, had to add further logic to the automation to set up the proper SELinux contexts. We'll see how well that
works, once the whitelist daemon is activated…
But still, "ugh. I hate Windows".