Opened 8 months ago

Last modified 9 days 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 (16)

comment:1 Changed 8 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 8 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 8 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 8 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 8 months ago by ryandesign (Ryan Schmidt) (previous) (diff)

comment:5 Changed 7 months ago by macportsraf

I'm getting this error on 10.14.

comment:6 Changed 7 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 6 months ago by thetrial (alabay)

Is this abandoned here?

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

A solution will be highly appreciated.

comment:9 in reply to:  4 Changed 4 months 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 months 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).

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

Version of KPxc is 2.6.6 now … but the error is still the same. No development so far. So is there any prospect? Or can we at least make sure keepassxc stays out of the upgrade process?

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

Sad that nothing happens. Recently macports wanted to rebuild KP due to an update of some lib. Of course, this won’t function. I found out how to reinstate the lost lib (that had been updated an got a symlink) and replayed the old KP from a backup, but this is puzzle hacking. Only becouse there is no solution … no matter what kind.

comment:13 Changed 3 weeks ago by reneeotten (Renee Otten)

the port has no maintainer so feel free to try and implement any of the suggestions by Ryan and submit a PR. Likely option 3 is the most straightforward: just install the latest version that is still supported on legacy OS versions.

comment:14 Changed 3 weeks ago by thetrial (alabay)

I have the last version that is still supported. But this is not fixed in MacPorts. After an update of something (I don’t remember what) KP had to be rebuilt. This doesn’t work because then it tries the newest version. There should be a step like with onwcloud-client, that is fixed to a version.

Last edited 3 weeks ago by thetrial (alabay) (previous) (diff)

comment:15 in reply to:  14 Changed 3 weeks ago by reneeotten (Renee Otten)

Replying to thetrial:

There should be a step like with onwcloud-client, that is fixed to a version.

sure, as I said the port has nomaintainer so your best bet to get this fixed is to add that to the Portfile and submit a PR to get it included.

comment:16 Changed 9 days ago by thetrial (alabay)

Unfortunately I don’t have the necessary skills.

Note: See TracTickets for help on using tickets.