Opened 5 months ago

Last modified 4 weeks ago

#62220 new defect

KeePassXC @2.6.4: no member named 'MacOSBigSur' in 'QOperatingSystemVersion'

Reported by: thetrial (alabay) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.6.4
Keywords: elcapitan Cc: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Port: KeePassXC

Description

KeePassXC 2.6.2 and 2.6.3 built flawless, but with 2.6.4 I ran into this issue:

:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_security_KeePassXC/KeePassXC/work/keepassxc-2.6.4-src/src/gui/styles/base/BaseStyle.cpp:295:84: error: no member named 'MacOSBigSur' in 'QOperatingSystemVersion'
:info:build                 if (QOperatingSystemVersion::current() >= QOperatingSystemVersion::MacOSBigSur) {
:info:build                                                           ~~~~~~~~~~~~~~~~~~~~~~~~~^
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_security_KeePassXC/KeePassXC/work/keepassxc-2.6.4-src/src/gui/styles/base/BaseStyle.cpp:302:84: error: no member named 'MacOSBigSur' in 'QOperatingSystemVersion'
:info:build                 if (QOperatingSystemVersion::current() >= QOperatingSystemVersion::MacOSBigSur) {
:info:build                                                           ~~~~~~~~~~~~~~~~~~~~~~~~~^
:info:build 2 errors generated.
:info:build make[2]: *** [src/CMakeFiles/keepassx_core.dir/gui/styles/base/BaseStyle.cpp.o] Error 1
:info:build make[2]: *** Waiting for unfinished jobs....
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_security_KeePassXC/KeePassXC/work/build'
:info:build make[1]: *** [src/CMakeFiles/keepassx_core.dir/all] Error 2
:info:build make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_security_KeePassXC/KeePassXC/work/build'
:info:build make: *** [all] Error 2

Change History (10)

comment:1 Changed 5 months ago by ryandesign (Ryan Schmidt)

As you've discovered, KeePassXC 2.6.4 now requires a version of Qt that can identify macOS Big Sur. According to this Qt commit this has been backported to Qt 5.12 and 5.15. Being on OS X El Capitan, the latest version of Qt you can use is 5.11.

comment:2 Changed 5 months ago by thetrial (alabay)

Again a Qt thing. That means: Either this capability is backported into older Qt versions for El Capitan (and maybe older OSs) – or KeePassXC is out of the race for El Capitan, which I would quite regret. Then KeePass’ portfile should be adapted to drop El Capitan.

What, do you think, is practicable? Or is this (together with other Qt related things, e.g. owncloud-client) a general Qt issue? I would not know how to describe that as a ticket).

comment:3 Changed 5 months ago by thetrial (alabay)

Comment to my question under your mentioned Qt commit:

No upstream-supported version of Qt supports El Capitan (Qt 5.12 supports macOS 10.12 and up), but back-porting this to non-supported Qt versions (in macports, if that's what you're referring to), shouldn't be too hard.

Does anyone know how to realize that?

comment:4 Changed 5 months ago by ryandesign (Ryan Schmidt)

Cc: MarcusCalhoun-Lopez added

I'll Cc Marcus for input since he maintains the Qt ports.

Option seems to be:

  1. patch Qt 5.11 (and earlier?) source code to add this constant and maybe other related aspects of that upstream Qt commit,
  2. patch KeePassXC so that it does not rely on this aspect of Qt 5.12+,
  3. change the KeePassXC portfile so that version 2.6.3 is used on OS X 10.11 and earlier, or
  4. change the KeePassXC portfile to prevent installation on OS X 10.11 and earlier (by indicating a requirement for Qt 5.12+)
Last edited 5 months ago by ryandesign (Ryan Schmidt) (previous) (diff)

comment:5 Changed 4 months ago by macportsraf

I'm getting this error on 10.14.

comment:6 Changed 4 months ago by thetrial (alabay)

Any solution in sight? After a complete reinstall of Macports I don’t get any KeePassXC anymore. I have to pull the binary from my backup, detached from MacPorts.

comment:7 Changed 3 months ago by thetrial (alabay)

Is this abandoned here?

comment:8 Changed 6 weeks ago by thetrial (alabay)

A solution will be highly appreciated.

comment:9 in reply to:  4 Changed 4 weeks ago by Wowfunhappy (Jonathan)

Replying to ryandesign:

Option seems to be:

  1. patch Qt 5.11 (and earlier?) source code to add this constant and maybe other related aspects of that upstream Qt commit,
  2. patch KeePassXC so that it does not rely on this aspect of Qt 5.12+,
  3. change the KeePassXC portfile so that version 2.6.3 is used on OS X 10.11 and earlier, or
  4. change the KeePassXC portfile to prevent installation on OS X 10.11 and earlier (by indicating a requirement for Qt 5.12+)

Or, backport QT 5.12 to OS X 10.11. I did this for QT 5.9 on Mavericks, and it was actually _way_ easier than I expected it to be! I have a patch here https://trac.macports.org/ticket/62964; it won't help with this ticket directly, but it demonstrates feasibility (and I do want to try with later versions when I have a free weekend).

comment:10 Changed 4 weeks ago by thetrial (alabay)

This would be great! Is it possible to backport Qt 5.13 or higher to OSX 10.11? This would also open new aspects to #61772 (see comment 3 there).

Note: See TracTickets for help on using tickets.