myzinsky / cloudLogOffline

An App as Offline Frontend for CloudLog
GNU Lesser General Public License v3.0
19 stars 8 forks source link

Fatal error during compilation. #98

Open OK9UWU opened 7 months ago

OK9UWU commented 7 months ago

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.

myzinsky commented 7 months ago

Can you try it with Qt 6?

myzinsky commented 7 months ago

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

OK9UWU commented 7 months ago

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

dg0yt commented 7 months ago

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

OK9UWU commented 7 months ago

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

dg0yt commented 7 months ago

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 commented 7 months ago

Total state of requirements since 1.1.5:

Offered by major linux distros:

I will share the polyfill...

dg0yt commented 7 months ago
  • 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 commented 7 months ago

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

dg0yt commented 7 months ago
  • 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.