saturneric / GpgFrontend

A free, open-source, robust yet user-friendly, compact and cross-platform tool for OpenPGP encryption. It stands out as an exceptional GUI frontend for the modern GnuPG (gpg).
https://gpgfrontend.bktus.com
GNU General Public License v3.0
456 stars 43 forks source link

Windows: GnuPG - Update to current version 2.3.7 (?) #69

Closed panther2 closed 1 year ago

panther2 commented 2 years ago

Hey, I came to know GpgFrontend only by today - and yes, it looks great.

One question, though - I noticed that the current release-zip comes with GnuPG 2.3.6.

So I wonder about your update policy... are you going to bundle the new GnuPG (currenlty 2.3.7) anytime soon? Or do you stick with the shipped version for some time?

Thank you.

SoftwUser commented 1 year ago

@saturneric I second this question - or is there an easy way for Windows users to replace the bundled GnuPG version with the latest one themselves - without losing 'portability'?

saturneric commented 1 year ago

@saturneric

I second this question - or is there an easy way for Windows users to replace the bundled GnuPG version with the latest one themselves - without losing 'portability'?

Hi, you can just use the latest GnuPG binaries(all executable binary files located in "bin" directory) to overwrite old binaries. It will work.

panther2 commented 1 year ago

@saturneric

That prior answer implies that you are going to update once you feel your own software creation "deserves" an update. However this is a good and easy workaround to update the needed third-party software. Thank you.

sergeevabc commented 5 months ago

By moving to QT6 you effectively cut off users from places where they still use Windows 7. Whoa, encryption just became less accessible, what a great move. So what's the last version that works on Windows 7?

saturneric commented 5 months ago

Thank you for bringing up your concerns about the compatibility of my software with Windows 7 following the move to QT6. I want to clarify the reasoning behind this decision. The upgrade was primarily motivated by the limitations of Qt5, which does not support OpenSSL3. Additionally, Qt5 has become quite dated, leading to less appealing UI elements and a lack of support for many modern language features and graphical library APIs. The transition to Qt6 was smoother in comparison.

However, I acknowledge that I did not fully consider the implications for Windows 7 users. It's been a long time since I've used this operating system myself, and with my limited personal resources, I can only focus on maintaining one main development branch. My general policy is to phase out support for operating systems that no longer receive security updates. The last version of my software that supports Qt5 is 2.0.10.

I understand this might be inconvenient for some, and I apologize for any issues it may cause. If there is significant demand from Windows 7 users, I am open to providing long-term bug maintenance for the 2.0.x versions. However, this will require some time to find additional help, as my current bandwidth as an individual developer is not sufficient to support two development branches concurrently.

sergeevabc commented 2 months ago

@saturneric, I see that QT5 version is back.

However, 2.1.3 QT5 does not work on Windows 7. It seems you compiled it without targeting that OS as a minimum, so it tries to use KERNEL32.dll calls introduced in Windows 8 such as CreateFile2 instead of CreateFileW. It leads to the fatal error.

2024-0513-0202 gpgfrontend 216 createfile2 error

If I replace that call in libarchive.dll, then GPGFrontend launches.

$ sfk.exe replace -pat /CreateFile2/CreateFileW/ -dir . -file *.* -yes
[total hits/matching patterns/non-matching patterns]
[003/1/0] libarchive.dll
109 files checked, 1 changed.

Some labels look odd, but that's another issue.

2024-0513-0202 gpgfrontend 216 window

Also, some keyboxd.exe stays in memory after closing GPGFrontend, which is not expected when we deal with portable apps, but that's another issue too.

saturneric commented 2 months ago

@saturneric, I see that QT5 version is back.

However, 2.1.3 QT5 does not work on Windows 7. It seems you compiled it without targeting that OS as a minimum, so it tries to use KERNEL32.dll calls introduced in Windows 8 such as CreateFile2 instead of CreateFileW. It leads to the fatal error.

2024-0513-0202 gpgfrontend 216 createfile2 error

I use windows server 2019 to build this binary piece. And as you said, its binary env seems to be a little bit too new for windows 7. But the oldest hosted window runner Github can provide is windows server 2019.

image

Maybe we need to find another way to produce the windows 7 suitable one automately.

If I replace that call in libarchive.dll, then GPGFrontend launches.

$ sfk.exe replace -pat /CreateFile2/CreateFileW/ -dir . -file *.* -yes
[total hits/matching patterns/non-matching patterns]
[003/1/0] libarchive.dll
109 files checked, 1 changed.

Some labels look odd, but that's another issue.

2024-0513-0202 gpgfrontend 216 window

You can now set the option “Kill all GnuPG daemon ...” at GnuPG Controller to True, it may solve the keyboxd.exe problem.

Also, some keyboxd.exe stays in memory after closing GPGFrontend, which is not expected when we deal with portable apps, but that's another issue too.

And @sergeevabc, could you please copy all these releated info to a new issue? We can track these things properly then.

sergeevabc commented 2 months ago

And @sergeevabc, could you please copy all these releated info to a new issue? We can track these things properly then.

Okay.