binaryninja-api icon indicating copy to clipboard operation
binaryninja-api copied to clipboard

ability to limit upgrades when new version will be OS incompatible

Open bmuessig opened this issue 3 years ago • 9 comments

Version and Platform (required):

  • Binary Ninja Version: 3.1.3469
  • OS: Windows
  • OS Version: 8.1 Pro
  • CPU Architecture x64

Bug Description:

---------------------------
binaryninja
---------------------------
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: windows.

---------------------------
OK   
---------------------------

Steps To Reproduce: Updated Binary Ninja and then started it.

Expected Behavior: It should start and not crash on launch.

Additional Information: Before the update, it worked just fine.

bmuessig avatar Jul 24 '22 19:07 bmuessig

I would like to add that I have reinstalled Binary Ninja without effect.

bmuessig avatar Jul 25 '22 15:07 bmuessig

Can you try the steps in this document to see if it's a plugin causing this problem? It's quite likely that it's caused by an old version of the binexport plugin.

https://docs.binary.ninja/guide/troubleshooting.html#troubleshooting-plugins

(related binexport issue: https://github.com/google/binexport/issues/93)

psifertex avatar Jul 25 '22 19:07 psifertex

Sorry, ignore me, I mis-read your original comment. QT failing to load is probably not binexport.

psifertex avatar Jul 25 '22 19:07 psifertex

Unfortunately this is due to the decency requirements for new versions of QT. You'll notice that 8.1 is no longer supported: https://doc.qt.io/qt-6/supported-platforms.html

and in fact, hasn't been supported officially for BN itself for some time: https://binary.ninja/faq/#supported-platforms it just happened to work longer than it was officially supported

psifertex avatar Jul 25 '22 20:07 psifertex

Could you please provide a download that still works? I can neither downgrade to it, nor download a version that still supports it.

bmuessig avatar Jul 25 '22 20:07 bmuessig

Unfortunately we don't have old installers available. The easiest way to get a version that old is to install a copy on a newer version of windows elsewhere, then use the UI to downgrade to a previous version and copy the file structure back over.

The biggest issue this points out is that we should have the ability to disable updates to a version that will be incompatible. In fact, even if you get the old version installed you have to disable updates or it will try to update to the incompatible version. I'm going to re-open this issue and re-name it to track that issue.

Note though that with the current updater infrastructure it's actually quite difficult to do this so it necessitates some new design to the way updates work.

psifertex avatar Jul 25 '22 20:07 psifertex

Thanks for converting the issue. Having the updater respect OS compatibility borders is great. I think this would become particularily useful for macOS too with its yearly updates.

bmuessig avatar Jul 25 '22 23:07 bmuessig

MacOS tends to be less of a big deal though since we usually support the last 2-3 major releases at least and mac users tend to update more frequently than other OS's in my experience.

psifertex avatar Jul 26 '22 16:07 psifertex

Indeed, I just thought that if you keep 2-3 major releases supported, with every new release, one would be pushed out of the 'queue' of supported operating systems.

bmuessig avatar Jul 26 '22 20:07 bmuessig