cloudLogOffline icon indicating copy to clipboard operation
cloudLogOffline copied to clipboard

Fatal error during compilation.

Open OK9UWU opened this issue 1 year ago • 10 comments
trafficstars

Tried to install CLOffline on my desktop machine (Debian 12 Bookworm) with all the listed dependencies installed. However, compilation fails with "fatal error: QPermissions: No such file or directory" image

Thanks.

OK9UWU avatar Apr 17 '24 14:04 OK9UWU

Can you try it with Qt 6?

myzinsky avatar Apr 17 '24 20:04 myzinsky

And you should try to use tagged version... Master might not be stable yet.

myzinsky avatar Apr 17 '24 20:04 myzinsky

Can you try it with Qt 6?

I tried that aswell, however i couldn't find and install a module for location. Same exact issues stops the tagged version from being compiled aswell.

Seems like there's no package for it available, might have to compile it from source, task for tomorrow. image

OK9UWU avatar Apr 17 '24 20:04 OK9UWU

qt6-location is still in experimental in Debian:
https://packages.debian.org/search?searchon=names&keywords=qt6-location

But IMO the Location requirement can be relaxed to Positioning: https://github.com/myzinsky/cloudLogOffline/pull/93. Then you would only need qt6-positioning-dev which is available: https://packages.debian.org/search?searchon=names&keywords=qt6-positioning

dg0yt avatar Apr 18 '24 10:04 dg0yt

Ok yeah, that solved the dependency issue, however the initial QPermissions error is still there. Now with additional fatal error: QtGui/qpa/qplatformwindow.h: No such file or directory to add to it.

Same error happens when compiling the cmake branch (after removing Location dependencies from it)

Qmake6 image

Cmake image

OK9UWU avatar Apr 18 '24 12:04 OK9UWU

Ok yeah, that solved the dependency issue, however the initial QPermissions error is still there.

This is Qt6 stuff...

Now with additional fatal error: QtGui/qpa/qplatformwindow.h: No such file or directory to add to it.

This is private API, but the qmake build has the right modules.

Now that my PRs get merged, I will try to complete linux packaging. (Draft: https://build.opensuse.org/package/show/home:dg0yt:branches:home:dg0yt/cloudlogoffline, still 1.1.4/Qt 5).

dg0yt avatar Apr 18 '24 12:04 dg0yt

Total state of requirements since 1.1.5:

  • The user interface (QML) needs at least Qt 6. Qt5 support would need re-adding major.minor versions numbers to the import statements. Polyfilling would be a significant effort. Continuous runtime testing mandatory.
  • QPermission (C++) needs at least Qt 6.5. Polyfilling would be feasible. Runtime testing optional.

Offered by major linux distros:

  • Debian 11 (Bullseye): 5.145. (6.4.2 only via backports.)
  • Debian 12 (Bookworm): 6.4.2
  • Debian 13 (Trixie): 6.4.2
  • Debian unstable (sid): 6.4.2
  • Ubuntu 20.04: 5.12.8
  • Ubuntu 22.04: 6.2.4
  • Ubuntu 24.04: 6.4.2

I will share the polyfill...

dg0yt avatar Apr 19 '24 07:04 dg0yt

  • The user interface (QML) needs at least Qt 6. Qt5 support would need re-adding major.minor versions numbers to the import statements. Polyfilling would be a significant effort. Continuous runtime testing mandatory.

Maybe this was too pessimistic. The number of QML files is fairly small, and most building blocks are available in Qt 5.12. Maintaining a copy of the files with minimal changes for Qt5 compatibility is feasible. Some refactorings could serve both modern and old Qt (Cf. #107). But separate interactive testing cannot be avoided. However, the benefit is mostly for packaging for older Linux distros.

dg0yt avatar Apr 21 '24 12:04 dg0yt

Changes for Qt5 - and tentative binary packages with Qt5 for Linux: https://github.com/myzinsky/cloudLogOffline/pull/110

dg0yt avatar Apr 21 '24 19:04 dg0yt

  • QPermission (C++) needs at least Qt 6.5. Polyfilling would be feasible. Runtime testing optional.

And for desktop, it needs at least Qt 6.6.

dg0yt avatar May 01 '24 13:05 dg0yt