Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider presage upgrade path for v4 #867

Open
kmcnaught opened this issue Oct 5, 2022 · 4 comments
Open

Consider presage upgrade path for v4 #867

kmcnaught opened this issue Oct 5, 2022 · 4 comments

Comments

@kmcnaught
Copy link
Collaborator

Optikey v4 will be a 64 bit application, so users who have set up presage will need to upgrade to a 64 bit version

We will need to

  • ensure documentation updated to reflect this, and to point at the correct 64-bit version to install
  • test the presage upgrade path, can users keep their existing database/model?
  • test the optikey upgrade path - if someone is set up to use 32 bit presage, make sure Optikey doesn't crash, gives a helpful error and falls back to another prediction method (or none)
@kmcnaught
Copy link
Collaborator Author

See PresageInstallationProblemsDetected - update to also check application bitness and give appropriate warning/log.

@kmcnaught
Copy link
Collaborator Author

@JuliusSweetland I was just looking at the previous checks for Presage install, and I found this suspicious looking if statement. I just wanted to sanity check it before ripping it out, in case I'm confused.

if ((osBitness == "64-Bit" && presagePath != @"C:\Program Files (x86)\presage")
|| (osBitness == "32-Bit" && presagePath != @"C:\Program Files\presage"))
{

I believe the logic was intended to be "if the Presage install doesn't match the OS bitness then report a problem" but the checks in the if statement are the wrong way round, correct?

I think the logic should be "if the Presage install doesn't match the process bitness then report a problem".

I believe that if someone tried to run Optikey (classic) on a 32 bit machine, it would refuse to load Presage. The fact that most users have a 64 OS (running a 32 bit Optikey) means we've not hit this bug.

If you agree with my reading of the situation, I will fix this in master as well as upgrading the logic in v4

@JuliusSweetland
Copy link
Member

JuliusSweetland commented Jan 16, 2023 via email

@kmcnaught
Copy link
Collaborator Author

Oh I see, these checks implicitly assume that it's a 32 bit version of presage installed. Since I have a 64 bit OS I get 32 bit programs installed in Program Files (x86) and 64 bit ones in Program Files so I thought it was a proxy for which (32/64) Presage version was installed. I hadn't realised 32 bit Windows only had Program Files although it makes sense in retrospect! What a confusing naming system!

We will need to check OS bitness and process bitness against install location to check for compatibility now that Optikey can be a 32 or 64 bit process

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants