[libcamera-devel] [PATCH v2 1/3] apps: qcam: Port to Qt 6

Neal Gompa neal at gompa.dev
Thu Apr 18 04:20:10 CEST 2024


On Wed, Apr 17, 2024 at 5:02 PM Kieran Bingham
<kieran.bingham at ideasonboard.com> wrote:
>
> Quoting Neal Gompa (2024-04-17 21:41:55)
> > On Wed, Apr 17, 2024 at 4:34 PM Kieran Bingham
> > <kieran.bingham at ideasonboard.com> wrote:
> > >
> > > Quoting Kieran Bingham (2024-04-17 21:26:24)
> > > > Quoting Neal Gompa (2024-04-17 20:58:16)
> > > > > On Wed, Apr 17, 2024 at 11:42 AM Laurent Pinchart
> > > > > <laurent.pinchart at ideasonboard.com> wrote:
> > > > > >
> > > > > > On Tue, Apr 16, 2024 at 07:14:35PM +0100, Kieran Bingham wrote:
> > > > > > > Quoting Neal Gompa via libcamera-devel (2024-01-21 22:39:53)
> > > > > > > > Open source Qt 5 has been effectively end of life since the release
> > > > > > > > of Qt 6, and Qt 6 has current LTS releases now.
> > > > > > > >
> > > > > > > > This change ports qcam to Qt 6.2 and drops some of the baggage related
> > > > > > > > to Qt 5 that is no longer applicable.
> > > > > > >
> > > > > > > With Ubuntu 24.04 release 'imminent' (as well as the next libcamera-0.3
> > > > > > > after I can merge the softISP) I believe it's time to merge this patch.
> > > > > >
> > > > > > Unless I'm mistaken, Ubuntu will still ship Qt5, so there's no urgency.
> > > > > > I'm not opposed to this patch though (once fixed), as Qt6 seems to be
> > > > > > available everywhere.
> > > > > >
> > > > >
> > > > > This patch isn't broken. I just was able to build it on Ubuntu 24.04
> > > > > just fine: https://download.opensuse.org/repositories/home:/Pharaoh_Atem:/libcamera/xUbuntu_24.04/amd64/
> > > >
> > > > I don't think the patch is broken, Just that there must be some
> > > > additional dependency required which may have been implicitly installed
> > > > in your case, but seems not to have been in my case.
> > > >
> > > > I'm not going to merge a patch that will prevent me from using qcam
> > > > until I know how to correctly build it again.
> > >
> > > """
> > > for qcam: [optional]
> > >         libtiff-dev qt6-base-dev qt6-tools-dev-tools
> > > """
> > > kbingham at Monstersaurus:~/iob/libcamera/libcamera$ sudo apt install libtiff-dev qt6-base-dev qt6-tools-dev-tools
> > > [sudo] password for kbingham:
> > > Reading package lists... Done
> > > Building dependency tree... Done
> > > Reading state information... Done
> > > qt6-tools-dev-tools is already the newest version (6.2.4-1).
> > > libtiff-dev is already the newest version (4.3.0-6ubuntu0.8).
> > > libtiff-dev set to manually installed.
> > > qt6-base-dev is already the newest version (6.2.4+dfsg-2ubuntu1.1).
> > >
> > >
> > > Then:
> > >
> > > ================================================================================
> > > kbingham at Monstersaurus:~/iob/libcamera/libcamera$ meson setup qt6-test -Dqcam=enabled
> > > The Meson build system
> > > Version: 1.4.0
> > > Source dir: /home/kbingham/iob/libcamera/libcamera
> > > Build dir: /home/kbingham/iob/libcamera/libcamera/qt6-test
> > > Build type: native build
> > > WARNING: failed to process netrc file: ~/.netrc access too permissive: access permissions must restrict access to only the owner (/home/kbingham/.netrc, line 3).
> > > Project name: libcamera
> > > Project version: 0.2.0
> > > C compiler for the host machine: ccache cc (gcc 11.4.0 "cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0")
> > > C linker for the host machine: cc ld.bfd 2.38
> > > C++ compiler for the host machine: ccache c++ (gcc 11.4.0 "c++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0")
> > > C++ linker for the host machine: c++ ld.bfd 2.38
> > > Host machine cpu family: x86_64
> > > Host machine cpu: x86_64
> > > Header "unistd.h" has symbol "issetugid" : NO
> > > Header "locale.h" has symbol "locale_t" : YES
> > > Header "stdlib.h" has symbol "secure_getenv" : YES
> > > Compiler for C supports arguments -Wno-c99-designator: NO
> > > Found pkg-config: YES (/usr/bin/pkg-config) 0.29.2
> > > Run-time dependency lttng-ust found: YES 2.13.1
> > > Program ./parser.py found: YES (/home/kbingham/iob/libcamera/libcamera/utils/ipc/./parser.py)
> > > Program ./generate.py found: YES (/home/kbingham/iob/libcamera/libcamera/utils/ipc/./generate.py)
> > > Program ./extract-docs.py found: YES (/home/kbingham/iob/libcamera/libcamera/utils/ipc/./extract-docs.py)
> > > Program ./gen-tp-header.py found: YES (/home/kbingham/iob/libcamera/libcamera/utils/tracepoints/./gen-tp-header.py)
> > > Configuring version.h using configuration
> > > Program openssl found: YES (/usr/bin/openssl)
> > > Library atomic found: YES
> > > Run-time dependency threads found: YES
> > > Run-time dependency libdw found: YES 0.186
> > > Run-time dependency libunwind found: YES 1.3.2
> > > Header "execinfo.h" has symbol "backtrace" : YES
> > > Checking for function "dlopen" : YES
> > > Run-time dependency libudev found: YES 249
> > > Run-time dependency yaml-0.1 found: YES 0.2.2
> > > Run-time dependency gnutls found: YES 3.7.3
> > > Dependency libexif skipped: feature android disabled
> > > Dependency libjpeg skipped: feature android disabled
> > > Run-time dependency libevent_pthreads found: YES 2.1.12-stable
> > > Run-time dependency libtiff-4 found: YES 4.3.0
> > > Run-time dependency GTest found: YES 1.11.0
> > > Run-time dependency libdrm found: YES 2.4.113
> > > Run-time dependency libjpeg found: YES 2.1.2
> > > Run-time dependency sdl2 found: YES 2.0.20
> > > Run-time dependency qt6 (modules: Core, Gui, OpenGL, OpenGLWidgets, Widgets) found: NO (tried pkgconfig)
> > >
> > > src/apps/qcam/meson.build:4:10: ERROR: Dependency "qt6" not found, tried pkgconfig
> > >
> > > A full log can be found at /home/kbingham/iob/libcamera/libcamera/qt6-test/meson-logs/meson-log.txt
> > > ================================================================================
> > >
> > > I wonder if the modules have been implicitly installed, or used before
> > > and now need to be explicitly listed as a dependency.
> > >
> >
> > Something doesn't seem right here. Out of curiosity, what happens if
> > you also install cmake and run the build? I'm wondering if something
> > is busted with pkgconfig on your system somehow. I can build it in
> > containers, in package build environments, and locally just fine with
> > the instructions in the README.
> >
> > Basically, Meson is saying that the pkgconfig files for Qt6 modules
> > cannot be found, which is incredibly bizarre.
> >
>
> I'm on Ubuntu 22.04 (i.e. current Ubuntu LTS stable) if that is relevant ...
>
> Of course it all works for QT5 ...

Oh, I know what's wrong: there are no pkgconfig files for Qt 6 in Ubuntu 22.04.

This was fixed in 6.2.5, but it hasn't been backported to Ubuntu's
package: https://codereview.qt-project.org/gitweb?p=qt/qtbase.git;a=commit;h=205ec2bb36b0a52d0dfa6729876eb18bcdbef512

I'm trying to see if I can get this backported...




-- 
真実はいつも一つ!/ Always, there's only one truth!


More information about the libcamera-devel mailing list