nuttyartist / notes

Fast and beautiful note-taking app written in C++. Write down your thoughts.
https://notes-foss.com
Mozilla Public License 2.0
3.85k stars 343 forks source link

Qt 6 compatibility with older versions of Windows #520

Open Darthagnon opened 1 year ago

Darthagnon commented 1 year ago

If/when you move to Qt 6, any chance you could do a legacy build or otherwise incorporate community-sourced compatibility patches for older versions of Windows?

More information below:

Forum threads

https://board.eclipse.cx/viewtopic.php?t=419

https://forum.qt.io/topic/133002/qt-creator-6-0-1-and-qt-6-2-2-running-on-windows-7/46

Other programs that use these patches:

https://gitlab.com/posktomten/nsisfilelist/-/wikis/DOWNLOADS#obsolete-windows

guihkx commented 1 year ago

I don't think we'll drop Qt 5 support any time soon, but at the same time, maintaining and building a patched Qt 6 build for Windows versions that not even Microsoft or Qt developers are supporting, seems... Weird?

nuttyartist commented 1 year ago

I agree with @guihkx. What's your use case? What Windows build do you use, if I may ask?

Darthagnon commented 1 year ago

An older release of Windows 10. I've had mixed results with running Qt6 programs, sometime having to apply patches intended for Windows 7 for stuff to work. Hence I like to treat Win7 support as the baseline for software I use, as it will then definitely work. Several projects I follow and use have moved over to Qt6 (Dolphin, PCSX2, ...), dropping support, and a few more are going to do so in the near future (qBittorrent). Since I saw you guys have both versions, I assumed maybe you were in a transitionary period like qBittorrent is currently, and suggesting compatibility patches early would increase their likelihood of inclusion.

Does Qt still support Qt5?

zjeffer commented 1 year ago

Qt5 is still supported by Qt until april of this year, if I remember correctly.

We aren't really in a transitionary period, Notes just supports Qt versions down to 5.9 mainly because we want to support Ubuntu 18.04 LTS. It really isn't that difficult to keep it backwards compatible, in my experience, so I also agree we won't be dropping support any time soon.

guihkx commented 1 year ago

An older release of Windows 10

How old? If you're not sure, I think you can check with the winver utility.

Our installer will only install the Qt 6 build of our app on Windows 10 21H2 (1809) or later, as per the Qt 6 documentation.

sergeevabc commented 10 months ago

Windows 7 x64 user here. Tried to launch Notes_2.2.1-Qt5.15.2-x64-Windows-Portable.zip. Nothing, no errors were displayed. Geez.

guihkx commented 10 months ago

@sergeevabc What version of Windows 7 are you running? You can find out by typing winver in the Start Menu.

FWIW, I just ran v2.2.1 on Windows 7 SP1 x64, and it opens just fine here:

image

Though we've had issues before with missing DLLs, so I won't disregard this possibility right away...

sergeevabc commented 10 months ago

@guihkx, Windows 7 x64 SP1, fully updated.

$ ver
Microsoft Windows [Version 6.1.7601]

Also check if it requires a CPU with AVX, since my Core2Duo is limited to SSE3.

guihkx commented 10 months ago

Also check if it requires a CPU with AVX, since my Core2Duo is limited to SSE3.

That's a possibility as well...

We have build instructions for Windows here, so if you're interested, you could try building it from source on your machine, and the compiler will likely try to build the app using only instruction sets actually supported by your CPU.

But even then, I can't guarantee things will work: We depend on a lot of pre-built, third-party libraries (Qt, OpenSSL, EGL, SQLite...), so I have no idea if these binaries also require instruction sets unsupported by your CPU.

sergeevabc commented 10 months ago

What I know for sure is that sooner or later a solution will be found, because your situation is not unique. Other well-known projects have gone through these circumstances, now publishing fully working releases based on QT5 and QT6. For example, KeepassXC (legacy suffix) and Eqonomize (i386 is based on QT5).

nuttyartist commented 10 months ago

otherwise incorporate community-sourced compatibility patches for older versions of Windows?

Damn, I didn't realize what's that until now. That's awesome. I wonder how well it works in practice. This is the mentioned GitHub repo: https://github.com/crystalidea/qt6windows7

Tho, like @guihkx said, we currently still support official Qt 5 builds that should work on Windows 7.

@sergeevabc Do other Qt 5 apps stopped working on your machine?

sergeevabc commented 10 months ago

@nuttyartist, I have already mentioned KeepassXC Legacy and Eqonomize i386, they work fine. What else QT5-based I see working under Windows 7 x64 on my end: