Wednesday, December 20, 2017

Firebird and Windows 10 Fall Creators Update



Windows 10 is well known for encouraging a love/hate relationship with its users. From the beginning Microsoft implemented a policy of uninstalling users' software without their consent during installation or update of Windows 10. Many articles on the net discuss this, for example however, until now, Firebird seemed to be unaffected.

Not any more. Windows 10 Creators Edition (Build 1709), released in September 2017 seems to have added Firebird to its hit list of dangerous applications. This problem was first reported here.
Because the report mentioned Firebird 1.5 it seemed unfortunate but, hey, Firebird 1.5 has been out of support for eight years. It was first released back in 2003 in the heyday of Windows XP and fourteen years is a long time in the software industry. But not only had Firebird been uninstalled, it was impossible to re-install it. This was likely to affect one of our clients so we spent a long time trying to work around that problem.

Since then we have heard reports from other clients whose customers use Firebird 2.5. After updating Windows 10 to build 1709 Firebird was nowhere to be seen. We have also heard that Windows 10 Enterprise is affected so this is not isolated to the so-called Creators edition. And, at the time of writing we haven't had any feedback about the status of Firebird 3.0.

Luckily, Windows 10 does not block installation of any version of Firebird from V2.0 onwards. But having to re-install is still very annoying, and who knows when Microsoft might decide to change the rules on that?
We spent a long time with our client trying to work out how to re-install Firebird 1.5. Manually setting the configuration using the Properties | Compatibility page and choosing an older version of Windows didn't work. However, running the compatibility troubleshooter did, even though the same setting were being chosen.

Unfortunately, there is so much clicking required that no ordinary user could be relied upon to achieve the desired goal. And trying to talk someone through that over the phone or by email would be extremely frustrating for all involved.

Rebuilding the installer with a newer, Windows 10 aware version of InnoSetup didn't work. But weirdly, a rapidly hacked version using an InterBase template for InstallShield did. Hmmm. And hacking an InnoSetup based installer together with the Firebird 1.5 zip package also worked. So what was going on there?

What criteria does Windows 10 use to decide which programs to ban from installation? There is a known bug in the cpl applet that ships with Firebird 1.5 that can crash Windows Explorer so we tried building an installer without that applet. But no, that wasn't it either.

Finally our client had a brainwave. What happens if Firebird-1.5.6.5026-0-Win32.exe was renamed to, say, setup.exe? Well, what do you know? It works. So simple that we really wanted to kick ourselves for not thinking of it first. And as for the poor Brazilian guy in the forum above, I hope he is sitting down when/if he finds out the solution. It is enough to make anyone want to run screaming into the woods.