Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quick controls2 basic missing libraries added #11273

Merged
merged 1 commit into from
Apr 5, 2024

Conversation

TOTON95
Copy link
Contributor

@TOTON95 TOTON95 commented Mar 26, 2024

Quick controls2 basic missing libraries added

Description

Some missing libraries for AppImage were added to QGCPostLinkCommon.pri to load the Quick Controls2 Basic resources

Test Steps

  1. Download and enable QGC AppImage as usual into a Linux Distro
  2. Run the AppImage
  3. Expect to run without issues coming from missing libraries

Checklist:

Related Issue

More details about the problem can be found in #11272

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Copy link
Contributor

@julianoes julianoes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be ok. Any objections @HTRamsey?

@HTRamsey
Copy link
Collaborator

@julianoes can you rerun the failed linux builds? We can ignore the android failure

@HTRamsey
Copy link
Collaborator

HTRamsey commented Mar 28, 2024

So interestingly this issue started at commit a95dfd1, which changed nothing about the code. However it is where Android Builds started failing. But #11274 doesn't fix the issue, and it doesn't work on my private repo either so it's not related to Qt download caches. It would make sense that this library is required but I don't get why it's randomly needed now and not before. It worked perfectly fine after #11256. My best guess is that this is somehow related to the Qt download source, and something changed there that affected everything else.

@TOTON95
Copy link
Contributor Author

TOTON95 commented Mar 28, 2024

@HTRamsey I can squash and rebase both commits (would do anyways later so it goes clean into master), so it can rerun the tests.

libQt6QuickControls2Basic.so.6 added

libQt6QuickControls2BasicStyleImpl.so.6 added
@TOTON95 TOTON95 force-pushed the pr-QuickControls2Basic branch from d7eb4d2 to f473f36 Compare March 28, 2024 16:04
@DonLakeFlyer
Copy link
Contributor

My guess is that somewhere someone might be using a raw Qml control instead of the QGC styled ones. These seem to be control style files. That said I don't see how it hurts (other than file size) to include these. Hopefully once we move to cmake all this goes away anyway.

@DonLakeFlyer DonLakeFlyer reopened this Apr 5, 2024
@DonLakeFlyer DonLakeFlyer merged commit 8847625 into mavlink:master Apr 5, 2024
18 of 20 checks passed
@julianoes
Copy link
Contributor

This breaks the Linux build for me. For some reasons I don't have these libraries in my Qt 6.6.1 (or 6.6.2).

Post Link Common
cp: cannot stat '/home/julianoes/Qt/6.6.2/gcc_64/lib/libQt6QuickControls2Basic.so.6': No such file or directory
make: *** [Makefile:2650: staging/QGroundControl] Error 1

This is how I build on Ubuntu 22.04/Linux Mint:

mkdir -p build-desktop && (cd build-desktop/ && ~/Qt/6.6.2/gcc_64/bin/qmake CONFIG+=debug -r ../qgroundcontrol.pro)
(cd build-desktop && make -j30) && build-desktop/staging/QGroundControl

@HTRamsey
Copy link
Collaborator

HTRamsey commented Apr 6, 2024

@julianoes do you have any of these?
image

@julianoes
Copy link
Contributor

ls -l Qt/6.6.2/gcc_64/lib | rg QuickControls2 
-rw-r--r--   1 julianoes julianoes        665 Mar  4 07:42 libQt6QuickControls2Impl.prl
lrwxrwxrwx   1 julianoes julianoes         29 Feb 13 00:34 libQt6QuickControls2Impl.so -> libQt6QuickControls2Impl.so.6
lrwxrwxrwx   1 julianoes julianoes         33 Feb 13 00:34 libQt6QuickControls2Impl.so.6 -> libQt6QuickControls2Impl.so.6.6.2
-rwxr-xr-x   1 julianoes julianoes     345888 Feb 10 07:35 libQt6QuickControls2Impl.so.6.6.2
-rw-r--r--   1 julianoes julianoes        661 Mar  4 07:42 libQt6QuickControls2.prl
lrwxrwxrwx   1 julianoes julianoes         25 Feb 13 00:34 libQt6QuickControls2.so -> libQt6QuickControls2.so.6
lrwxrwxrwx   1 julianoes julianoes         29 Feb 13 00:34 libQt6QuickControls2.so.6 -> libQt6QuickControls2.so.6.6.2
-rwxr-xr-x   1 julianoes julianoes      89920 Feb 10 07:35 libQt6QuickControls2.so.6.6.2
-rw-r--r--   1 julianoes julianoes    4817088 Feb 10 07:33 Qt6QuickControls2.debug
-rw-r--r--   1 julianoes julianoes   17277968 Feb 10 07:33 Qt6QuickControls2Impl.debug

Was I meant to install something else?

@ddatsko
Copy link
Contributor

ddatsko commented Apr 9, 2024

Hey. Have you found any ways to solve the broken local build? It fails for me in the exact same way, both on Ubuntu 22.04 with Qt 6.6.1 (I tried installing it both from aqt and the official online installer) and in Ubuntu 20.04 docker built using (slightly extended) this Dockerfile. I just never get the libQt6QuickControls2Basic.so.6 installed

@DonLakeFlyer
Copy link
Contributor

@HTRamsey Any ideas what to do here?

@HTRamsey
Copy link
Collaborator

I can look into it more, but at least the issue is just a qmake thing for now. I don't understand why they don't get the QQuickStyles installed

@DonLakeFlyer
Copy link
Contributor

Oh, didn't realize it was qmake only.

@Jabbajoe
Copy link

Hello guys, any updates on this? I'm getting the same error here. I'm using Ubuntu 22.04.4 LTS. I have installed Qt 6.6.1 via Qt online installer and I'm trying to build using container Building using Containers. I've just cloned the repository so I have the latest commit.

I never get those Qt libs installed:

@julianoes do you have any of these? image

Here are the libs that were installed:

$ ls -l /opt/Qt/6.6.1/gcc_64/lib | grep QuickControls2
-rw-r--r--   1 root root        665 abr 25 12:43 libQt6QuickControls2Impl.prl
lrwxrwxrwx   1 root root         29 nov 21 02:28 libQt6QuickControls2Impl.so -> libQt6QuickControls2Impl.so.6
lrwxrwxrwx   1 root root         33 nov 21 02:28 libQt6QuickControls2Impl.so.6 -> libQt6QuickControls2Impl.so.6.6.1
-rwxr-xr-x   1 root root     349984 nov 20 03:03 libQt6QuickControls2Impl.so.6.6.1
-rw-r--r--   1 root root        661 abr 25 12:43 libQt6QuickControls2.prl
lrwxrwxrwx   1 root root         25 nov 21 02:28 libQt6QuickControls2.so -> libQt6QuickControls2.so.6
lrwxrwxrwx   1 root root         29 nov 21 02:28 libQt6QuickControls2.so.6 -> libQt6QuickControls2.so.6.6.1
-rwxr-xr-x   1 root root      89920 nov 20 03:03 libQt6QuickControls2.so.6.6.1
-rw-r--r--   1 root root    4819504 nov 20 03:00 Qt6QuickControls2.debug
-rw-r--r--   1 root root   17285576 nov 20 03:00 Qt6QuickControls2Impl.debug

After running the docker run command, it compiles ok, but at the linking stage I get the same error reported by julianoes:

Post Link Common
cp: cannot stat '/opt/Qt/6.6.1/gcc_64/lib/libQt6QuickControls2Basic.so.6': No such file or directory
make: *** [Makefile:3103: staging/QGroundControl] Error 1

@DonLakeFlyer
Copy link
Contributor

Use Qt 6.6.3

@AsensioL
Copy link

Use Qt 6.6.3

This helped. I changed (locally) ARG QT_VERSION=6.6.1 to ARG QT_VERSION=6.6.3 in deploy/docker/Dockerfile-build-linux

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants