Message ID | 20240121224052.1049989-2-neal@gompa.dev |
---|---|
State | Accepted |
Headers | show |
Series |
|
Related | show |
Aha, I missed that there was already a v2. 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. > > Signed-off-by: Neal Gompa <neal@gompa.dev> > --- > README.rst | 2 +- > meson.build | 2 +- > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > 3 files changed, 15 insertions(+), 34 deletions(-) > > diff --git a/README.rst b/README.rst > index 315738ee..6f1c9302 100644 > --- a/README.rst > +++ b/README.rst > @@ -88,7 +88,7 @@ for cam: [optional] > - libsdl2-dev: Enables the SDL sink > > for qcam: [optional] > - libtiff-dev qtbase5-dev qttools5-dev-tools > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > for tracing with lttng: [optional] > liblttng-ust-dev python3-jinja2 lttng-tools > diff --git a/meson.build b/meson.build > index cb6b666a..4c315e2a 100644 > --- a/meson.build > +++ b/meson.build > @@ -1,7 +1,7 @@ > # SPDX-License-Identifier: CC0-1.0 > > project('libcamera', 'c', 'cpp', > - meson_version : '>= 0.60', > + meson_version : '>= 0.63', Debian Bookworm: is currently at 1.0.1-5 https://packages.debian.org/source/stable/meson Ubuntu 22.04.3 is currently at 0.61.2-1 :-( https://packages.ubuntu.com/jammy/meson We're about 3 months away from Ubuntu 24.04 ... Fedora is in a better shape, and all Fedora releases in support have a recent Meson at 1.2.3 or later: https://src.fedoraproject.org/rpms/meson Redhat Enterprise linux looks more problematic - So I'm not sure if that should be included in fact. OpenSuse seems to be already at 1.3.1 too: https://software.opensuse.org/package/meson?locale=en So it's just Ubuntu/Canonical holding us back here ... Any thoughts anyone? -- Kieran > version : '0.2.0', > default_options : [ > 'werror=true', > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > index 6cf4c171..c7fcfbeb 100644 > --- a/src/apps/qcam/meson.build > +++ b/src/apps/qcam/meson.build > @@ -1,13 +1,13 @@ > # SPDX-License-Identifier: CC0-1.0 > > -qt5 = import('qt5') > -qt5_dep = dependency('qt5', > +qt6 = import('qt6') > +qt6_dep = dependency('qt6', > method : 'pkg-config', > - modules : ['Core', 'Gui', 'Widgets'], > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > required : get_option('qcam'), > - version : '>=5.4') > + version : '>=6.2') > > -if not qt5_dep.found() > +if not qt6_dep.found() > qcam_enabled = false > subdir_done() > endif > @@ -20,46 +20,27 @@ qcam_sources = files([ > 'main.cpp', > 'main_window.cpp', > 'message_handler.cpp', > + 'viewfinder_gl.cpp', > 'viewfinder_qt.cpp', > ]) > > qcam_moc_headers = files([ > 'cam_select_dialog.h', > 'main_window.h', > + 'viewfinder_gl.h', > 'viewfinder_qt.h', > ]) > > qcam_resources = files([ > 'assets/feathericons/feathericons.qrc', > + 'assets/shader/shaders.qrc', > ]) > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > - dependencies : qt5_dep, args : '-fPIC') > - qcam_sources += files([ > - 'viewfinder_gl.cpp', > - ]) > - qcam_moc_headers += files([ > - 'viewfinder_gl.h', > - ]) > - qcam_resources += files([ > - 'assets/shader/shaders.qrc' > - ]) > -endif > - > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > - qt5_dep.version().version_compare('<5.13')) or > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > - qt5_cpp_args += ['-Wno-deprecated-copy'] > -endif > - > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > qresources : qcam_resources, > - dependencies : qt5_dep) > + dependencies : qt6_dep) > > qcam = executable('qcam', qcam_sources, resources, > install : true, > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > libatomic, > libcamera_public, > libtiff, > - qt5_dep, > + qt6_dep, > ], > - cpp_args : qt5_cpp_args) > + cpp_args : qt6_cpp_args) > -- > 2.43.0 >
On Mon, Jan 22, 2024 at 09:38:33AM +0000, Kieran Bingham via libcamera-devel wrote: > Aha, I missed that there was already a v2. > > 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. > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > --- > > README.rst | 2 +- > > meson.build | 2 +- > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > diff --git a/README.rst b/README.rst > > index 315738ee..6f1c9302 100644 > > --- a/README.rst > > +++ b/README.rst > > @@ -88,7 +88,7 @@ for cam: [optional] > > - libsdl2-dev: Enables the SDL sink > > > > for qcam: [optional] > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > for tracing with lttng: [optional] > > liblttng-ust-dev python3-jinja2 lttng-tools > > diff --git a/meson.build b/meson.build > > index cb6b666a..4c315e2a 100644 > > --- a/meson.build > > +++ b/meson.build > > @@ -1,7 +1,7 @@ > > # SPDX-License-Identifier: CC0-1.0 > > > > project('libcamera', 'c', 'cpp', > > - meson_version : '>= 0.60', > > + meson_version : '>= 0.63', > > Debian Bookworm: is currently at 1.0.1-5 > https://packages.debian.org/source/stable/meson > > Ubuntu 22.04.3 is currently at 0.61.2-1 :-( > https://packages.ubuntu.com/jammy/meson > > We're about 3 months away from Ubuntu 24.04 ... > > > Fedora is in a better shape, and all Fedora releases in support have a > recent Meson at 1.2.3 or later: > https://src.fedoraproject.org/rpms/meson > > Redhat Enterprise linux looks more problematic - So I'm not sure if that > should be included in fact. > > OpenSuse seems to be already at 1.3.1 too: > https://software.opensuse.org/package/meson?locale=en > > So it's just Ubuntu/Canonical holding us back here ... > > Any thoughts anyone? I was hoping jammy-backports would help us, but that doesn't seem to be the case :-( As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm missing something), I'm tempted to propose waiting until Ubuntu 24.04 gets released. > > version : '0.2.0', > > default_options : [ > > 'werror=true', > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > index 6cf4c171..c7fcfbeb 100644 > > --- a/src/apps/qcam/meson.build > > +++ b/src/apps/qcam/meson.build > > @@ -1,13 +1,13 @@ > > # SPDX-License-Identifier: CC0-1.0 > > > > -qt5 = import('qt5') > > -qt5_dep = dependency('qt5', > > +qt6 = import('qt6') > > +qt6_dep = dependency('qt6', > > method : 'pkg-config', > > - modules : ['Core', 'Gui', 'Widgets'], > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > required : get_option('qcam'), > > - version : '>=5.4') > > + version : '>=6.2') > > > > -if not qt5_dep.found() > > +if not qt6_dep.found() > > qcam_enabled = false > > subdir_done() > > endif > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > 'main.cpp', > > 'main_window.cpp', > > 'message_handler.cpp', > > + 'viewfinder_gl.cpp', > > 'viewfinder_qt.cpp', > > ]) > > > > qcam_moc_headers = files([ > > 'cam_select_dialog.h', > > 'main_window.h', > > + 'viewfinder_gl.h', > > 'viewfinder_qt.h', > > ]) > > > > qcam_resources = files([ > > 'assets/feathericons/feathericons.qrc', > > + 'assets/shader/shaders.qrc', > > ]) > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > - dependencies : qt5_dep, args : '-fPIC') > > - qcam_sources += files([ > > - 'viewfinder_gl.cpp', > > - ]) > > - qcam_moc_headers += files([ > > - 'viewfinder_gl.h', > > - ]) > > - qcam_resources += files([ > > - 'assets/shader/shaders.qrc' > > - ]) > > -endif > > - > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > - qt5_dep.version().version_compare('<5.13')) or > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > -endif > > - > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > qresources : qcam_resources, > > - dependencies : qt5_dep) > > + dependencies : qt6_dep) > > > > qcam = executable('qcam', qcam_sources, resources, > > install : true, > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > libatomic, > > libcamera_public, > > libtiff, > > - qt5_dep, > > + qt6_dep, > > ], > > - cpp_args : qt5_cpp_args) > > + cpp_args : qt6_cpp_args)
Quoting Laurent Pinchart (2024-01-22 09:53:39) > On Mon, Jan 22, 2024 at 09:38:33AM +0000, Kieran Bingham via libcamera-devel wrote: > > Aha, I missed that there was already a v2. > > > > 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. > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > --- > > > README.rst | 2 +- > > > meson.build | 2 +- > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > diff --git a/README.rst b/README.rst > > > index 315738ee..6f1c9302 100644 > > > --- a/README.rst > > > +++ b/README.rst > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > - libsdl2-dev: Enables the SDL sink > > > > > > for qcam: [optional] > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > for tracing with lttng: [optional] > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > diff --git a/meson.build b/meson.build > > > index cb6b666a..4c315e2a 100644 > > > --- a/meson.build > > > +++ b/meson.build > > > @@ -1,7 +1,7 @@ > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > project('libcamera', 'c', 'cpp', > > > - meson_version : '>= 0.60', > > > + meson_version : '>= 0.63', > > > > Debian Bookworm: is currently at 1.0.1-5 > > https://packages.debian.org/source/stable/meson > > > > Ubuntu 22.04.3 is currently at 0.61.2-1 :-( > > https://packages.ubuntu.com/jammy/meson > > > > We're about 3 months away from Ubuntu 24.04 ... > > > > > > Fedora is in a better shape, and all Fedora releases in support have a > > recent Meson at 1.2.3 or later: > > https://src.fedoraproject.org/rpms/meson > > > > Redhat Enterprise linux looks more problematic - So I'm not sure if that > > should be included in fact. > > > > OpenSuse seems to be already at 1.3.1 too: > > https://software.opensuse.org/package/meson?locale=en > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > Any thoughts anyone? > > I was hoping jammy-backports would help us, but that doesn't seem to be > the case :-( > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > gets released. Noble (24.04) will have either 1.2.1 or 1.3.1 (there are different versions in proposed and Release). Either way it will be > 1.2! : https://launchpad.net/ubuntu/noble/+package/meson I would propose that the meson version update is separated from the patch as a preceeding commit, and could already be resent. Then we can simply pick these in April. I'd probably say we could merge this in early April, such that we can make a release of libcamera with that support merged soon after Ubuntu 24.04 is released on April 25th. -- Regards Kieran > > > > version : '0.2.0', > > > default_options : [ > > > 'werror=true', > > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > > index 6cf4c171..c7fcfbeb 100644 > > > --- a/src/apps/qcam/meson.build > > > +++ b/src/apps/qcam/meson.build > > > @@ -1,13 +1,13 @@ > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > -qt5 = import('qt5') > > > -qt5_dep = dependency('qt5', > > > +qt6 = import('qt6') > > > +qt6_dep = dependency('qt6', > > > method : 'pkg-config', > > > - modules : ['Core', 'Gui', 'Widgets'], > > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > > required : get_option('qcam'), > > > - version : '>=5.4') > > > + version : '>=6.2') > > > > > > -if not qt5_dep.found() > > > +if not qt6_dep.found() > > > qcam_enabled = false > > > subdir_done() > > > endif > > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > > 'main.cpp', > > > 'main_window.cpp', > > > 'message_handler.cpp', > > > + 'viewfinder_gl.cpp', > > > 'viewfinder_qt.cpp', > > > ]) > > > > > > qcam_moc_headers = files([ > > > 'cam_select_dialog.h', > > > 'main_window.h', > > > + 'viewfinder_gl.h', > > > 'viewfinder_qt.h', > > > ]) > > > > > > qcam_resources = files([ > > > 'assets/feathericons/feathericons.qrc', > > > + 'assets/shader/shaders.qrc', > > > ]) > > > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > > - dependencies : qt5_dep, args : '-fPIC') > > > - qcam_sources += files([ > > > - 'viewfinder_gl.cpp', > > > - ]) > > > - qcam_moc_headers += files([ > > > - 'viewfinder_gl.h', > > > - ]) > > > - qcam_resources += files([ > > > - 'assets/shader/shaders.qrc' > > > - ]) > > > -endif > > > - > > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > > - qt5_dep.version().version_compare('<5.13')) or > > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > > -endif > > > - > > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > > qresources : qcam_resources, > > > - dependencies : qt5_dep) > > > + dependencies : qt6_dep) > > > > > > qcam = executable('qcam', qcam_sources, resources, > > > install : true, > > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > > libatomic, > > > libcamera_public, > > > libtiff, > > > - qt5_dep, > > > + qt6_dep, > > > ], > > > - cpp_args : qt5_cpp_args) > > > + cpp_args : qt6_cpp_args) > > -- > Regards, > > Laurent Pinchart
On Mon, Jan 22, 2024 at 6:00 AM Kieran Bingham <kieran.bingham@ideasonboard.com> wrote: > > Quoting Laurent Pinchart (2024-01-22 09:53:39) > > On Mon, Jan 22, 2024 at 09:38:33AM +0000, Kieran Bingham via libcamera-devel wrote: > > > Aha, I missed that there was already a v2. > > > > > > 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. > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > --- > > > > README.rst | 2 +- > > > > meson.build | 2 +- > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > diff --git a/README.rst b/README.rst > > > > index 315738ee..6f1c9302 100644 > > > > --- a/README.rst > > > > +++ b/README.rst > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > for qcam: [optional] > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > > > for tracing with lttng: [optional] > > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > > diff --git a/meson.build b/meson.build > > > > index cb6b666a..4c315e2a 100644 > > > > --- a/meson.build > > > > +++ b/meson.build > > > > @@ -1,7 +1,7 @@ > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > project('libcamera', 'c', 'cpp', > > > > - meson_version : '>= 0.60', > > > > + meson_version : '>= 0.63', > > > > > > Debian Bookworm: is currently at 1.0.1-5 > > > https://packages.debian.org/source/stable/meson > > > > > > Ubuntu 22.04.3 is currently at 0.61.2-1 :-( > > > https://packages.ubuntu.com/jammy/meson > > > > > > We're about 3 months away from Ubuntu 24.04 ... > > > > > > > > > Fedora is in a better shape, and all Fedora releases in support have a > > > recent Meson at 1.2.3 or later: > > > https://src.fedoraproject.org/rpms/meson > > > > > > Redhat Enterprise linux looks more problematic - So I'm not sure if that > > > should be included in fact. > > > > > > OpenSuse seems to be already at 1.3.1 too: > > > https://software.opensuse.org/package/meson?locale=en > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > Any thoughts anyone? > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > the case :-( > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > gets released. > > Noble (24.04) will have either 1.2.1 or 1.3.1 (there are different > versions in proposed and Release). Either way it will be > 1.2! : > https://launchpad.net/ubuntu/noble/+package/meson > > I would propose that the meson version update is separated from the > patch as a preceeding commit, and could already be resent. Then we can > simply pick these in April. I'd probably say we could merge this in > early April, such that we can make a release of libcamera with that > support merged soon after Ubuntu 24.04 is released on April 25th. > On the flip side, if it's merged and released into Debian before the Ubuntu freeze on Feb 29[1], then it would be part of Ubuntu 24.04 itself. [1]: https://discourse.ubuntu.com/t/noble-numbat-release-schedule/35649
On Mon, Jan 22, 2024 at 4:53 AM Laurent Pinchart via libcamera-devel <libcamera-devel@lists.libcamera.org> wrote: > > On Mon, Jan 22, 2024 at 09:38:33AM +0000, Kieran Bingham via libcamera-devel wrote: > > Aha, I missed that there was already a v2. > > > > 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. > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > --- > > > README.rst | 2 +- > > > meson.build | 2 +- > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > diff --git a/README.rst b/README.rst > > > index 315738ee..6f1c9302 100644 > > > --- a/README.rst > > > +++ b/README.rst > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > - libsdl2-dev: Enables the SDL sink > > > > > > for qcam: [optional] > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > for tracing with lttng: [optional] > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > diff --git a/meson.build b/meson.build > > > index cb6b666a..4c315e2a 100644 > > > --- a/meson.build > > > +++ b/meson.build > > > @@ -1,7 +1,7 @@ > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > project('libcamera', 'c', 'cpp', > > > - meson_version : '>= 0.60', > > > + meson_version : '>= 0.63', > > > > Debian Bookworm: is currently at 1.0.1-5 > > https://packages.debian.org/source/stable/meson > > > > Ubuntu 22.04.3 is currently at 0.61.2-1 :-( > > https://packages.ubuntu.com/jammy/meson > > > > We're about 3 months away from Ubuntu 24.04 ... > > > > > > Fedora is in a better shape, and all Fedora releases in support have a > > recent Meson at 1.2.3 or later: > > https://src.fedoraproject.org/rpms/meson > > > > Redhat Enterprise linux looks more problematic - So I'm not sure if that > > should be included in fact. > > > > OpenSuse seems to be already at 1.3.1 too: > > https://software.opensuse.org/package/meson?locale=en > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > Any thoughts anyone? > > I was hoping jammy-backports would help us, but that doesn't seem to be > the case :-( > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > gets released. > > > > version : '0.2.0', > > > default_options : [ > > > 'werror=true', > > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > > index 6cf4c171..c7fcfbeb 100644 > > > --- a/src/apps/qcam/meson.build > > > +++ b/src/apps/qcam/meson.build > > > @@ -1,13 +1,13 @@ > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > -qt5 = import('qt5') > > > -qt5_dep = dependency('qt5', > > > +qt6 = import('qt6') > > > +qt6_dep = dependency('qt6', > > > method : 'pkg-config', > > > - modules : ['Core', 'Gui', 'Widgets'], > > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > > required : get_option('qcam'), > > > - version : '>=5.4') > > > + version : '>=6.2') > > > > > > -if not qt5_dep.found() > > > +if not qt6_dep.found() > > > qcam_enabled = false > > > subdir_done() > > > endif > > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > > 'main.cpp', > > > 'main_window.cpp', > > > 'message_handler.cpp', > > > + 'viewfinder_gl.cpp', > > > 'viewfinder_qt.cpp', > > > ]) > > > > > > qcam_moc_headers = files([ > > > 'cam_select_dialog.h', > > > 'main_window.h', > > > + 'viewfinder_gl.h', > > > 'viewfinder_qt.h', > > > ]) > > > > > > qcam_resources = files([ > > > 'assets/feathericons/feathericons.qrc', > > > + 'assets/shader/shaders.qrc', > > > ]) > > > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > > - dependencies : qt5_dep, args : '-fPIC') > > > - qcam_sources += files([ > > > - 'viewfinder_gl.cpp', > > > - ]) > > > - qcam_moc_headers += files([ > > > - 'viewfinder_gl.h', > > > - ]) > > > - qcam_resources += files([ > > > - 'assets/shader/shaders.qrc' > > > - ]) > > > -endif > > > - > > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > > - qt5_dep.version().version_compare('<5.13')) or > > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > > -endif > > > - > > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > > qresources : qcam_resources, > > > - dependencies : qt5_dep) > > > + dependencies : qt6_dep) > > > > > > qcam = executable('qcam', qcam_sources, resources, > > > install : true, > > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > > libatomic, > > > libcamera_public, > > > libtiff, > > > - qt5_dep, > > > + qt6_dep, > > > ], > > > - cpp_args : qt5_cpp_args) > > > + cpp_args : qt6_cpp_args) > I'd like to have this in place for Fedora 40 as that's the release we're moving to KDE Plasma 6[1] and thus generally preferring everything to be Qt 6 whenever possible. Additionally, CentOS/RHEL 10 (which forks from Fedora 40) will only have Qt 6. The freeze for Fedora is in two weeks[2], and I'd like to have this landed before then. [1]: https://fedoraproject.org/wiki/Changes/KDE_Plasma_6 [2]: https://fedorapeople.org/groups/schedule/f-40/f-40-key-tasks.html
On Mon, Jan 22, 2024 at 06:12:08AM -0500, Neal Gompa wrote: > On Mon, Jan 22, 2024 at 4:53 AM Laurent Pinchart via libcamera-devel > <libcamera-devel@lists.libcamera.org> wrote: > > > > On Mon, Jan 22, 2024 at 09:38:33AM +0000, Kieran Bingham via libcamera-devel wrote: > > > Aha, I missed that there was already a v2. > > > > > > 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. > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > --- > > > > README.rst | 2 +- > > > > meson.build | 2 +- > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > diff --git a/README.rst b/README.rst > > > > index 315738ee..6f1c9302 100644 > > > > --- a/README.rst > > > > +++ b/README.rst > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > for qcam: [optional] > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > > > for tracing with lttng: [optional] > > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > > diff --git a/meson.build b/meson.build > > > > index cb6b666a..4c315e2a 100644 > > > > --- a/meson.build > > > > +++ b/meson.build > > > > @@ -1,7 +1,7 @@ > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > project('libcamera', 'c', 'cpp', > > > > - meson_version : '>= 0.60', > > > > + meson_version : '>= 0.63', > > > > > > Debian Bookworm: is currently at 1.0.1-5 > > > https://packages.debian.org/source/stable/meson > > > > > > Ubuntu 22.04.3 is currently at 0.61.2-1 :-( > > > https://packages.ubuntu.com/jammy/meson > > > > > > We're about 3 months away from Ubuntu 24.04 ... > > > > > > > > > Fedora is in a better shape, and all Fedora releases in support have a > > > recent Meson at 1.2.3 or later: > > > https://src.fedoraproject.org/rpms/meson > > > > > > Redhat Enterprise linux looks more problematic - So I'm not sure if that > > > should be included in fact. > > > > > > OpenSuse seems to be already at 1.3.1 too: > > > https://software.opensuse.org/package/meson?locale=en > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > Any thoughts anyone? > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > the case :-( > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > gets released. > > > > > > version : '0.2.0', > > > > default_options : [ > > > > 'werror=true', > > > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > > > index 6cf4c171..c7fcfbeb 100644 > > > > --- a/src/apps/qcam/meson.build > > > > +++ b/src/apps/qcam/meson.build > > > > @@ -1,13 +1,13 @@ > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > -qt5 = import('qt5') > > > > -qt5_dep = dependency('qt5', > > > > +qt6 = import('qt6') > > > > +qt6_dep = dependency('qt6', > > > > method : 'pkg-config', > > > > - modules : ['Core', 'Gui', 'Widgets'], > > > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > > > required : get_option('qcam'), > > > > - version : '>=5.4') > > > > + version : '>=6.2') > > > > > > > > -if not qt5_dep.found() > > > > +if not qt6_dep.found() > > > > qcam_enabled = false > > > > subdir_done() > > > > endif > > > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > > > 'main.cpp', > > > > 'main_window.cpp', > > > > 'message_handler.cpp', > > > > + 'viewfinder_gl.cpp', > > > > 'viewfinder_qt.cpp', > > > > ]) > > > > > > > > qcam_moc_headers = files([ > > > > 'cam_select_dialog.h', > > > > 'main_window.h', > > > > + 'viewfinder_gl.h', > > > > 'viewfinder_qt.h', > > > > ]) > > > > > > > > qcam_resources = files([ > > > > 'assets/feathericons/feathericons.qrc', > > > > + 'assets/shader/shaders.qrc', > > > > ]) > > > > > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > > > - dependencies : qt5_dep, args : '-fPIC') > > > > - qcam_sources += files([ > > > > - 'viewfinder_gl.cpp', > > > > - ]) > > > > - qcam_moc_headers += files([ > > > > - 'viewfinder_gl.h', > > > > - ]) > > > > - qcam_resources += files([ > > > > - 'assets/shader/shaders.qrc' > > > > - ]) > > > > -endif > > > > - > > > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > > > - qt5_dep.version().version_compare('<5.13')) or > > > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > > > -endif > > > > - > > > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > > > qresources : qcam_resources, > > > > - dependencies : qt5_dep) > > > > + dependencies : qt6_dep) > > > > > > > > qcam = executable('qcam', qcam_sources, resources, > > > > install : true, > > > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > > > libatomic, > > > > libcamera_public, > > > > libtiff, > > > > - qt5_dep, > > > > + qt6_dep, > > > > ], > > > > - cpp_args : qt5_cpp_args) > > > > + cpp_args : qt6_cpp_args) > > I'd like to have this in place for Fedora 40 as that's the release > we're moving to KDE Plasma 6[1] and thus generally preferring > everything to be Qt 6 whenever possible. Additionally, CentOS/RHEL 10 > (which forks from Fedora 40) will only have Qt 6. The freeze for > Fedora is in two weeks[2], and I'd like to have this landed before > then. That's a pretty short notice. Could you have a look at the toolbar icon issue I've reported then ? > [1]: https://fedoraproject.org/wiki/Changes/KDE_Plasma_6 > [2]: https://fedorapeople.org/groups/schedule/f-40/f-40-key-tasks.html
On Mon, Jan 22, 2024 at 6:33 AM Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote: > > On Mon, Jan 22, 2024 at 06:12:08AM -0500, Neal Gompa wrote: > > On Mon, Jan 22, 2024 at 4:53 AM Laurent Pinchart via libcamera-devel > > <libcamera-devel@lists.libcamera.org> wrote: > > > > > > On Mon, Jan 22, 2024 at 09:38:33AM +0000, Kieran Bingham via libcamera-devel wrote: > > > > Aha, I missed that there was already a v2. > > > > > > > > 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. > > > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > > --- > > > > > README.rst | 2 +- > > > > > meson.build | 2 +- > > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > > > diff --git a/README.rst b/README.rst > > > > > index 315738ee..6f1c9302 100644 > > > > > --- a/README.rst > > > > > +++ b/README.rst > > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > > > for qcam: [optional] > > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > > > > > for tracing with lttng: [optional] > > > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > > > diff --git a/meson.build b/meson.build > > > > > index cb6b666a..4c315e2a 100644 > > > > > --- a/meson.build > > > > > +++ b/meson.build > > > > > @@ -1,7 +1,7 @@ > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > project('libcamera', 'c', 'cpp', > > > > > - meson_version : '>= 0.60', > > > > > + meson_version : '>= 0.63', > > > > > > > > Debian Bookworm: is currently at 1.0.1-5 > > > > https://packages.debian.org/source/stable/meson > > > > > > > > Ubuntu 22.04.3 is currently at 0.61.2-1 :-( > > > > https://packages.ubuntu.com/jammy/meson > > > > > > > > We're about 3 months away from Ubuntu 24.04 ... > > > > > > > > > > > > Fedora is in a better shape, and all Fedora releases in support have a > > > > recent Meson at 1.2.3 or later: > > > > https://src.fedoraproject.org/rpms/meson > > > > > > > > Redhat Enterprise linux looks more problematic - So I'm not sure if that > > > > should be included in fact. > > > > > > > > OpenSuse seems to be already at 1.3.1 too: > > > > https://software.opensuse.org/package/meson?locale=en > > > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > > > Any thoughts anyone? > > > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > > the case :-( > > > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > > gets released. > > > > > > > > version : '0.2.0', > > > > > default_options : [ > > > > > 'werror=true', > > > > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > > > > index 6cf4c171..c7fcfbeb 100644 > > > > > --- a/src/apps/qcam/meson.build > > > > > +++ b/src/apps/qcam/meson.build > > > > > @@ -1,13 +1,13 @@ > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > -qt5 = import('qt5') > > > > > -qt5_dep = dependency('qt5', > > > > > +qt6 = import('qt6') > > > > > +qt6_dep = dependency('qt6', > > > > > method : 'pkg-config', > > > > > - modules : ['Core', 'Gui', 'Widgets'], > > > > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > > > > required : get_option('qcam'), > > > > > - version : '>=5.4') > > > > > + version : '>=6.2') > > > > > > > > > > -if not qt5_dep.found() > > > > > +if not qt6_dep.found() > > > > > qcam_enabled = false > > > > > subdir_done() > > > > > endif > > > > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > > > > 'main.cpp', > > > > > 'main_window.cpp', > > > > > 'message_handler.cpp', > > > > > + 'viewfinder_gl.cpp', > > > > > 'viewfinder_qt.cpp', > > > > > ]) > > > > > > > > > > qcam_moc_headers = files([ > > > > > 'cam_select_dialog.h', > > > > > 'main_window.h', > > > > > + 'viewfinder_gl.h', > > > > > 'viewfinder_qt.h', > > > > > ]) > > > > > > > > > > qcam_resources = files([ > > > > > 'assets/feathericons/feathericons.qrc', > > > > > + 'assets/shader/shaders.qrc', > > > > > ]) > > > > > > > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > > > > - dependencies : qt5_dep, args : '-fPIC') > > > > > - qcam_sources += files([ > > > > > - 'viewfinder_gl.cpp', > > > > > - ]) > > > > > - qcam_moc_headers += files([ > > > > > - 'viewfinder_gl.h', > > > > > - ]) > > > > > - qcam_resources += files([ > > > > > - 'assets/shader/shaders.qrc' > > > > > - ]) > > > > > -endif > > > > > - > > > > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > > > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > > > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > > > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > > > > - qt5_dep.version().version_compare('<5.13')) or > > > > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > > > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > > > > -endif > > > > > - > > > > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > > > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > > > > qresources : qcam_resources, > > > > > - dependencies : qt5_dep) > > > > > + dependencies : qt6_dep) > > > > > > > > > > qcam = executable('qcam', qcam_sources, resources, > > > > > install : true, > > > > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > > > > libatomic, > > > > > libcamera_public, > > > > > libtiff, > > > > > - qt5_dep, > > > > > + qt6_dep, > > > > > ], > > > > > - cpp_args : qt5_cpp_args) > > > > > + cpp_args : qt6_cpp_args) > > > > I'd like to have this in place for Fedora 40 as that's the release > > we're moving to KDE Plasma 6[1] and thus generally preferring > > everything to be Qt 6 whenever possible. Additionally, CentOS/RHEL 10 > > (which forks from Fedora 40) will only have Qt 6. The freeze for > > Fedora is in two weeks[2], and I'd like to have this landed before > > then. > > That's a pretty short notice. Could you have a look at the toolbar icon > issue I've reported then ? > Yup. I cannot reproduce the issue. It works here. Here's a screenshot: https://i.imgur.com/zle2XbL.png
On Sun, 21 Jan 2024 at 22:41, Neal Gompa <neal@gompa.dev> wrote: > > 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. > > Signed-off-by: Neal Gompa <neal@gompa.dev> Qt 6 ftw Reviewed-by: Eric Curtin <ecurtin@redhat.com> Is mise le meas/Regards, Eric Curtin > --- > README.rst | 2 +- > meson.build | 2 +- > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > 3 files changed, 15 insertions(+), 34 deletions(-) > > diff --git a/README.rst b/README.rst > index 315738ee..6f1c9302 100644 > --- a/README.rst > +++ b/README.rst > @@ -88,7 +88,7 @@ for cam: [optional] > - libsdl2-dev: Enables the SDL sink > > for qcam: [optional] > - libtiff-dev qtbase5-dev qttools5-dev-tools > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > for tracing with lttng: [optional] > liblttng-ust-dev python3-jinja2 lttng-tools > diff --git a/meson.build b/meson.build > index cb6b666a..4c315e2a 100644 > --- a/meson.build > +++ b/meson.build > @@ -1,7 +1,7 @@ > # SPDX-License-Identifier: CC0-1.0 > > project('libcamera', 'c', 'cpp', > - meson_version : '>= 0.60', > + meson_version : '>= 0.63', > version : '0.2.0', > default_options : [ > 'werror=true', > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > index 6cf4c171..c7fcfbeb 100644 > --- a/src/apps/qcam/meson.build > +++ b/src/apps/qcam/meson.build > @@ -1,13 +1,13 @@ > # SPDX-License-Identifier: CC0-1.0 > > -qt5 = import('qt5') > -qt5_dep = dependency('qt5', > +qt6 = import('qt6') > +qt6_dep = dependency('qt6', > method : 'pkg-config', > - modules : ['Core', 'Gui', 'Widgets'], > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > required : get_option('qcam'), > - version : '>=5.4') > + version : '>=6.2') > > -if not qt5_dep.found() > +if not qt6_dep.found() > qcam_enabled = false > subdir_done() > endif > @@ -20,46 +20,27 @@ qcam_sources = files([ > 'main.cpp', > 'main_window.cpp', > 'message_handler.cpp', > + 'viewfinder_gl.cpp', > 'viewfinder_qt.cpp', > ]) > > qcam_moc_headers = files([ > 'cam_select_dialog.h', > 'main_window.h', > + 'viewfinder_gl.h', > 'viewfinder_qt.h', > ]) > > qcam_resources = files([ > 'assets/feathericons/feathericons.qrc', > + 'assets/shader/shaders.qrc', > ]) > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > - dependencies : qt5_dep, args : '-fPIC') > - qcam_sources += files([ > - 'viewfinder_gl.cpp', > - ]) > - qcam_moc_headers += files([ > - 'viewfinder_gl.h', > - ]) > - qcam_resources += files([ > - 'assets/shader/shaders.qrc' > - ]) > -endif > - > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > - qt5_dep.version().version_compare('<5.13')) or > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > - qt5_cpp_args += ['-Wno-deprecated-copy'] > -endif > - > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > qresources : qcam_resources, > - dependencies : qt5_dep) > + dependencies : qt6_dep) > > qcam = executable('qcam', qcam_sources, resources, > install : true, > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > libatomic, > libcamera_public, > libtiff, > - qt5_dep, > + qt6_dep, > ], > - cpp_args : qt5_cpp_args) > + cpp_args : qt6_cpp_args) > -- > 2.43.0 >
On Mon, Jan 22, 2024 at 06:38:25AM -0500, Neal Gompa wrote: > On Mon, Jan 22, 2024 at 6:33 AM Laurent Pinchart wrote: > > On Mon, Jan 22, 2024 at 06:12:08AM -0500, Neal Gompa wrote: > > > On Mon, Jan 22, 2024 at 4:53 AM Laurent Pinchart via libcamera-devel wrote: > > > > On Mon, Jan 22, 2024 at 09:38:33AM +0000, Kieran Bingham via libcamera-devel wrote: > > > > > Aha, I missed that there was already a v2. > > > > > > > > > > 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. > > > > > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > > > --- > > > > > > README.rst | 2 +- > > > > > > meson.build | 2 +- > > > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > > > > > diff --git a/README.rst b/README.rst > > > > > > index 315738ee..6f1c9302 100644 > > > > > > --- a/README.rst > > > > > > +++ b/README.rst > > > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > > > > > for qcam: [optional] > > > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > > > > > > > for tracing with lttng: [optional] > > > > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > > > > diff --git a/meson.build b/meson.build > > > > > > index cb6b666a..4c315e2a 100644 > > > > > > --- a/meson.build > > > > > > +++ b/meson.build > > > > > > @@ -1,7 +1,7 @@ > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > project('libcamera', 'c', 'cpp', > > > > > > - meson_version : '>= 0.60', > > > > > > + meson_version : '>= 0.63', > > > > > > > > > > Debian Bookworm: is currently at 1.0.1-5 > > > > > https://packages.debian.org/source/stable/meson > > > > > > > > > > Ubuntu 22.04.3 is currently at 0.61.2-1 :-( > > > > > https://packages.ubuntu.com/jammy/meson > > > > > > > > > > We're about 3 months away from Ubuntu 24.04 ... > > > > > > > > > > > > > > > Fedora is in a better shape, and all Fedora releases in support have a > > > > > recent Meson at 1.2.3 or later: > > > > > https://src.fedoraproject.org/rpms/meson > > > > > > > > > > Redhat Enterprise linux looks more problematic - So I'm not sure if that > > > > > should be included in fact. > > > > > > > > > > OpenSuse seems to be already at 1.3.1 too: > > > > > https://software.opensuse.org/package/meson?locale=en > > > > > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > > > > > Any thoughts anyone? > > > > > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > > > the case :-( > > > > > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > > > gets released. > > > > > > > > > > version : '0.2.0', > > > > > > default_options : [ > > > > > > 'werror=true', > > > > > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > > > > > index 6cf4c171..c7fcfbeb 100644 > > > > > > --- a/src/apps/qcam/meson.build > > > > > > +++ b/src/apps/qcam/meson.build > > > > > > @@ -1,13 +1,13 @@ > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > -qt5 = import('qt5') > > > > > > -qt5_dep = dependency('qt5', > > > > > > +qt6 = import('qt6') > > > > > > +qt6_dep = dependency('qt6', > > > > > > method : 'pkg-config', > > > > > > - modules : ['Core', 'Gui', 'Widgets'], > > > > > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > > > > > required : get_option('qcam'), > > > > > > - version : '>=5.4') > > > > > > + version : '>=6.2') > > > > > > > > > > > > -if not qt5_dep.found() > > > > > > +if not qt6_dep.found() > > > > > > qcam_enabled = false > > > > > > subdir_done() > > > > > > endif > > > > > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > > > > > 'main.cpp', > > > > > > 'main_window.cpp', > > > > > > 'message_handler.cpp', > > > > > > + 'viewfinder_gl.cpp', > > > > > > 'viewfinder_qt.cpp', > > > > > > ]) > > > > > > > > > > > > qcam_moc_headers = files([ > > > > > > 'cam_select_dialog.h', > > > > > > 'main_window.h', > > > > > > + 'viewfinder_gl.h', > > > > > > 'viewfinder_qt.h', > > > > > > ]) > > > > > > > > > > > > qcam_resources = files([ > > > > > > 'assets/feathericons/feathericons.qrc', > > > > > > + 'assets/shader/shaders.qrc', > > > > > > ]) > > > > > > > > > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > > > > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > > > > > - dependencies : qt5_dep, args : '-fPIC') > > > > > > - qcam_sources += files([ > > > > > > - 'viewfinder_gl.cpp', > > > > > > - ]) > > > > > > - qcam_moc_headers += files([ > > > > > > - 'viewfinder_gl.h', > > > > > > - ]) > > > > > > - qcam_resources += files([ > > > > > > - 'assets/shader/shaders.qrc' > > > > > > - ]) > > > > > > -endif > > > > > > - > > > > > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > > > > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > > > > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > > > > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > > > > > - qt5_dep.version().version_compare('<5.13')) or > > > > > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > > > > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > > > > > -endif > > > > > > - > > > > > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > > > > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > > > > > qresources : qcam_resources, > > > > > > - dependencies : qt5_dep) > > > > > > + dependencies : qt6_dep) > > > > > > > > > > > > qcam = executable('qcam', qcam_sources, resources, > > > > > > install : true, > > > > > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > > > > > libatomic, > > > > > > libcamera_public, > > > > > > libtiff, > > > > > > - qt5_dep, > > > > > > + qt6_dep, > > > > > > ], > > > > > > - cpp_args : qt5_cpp_args) > > > > > > + cpp_args : qt6_cpp_args) > > > > > > I'd like to have this in place for Fedora 40 as that's the release > > > we're moving to KDE Plasma 6[1] and thus generally preferring > > > everything to be Qt 6 whenever possible. Additionally, CentOS/RHEL 10 > > > (which forks from Fedora 40) will only have Qt 6. The freeze for > > > Fedora is in two weeks[2], and I'd like to have this landed before > > > then. > > > > That's a pretty short notice. Could you have a look at the toolbar icon > > issue I've reported then ? > > Yup. I cannot reproduce the issue. It works here. Here's a screenshot: > https://i.imgur.com/zle2XbL.png Here's how it looks like for me. - With Qt5: https://postimg.cc/jC16fLh1 - With Qt6: https://postimg.cc/WtGY6mhy I wonder if this could be caused by not having KDE 6 installed. What's the default KDE environment for Debian Bookworm and Ubuntu 24.04, is it KDE 5 or KDE 6 ?
On Mon, Jan 22, 2024 at 6:57 AM Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote: > > On Mon, Jan 22, 2024 at 06:38:25AM -0500, Neal Gompa wrote: > > On Mon, Jan 22, 2024 at 6:33 AM Laurent Pinchart wrote: > > > On Mon, Jan 22, 2024 at 06:12:08AM -0500, Neal Gompa wrote: > > > > On Mon, Jan 22, 2024 at 4:53 AM Laurent Pinchart via libcamera-devel wrote: > > > > > On Mon, Jan 22, 2024 at 09:38:33AM +0000, Kieran Bingham via libcamera-devel wrote: > > > > > > Aha, I missed that there was already a v2. > > > > > > > > > > > > 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. > > > > > > > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > > > > --- > > > > > > > README.rst | 2 +- > > > > > > > meson.build | 2 +- > > > > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > > > > > > > diff --git a/README.rst b/README.rst > > > > > > > index 315738ee..6f1c9302 100644 > > > > > > > --- a/README.rst > > > > > > > +++ b/README.rst > > > > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > > > > > > > for qcam: [optional] > > > > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > > > > > > > > > for tracing with lttng: [optional] > > > > > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > > > > > diff --git a/meson.build b/meson.build > > > > > > > index cb6b666a..4c315e2a 100644 > > > > > > > --- a/meson.build > > > > > > > +++ b/meson.build > > > > > > > @@ -1,7 +1,7 @@ > > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > > > project('libcamera', 'c', 'cpp', > > > > > > > - meson_version : '>= 0.60', > > > > > > > + meson_version : '>= 0.63', > > > > > > > > > > > > Debian Bookworm: is currently at 1.0.1-5 > > > > > > https://packages.debian.org/source/stable/meson > > > > > > > > > > > > Ubuntu 22.04.3 is currently at 0.61.2-1 :-( > > > > > > https://packages.ubuntu.com/jammy/meson > > > > > > > > > > > > We're about 3 months away from Ubuntu 24.04 ... > > > > > > > > > > > > > > > > > > Fedora is in a better shape, and all Fedora releases in support have a > > > > > > recent Meson at 1.2.3 or later: > > > > > > https://src.fedoraproject.org/rpms/meson > > > > > > > > > > > > Redhat Enterprise linux looks more problematic - So I'm not sure if that > > > > > > should be included in fact. > > > > > > > > > > > > OpenSuse seems to be already at 1.3.1 too: > > > > > > https://software.opensuse.org/package/meson?locale=en > > > > > > > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > > > > > > > Any thoughts anyone? > > > > > > > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > > > > the case :-( > > > > > > > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > > > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > > > > gets released. > > > > > > > > > > > > version : '0.2.0', > > > > > > > default_options : [ > > > > > > > 'werror=true', > > > > > > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > > > > > > index 6cf4c171..c7fcfbeb 100644 > > > > > > > --- a/src/apps/qcam/meson.build > > > > > > > +++ b/src/apps/qcam/meson.build > > > > > > > @@ -1,13 +1,13 @@ > > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > > > -qt5 = import('qt5') > > > > > > > -qt5_dep = dependency('qt5', > > > > > > > +qt6 = import('qt6') > > > > > > > +qt6_dep = dependency('qt6', > > > > > > > method : 'pkg-config', > > > > > > > - modules : ['Core', 'Gui', 'Widgets'], > > > > > > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > > > > > > required : get_option('qcam'), > > > > > > > - version : '>=5.4') > > > > > > > + version : '>=6.2') > > > > > > > > > > > > > > -if not qt5_dep.found() > > > > > > > +if not qt6_dep.found() > > > > > > > qcam_enabled = false > > > > > > > subdir_done() > > > > > > > endif > > > > > > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > > > > > > 'main.cpp', > > > > > > > 'main_window.cpp', > > > > > > > 'message_handler.cpp', > > > > > > > + 'viewfinder_gl.cpp', > > > > > > > 'viewfinder_qt.cpp', > > > > > > > ]) > > > > > > > > > > > > > > qcam_moc_headers = files([ > > > > > > > 'cam_select_dialog.h', > > > > > > > 'main_window.h', > > > > > > > + 'viewfinder_gl.h', > > > > > > > 'viewfinder_qt.h', > > > > > > > ]) > > > > > > > > > > > > > > qcam_resources = files([ > > > > > > > 'assets/feathericons/feathericons.qrc', > > > > > > > + 'assets/shader/shaders.qrc', > > > > > > > ]) > > > > > > > > > > > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > > > > > > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > > > > > > - dependencies : qt5_dep, args : '-fPIC') > > > > > > > - qcam_sources += files([ > > > > > > > - 'viewfinder_gl.cpp', > > > > > > > - ]) > > > > > > > - qcam_moc_headers += files([ > > > > > > > - 'viewfinder_gl.h', > > > > > > > - ]) > > > > > > > - qcam_resources += files([ > > > > > > > - 'assets/shader/shaders.qrc' > > > > > > > - ]) > > > > > > > -endif > > > > > > > - > > > > > > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > > > > > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > > > > > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > > > > > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > > > > > > - qt5_dep.version().version_compare('<5.13')) or > > > > > > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > > > > > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > > > > > > -endif > > > > > > > - > > > > > > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > > > > > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > > > > > > qresources : qcam_resources, > > > > > > > - dependencies : qt5_dep) > > > > > > > + dependencies : qt6_dep) > > > > > > > > > > > > > > qcam = executable('qcam', qcam_sources, resources, > > > > > > > install : true, > > > > > > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > > > > > > libatomic, > > > > > > > libcamera_public, > > > > > > > libtiff, > > > > > > > - qt5_dep, > > > > > > > + qt6_dep, > > > > > > > ], > > > > > > > - cpp_args : qt5_cpp_args) > > > > > > > + cpp_args : qt6_cpp_args) > > > > > > > > I'd like to have this in place for Fedora 40 as that's the release > > > > we're moving to KDE Plasma 6[1] and thus generally preferring > > > > everything to be Qt 6 whenever possible. Additionally, CentOS/RHEL 10 > > > > (which forks from Fedora 40) will only have Qt 6. The freeze for > > > > Fedora is in two weeks[2], and I'd like to have this landed before > > > > then. > > > > > > That's a pretty short notice. Could you have a look at the toolbar icon > > > issue I've reported then ? > > > > Yup. I cannot reproduce the issue. It works here. Here's a screenshot: > > https://i.imgur.com/zle2XbL.png > > Here's how it looks like for me. > > - With Qt5: https://postimg.cc/jC16fLh1 > - With Qt6: https://postimg.cc/WtGY6mhy > > I wonder if this could be caused by not having KDE 6 installed. > > What's the default KDE environment for Debian Bookworm and Ubuntu 24.04, > is it KDE 5 or KDE 6 ? > KDE Plasma 5, but that screenshot is on Fedora 39 with KDE Plasma 5.27.10.
On Mon, Jan 22, 2024 at 01:57:02PM +0200, Laurent Pinchart wrote: > On Mon, Jan 22, 2024 at 06:38:25AM -0500, Neal Gompa wrote: > > On Mon, Jan 22, 2024 at 6:33 AM Laurent Pinchart wrote: > > > On Mon, Jan 22, 2024 at 06:12:08AM -0500, Neal Gompa wrote: > > > > On Mon, Jan 22, 2024 at 4:53 AM Laurent Pinchart via libcamera-devel wrote: > > > > > On Mon, Jan 22, 2024 at 09:38:33AM +0000, Kieran Bingham via libcamera-devel wrote: > > > > > > Aha, I missed that there was already a v2. > > > > > > > > > > > > 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. > > > > > > > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > > > > --- > > > > > > > README.rst | 2 +- > > > > > > > meson.build | 2 +- > > > > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > > > > > > > diff --git a/README.rst b/README.rst > > > > > > > index 315738ee..6f1c9302 100644 > > > > > > > --- a/README.rst > > > > > > > +++ b/README.rst > > > > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > > > > > > > for qcam: [optional] > > > > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > > > > > > > > > for tracing with lttng: [optional] > > > > > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > > > > > diff --git a/meson.build b/meson.build > > > > > > > index cb6b666a..4c315e2a 100644 > > > > > > > --- a/meson.build > > > > > > > +++ b/meson.build > > > > > > > @@ -1,7 +1,7 @@ > > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > > > project('libcamera', 'c', 'cpp', > > > > > > > - meson_version : '>= 0.60', > > > > > > > + meson_version : '>= 0.63', > > > > > > > > > > > > Debian Bookworm: is currently at 1.0.1-5 > > > > > > https://packages.debian.org/source/stable/meson > > > > > > > > > > > > Ubuntu 22.04.3 is currently at 0.61.2-1 :-( > > > > > > https://packages.ubuntu.com/jammy/meson > > > > > > > > > > > > We're about 3 months away from Ubuntu 24.04 ... > > > > > > > > > > > > > > > > > > Fedora is in a better shape, and all Fedora releases in support have a > > > > > > recent Meson at 1.2.3 or later: > > > > > > https://src.fedoraproject.org/rpms/meson > > > > > > > > > > > > Redhat Enterprise linux looks more problematic - So I'm not sure if that > > > > > > should be included in fact. > > > > > > > > > > > > OpenSuse seems to be already at 1.3.1 too: > > > > > > https://software.opensuse.org/package/meson?locale=en > > > > > > > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > > > > > > > Any thoughts anyone? > > > > > > > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > > > > the case :-( > > > > > > > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > > > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > > > > gets released. > > > > > > > > > > > > version : '0.2.0', > > > > > > > default_options : [ > > > > > > > 'werror=true', > > > > > > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > > > > > > index 6cf4c171..c7fcfbeb 100644 > > > > > > > --- a/src/apps/qcam/meson.build > > > > > > > +++ b/src/apps/qcam/meson.build > > > > > > > @@ -1,13 +1,13 @@ > > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > > > -qt5 = import('qt5') > > > > > > > -qt5_dep = dependency('qt5', > > > > > > > +qt6 = import('qt6') > > > > > > > +qt6_dep = dependency('qt6', > > > > > > > method : 'pkg-config', > > > > > > > - modules : ['Core', 'Gui', 'Widgets'], > > > > > > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > > > > > > required : get_option('qcam'), > > > > > > > - version : '>=5.4') > > > > > > > + version : '>=6.2') > > > > > > > > > > > > > > -if not qt5_dep.found() > > > > > > > +if not qt6_dep.found() > > > > > > > qcam_enabled = false > > > > > > > subdir_done() > > > > > > > endif > > > > > > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > > > > > > 'main.cpp', > > > > > > > 'main_window.cpp', > > > > > > > 'message_handler.cpp', > > > > > > > + 'viewfinder_gl.cpp', > > > > > > > 'viewfinder_qt.cpp', > > > > > > > ]) > > > > > > > > > > > > > > qcam_moc_headers = files([ > > > > > > > 'cam_select_dialog.h', > > > > > > > 'main_window.h', > > > > > > > + 'viewfinder_gl.h', > > > > > > > 'viewfinder_qt.h', > > > > > > > ]) > > > > > > > > > > > > > > qcam_resources = files([ > > > > > > > 'assets/feathericons/feathericons.qrc', > > > > > > > + 'assets/shader/shaders.qrc', > > > > > > > ]) > > > > > > > > > > > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > > > > > > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > > > > > > - dependencies : qt5_dep, args : '-fPIC') > > > > > > > - qcam_sources += files([ > > > > > > > - 'viewfinder_gl.cpp', > > > > > > > - ]) > > > > > > > - qcam_moc_headers += files([ > > > > > > > - 'viewfinder_gl.h', > > > > > > > - ]) > > > > > > > - qcam_resources += files([ > > > > > > > - 'assets/shader/shaders.qrc' > > > > > > > - ]) > > > > > > > -endif > > > > > > > - > > > > > > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > > > > > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > > > > > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > > > > > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > > > > > > - qt5_dep.version().version_compare('<5.13')) or > > > > > > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > > > > > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > > > > > > -endif > > > > > > > - > > > > > > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > > > > > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > > > > > > qresources : qcam_resources, > > > > > > > - dependencies : qt5_dep) > > > > > > > + dependencies : qt6_dep) > > > > > > > > > > > > > > qcam = executable('qcam', qcam_sources, resources, > > > > > > > install : true, > > > > > > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > > > > > > libatomic, > > > > > > > libcamera_public, > > > > > > > libtiff, > > > > > > > - qt5_dep, > > > > > > > + qt6_dep, > > > > > > > ], > > > > > > > - cpp_args : qt5_cpp_args) > > > > > > > + cpp_args : qt6_cpp_args) > > > > > > > > I'd like to have this in place for Fedora 40 as that's the release > > > > we're moving to KDE Plasma 6[1] and thus generally preferring > > > > everything to be Qt 6 whenever possible. Additionally, CentOS/RHEL 10 > > > > (which forks from Fedora 40) will only have Qt 6. The freeze for > > > > Fedora is in two weeks[2], and I'd like to have this landed before > > > > then. > > > > > > That's a pretty short notice. Could you have a look at the toolbar icon > > > issue I've reported then ? > > > > Yup. I cannot reproduce the issue. It works here. Here's a screenshot: > > https://i.imgur.com/zle2XbL.png > > Here's how it looks like for me. > > - With Qt5: https://postimg.cc/jC16fLh1 > - With Qt6: https://postimg.cc/WtGY6mhy > > I wonder if this could be caused by not having KDE 6 installed. > > What's the default KDE environment for Debian Bookworm and Ubuntu 24.04, > is it KDE 5 or KDE 6 ? According to https://community.kde.org/Schedules/Plasma_6, Plasma 6 will be released on 2024-02-01. It would sounds a bit ambitious to already depend on it.
Hi Laurent, On Mon, 2024-01-22 at 13:57 +0200, Laurent Pinchart wrote: > > > > Yup. I cannot reproduce the issue. It works here. Here's a screenshot: > > https://i.imgur.com/zle2XbL.png > > Here's how it looks like for me. > > - With Qt5: https://postimg.cc/jC16fLh1 > - With Qt6: https://postimg.cc/WtGY6mhy > > I wonder if this could be caused by not having KDE 6 installed. > > What's the default KDE environment for Debian Bookworm and Ubuntu 24.04, > is it KDE 5 or KDE 6 ? > Do you have libqt6svg6? That is needed for Qt6 svg icons. Regards, Gergo
On Mon, Jan 22, 2024 at 01:10:09PM +0100, Gergo Koteles wrote: > Hi Laurent, > > On Mon, 2024-01-22 at 13:57 +0200, Laurent Pinchart wrote: > > > > > > Yup. I cannot reproduce the issue. It works here. Here's a screenshot: > > > https://i.imgur.com/zle2XbL.png > > > > Here's how it looks like for me. > > > > - With Qt5: https://postimg.cc/jC16fLh1 > > - With Qt6: https://postimg.cc/WtGY6mhy > > > > I wonder if this could be caused by not having KDE 6 installed. > > > > What's the default KDE environment for Debian Bookworm and Ubuntu 24.04, > > is it KDE 5 or KDE 6 ? > > Do you have libqt6svg6? That is needed for Qt6 svg icons. I was missing it indeed (the package is called dev-qt/qtsvg in Gentoo). That fixed the problem, thank you.
Quoting Neal Gompa (2024-01-22 11:08:33) > On Mon, Jan 22, 2024 at 6:00 AM Kieran Bingham > <kieran.bingham@ideasonboard.com> wrote: > > > > Quoting Laurent Pinchart (2024-01-22 09:53:39) > > > On Mon, Jan 22, 2024 at 09:38:33AM +0000, Kieran Bingham via libcamera-devel wrote: > > > > Aha, I missed that there was already a v2. > > > > > > > > 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. > > > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > > --- > > > > > README.rst | 2 +- > > > > > meson.build | 2 +- > > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > > > diff --git a/README.rst b/README.rst > > > > > index 315738ee..6f1c9302 100644 > > > > > --- a/README.rst > > > > > +++ b/README.rst > > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > > > for qcam: [optional] > > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > > > > > for tracing with lttng: [optional] > > > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > > > diff --git a/meson.build b/meson.build > > > > > index cb6b666a..4c315e2a 100644 > > > > > --- a/meson.build > > > > > +++ b/meson.build > > > > > @@ -1,7 +1,7 @@ > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > project('libcamera', 'c', 'cpp', > > > > > - meson_version : '>= 0.60', > > > > > + meson_version : '>= 0.63', > > > > > > > > Debian Bookworm: is currently at 1.0.1-5 > > > > https://packages.debian.org/source/stable/meson > > > > > > > > Ubuntu 22.04.3 is currently at 0.61.2-1 :-( > > > > https://packages.ubuntu.com/jammy/meson > > > > > > > > We're about 3 months away from Ubuntu 24.04 ... > > > > > > > > > > > > Fedora is in a better shape, and all Fedora releases in support have a > > > > recent Meson at 1.2.3 or later: > > > > https://src.fedoraproject.org/rpms/meson > > > > > > > > Redhat Enterprise linux looks more problematic - So I'm not sure if that > > > > should be included in fact. > > > > > > > > OpenSuse seems to be already at 1.3.1 too: > > > > https://software.opensuse.org/package/meson?locale=en > > > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > > > Any thoughts anyone? > > > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > > the case :-( > > > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > > gets released. > > > > Noble (24.04) will have either 1.2.1 or 1.3.1 (there are different > > versions in proposed and Release). Either way it will be > 1.2! : > > https://launchpad.net/ubuntu/noble/+package/meson > > > > I would propose that the meson version update is separated from the > > patch as a preceeding commit, and could already be resent. Then we can > > simply pick these in April. I'd probably say we could merge this in > > early April, such that we can make a release of libcamera with that > > support merged soon after Ubuntu 24.04 is released on April 25th. > > > > On the flip side, if it's merged and released into Debian before the > Ubuntu freeze on Feb 29[1], then it would be part of Ubuntu 24.04 > itself. That's an interesting take too. Which one is the chicken and which one is the egg? Our early requirement for meeting the dependencies in the distributions was because the distributions themselves were not including libcamera. Therefore, users of libcamera /had/ to be able to build libcamera. Now that things can be included, perhaps that's reason enough to say aiming for integration is better. > [1]: https://discourse.ubuntu.com/t/noble-numbat-release-schedule/35649 It looks like libcamera-0.2 is already included in the noble release, so package updates into debian look like they get into Ubuntu quite 'fast'. I feel like targetting getting /into/ the next Ubuntu LTS with updates is better than working on /top/ of it. The expense/cost is that in between we would no longer support compiling the master branch (or intermediate releases) with the 'current' LTS of Ubuntu. I could say "Oh well, that probably doesn't matter" ... except ... I use Ubuntu-22.04 as my main distro ... and I would plan to upgrade at the next release. I'm aware that I can work around this issue by upgrading meson myself. The question is what will happen to others ... and maybe it's just something we should bite and help them upgrade meson in the interim. -- Kieran > -- > 真実はいつも一つ!/ Always, there's only one truth!
On Mon, Jan 22, 2024 at 8:07 AM Kieran Bingham <kieran.bingham@ideasonboard.com> wrote: > > Quoting Neal Gompa (2024-01-22 11:08:33) > > On Mon, Jan 22, 2024 at 6:00 AM Kieran Bingham > > <kieran.bingham@ideasonboard.com> wrote: > > > > > > Quoting Laurent Pinchart (2024-01-22 09:53:39) > > > > On Mon, Jan 22, 2024 at 09:38:33AM +0000, Kieran Bingham via libcamera-devel wrote: > > > > > Aha, I missed that there was already a v2. > > > > > > > > > > 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. > > > > > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > > > --- > > > > > > README.rst | 2 +- > > > > > > meson.build | 2 +- > > > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > > > > > diff --git a/README.rst b/README.rst > > > > > > index 315738ee..6f1c9302 100644 > > > > > > --- a/README.rst > > > > > > +++ b/README.rst > > > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > > > > > for qcam: [optional] > > > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > > > > > > > for tracing with lttng: [optional] > > > > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > > > > diff --git a/meson.build b/meson.build > > > > > > index cb6b666a..4c315e2a 100644 > > > > > > --- a/meson.build > > > > > > +++ b/meson.build > > > > > > @@ -1,7 +1,7 @@ > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > project('libcamera', 'c', 'cpp', > > > > > > - meson_version : '>= 0.60', > > > > > > + meson_version : '>= 0.63', > > > > > > > > > > Debian Bookworm: is currently at 1.0.1-5 > > > > > https://packages.debian.org/source/stable/meson > > > > > > > > > > Ubuntu 22.04.3 is currently at 0.61.2-1 :-( > > > > > https://packages.ubuntu.com/jammy/meson > > > > > > > > > > We're about 3 months away from Ubuntu 24.04 ... > > > > > > > > > > > > > > > Fedora is in a better shape, and all Fedora releases in support have a > > > > > recent Meson at 1.2.3 or later: > > > > > https://src.fedoraproject.org/rpms/meson > > > > > > > > > > Redhat Enterprise linux looks more problematic - So I'm not sure if that > > > > > should be included in fact. > > > > > > > > > > OpenSuse seems to be already at 1.3.1 too: > > > > > https://software.opensuse.org/package/meson?locale=en > > > > > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > > > > > Any thoughts anyone? > > > > > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > > > the case :-( > > > > > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > > > gets released. > > > > > > Noble (24.04) will have either 1.2.1 or 1.3.1 (there are different > > > versions in proposed and Release). Either way it will be > 1.2! : > > > https://launchpad.net/ubuntu/noble/+package/meson > > > > > > I would propose that the meson version update is separated from the > > > patch as a preceeding commit, and could already be resent. Then we can > > > simply pick these in April. I'd probably say we could merge this in > > > early April, such that we can make a release of libcamera with that > > > support merged soon after Ubuntu 24.04 is released on April 25th. > > > > > > > On the flip side, if it's merged and released into Debian before the > > Ubuntu freeze on Feb 29[1], then it would be part of Ubuntu 24.04 > > itself. > > That's an interesting take too. > > Which one is the chicken and which one is the egg? > > Our early requirement for meeting the dependencies in the distributions > was because the distributions themselves were not including libcamera. > Therefore, users of libcamera /had/ to be able to build libcamera. > > Now that things can be included, perhaps that's reason enough to say > aiming for integration is better. > > > [1]: https://discourse.ubuntu.com/t/noble-numbat-release-schedule/35649 > > It looks like libcamera-0.2 is already included in the noble release, so > package updates into debian look like they get into Ubuntu quite 'fast'. > > I feel like targetting getting /into/ the next Ubuntu LTS with updates > is better than working on /top/ of it. > > The expense/cost is that in between we would no longer support compiling > the master branch (or intermediate releases) with the 'current' LTS of > Ubuntu. > > I could say "Oh well, that probably doesn't matter" ... except ... I use > Ubuntu-22.04 as my main distro ... and I would plan to upgrade at the > next release. > > I'm aware that I can work around this issue by upgrading meson myself. > The question is what will happen to others ... and maybe it's just > something we should bite and help them upgrade meson in the interim. > Well, in a previous life I used to maintain Meson backports for Ubuntu. I'm happy to provide a package (based on the CentOS 9 one) for Ubuntu 22.04 until 24.04 is released if it would help you: https://software.opensuse.org//download.html?project=home%3APharaoh_Atem%3AMeson&package=meson -- 真実はいつも一つ!/ Always, there's only one truth!
Quoting Neal Gompa (2024-01-22 14:08:37) > On Mon, Jan 22, 2024 at 8:07 AM Kieran Bingham > <kieran.bingham@ideasonboard.com> wrote: > > > > Quoting Neal Gompa (2024-01-22 11:08:33) > > > On Mon, Jan 22, 2024 at 6:00 AM Kieran Bingham > > > <kieran.bingham@ideasonboard.com> wrote: > > > > > > > > Quoting Laurent Pinchart (2024-01-22 09:53:39) > > > > > On Mon, Jan 22, 2024 at 09:38:33AM +0000, Kieran Bingham via libcamera-devel wrote: > > > > > > Aha, I missed that there was already a v2. > > > > > > > > > > > > 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. > > > > > > > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > > > > --- > > > > > > > README.rst | 2 +- > > > > > > > meson.build | 2 +- > > > > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > > > > > > > diff --git a/README.rst b/README.rst > > > > > > > index 315738ee..6f1c9302 100644 > > > > > > > --- a/README.rst > > > > > > > +++ b/README.rst > > > > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > > > > > > > for qcam: [optional] > > > > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > > > > > > > > > for tracing with lttng: [optional] > > > > > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > > > > > diff --git a/meson.build b/meson.build > > > > > > > index cb6b666a..4c315e2a 100644 > > > > > > > --- a/meson.build > > > > > > > +++ b/meson.build > > > > > > > @@ -1,7 +1,7 @@ > > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > > > project('libcamera', 'c', 'cpp', > > > > > > > - meson_version : '>= 0.60', > > > > > > > + meson_version : '>= 0.63', > > > > > > > > > > > > Debian Bookworm: is currently at 1.0.1-5 > > > > > > https://packages.debian.org/source/stable/meson > > > > > > > > > > > > Ubuntu 22.04.3 is currently at 0.61.2-1 :-( > > > > > > https://packages.ubuntu.com/jammy/meson > > > > > > > > > > > > We're about 3 months away from Ubuntu 24.04 ... > > > > > > > > > > > > > > > > > > Fedora is in a better shape, and all Fedora releases in support have a > > > > > > recent Meson at 1.2.3 or later: > > > > > > https://src.fedoraproject.org/rpms/meson > > > > > > > > > > > > Redhat Enterprise linux looks more problematic - So I'm not sure if that > > > > > > should be included in fact. > > > > > > > > > > > > OpenSuse seems to be already at 1.3.1 too: > > > > > > https://software.opensuse.org/package/meson?locale=en > > > > > > > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > > > > > > > Any thoughts anyone? > > > > > > > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > > > > the case :-( > > > > > > > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > > > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > > > > gets released. > > > > > > > > Noble (24.04) will have either 1.2.1 or 1.3.1 (there are different > > > > versions in proposed and Release). Either way it will be > 1.2! : > > > > https://launchpad.net/ubuntu/noble/+package/meson > > > > > > > > I would propose that the meson version update is separated from the > > > > patch as a preceeding commit, and could already be resent. Then we can > > > > simply pick these in April. I'd probably say we could merge this in > > > > early April, such that we can make a release of libcamera with that > > > > support merged soon after Ubuntu 24.04 is released on April 25th. > > > > > > > > > > On the flip side, if it's merged and released into Debian before the > > > Ubuntu freeze on Feb 29[1], then it would be part of Ubuntu 24.04 > > > itself. > > > > That's an interesting take too. > > > > Which one is the chicken and which one is the egg? > > > > Our early requirement for meeting the dependencies in the distributions > > was because the distributions themselves were not including libcamera. > > Therefore, users of libcamera /had/ to be able to build libcamera. > > > > Now that things can be included, perhaps that's reason enough to say > > aiming for integration is better. > > > > > [1]: https://discourse.ubuntu.com/t/noble-numbat-release-schedule/35649 > > > > It looks like libcamera-0.2 is already included in the noble release, so > > package updates into debian look like they get into Ubuntu quite 'fast'. > > > > I feel like targetting getting /into/ the next Ubuntu LTS with updates > > is better than working on /top/ of it. > > > > The expense/cost is that in between we would no longer support compiling > > the master branch (or intermediate releases) with the 'current' LTS of > > Ubuntu. > > > > I could say "Oh well, that probably doesn't matter" ... except ... I use > > Ubuntu-22.04 as my main distro ... and I would plan to upgrade at the > > next release. > > > > I'm aware that I can work around this issue by upgrading meson myself. > > The question is what will happen to others ... and maybe it's just > > something we should bite and help them upgrade meson in the interim. > > > > Well, in a previous life I used to maintain Meson backports for Ubuntu. > > I'm happy to provide a package (based on the CentOS 9 one) for Ubuntu > 22.04 until 24.04 is released if it would help you: > https://software.opensuse.org//download.html?project=home%3APharaoh_Atem%3AMeson&package=meson Is there an official Ubuntu channel for that? If you can make 'ubuntu-22.04' support a later meson - I have no argument to prevent this being merged already! -- Kieran
On Mon, Jan 22, 2024 at 11:02 AM Kieran Bingham <kieran.bingham@ideasonboard.com> wrote: > > Quoting Neal Gompa (2024-01-22 14:08:37) > > On Mon, Jan 22, 2024 at 8:07 AM Kieran Bingham > > <kieran.bingham@ideasonboard.com> wrote: > > > > > > Quoting Neal Gompa (2024-01-22 11:08:33) > > > > On Mon, Jan 22, 2024 at 6:00 AM Kieran Bingham > > > > <kieran.bingham@ideasonboard.com> wrote: > > > > > > > > > > Quoting Laurent Pinchart (2024-01-22 09:53:39) > > > > > > On Mon, Jan 22, 2024 at 09:38:33AM +0000, Kieran Bingham via libcamera-devel wrote: > > > > > > > Aha, I missed that there was already a v2. > > > > > > > > > > > > > > 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. > > > > > > > > > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > > > > > --- > > > > > > > > README.rst | 2 +- > > > > > > > > meson.build | 2 +- > > > > > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > > > > > > > > > diff --git a/README.rst b/README.rst > > > > > > > > index 315738ee..6f1c9302 100644 > > > > > > > > --- a/README.rst > > > > > > > > +++ b/README.rst > > > > > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > > > > > > > > > for qcam: [optional] > > > > > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > > > > > > > > > > > for tracing with lttng: [optional] > > > > > > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > > > > > > diff --git a/meson.build b/meson.build > > > > > > > > index cb6b666a..4c315e2a 100644 > > > > > > > > --- a/meson.build > > > > > > > > +++ b/meson.build > > > > > > > > @@ -1,7 +1,7 @@ > > > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > > > > > project('libcamera', 'c', 'cpp', > > > > > > > > - meson_version : '>= 0.60', > > > > > > > > + meson_version : '>= 0.63', > > > > > > > > > > > > > > Debian Bookworm: is currently at 1.0.1-5 > > > > > > > https://packages.debian.org/source/stable/meson > > > > > > > > > > > > > > Ubuntu 22.04.3 is currently at 0.61.2-1 :-( > > > > > > > https://packages.ubuntu.com/jammy/meson > > > > > > > > > > > > > > We're about 3 months away from Ubuntu 24.04 ... > > > > > > > > > > > > > > > > > > > > > Fedora is in a better shape, and all Fedora releases in support have a > > > > > > > recent Meson at 1.2.3 or later: > > > > > > > https://src.fedoraproject.org/rpms/meson > > > > > > > > > > > > > > Redhat Enterprise linux looks more problematic - So I'm not sure if that > > > > > > > should be included in fact. > > > > > > > > > > > > > > OpenSuse seems to be already at 1.3.1 too: > > > > > > > https://software.opensuse.org/package/meson?locale=en > > > > > > > > > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > > > > > > > > > Any thoughts anyone? > > > > > > > > > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > > > > > the case :-( > > > > > > > > > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > > > > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > > > > > gets released. > > > > > > > > > > Noble (24.04) will have either 1.2.1 or 1.3.1 (there are different > > > > > versions in proposed and Release). Either way it will be > 1.2! : > > > > > https://launchpad.net/ubuntu/noble/+package/meson > > > > > > > > > > I would propose that the meson version update is separated from the > > > > > patch as a preceeding commit, and could already be resent. Then we can > > > > > simply pick these in April. I'd probably say we could merge this in > > > > > early April, such that we can make a release of libcamera with that > > > > > support merged soon after Ubuntu 24.04 is released on April 25th. > > > > > > > > > > > > > On the flip side, if it's merged and released into Debian before the > > > > Ubuntu freeze on Feb 29[1], then it would be part of Ubuntu 24.04 > > > > itself. > > > > > > That's an interesting take too. > > > > > > Which one is the chicken and which one is the egg? > > > > > > Our early requirement for meeting the dependencies in the distributions > > > was because the distributions themselves were not including libcamera. > > > Therefore, users of libcamera /had/ to be able to build libcamera. > > > > > > Now that things can be included, perhaps that's reason enough to say > > > aiming for integration is better. > > > > > > > [1]: https://discourse.ubuntu.com/t/noble-numbat-release-schedule/35649 > > > > > > It looks like libcamera-0.2 is already included in the noble release, so > > > package updates into debian look like they get into Ubuntu quite 'fast'. > > > > > > I feel like targetting getting /into/ the next Ubuntu LTS with updates > > > is better than working on /top/ of it. > > > > > > The expense/cost is that in between we would no longer support compiling > > > the master branch (or intermediate releases) with the 'current' LTS of > > > Ubuntu. > > > > > > I could say "Oh well, that probably doesn't matter" ... except ... I use > > > Ubuntu-22.04 as my main distro ... and I would plan to upgrade at the > > > next release. > > > > > > I'm aware that I can work around this issue by upgrading meson myself. > > > The question is what will happen to others ... and maybe it's just > > > something we should bite and help them upgrade meson in the interim. > > > > > > > Well, in a previous life I used to maintain Meson backports for Ubuntu. > > > > I'm happy to provide a package (based on the CentOS 9 one) for Ubuntu > > 22.04 until 24.04 is released if it would help you: > > https://software.opensuse.org//download.html?project=home%3APharaoh_Atem%3AMeson&package=meson > > Is there an official Ubuntu channel for that? If you can make > 'ubuntu-22.04' support a later meson - I have no argument to prevent this > being merged already! > No. At this point, it would be unlikely to get updated unless you know someone who can ship something in jammy-backports. But even then, with 24.04 coming in a few months, 22.04 has been in its zombie period for a while now. Typically, the expectation is that you either use later Ubuntu STS releases (23.10 is a perfectly fine release, as an example) or backport what you need while you wait for the next LTS. If you intend to hold back the patch until after 24.04 releases, then there is no chance for this to be part of Ubuntu 24.04 itself, which I think would be a shame. I prepared a backport for meson for Ubuntu 22.04 because you said it would help you for developing on 22.04. I am not about to ask you to move to Fedora (which is what I use) or CentOS Stream 9 (which would be an analogous LTS that does have a recent enough Meson). My only argument at this point is that you can choose to include the patch now and make a release so it can land in Debian sid now, and thus make it into Ubuntu 24.04 so that Ubuntu users will benefit from it. From my perspective, I want this so that Fedora users and later CentOS 10 users will benefit from it. I also think that Debian/Ubuntu folks would benefit from it because it's one less thing depending on essentially unsupported versions of Qt. -- 真実はいつも一つ!/ Always, there's only one truth!
Quoting Neal Gompa (2024-01-22 19:55:20) > On Mon, Jan 22, 2024 at 11:02 AM Kieran Bingham > <kieran.bingham@ideasonboard.com> wrote: > > > > > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > > > > > > > > > > > Any thoughts anyone? > > > > > > > > > > > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > > > > > > the case :-( > > > > > > > > > > > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > > > > > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > > > > > > gets released. Is there an urgency? Is there a requirement to move to QT6 for Fedora or otherwise? > > > > > > > > > > > > Noble (24.04) will have either 1.2.1 or 1.3.1 (there are different > > > > > > versions in proposed and Release). Either way it will be > 1.2! : > > > > > > https://launchpad.net/ubuntu/noble/+package/meson > > > > > > > > > > > > I would propose that the meson version update is separated from the > > > > > > patch as a preceeding commit, and could already be resent. Then we can > > > > > > simply pick these in April. I'd probably say we could merge this in > > > > > > early April, such that we can make a release of libcamera with that > > > > > > support merged soon after Ubuntu 24.04 is released on April 25th. > > > > > > > > > > > > > > > > On the flip side, if it's merged and released into Debian before the > > > > > Ubuntu freeze on Feb 29[1], then it would be part of Ubuntu 24.04 > > > > > itself. > > > > > > > > That's an interesting take too. > > > > > > > > Which one is the chicken and which one is the egg? > > > > > > > > Our early requirement for meeting the dependencies in the distributions > > > > was because the distributions themselves were not including libcamera. > > > > Therefore, users of libcamera /had/ to be able to build libcamera. > > > > > > > > Now that things can be included, perhaps that's reason enough to say > > > > aiming for integration is better. > > > > > > > > > [1]: https://discourse.ubuntu.com/t/noble-numbat-release-schedule/35649 > > > > > > > > It looks like libcamera-0.2 is already included in the noble release, so > > > > package updates into debian look like they get into Ubuntu quite 'fast'. > > > > > > > > I feel like targetting getting /into/ the next Ubuntu LTS with updates > > > > is better than working on /top/ of it. > > > > > > > > The expense/cost is that in between we would no longer support compiling > > > > the master branch (or intermediate releases) with the 'current' LTS of > > > > Ubuntu. > > > > > > > > I could say "Oh well, that probably doesn't matter" ... except ... I use > > > > Ubuntu-22.04 as my main distro ... and I would plan to upgrade at the > > > > next release. > > > > > > > > I'm aware that I can work around this issue by upgrading meson myself. > > > > The question is what will happen to others ... and maybe it's just > > > > something we should bite and help them upgrade meson in the interim. > > > > > > > > > > Well, in a previous life I used to maintain Meson backports for Ubuntu. > > > > > > I'm happy to provide a package (based on the CentOS 9 one) for Ubuntu > > > 22.04 until 24.04 is released if it would help you: > > > https://software.opensuse.org//download.html?project=home%3APharaoh_Atem%3AMeson&package=meson > > > > Is there an official Ubuntu channel for that? If you can make > > 'ubuntu-22.04' support a later meson - I have no argument to prevent this > > being merged already! > > > > No. At this point, it would be unlikely to get updated unless you know > someone who can ship something in jammy-backports. But even then, with > 24.04 coming in a few months, 22.04 has been in its zombie period for > a while now. Typically, the expectation is that you either use later > Ubuntu STS releases (23.10 is a perfectly fine release, as an example) > or backport what you need while you wait for the next LTS. > > If you intend to hold back the patch until after 24.04 releases, then > there is no chance for this to be part of Ubuntu 24.04 itself, which I > think would be a shame. I prepared a backport for meson for Ubuntu > 22.04 because you said it would help you for developing on 22.04. I am I myself am quite capable of updating meson. I was highlighting that there are 'users' of Ubuntu 22.04. Our aim for libcamera has always been to make sure that libcamera can be built on the 'main distributions'. For which we define that as 'the latest LTS of the big distros'. My question above was because it sounded like you could get that solved by fixing the one remaining stuck-in-the-past distro which is blocking us. "> Well, in a previous life I used to maintain Meson backports for Ubuntu." And if you could do that - there would be nothing blocking the patch! > not about to ask you to move to Fedora (which is what I use) or CentOS > Stream 9 (which would be an analogous LTS that does have a recent > enough Meson). > > My only argument at this point is that you can choose to include the > patch now and make a release so it can land in Debian sid now, and > thus make it into Ubuntu 24.04 so that Ubuntu users will benefit from > it. From my perspective, I want this so that Fedora users and later > CentOS 10 users will benefit from it. I also think that Debian/Ubuntu The question for us though is how many people's set ups will we break by updating and merging this patch? I don't know the answer - it could be a handfull or less, which may be worth the 'short term' support cost. Maybe its none (one including me?) Or maybe its more? We don't have a way to know until they shout angrily ... > folks would benefit from it because it's one less thing depending on > essentially unsupported versions of Qt. I don't disagree. Hence earlier - which is the chicken, and which is the egg ... -- Kieran
On Mon, Jan 22, 2024 at 5:31 PM Kieran Bingham <kieran.bingham@ideasonboard.com> wrote: > > Quoting Neal Gompa (2024-01-22 19:55:20) > > On Mon, Jan 22, 2024 at 11:02 AM Kieran Bingham > > <kieran.bingham@ideasonboard.com> wrote: > > > > > > > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > > > > > > > > > > > > > Any thoughts anyone? > > > > > > > > > > > > > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > > > > > > > the case :-( > > > > > > > > > > > > > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > > > > > > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > > > > > > > gets released. > > Is there an urgency? Is there a requirement to move to QT6 for Fedora or > otherwise? > > > > > > > > > > > > > > > Noble (24.04) will have either 1.2.1 or 1.3.1 (there are different > > > > > > > versions in proposed and Release). Either way it will be > 1.2! : > > > > > > > https://launchpad.net/ubuntu/noble/+package/meson > > > > > > > > > > > > > > I would propose that the meson version update is separated from the > > > > > > > patch as a preceeding commit, and could already be resent. Then we can > > > > > > > simply pick these in April. I'd probably say we could merge this in > > > > > > > early April, such that we can make a release of libcamera with that > > > > > > > support merged soon after Ubuntu 24.04 is released on April 25th. > > > > > > > > > > > > > > > > > > > On the flip side, if it's merged and released into Debian before the > > > > > > Ubuntu freeze on Feb 29[1], then it would be part of Ubuntu 24.04 > > > > > > itself. > > > > > > > > > > That's an interesting take too. > > > > > > > > > > Which one is the chicken and which one is the egg? > > > > > > > > > > Our early requirement for meeting the dependencies in the distributions > > > > > was because the distributions themselves were not including libcamera. > > > > > Therefore, users of libcamera /had/ to be able to build libcamera. > > > > > > > > > > Now that things can be included, perhaps that's reason enough to say > > > > > aiming for integration is better. > > > > > > > > > > > [1]: https://discourse.ubuntu.com/t/noble-numbat-release-schedule/35649 > > > > > > > > > > It looks like libcamera-0.2 is already included in the noble release, so > > > > > package updates into debian look like they get into Ubuntu quite 'fast'. > > > > > > > > > > I feel like targetting getting /into/ the next Ubuntu LTS with updates > > > > > is better than working on /top/ of it. > > > > > > > > > > The expense/cost is that in between we would no longer support compiling > > > > > the master branch (or intermediate releases) with the 'current' LTS of > > > > > Ubuntu. > > > > > > > > > > I could say "Oh well, that probably doesn't matter" ... except ... I use > > > > > Ubuntu-22.04 as my main distro ... and I would plan to upgrade at the > > > > > next release. > > > > > > > > > > I'm aware that I can work around this issue by upgrading meson myself. > > > > > The question is what will happen to others ... and maybe it's just > > > > > something we should bite and help them upgrade meson in the interim. > > > > > > > > > > > > > Well, in a previous life I used to maintain Meson backports for Ubuntu. > > > > > > > > I'm happy to provide a package (based on the CentOS 9 one) for Ubuntu > > > > 22.04 until 24.04 is released if it would help you: > > > > https://software.opensuse.org//download.html?project=home%3APharaoh_Atem%3AMeson&package=meson > > > > > > Is there an official Ubuntu channel for that? If you can make > > > 'ubuntu-22.04' support a later meson - I have no argument to prevent this > > > being merged already! > > > > > > > No. At this point, it would be unlikely to get updated unless you know > > someone who can ship something in jammy-backports. But even then, with > > 24.04 coming in a few months, 22.04 has been in its zombie period for > > a while now. Typically, the expectation is that you either use later > > Ubuntu STS releases (23.10 is a perfectly fine release, as an example) > > or backport what you need while you wait for the next LTS. > > > > If you intend to hold back the patch until after 24.04 releases, then > > there is no chance for this to be part of Ubuntu 24.04 itself, which I > > think would be a shame. I prepared a backport for meson for Ubuntu > > 22.04 because you said it would help you for developing on 22.04. I am > > I myself am quite capable of updating meson. I was highlighting that > there are 'users' of Ubuntu 22.04. Our aim for libcamera has always been > to make sure that libcamera can be built on the 'main distributions'. > For which we define that as 'the latest LTS of the big distros'. > > My question above was because it sounded like you could get that solved > by fixing the one remaining stuck-in-the-past distro which is blocking > us. > > "> Well, in a previous life I used to maintain Meson backports for Ubuntu." > > And if you could do that - there would be nothing blocking the patch! > Unfortunately, not in Ubuntu proper. I did it outside of the distribution. It's actually very hard to get a backport of Meson through because it is not behavior-stable across releases. This is incredibly important for Debian and Ubuntu, which is likely why Meson almost never sees official backports. Even CentOS Meson upgrades required a lot of work to bend new releases to be more backward compatible so nothing would break. > > not about to ask you to move to Fedora (which is what I use) or CentOS > > Stream 9 (which would be an analogous LTS that does have a recent > > enough Meson). > > > > My only argument at this point is that you can choose to include the > > patch now and make a release so it can land in Debian sid now, and > > thus make it into Ubuntu 24.04 so that Ubuntu users will benefit from > > it. From my perspective, I want this so that Fedora users and later > > CentOS 10 users will benefit from it. I also think that Debian/Ubuntu > > The question for us though is how many people's set ups will we break by > updating and merging this patch? I don't know the answer - it could be a > handfull or less, which may be worth the 'short term' support cost. > Maybe its none (one including me?) Or maybe its more? We don't have a > way to know until they shout angrily ... > > I think realistically most people use libcamera from the distributions themselves. And in Debian and Ubuntu, libcamera is not updated in stable releases at all. If people are trying to use updated libcamera on those distributions, then they are either 1) building from source or 2) installing a third party build. In both scenarios, handling a meson upgrade is probably reasonable. > > folks would benefit from it because it's one less thing depending on > > essentially unsupported versions of Qt. > > I don't disagree. Hence earlier - which is the chicken, and which is the > egg ... 🤷♂️
On Mon, Jan 22, 2024 at 05:40:42PM -0500, Neal Gompa wrote: > On Mon, Jan 22, 2024 at 5:31 PM Kieran Bingham wrote: > > Quoting Neal Gompa (2024-01-22 19:55:20) > > > On Mon, Jan 22, 2024 at 11:02 AM Kieran Bingham wrote: > > > > > > > > > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > > > > > > > > > > > > > > > Any thoughts anyone? > > > > > > > > > > > > > > > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > > > > > > > > the case :-( > > > > > > > > > > > > > > > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > > > > > > > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > > > > > > > > gets released. > > > > Is there an urgency? Is there a requirement to move to QT6 for Fedora or > > otherwise? > > > > > > > > > > > > > > > > > > Noble (24.04) will have either 1.2.1 or 1.3.1 (there are different > > > > > > > > versions in proposed and Release). Either way it will be > 1.2! : > > > > > > > > https://launchpad.net/ubuntu/noble/+package/meson > > > > > > > > > > > > > > > > I would propose that the meson version update is separated from the > > > > > > > > patch as a preceeding commit, and could already be resent. Then we can > > > > > > > > simply pick these in April. I'd probably say we could merge this in > > > > > > > > early April, such that we can make a release of libcamera with that > > > > > > > > support merged soon after Ubuntu 24.04 is released on April 25th. > > > > > > > > > > > > > > > > > > > > > > On the flip side, if it's merged and released into Debian before the > > > > > > > Ubuntu freeze on Feb 29[1], then it would be part of Ubuntu 24.04 > > > > > > > itself. > > > > > > > > > > > > That's an interesting take too. > > > > > > > > > > > > Which one is the chicken and which one is the egg? > > > > > > > > > > > > Our early requirement for meeting the dependencies in the distributions > > > > > > was because the distributions themselves were not including libcamera. > > > > > > Therefore, users of libcamera /had/ to be able to build libcamera. > > > > > > > > > > > > Now that things can be included, perhaps that's reason enough to say > > > > > > aiming for integration is better. > > > > > > > > > > > > > [1]: https://discourse.ubuntu.com/t/noble-numbat-release-schedule/35649 > > > > > > > > > > > > It looks like libcamera-0.2 is already included in the noble release, so > > > > > > package updates into debian look like they get into Ubuntu quite 'fast'. > > > > > > > > > > > > I feel like targetting getting /into/ the next Ubuntu LTS with updates > > > > > > is better than working on /top/ of it. > > > > > > > > > > > > The expense/cost is that in between we would no longer support compiling > > > > > > the master branch (or intermediate releases) with the 'current' LTS of > > > > > > Ubuntu. > > > > > > > > > > > > I could say "Oh well, that probably doesn't matter" ... except ... I use > > > > > > Ubuntu-22.04 as my main distro ... and I would plan to upgrade at the > > > > > > next release. > > > > > > > > > > > > I'm aware that I can work around this issue by upgrading meson myself. > > > > > > The question is what will happen to others ... and maybe it's just > > > > > > something we should bite and help them upgrade meson in the interim. > > > > > > > > > > > > > > > > Well, in a previous life I used to maintain Meson backports for Ubuntu. > > > > > > > > > > I'm happy to provide a package (based on the CentOS 9 one) for Ubuntu > > > > > 22.04 until 24.04 is released if it would help you: > > > > > https://software.opensuse.org//download.html?project=home%3APharaoh_Atem%3AMeson&package=meson > > > > > > > > Is there an official Ubuntu channel for that? If you can make > > > > 'ubuntu-22.04' support a later meson - I have no argument to prevent this > > > > being merged already! > > > > > > > > > > No. At this point, it would be unlikely to get updated unless you know > > > someone who can ship something in jammy-backports. But even then, with > > > 24.04 coming in a few months, 22.04 has been in its zombie period for > > > a while now. Typically, the expectation is that you either use later > > > Ubuntu STS releases (23.10 is a perfectly fine release, as an example) > > > or backport what you need while you wait for the next LTS. > > > > > > If you intend to hold back the patch until after 24.04 releases, then > > > there is no chance for this to be part of Ubuntu 24.04 itself, which I > > > think would be a shame. I prepared a backport for meson for Ubuntu > > > 22.04 because you said it would help you for developing on 22.04. I am > > > > I myself am quite capable of updating meson. I was highlighting that > > there are 'users' of Ubuntu 22.04. Our aim for libcamera has always been > > to make sure that libcamera can be built on the 'main distributions'. > > For which we define that as 'the latest LTS of the big distros'. > > > > My question above was because it sounded like you could get that solved > > by fixing the one remaining stuck-in-the-past distro which is blocking > > us. > > > > "> Well, in a previous life I used to maintain Meson backports for Ubuntu." > > > > And if you could do that - there would be nothing blocking the patch! > > > > Unfortunately, not in Ubuntu proper. I did it outside of the distribution. > > It's actually very hard to get a backport of Meson through because it > is not behavior-stable across releases. This is incredibly important > for Debian and Ubuntu, which is likely why Meson almost never sees > official backports. Even CentOS Meson upgrades required a lot of work > to bend new releases to be more backward compatible so nothing would > break. I don't know if it can help convincing Ubuntu, but Debian has the following meson versions: bullseye (oldstable) (devel): high-productivity build system 0.56.2-1: all bullseye-backports (devel): high-productivity build system 1.0.0-1.1~bpo11+1: all > > > not about to ask you to move to Fedora (which is what I use) or CentOS > > > Stream 9 (which would be an analogous LTS that does have a recent > > > enough Meson). > > > > > > My only argument at this point is that you can choose to include the > > > patch now and make a release so it can land in Debian sid now, and > > > thus make it into Ubuntu 24.04 so that Ubuntu users will benefit from > > > it. From my perspective, I want this so that Fedora users and later > > > CentOS 10 users will benefit from it. I also think that Debian/Ubuntu > > > > The question for us though is how many people's set ups will we break by > > updating and merging this patch? I don't know the answer - it could be a > > handfull or less, which may be worth the 'short term' support cost. > > Maybe its none (one including me?) Or maybe its more? We don't have a > > way to know until they shout angrily ... > > I think realistically most people use libcamera from the distributions > themselves. And in Debian and Ubuntu, libcamera is not updated in > stable releases at all. If people are trying to use updated libcamera > on those distributions, then they are either 1) building from source > or 2) installing a third party build. In both scenarios, handling a > meson upgrade is probably reasonable. > > > > folks would benefit from it because it's one less thing depending on > > > essentially unsupported versions of Qt. > > > > I don't disagree. Hence earlier - which is the chicken, and which is the > > egg ... > > 🤷♂️
On Mon, 2024-01-22 at 17:40 -0500, Neal Gompa wrote: > On Mon, Jan 22, 2024 at 5:31 PM Kieran Bingham > <kieran.bingham@ideasonboard.com> wrote: > > > > Quoting Neal Gompa (2024-01-22 19:55:20) > > > On Mon, Jan 22, 2024 at 11:02 AM Kieran Bingham > > > <kieran.bingham@ideasonboard.com> wrote: > > > > > > > > > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > > > > > > > > > > > > > > > Any thoughts anyone? > > > > > > > > > > > > > > > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > > > > > > > > the case :-( > > > > > > > > > > > > > > > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > > > > > > > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > > > > > > > > gets released. > > > > Is there an urgency? Is there a requirement to move to QT6 for Fedora or > > otherwise? > > > > > > > > > > > > > > > > > > Noble (24.04) will have either 1.2.1 or 1.3.1 (there are different > > > > > > > > versions in proposed and Release). Either way it will be > 1.2! : > > > > > > > > https://launchpad.net/ubuntu/noble/+package/meson > > > > > > > > > > > > > > > > I would propose that the meson version update is separated from the > > > > > > > > patch as a preceeding commit, and could already be resent. Then we can > > > > > > > > simply pick these in April. I'd probably say we could merge this in > > > > > > > > early April, such that we can make a release of libcamera with that > > > > > > > > support merged soon after Ubuntu 24.04 is released on April 25th. > > > > > > > > > > > > > > > > > > > > > > On the flip side, if it's merged and released into Debian before the > > > > > > > Ubuntu freeze on Feb 29[1], then it would be part of Ubuntu 24.04 > > > > > > > itself. > > > > > > > > > > > > That's an interesting take too. > > > > > > > > > > > > Which one is the chicken and which one is the egg? > > > > > > > > > > > > Our early requirement for meeting the dependencies in the distributions > > > > > > was because the distributions themselves were not including libcamera. > > > > > > Therefore, users of libcamera /had/ to be able to build libcamera. > > > > > > > > > > > > Now that things can be included, perhaps that's reason enough to say > > > > > > aiming for integration is better. > > > > > > > > > > > > > [1]: https://discourse.ubuntu.com/t/noble-numbat-release-schedule/35649 > > > > > > > > > > > > It looks like libcamera-0.2 is already included in the noble release, so > > > > > > package updates into debian look like they get into Ubuntu quite 'fast'. > > > > > > > > > > > > I feel like targetting getting /into/ the next Ubuntu LTS with updates > > > > > > is better than working on /top/ of it. > > > > > > > > > > > > The expense/cost is that in between we would no longer support compiling > > > > > > the master branch (or intermediate releases) with the 'current' LTS of > > > > > > Ubuntu. > > > > > > > > > > > > I could say "Oh well, that probably doesn't matter" ... except ... I use > > > > > > Ubuntu-22.04 as my main distro ... and I would plan to upgrade at the > > > > > > next release. > > > > > > > > > > > > I'm aware that I can work around this issue by upgrading meson myself. > > > > > > The question is what will happen to others ... and maybe it's just > > > > > > something we should bite and help them upgrade meson in the interim. > > > > > > > > > > > > > > > > Well, in a previous life I used to maintain Meson backports for Ubuntu. > > > > > > > > > > I'm happy to provide a package (based on the CentOS 9 one) for Ubuntu > > > > > 22.04 until 24.04 is released if it would help you: > > > > > https://software.opensuse.org//download.html?project=home%3APharaoh_Atem%3AMeson&package=meson > > > > > > > > Is there an official Ubuntu channel for that? If you can make > > > > 'ubuntu-22.04' support a later meson - I have no argument to prevent this > > > > being merged already! > > > > > > > > > > No. At this point, it would be unlikely to get updated unless you know > > > someone who can ship something in jammy-backports. But even then, with > > > 24.04 coming in a few months, 22.04 has been in its zombie period for > > > a while now. Typically, the expectation is that you either use later > > > Ubuntu STS releases (23.10 is a perfectly fine release, as an example) > > > or backport what you need while you wait for the next LTS. > > > > > > If you intend to hold back the patch until after 24.04 releases, then > > > there is no chance for this to be part of Ubuntu 24.04 itself, which I > > > think would be a shame. I prepared a backport for meson for Ubuntu > > > 22.04 because you said it would help you for developing on 22.04. I am > > > > I myself am quite capable of updating meson. I was highlighting that > > there are 'users' of Ubuntu 22.04. Our aim for libcamera has always been > > to make sure that libcamera can be built on the 'main distributions'. > > For which we define that as 'the latest LTS of the big distros'. > > > > My question above was because it sounded like you could get that solved > > by fixing the one remaining stuck-in-the-past distro which is blocking > > us. > > > > "> Well, in a previous life I used to maintain Meson backports for Ubuntu." > > > > And if you could do that - there would be nothing blocking the patch! > > > > Unfortunately, not in Ubuntu proper. I did it outside of the distribution. > > It's actually very hard to get a backport of Meson through because it > is not behavior-stable across releases. This is incredibly important > for Debian and Ubuntu, which is likely why Meson almost never sees > official backports. Even CentOS Meson upgrades required a lot of work > to bend new releases to be more backward compatible so nothing would > break. > > > > not about to ask you to move to Fedora (which is what I use) or CentOS > > > Stream 9 (which would be an analogous LTS that does have a recent > > > enough Meson). > > > > > > My only argument at this point is that you can choose to include the > > > patch now and make a release so it can land in Debian sid now, and > > > thus make it into Ubuntu 24.04 so that Ubuntu users will benefit from > > > it. From my perspective, I want this so that Fedora users and later > > > CentOS 10 users will benefit from it. I also think that Debian/Ubuntu > > > > The question for us though is how many people's set ups will we break by > > updating and merging this patch? I don't know the answer - it could be a > > handfull or less, which may be worth the 'short term' support cost. > > Maybe its none (one including me?) Or maybe its more? We don't have a > > way to know until they shout angrily ... > > > > > > I think realistically most people use libcamera from the distributions > themselves. And in Debian and Ubuntu, libcamera is not updated in > stable releases at all. If people are trying to use updated libcamera > on those distributions, then they are either 1) building from source > or 2) installing a third party build. In both scenarios, handling a > meson upgrade is probably reasonable. > > > > folks would benefit from it because it's one less thing depending on > > > essentially unsupported versions of Qt. > > > > I don't disagree. Hence earlier - which is the chicken, and which is the > > egg ... > > 🤷♂️ > > Why not support both Qt5 and Qt6 for about a year? Drop Qt5 then? Use Qt5 if meson is old, otherwise use Qt6. >
On Mon, Jan 22, 2024 at 7:21 PM Gergo Koteles <soyer@irl.hu> wrote: > > On Mon, 2024-01-22 at 17:40 -0500, Neal Gompa wrote: > > On Mon, Jan 22, 2024 at 5:31 PM Kieran Bingham > > <kieran.bingham@ideasonboard.com> wrote: > > > > > > Quoting Neal Gompa (2024-01-22 19:55:20) > > > > On Mon, Jan 22, 2024 at 11:02 AM Kieran Bingham > > > > <kieran.bingham@ideasonboard.com> wrote: > > > > > > > > > > > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > > > > > > > > > > > > > > > > > Any thoughts anyone? > > > > > > > > > > > > > > > > > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > > > > > > > > > the case :-( > > > > > > > > > > > > > > > > > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > > > > > > > > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > > > > > > > > > gets released. > > > > > > Is there an urgency? Is there a requirement to move to QT6 for Fedora or > > > otherwise? > > > > > > > > > > > > > > > > > > > > > Noble (24.04) will have either 1.2.1 or 1.3.1 (there are different > > > > > > > > > versions in proposed and Release). Either way it will be > 1.2! : > > > > > > > > > https://launchpad.net/ubuntu/noble/+package/meson > > > > > > > > > > > > > > > > > > I would propose that the meson version update is separated from the > > > > > > > > > patch as a preceeding commit, and could already be resent. Then we can > > > > > > > > > simply pick these in April. I'd probably say we could merge this in > > > > > > > > > early April, such that we can make a release of libcamera with that > > > > > > > > > support merged soon after Ubuntu 24.04 is released on April 25th. > > > > > > > > > > > > > > > > > > > > > > > > > On the flip side, if it's merged and released into Debian before the > > > > > > > > Ubuntu freeze on Feb 29[1], then it would be part of Ubuntu 24.04 > > > > > > > > itself. > > > > > > > > > > > > > > That's an interesting take too. > > > > > > > > > > > > > > Which one is the chicken and which one is the egg? > > > > > > > > > > > > > > Our early requirement for meeting the dependencies in the distributions > > > > > > > was because the distributions themselves were not including libcamera. > > > > > > > Therefore, users of libcamera /had/ to be able to build libcamera. > > > > > > > > > > > > > > Now that things can be included, perhaps that's reason enough to say > > > > > > > aiming for integration is better. > > > > > > > > > > > > > > > [1]: https://discourse.ubuntu.com/t/noble-numbat-release-schedule/35649 > > > > > > > > > > > > > > It looks like libcamera-0.2 is already included in the noble release, so > > > > > > > package updates into debian look like they get into Ubuntu quite 'fast'. > > > > > > > > > > > > > > I feel like targetting getting /into/ the next Ubuntu LTS with updates > > > > > > > is better than working on /top/ of it. > > > > > > > > > > > > > > The expense/cost is that in between we would no longer support compiling > > > > > > > the master branch (or intermediate releases) with the 'current' LTS of > > > > > > > Ubuntu. > > > > > > > > > > > > > > I could say "Oh well, that probably doesn't matter" ... except ... I use > > > > > > > Ubuntu-22.04 as my main distro ... and I would plan to upgrade at the > > > > > > > next release. > > > > > > > > > > > > > > I'm aware that I can work around this issue by upgrading meson myself. > > > > > > > The question is what will happen to others ... and maybe it's just > > > > > > > something we should bite and help them upgrade meson in the interim. > > > > > > > > > > > > > > > > > > > Well, in a previous life I used to maintain Meson backports for Ubuntu. > > > > > > > > > > > > I'm happy to provide a package (based on the CentOS 9 one) for Ubuntu > > > > > > 22.04 until 24.04 is released if it would help you: > > > > > > https://software.opensuse.org//download.html?project=home%3APharaoh_Atem%3AMeson&package=meson > > > > > > > > > > Is there an official Ubuntu channel for that? If you can make > > > > > 'ubuntu-22.04' support a later meson - I have no argument to prevent this > > > > > being merged already! > > > > > > > > > > > > > No. At this point, it would be unlikely to get updated unless you know > > > > someone who can ship something in jammy-backports. But even then, with > > > > 24.04 coming in a few months, 22.04 has been in its zombie period for > > > > a while now. Typically, the expectation is that you either use later > > > > Ubuntu STS releases (23.10 is a perfectly fine release, as an example) > > > > or backport what you need while you wait for the next LTS. > > > > > > > > If you intend to hold back the patch until after 24.04 releases, then > > > > there is no chance for this to be part of Ubuntu 24.04 itself, which I > > > > think would be a shame. I prepared a backport for meson for Ubuntu > > > > 22.04 because you said it would help you for developing on 22.04. I am > > > > > > I myself am quite capable of updating meson. I was highlighting that > > > there are 'users' of Ubuntu 22.04. Our aim for libcamera has always been > > > to make sure that libcamera can be built on the 'main distributions'. > > > For which we define that as 'the latest LTS of the big distros'. > > > > > > My question above was because it sounded like you could get that solved > > > by fixing the one remaining stuck-in-the-past distro which is blocking > > > us. > > > > > > "> Well, in a previous life I used to maintain Meson backports for Ubuntu." > > > > > > And if you could do that - there would be nothing blocking the patch! > > > > > > > Unfortunately, not in Ubuntu proper. I did it outside of the distribution. > > > > It's actually very hard to get a backport of Meson through because it > > is not behavior-stable across releases. This is incredibly important > > for Debian and Ubuntu, which is likely why Meson almost never sees > > official backports. Even CentOS Meson upgrades required a lot of work > > to bend new releases to be more backward compatible so nothing would > > break. > > > > > > not about to ask you to move to Fedora (which is what I use) or CentOS > > > > Stream 9 (which would be an analogous LTS that does have a recent > > > > enough Meson). > > > > > > > > My only argument at this point is that you can choose to include the > > > > patch now and make a release so it can land in Debian sid now, and > > > > thus make it into Ubuntu 24.04 so that Ubuntu users will benefit from > > > > it. From my perspective, I want this so that Fedora users and later > > > > CentOS 10 users will benefit from it. I also think that Debian/Ubuntu > > > > > > The question for us though is how many people's set ups will we break by > > > updating and merging this patch? I don't know the answer - it could be a > > > handfull or less, which may be worth the 'short term' support cost. > > > Maybe its none (one including me?) Or maybe its more? We don't have a > > > way to know until they shout angrily ... > > > > > > > > > > I think realistically most people use libcamera from the distributions > > themselves. And in Debian and Ubuntu, libcamera is not updated in > > stable releases at all. If people are trying to use updated libcamera > > on those distributions, then they are either 1) building from source > > or 2) installing a third party build. In both scenarios, handling a > > meson upgrade is probably reasonable. > > > > > > folks would benefit from it because it's one less thing depending on > > > > essentially unsupported versions of Qt. > > > > > > I don't disagree. Hence earlier - which is the chicken, and which is the > > > egg ... > > > > 🤷♂️ > > > > > > Why not support both Qt5 and Qt6 for about a year? Drop Qt5 then? > Use Qt5 if meson is old, otherwise use Qt6. > Two problems with it: 1. It's a lot of complexity for the meson scripts 2. Open Source Qt 5 is EOL. It's super-EOL now that both Qt 6.2 LTS and Qt 6.5 LTS are available. KDE itself requires Qt 6.6 now. Qt 6.7 is coming in March! If I were going to do anything, I'd make qcam conditional on newer meson instead until we can drop that once everyone developing libcamera on Ubuntu 22.04 moves to Ubuntu 24.04. But I still think we should bite the bullet, land this, and get a release that can be included in 24.04. -- 真実はいつも一つ!/ Always, there's only one truth!
On Mon, Jan 22, 2024 at 08:14:10PM -0500, Neal Gompa wrote: > On Mon, Jan 22, 2024 at 7:21 PM Gergo Koteles <soyer@irl.hu> wrote: > > On Mon, 2024-01-22 at 17:40 -0500, Neal Gompa wrote: > > > On Mon, Jan 22, 2024 at 5:31 PM Kieran Bingham wrote: > > > > Quoting Neal Gompa (2024-01-22 19:55:20) > > > > > On Mon, Jan 22, 2024 at 11:02 AM Kieran Bingham wrote: > > > > > > > > > > > > > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > > > > > > > > > > > > > > > > > > > Any thoughts anyone? > > > > > > > > > > > > > > > > > > > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > > > > > > > > > > the case :-( > > > > > > > > > > > > > > > > > > > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > > > > > > > > > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > > > > > > > > > > gets released. > > > > > > > > Is there an urgency? Is there a requirement to move to QT6 for Fedora or > > > > otherwise? > > > > > > > > > > > > > > > > > > > > > > > > Noble (24.04) will have either 1.2.1 or 1.3.1 (there are different > > > > > > > > > > versions in proposed and Release). Either way it will be > 1.2! : > > > > > > > > > > https://launchpad.net/ubuntu/noble/+package/meson > > > > > > > > > > > > > > > > > > > > I would propose that the meson version update is separated from the > > > > > > > > > > patch as a preceeding commit, and could already be resent. Then we can > > > > > > > > > > simply pick these in April. I'd probably say we could merge this in > > > > > > > > > > early April, such that we can make a release of libcamera with that > > > > > > > > > > support merged soon after Ubuntu 24.04 is released on April 25th. > > > > > > > > > > > > > > > > > > > > > > > > > > > > On the flip side, if it's merged and released into Debian before the > > > > > > > > > Ubuntu freeze on Feb 29[1], then it would be part of Ubuntu 24.04 > > > > > > > > > itself. > > > > > > > > > > > > > > > > That's an interesting take too. > > > > > > > > > > > > > > > > Which one is the chicken and which one is the egg? > > > > > > > > > > > > > > > > Our early requirement for meeting the dependencies in the distributions > > > > > > > > was because the distributions themselves were not including libcamera. > > > > > > > > Therefore, users of libcamera /had/ to be able to build libcamera. > > > > > > > > > > > > > > > > Now that things can be included, perhaps that's reason enough to say > > > > > > > > aiming for integration is better. > > > > > > > > > > > > > > > > > [1]: https://discourse.ubuntu.com/t/noble-numbat-release-schedule/35649 > > > > > > > > > > > > > > > > It looks like libcamera-0.2 is already included in the noble release, so > > > > > > > > package updates into debian look like they get into Ubuntu quite 'fast'. > > > > > > > > > > > > > > > > I feel like targetting getting /into/ the next Ubuntu LTS with updates > > > > > > > > is better than working on /top/ of it. > > > > > > > > > > > > > > > > The expense/cost is that in between we would no longer support compiling > > > > > > > > the master branch (or intermediate releases) with the 'current' LTS of > > > > > > > > Ubuntu. > > > > > > > > > > > > > > > > I could say "Oh well, that probably doesn't matter" ... except ... I use > > > > > > > > Ubuntu-22.04 as my main distro ... and I would plan to upgrade at the > > > > > > > > next release. > > > > > > > > > > > > > > > > I'm aware that I can work around this issue by upgrading meson myself. > > > > > > > > The question is what will happen to others ... and maybe it's just > > > > > > > > something we should bite and help them upgrade meson in the interim. > > > > > > > > > > > > > > Well, in a previous life I used to maintain Meson backports for Ubuntu. > > > > > > > > > > > > > > I'm happy to provide a package (based on the CentOS 9 one) for Ubuntu > > > > > > > 22.04 until 24.04 is released if it would help you: > > > > > > > https://software.opensuse.org//download.html?project=home%3APharaoh_Atem%3AMeson&package=meson > > > > > > > > > > > > Is there an official Ubuntu channel for that? If you can make > > > > > > 'ubuntu-22.04' support a later meson - I have no argument to prevent this > > > > > > being merged already! > > > > > > > > > > No. At this point, it would be unlikely to get updated unless you know > > > > > someone who can ship something in jammy-backports. But even then, with > > > > > 24.04 coming in a few months, 22.04 has been in its zombie period for > > > > > a while now. Typically, the expectation is that you either use later > > > > > Ubuntu STS releases (23.10 is a perfectly fine release, as an example) > > > > > or backport what you need while you wait for the next LTS. > > > > > > > > > > If you intend to hold back the patch until after 24.04 releases, then > > > > > there is no chance for this to be part of Ubuntu 24.04 itself, which I > > > > > think would be a shame. I prepared a backport for meson for Ubuntu > > > > > 22.04 because you said it would help you for developing on 22.04. I am > > > > > > > > I myself am quite capable of updating meson. I was highlighting that > > > > there are 'users' of Ubuntu 22.04. Our aim for libcamera has always been > > > > to make sure that libcamera can be built on the 'main distributions'. > > > > For which we define that as 'the latest LTS of the big distros'. > > > > > > > > My question above was because it sounded like you could get that solved > > > > by fixing the one remaining stuck-in-the-past distro which is blocking > > > > us. > > > > > > > > "> Well, in a previous life I used to maintain Meson backports for Ubuntu." > > > > > > > > And if you could do that - there would be nothing blocking the patch! > > > > > > Unfortunately, not in Ubuntu proper. I did it outside of the distribution. > > > > > > It's actually very hard to get a backport of Meson through because it > > > is not behavior-stable across releases. This is incredibly important > > > for Debian and Ubuntu, which is likely why Meson almost never sees > > > official backports. Even CentOS Meson upgrades required a lot of work > > > to bend new releases to be more backward compatible so nothing would > > > break. > > > > > > > > not about to ask you to move to Fedora (which is what I use) or CentOS > > > > > Stream 9 (which would be an analogous LTS that does have a recent > > > > > enough Meson). > > > > > > > > > > My only argument at this point is that you can choose to include the > > > > > patch now and make a release so it can land in Debian sid now, and > > > > > thus make it into Ubuntu 24.04 so that Ubuntu users will benefit from > > > > > it. From my perspective, I want this so that Fedora users and later > > > > > CentOS 10 users will benefit from it. I also think that Debian/Ubuntu > > > > > > > > The question for us though is how many people's set ups will we break by > > > > updating and merging this patch? I don't know the answer - it could be a > > > > handfull or less, which may be worth the 'short term' support cost. > > > > Maybe its none (one including me?) Or maybe its more? We don't have a > > > > way to know until they shout angrily ... > > > > > > I think realistically most people use libcamera from the distributions > > > themselves. And in Debian and Ubuntu, libcamera is not updated in > > > stable releases at all. If people are trying to use updated libcamera > > > on those distributions, then they are either 1) building from source > > > or 2) installing a third party build. In both scenarios, handling a > > > meson upgrade is probably reasonable. > > > > > > > > folks would benefit from it because it's one less thing depending on > > > > > essentially unsupported versions of Qt. > > > > > > > > I don't disagree. Hence earlier - which is the chicken, and which is the > > > > egg ... > > > > > > 🤷♂️ > > > > Why not support both Qt5 and Qt6 for about a year? Drop Qt5 then? > > Use Qt5 if meson is old, otherwise use Qt6. > > Two problems with it: > > 1. It's a lot of complexity for the meson scripts > 2. Open Source Qt 5 is EOL. It's super-EOL now that both Qt 6.2 LTS > and Qt 6.5 LTS are available. KDE itself requires Qt 6.6 now. Qt 6.7 > is coming in March! > > If I were going to do anything, I'd make qcam conditional on newer > meson instead until we can drop that once everyone developing > libcamera on Ubuntu 22.04 moves to Ubuntu 24.04. meson doesn't allow using features of versions higher than the one listed in the project() call, even if you make such usage conditional on the meson version. If we're lucky, we'll only get a warning with older meson versions, this could be tested if desired. > But I still think we should bite the bullet, land this, and get a > release that can be included in 24.04. I still don't get the urgency to be honest. Yes, Qt5 is EOL, but it will still be shipped by Ubuntu 24.04, won't it ? Beside, qcam is meant to be a test application for development only. And if it's really important for Ubuntu 24.04 to ship a Qt6-based qcam, why can't it bump the libcamera version later ? And what about users who rely on Qt5, don't they deserve more than a week notice before we switch ?
On Mon, Jan 22, 2024 at 8:31 PM Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote: > > On Mon, Jan 22, 2024 at 08:14:10PM -0500, Neal Gompa wrote: > > On Mon, Jan 22, 2024 at 7:21 PM Gergo Koteles <soyer@irl.hu> wrote: > > > On Mon, 2024-01-22 at 17:40 -0500, Neal Gompa wrote: > > > > On Mon, Jan 22, 2024 at 5:31 PM Kieran Bingham wrote: > > > > > Quoting Neal Gompa (2024-01-22 19:55:20) > > > > > > On Mon, Jan 22, 2024 at 11:02 AM Kieran Bingham wrote: > > > > > > > > > > > > > > > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > > > > > > > > > > > > > > > > > > > > > Any thoughts anyone? > > > > > > > > > > > > > > > > > > > > > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > > > > > > > > > > > the case :-( > > > > > > > > > > > > > > > > > > > > > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > > > > > > > > > > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > > > > > > > > > > > gets released. > > > > > > > > > > Is there an urgency? Is there a requirement to move to QT6 for Fedora or > > > > > otherwise? > > > > > > > > > > > > > > > > > > > > > > > > > > > Noble (24.04) will have either 1.2.1 or 1.3.1 (there are different > > > > > > > > > > > versions in proposed and Release). Either way it will be > 1.2! : > > > > > > > > > > > https://launchpad.net/ubuntu/noble/+package/meson > > > > > > > > > > > > > > > > > > > > > > I would propose that the meson version update is separated from the > > > > > > > > > > > patch as a preceeding commit, and could already be resent. Then we can > > > > > > > > > > > simply pick these in April. I'd probably say we could merge this in > > > > > > > > > > > early April, such that we can make a release of libcamera with that > > > > > > > > > > > support merged soon after Ubuntu 24.04 is released on April 25th. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On the flip side, if it's merged and released into Debian before the > > > > > > > > > > Ubuntu freeze on Feb 29[1], then it would be part of Ubuntu 24.04 > > > > > > > > > > itself. > > > > > > > > > > > > > > > > > > That's an interesting take too. > > > > > > > > > > > > > > > > > > Which one is the chicken and which one is the egg? > > > > > > > > > > > > > > > > > > Our early requirement for meeting the dependencies in the distributions > > > > > > > > > was because the distributions themselves were not including libcamera. > > > > > > > > > Therefore, users of libcamera /had/ to be able to build libcamera. > > > > > > > > > > > > > > > > > > Now that things can be included, perhaps that's reason enough to say > > > > > > > > > aiming for integration is better. > > > > > > > > > > > > > > > > > > > [1]: https://discourse.ubuntu.com/t/noble-numbat-release-schedule/35649 > > > > > > > > > > > > > > > > > > It looks like libcamera-0.2 is already included in the noble release, so > > > > > > > > > package updates into debian look like they get into Ubuntu quite 'fast'. > > > > > > > > > > > > > > > > > > I feel like targetting getting /into/ the next Ubuntu LTS with updates > > > > > > > > > is better than working on /top/ of it. > > > > > > > > > > > > > > > > > > The expense/cost is that in between we would no longer support compiling > > > > > > > > > the master branch (or intermediate releases) with the 'current' LTS of > > > > > > > > > Ubuntu. > > > > > > > > > > > > > > > > > > I could say "Oh well, that probably doesn't matter" ... except ... I use > > > > > > > > > Ubuntu-22.04 as my main distro ... and I would plan to upgrade at the > > > > > > > > > next release. > > > > > > > > > > > > > > > > > > I'm aware that I can work around this issue by upgrading meson myself. > > > > > > > > > The question is what will happen to others ... and maybe it's just > > > > > > > > > something we should bite and help them upgrade meson in the interim. > > > > > > > > > > > > > > > > Well, in a previous life I used to maintain Meson backports for Ubuntu. > > > > > > > > > > > > > > > > I'm happy to provide a package (based on the CentOS 9 one) for Ubuntu > > > > > > > > 22.04 until 24.04 is released if it would help you: > > > > > > > > https://software.opensuse.org//download.html?project=home%3APharaoh_Atem%3AMeson&package=meson > > > > > > > > > > > > > > Is there an official Ubuntu channel for that? If you can make > > > > > > > 'ubuntu-22.04' support a later meson - I have no argument to prevent this > > > > > > > being merged already! > > > > > > > > > > > > No. At this point, it would be unlikely to get updated unless you know > > > > > > someone who can ship something in jammy-backports. But even then, with > > > > > > 24.04 coming in a few months, 22.04 has been in its zombie period for > > > > > > a while now. Typically, the expectation is that you either use later > > > > > > Ubuntu STS releases (23.10 is a perfectly fine release, as an example) > > > > > > or backport what you need while you wait for the next LTS. > > > > > > > > > > > > If you intend to hold back the patch until after 24.04 releases, then > > > > > > there is no chance for this to be part of Ubuntu 24.04 itself, which I > > > > > > think would be a shame. I prepared a backport for meson for Ubuntu > > > > > > 22.04 because you said it would help you for developing on 22.04. I am > > > > > > > > > > I myself am quite capable of updating meson. I was highlighting that > > > > > there are 'users' of Ubuntu 22.04. Our aim for libcamera has always been > > > > > to make sure that libcamera can be built on the 'main distributions'. > > > > > For which we define that as 'the latest LTS of the big distros'. > > > > > > > > > > My question above was because it sounded like you could get that solved > > > > > by fixing the one remaining stuck-in-the-past distro which is blocking > > > > > us. > > > > > > > > > > "> Well, in a previous life I used to maintain Meson backports for Ubuntu." > > > > > > > > > > And if you could do that - there would be nothing blocking the patch! > > > > > > > > Unfortunately, not in Ubuntu proper. I did it outside of the distribution. > > > > > > > > It's actually very hard to get a backport of Meson through because it > > > > is not behavior-stable across releases. This is incredibly important > > > > for Debian and Ubuntu, which is likely why Meson almost never sees > > > > official backports. Even CentOS Meson upgrades required a lot of work > > > > to bend new releases to be more backward compatible so nothing would > > > > break. > > > > > > > > > > not about to ask you to move to Fedora (which is what I use) or CentOS > > > > > > Stream 9 (which would be an analogous LTS that does have a recent > > > > > > enough Meson). > > > > > > > > > > > > My only argument at this point is that you can choose to include the > > > > > > patch now and make a release so it can land in Debian sid now, and > > > > > > thus make it into Ubuntu 24.04 so that Ubuntu users will benefit from > > > > > > it. From my perspective, I want this so that Fedora users and later > > > > > > CentOS 10 users will benefit from it. I also think that Debian/Ubuntu > > > > > > > > > > The question for us though is how many people's set ups will we break by > > > > > updating and merging this patch? I don't know the answer - it could be a > > > > > handfull or less, which may be worth the 'short term' support cost. > > > > > Maybe its none (one including me?) Or maybe its more? We don't have a > > > > > way to know until they shout angrily ... > > > > > > > > I think realistically most people use libcamera from the distributions > > > > themselves. And in Debian and Ubuntu, libcamera is not updated in > > > > stable releases at all. If people are trying to use updated libcamera > > > > on those distributions, then they are either 1) building from source > > > > or 2) installing a third party build. In both scenarios, handling a > > > > meson upgrade is probably reasonable. > > > > > > > > > > folks would benefit from it because it's one less thing depending on > > > > > > essentially unsupported versions of Qt. > > > > > > > > > > I don't disagree. Hence earlier - which is the chicken, and which is the > > > > > egg ... > > > > > > > > 🤷♂️ > > > > > > Why not support both Qt5 and Qt6 for about a year? Drop Qt5 then? > > > Use Qt5 if meson is old, otherwise use Qt6. > > > > Two problems with it: > > > > 1. It's a lot of complexity for the meson scripts > > 2. Open Source Qt 5 is EOL. It's super-EOL now that both Qt 6.2 LTS > > and Qt 6.5 LTS are available. KDE itself requires Qt 6.6 now. Qt 6.7 > > is coming in March! > > > > If I were going to do anything, I'd make qcam conditional on newer > > meson instead until we can drop that once everyone developing > > libcamera on Ubuntu 22.04 moves to Ubuntu 24.04. > > meson doesn't allow using features of versions higher than the one > listed in the project() call, even if you make such usage conditional on > the meson version. If we're lucky, we'll only get a warning with older > meson versions, this could be tested if desired. > I've done it before in libportal, it's not out of the question. Mesa does this too for some features. It's awkward to do, but it's possible. > > But I still think we should bite the bullet, land this, and get a > > release that can be included in 24.04. > > I still don't get the urgency to be honest. Yes, Qt5 is EOL, but it will > still be shipped by Ubuntu 24.04, won't it ? Beside, qcam is meant to be > a test application for development only. And if it's really important > for Ubuntu 24.04 to ship a Qt6-based qcam, why can't it bump the > libcamera version later ? And what about users who rely on Qt5, don't > they deserve more than a week notice before we switch ? > That assumes that Ubuntu updates libcamera post-freeze. Judging by what they did with PipeWire, I don't think that will happen. https://packages.ubuntu.com/search?suite=all§ion=all&arch=any&keywords=pipewire&searchon=sourcenames I'm saying it's important to everyone *using* Ubuntu, but that doesn't mean that Ubuntu *itself* cares about it. Right now, nobody uses libcamera for anything meaningful in the main Linux distributions. Someday, that will change as applications use PipeWire for camera access. I don't think the switch from Qt5 to Qt6 for qcam would be game-breaking for people, it should generally be an improvement, especially since Qt 6 has significantly better Wayland support. Fedora, RHEL/CentOS, Ubuntu, and Debian have desktops that default or exclusively use Wayland too. The main issue brought up in this thread isn't about Qt though, it's about Meson. -- 真実はいつも一つ!/ Always, there's only one truth!
On Tue, Jan 23, 2024 at 5:01 PM Neal Gompa <neal@gompa.dev> wrote: > > On Mon, Jan 22, 2024 at 8:31 PM Laurent Pinchart > <laurent.pinchart@ideasonboard.com> wrote: > > > > On Mon, Jan 22, 2024 at 08:14:10PM -0500, Neal Gompa wrote: > > > On Mon, Jan 22, 2024 at 7:21 PM Gergo Koteles <soyer@irl.hu> wrote: > > > > On Mon, 2024-01-22 at 17:40 -0500, Neal Gompa wrote: > > > > > On Mon, Jan 22, 2024 at 5:31 PM Kieran Bingham wrote: > > > > > > Quoting Neal Gompa (2024-01-22 19:55:20) > > > > > > > On Mon, Jan 22, 2024 at 11:02 AM Kieran Bingham wrote: > > > > > > > > > > > > > > > > > > > > > > So it's just Ubuntu/Canonical holding us back here ... > > > > > > > > > > > > > > > > > > > > > > > > > > > > Any thoughts anyone? > > > > > > > > > > > > > > > > > > > > > > > > > > I was hoping jammy-backports would help us, but that doesn't seem to be > > > > > > > > > > > > > the case :-( > > > > > > > > > > > > > > > > > > > > > > > > > > As there doesn't seem to be an urgency to switch to Qt 6 (unless I'm > > > > > > > > > > > > > missing something), I'm tempted to propose waiting until Ubuntu 24.04 > > > > > > > > > > > > > gets released. > > > > > > > > > > > > Is there an urgency? Is there a requirement to move to QT6 for Fedora or > > > > > > otherwise? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Noble (24.04) will have either 1.2.1 or 1.3.1 (there are different > > > > > > > > > > > > versions in proposed and Release). Either way it will be > 1.2! : > > > > > > > > > > > > https://launchpad.net/ubuntu/noble/+package/meson > > > > > > > > > > > > > > > > > > > > > > > > I would propose that the meson version update is separated from the > > > > > > > > > > > > patch as a preceeding commit, and could already be resent. Then we can > > > > > > > > > > > > simply pick these in April. I'd probably say we could merge this in > > > > > > > > > > > > early April, such that we can make a release of libcamera with that > > > > > > > > > > > > support merged soon after Ubuntu 24.04 is released on April 25th. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On the flip side, if it's merged and released into Debian before the > > > > > > > > > > > Ubuntu freeze on Feb 29[1], then it would be part of Ubuntu 24.04 > > > > > > > > > > > itself. > > > > > > > > > > > > > > > > > > > > That's an interesting take too. > > > > > > > > > > > > > > > > > > > > Which one is the chicken and which one is the egg? > > > > > > > > > > > > > > > > > > > > Our early requirement for meeting the dependencies in the distributions > > > > > > > > > > was because the distributions themselves were not including libcamera. > > > > > > > > > > Therefore, users of libcamera /had/ to be able to build libcamera. > > > > > > > > > > > > > > > > > > > > Now that things can be included, perhaps that's reason enough to say > > > > > > > > > > aiming for integration is better. > > > > > > > > > > > > > > > > > > > > > [1]: https://discourse.ubuntu.com/t/noble-numbat-release-schedule/35649 > > > > > > > > > > > > > > > > > > > > It looks like libcamera-0.2 is already included in the noble release, so > > > > > > > > > > package updates into debian look like they get into Ubuntu quite 'fast'. > > > > > > > > > > > > > > > > > > > > I feel like targetting getting /into/ the next Ubuntu LTS with updates > > > > > > > > > > is better than working on /top/ of it. > > > > > > > > > > > > > > > > > > > > The expense/cost is that in between we would no longer support compiling > > > > > > > > > > the master branch (or intermediate releases) with the 'current' LTS of > > > > > > > > > > Ubuntu. > > > > > > > > > > > > > > > > > > > > I could say "Oh well, that probably doesn't matter" ... except ... I use > > > > > > > > > > Ubuntu-22.04 as my main distro ... and I would plan to upgrade at the > > > > > > > > > > next release. > > > > > > > > > > > > > > > > > > > > I'm aware that I can work around this issue by upgrading meson myself. > > > > > > > > > > The question is what will happen to others ... and maybe it's just > > > > > > > > > > something we should bite and help them upgrade meson in the interim. > > > > > > > > > > > > > > > > > > Well, in a previous life I used to maintain Meson backports for Ubuntu. > > > > > > > > > > > > > > > > > > I'm happy to provide a package (based on the CentOS 9 one) for Ubuntu > > > > > > > > > 22.04 until 24.04 is released if it would help you: > > > > > > > > > https://software.opensuse.org//download.html?project=home%3APharaoh_Atem%3AMeson&package=meson > > > > > > > > > > > > > > > > Is there an official Ubuntu channel for that? If you can make > > > > > > > > 'ubuntu-22.04' support a later meson - I have no argument to prevent this > > > > > > > > being merged already! > > > > > > > > > > > > > > No. At this point, it would be unlikely to get updated unless you know > > > > > > > someone who can ship something in jammy-backports. But even then, with > > > > > > > 24.04 coming in a few months, 22.04 has been in its zombie period for > > > > > > > a while now. Typically, the expectation is that you either use later > > > > > > > Ubuntu STS releases (23.10 is a perfectly fine release, as an example) > > > > > > > or backport what you need while you wait for the next LTS. > > > > > > > > > > > > > > If you intend to hold back the patch until after 24.04 releases, then > > > > > > > there is no chance for this to be part of Ubuntu 24.04 itself, which I > > > > > > > think would be a shame. I prepared a backport for meson for Ubuntu > > > > > > > 22.04 because you said it would help you for developing on 22.04. I am > > > > > > > > > > > > I myself am quite capable of updating meson. I was highlighting that > > > > > > there are 'users' of Ubuntu 22.04. Our aim for libcamera has always been > > > > > > to make sure that libcamera can be built on the 'main distributions'. > > > > > > For which we define that as 'the latest LTS of the big distros'. > > > > > > > > > > > > My question above was because it sounded like you could get that solved > > > > > > by fixing the one remaining stuck-in-the-past distro which is blocking > > > > > > us. > > > > > > > > > > > > "> Well, in a previous life I used to maintain Meson backports for Ubuntu." > > > > > > > > > > > > And if you could do that - there would be nothing blocking the patch! > > > > > > > > > > Unfortunately, not in Ubuntu proper. I did it outside of the distribution. > > > > > > > > > > It's actually very hard to get a backport of Meson through because it > > > > > is not behavior-stable across releases. This is incredibly important > > > > > for Debian and Ubuntu, which is likely why Meson almost never sees > > > > > official backports. Even CentOS Meson upgrades required a lot of work > > > > > to bend new releases to be more backward compatible so nothing would > > > > > break. > > > > > > > > > > > > not about to ask you to move to Fedora (which is what I use) or CentOS > > > > > > > Stream 9 (which would be an analogous LTS that does have a recent > > > > > > > enough Meson). > > > > > > > > > > > > > > My only argument at this point is that you can choose to include the > > > > > > > patch now and make a release so it can land in Debian sid now, and > > > > > > > thus make it into Ubuntu 24.04 so that Ubuntu users will benefit from > > > > > > > it. From my perspective, I want this so that Fedora users and later > > > > > > > CentOS 10 users will benefit from it. I also think that Debian/Ubuntu > > > > > > > > > > > > The question for us though is how many people's set ups will we break by > > > > > > updating and merging this patch? I don't know the answer - it could be a > > > > > > handfull or less, which may be worth the 'short term' support cost. > > > > > > Maybe its none (one including me?) Or maybe its more? We don't have a > > > > > > way to know until they shout angrily ... > > > > > > > > > > I think realistically most people use libcamera from the distributions > > > > > themselves. And in Debian and Ubuntu, libcamera is not updated in > > > > > stable releases at all. If people are trying to use updated libcamera > > > > > on those distributions, then they are either 1) building from source > > > > > or 2) installing a third party build. In both scenarios, handling a > > > > > meson upgrade is probably reasonable. > > > > > > > > > > > > folks would benefit from it because it's one less thing depending on > > > > > > > essentially unsupported versions of Qt. > > > > > > > > > > > > I don't disagree. Hence earlier - which is the chicken, and which is the > > > > > > egg ... > > > > > > > > > > 🤷♂️ > > > > > > > > Why not support both Qt5 and Qt6 for about a year? Drop Qt5 then? > > > > Use Qt5 if meson is old, otherwise use Qt6. > > > > > > Two problems with it: > > > > > > 1. It's a lot of complexity for the meson scripts > > > 2. Open Source Qt 5 is EOL. It's super-EOL now that both Qt 6.2 LTS > > > and Qt 6.5 LTS are available. KDE itself requires Qt 6.6 now. Qt 6.7 > > > is coming in March! > > > > > > If I were going to do anything, I'd make qcam conditional on newer > > > meson instead until we can drop that once everyone developing > > > libcamera on Ubuntu 22.04 moves to Ubuntu 24.04. > > > > meson doesn't allow using features of versions higher than the one > > listed in the project() call, even if you make such usage conditional on > > the meson version. If we're lucky, we'll only get a warning with older > > meson versions, this could be tested if desired. > > > > I've done it before in libportal, it's not out of the question. Mesa > does this too for some features. It's awkward to do, but it's > possible. > > > > But I still think we should bite the bullet, land this, and get a > > > release that can be included in 24.04. > > > > I still don't get the urgency to be honest. Yes, Qt5 is EOL, but it will > > still be shipped by Ubuntu 24.04, won't it ? Beside, qcam is meant to be > > a test application for development only. And if it's really important > > for Ubuntu 24.04 to ship a Qt6-based qcam, why can't it bump the > > libcamera version later ? And what about users who rely on Qt5, don't > > they deserve more than a week notice before we switch ? > > > > That assumes that Ubuntu updates libcamera post-freeze. Judging by > what they did with PipeWire, I don't think that will happen. > > https://packages.ubuntu.com/search?suite=all§ion=all&arch=any&keywords=pipewire&searchon=sourcenames > > I'm saying it's important to everyone *using* Ubuntu, but that doesn't > mean that Ubuntu *itself* cares about it. Right now, nobody uses > libcamera for anything meaningful in the main Linux distributions. > Someday, that will change as applications use PipeWire for camera > access. > > I don't think the switch from Qt5 to Qt6 for qcam would be > game-breaking for people, it should generally be an improvement, > especially since Qt 6 has significantly better Wayland support. > Fedora, RHEL/CentOS, Ubuntu, and Debian have desktops that default or > exclusively use Wayland too. > > The main issue brought up in this thread isn't about Qt though, it's > about Meson. > In any case, you can choose to wait as long as you like. I've backported this to Fedora's package. I was hoping it'd land now, but I'm fine with you waiting until after Ubuntu 24.04 releases if you wish to do so. -- 真実はいつも一つ!/ Always, there's only one truth!
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. However ... > Signed-off-by: Neal Gompa <neal@gompa.dev> > --- > README.rst | 2 +- > meson.build | 2 +- > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > 3 files changed, 15 insertions(+), 34 deletions(-) > > diff --git a/README.rst b/README.rst > index 315738ee..6f1c9302 100644 > --- a/README.rst > +++ b/README.rst > @@ -88,7 +88,7 @@ for cam: [optional] > - libsdl2-dev: Enables the SDL sink > > for qcam: [optional] > - libtiff-dev qtbase5-dev qttools5-dev-tools > + libtiff-dev qt6-base-dev qt6-tools-dev-tools Having installed these packages - I still can't enable qcam. So we must be missing some more dependencies that need to be listed here. -- Kieran > > for tracing with lttng: [optional] > liblttng-ust-dev python3-jinja2 lttng-tools > diff --git a/meson.build b/meson.build > index cb6b666a..4c315e2a 100644 > --- a/meson.build > +++ b/meson.build > @@ -1,7 +1,7 @@ > # SPDX-License-Identifier: CC0-1.0 > > project('libcamera', 'c', 'cpp', > - meson_version : '>= 0.60', > + meson_version : '>= 0.63', > version : '0.2.0', > default_options : [ > 'werror=true', > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > index 6cf4c171..c7fcfbeb 100644 > --- a/src/apps/qcam/meson.build > +++ b/src/apps/qcam/meson.build > @@ -1,13 +1,13 @@ > # SPDX-License-Identifier: CC0-1.0 > > -qt5 = import('qt5') > -qt5_dep = dependency('qt5', > +qt6 = import('qt6') > +qt6_dep = dependency('qt6', > method : 'pkg-config', > - modules : ['Core', 'Gui', 'Widgets'], > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > required : get_option('qcam'), > - version : '>=5.4') > + version : '>=6.2') > > -if not qt5_dep.found() > +if not qt6_dep.found() > qcam_enabled = false > subdir_done() > endif > @@ -20,46 +20,27 @@ qcam_sources = files([ > 'main.cpp', > 'main_window.cpp', > 'message_handler.cpp', > + 'viewfinder_gl.cpp', > 'viewfinder_qt.cpp', > ]) > > qcam_moc_headers = files([ > 'cam_select_dialog.h', > 'main_window.h', > + 'viewfinder_gl.h', > 'viewfinder_qt.h', > ]) > > qcam_resources = files([ > 'assets/feathericons/feathericons.qrc', > + 'assets/shader/shaders.qrc', > ]) > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > - dependencies : qt5_dep, args : '-fPIC') > - qcam_sources += files([ > - 'viewfinder_gl.cpp', > - ]) > - qcam_moc_headers += files([ > - 'viewfinder_gl.h', > - ]) > - qcam_resources += files([ > - 'assets/shader/shaders.qrc' > - ]) > -endif > - > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > - qt5_dep.version().version_compare('<5.13')) or > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > - qt5_cpp_args += ['-Wno-deprecated-copy'] > -endif > - > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > qresources : qcam_resources, > - dependencies : qt5_dep) > + dependencies : qt6_dep) > > qcam = executable('qcam', qcam_sources, resources, > install : true, > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > libatomic, > libcamera_public, > libtiff, > - qt5_dep, > + qt6_dep, > ], > - cpp_args : qt5_cpp_args) > + cpp_args : qt6_cpp_args) > -- > 2.43.0 >
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. > However ... > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > --- > > README.rst | 2 +- > > meson.build | 2 +- > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > diff --git a/README.rst b/README.rst > > index 315738ee..6f1c9302 100644 > > --- a/README.rst > > +++ b/README.rst > > @@ -88,7 +88,7 @@ for cam: [optional] > > - libsdl2-dev: Enables the SDL sink > > > > for qcam: [optional] > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > Having installed these packages - I still can't enable qcam. So we must > be missing some more dependencies that need to be listed here. > > > -- > Kieran > > > > > > for tracing with lttng: [optional] > > liblttng-ust-dev python3-jinja2 lttng-tools > > diff --git a/meson.build b/meson.build > > index cb6b666a..4c315e2a 100644 > > --- a/meson.build > > +++ b/meson.build > > @@ -1,7 +1,7 @@ > > # SPDX-License-Identifier: CC0-1.0 > > > > project('libcamera', 'c', 'cpp', > > - meson_version : '>= 0.60', > > + meson_version : '>= 0.63', > > version : '0.2.0', > > default_options : [ > > 'werror=true', > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > index 6cf4c171..c7fcfbeb 100644 > > --- a/src/apps/qcam/meson.build > > +++ b/src/apps/qcam/meson.build > > @@ -1,13 +1,13 @@ > > # SPDX-License-Identifier: CC0-1.0 > > > > -qt5 = import('qt5') > > -qt5_dep = dependency('qt5', > > +qt6 = import('qt6') > > +qt6_dep = dependency('qt6', > > method : 'pkg-config', > > - modules : ['Core', 'Gui', 'Widgets'], > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > required : get_option('qcam'), > > - version : '>=5.4') > > + version : '>=6.2') > > > > -if not qt5_dep.found() > > +if not qt6_dep.found() > > qcam_enabled = false > > subdir_done() > > endif > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > 'main.cpp', > > 'main_window.cpp', > > 'message_handler.cpp', > > + 'viewfinder_gl.cpp', > > 'viewfinder_qt.cpp', > > ]) > > > > qcam_moc_headers = files([ > > 'cam_select_dialog.h', > > 'main_window.h', > > + 'viewfinder_gl.h', > > 'viewfinder_qt.h', > > ]) > > > > qcam_resources = files([ > > 'assets/feathericons/feathericons.qrc', > > + 'assets/shader/shaders.qrc', > > ]) > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > - dependencies : qt5_dep, args : '-fPIC') > > - qcam_sources += files([ > > - 'viewfinder_gl.cpp', > > - ]) > > - qcam_moc_headers += files([ > > - 'viewfinder_gl.h', > > - ]) > > - qcam_resources += files([ > > - 'assets/shader/shaders.qrc' > > - ]) > > -endif > > - > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > - qt5_dep.version().version_compare('<5.13')) or > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > -endif > > - > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > qresources : qcam_resources, > > - dependencies : qt5_dep) > > + dependencies : qt6_dep) > > > > qcam = executable('qcam', qcam_sources, resources, > > install : true, > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > libatomic, > > libcamera_public, > > libtiff, > > - qt5_dep, > > + qt6_dep, > > ], > > - cpp_args : qt5_cpp_args) > > + cpp_args : qt6_cpp_args)
On Wed, Apr 17, 2024 at 11:42 AM Laurent Pinchart <laurent.pinchart@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/ The build dependencies I used were the ones in the readme. You can see for yourself in the "debbuild" conditional for buildrequires: https://build.opensuse.org/projects/home:Pharaoh_Atem:libcamera/packages/libcamera/files/libcamera.spec?expand=1
Quoting Neal Gompa (2024-04-17 20:58:16) > On Wed, Apr 17, 2024 at 11:42 AM Laurent Pinchart > <laurent.pinchart@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. -- Kieran > > The build dependencies I used were the ones in the readme. > > You can see for yourself in the "debbuild" conditional for > buildrequires: https://build.opensuse.org/projects/home:Pharaoh_Atem:libcamera/packages/libcamera/files/libcamera.spec?expand=1 > > > > -- > 真実はいつも一つ!/ Always, there's only one truth!
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@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@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@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. --- Regards Kieran > -- > Kieran > > > > > > The build dependencies I used were the ones in the readme. > > > > You can see for yourself in the "debbuild" conditional for > > buildrequires: https://build.opensuse.org/projects/home:Pharaoh_Atem:libcamera/packages/libcamera/files/libcamera.spec?expand=1 > > > > > > > > -- > > 真実はいつも一つ!/ Always, there's only one truth!
On Wed, Apr 17, 2024 at 4:34 PM Kieran Bingham <kieran.bingham@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@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@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@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. -- 真実はいつも一つ!/ Always, there's only one truth!
Quoting Neal Gompa (2024-04-17 21:41:55) > On Wed, Apr 17, 2024 at 4:34 PM Kieran Bingham > <kieran.bingham@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@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@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@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 ... -- Kieran
On Wed, Apr 17, 2024 at 5:02 PM Kieran Bingham <kieran.bingham@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@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@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@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@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...
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. It seems that the upgrade to Qt6 also breaks the positioning of the 'No Image' background in qcam when you stop the camera. Could you check that please? -- Kieran > > Signed-off-by: Neal Gompa <neal@gompa.dev> > --- > README.rst | 2 +- > meson.build | 2 +- > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > 3 files changed, 15 insertions(+), 34 deletions(-) > > diff --git a/README.rst b/README.rst > index 315738ee..6f1c9302 100644 > --- a/README.rst > +++ b/README.rst > @@ -88,7 +88,7 @@ for cam: [optional] > - libsdl2-dev: Enables the SDL sink > > for qcam: [optional] > - libtiff-dev qtbase5-dev qttools5-dev-tools > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > for tracing with lttng: [optional] > liblttng-ust-dev python3-jinja2 lttng-tools > diff --git a/meson.build b/meson.build > index cb6b666a..4c315e2a 100644 > --- a/meson.build > +++ b/meson.build > @@ -1,7 +1,7 @@ > # SPDX-License-Identifier: CC0-1.0 > > project('libcamera', 'c', 'cpp', > - meson_version : '>= 0.60', > + meson_version : '>= 0.63', > version : '0.2.0', > default_options : [ > 'werror=true', > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > index 6cf4c171..c7fcfbeb 100644 > --- a/src/apps/qcam/meson.build > +++ b/src/apps/qcam/meson.build > @@ -1,13 +1,13 @@ > # SPDX-License-Identifier: CC0-1.0 > > -qt5 = import('qt5') > -qt5_dep = dependency('qt5', > +qt6 = import('qt6') > +qt6_dep = dependency('qt6', > method : 'pkg-config', > - modules : ['Core', 'Gui', 'Widgets'], > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > required : get_option('qcam'), > - version : '>=5.4') > + version : '>=6.2') > > -if not qt5_dep.found() > +if not qt6_dep.found() > qcam_enabled = false > subdir_done() > endif > @@ -20,46 +20,27 @@ qcam_sources = files([ > 'main.cpp', > 'main_window.cpp', > 'message_handler.cpp', > + 'viewfinder_gl.cpp', > 'viewfinder_qt.cpp', > ]) > > qcam_moc_headers = files([ > 'cam_select_dialog.h', > 'main_window.h', > + 'viewfinder_gl.h', > 'viewfinder_qt.h', > ]) > > qcam_resources = files([ > 'assets/feathericons/feathericons.qrc', > + 'assets/shader/shaders.qrc', > ]) > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > - dependencies : qt5_dep, args : '-fPIC') > - qcam_sources += files([ > - 'viewfinder_gl.cpp', > - ]) > - qcam_moc_headers += files([ > - 'viewfinder_gl.h', > - ]) > - qcam_resources += files([ > - 'assets/shader/shaders.qrc' > - ]) > -endif > - > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > - qt5_dep.version().version_compare('<5.13')) or > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > - qt5_cpp_args += ['-Wno-deprecated-copy'] > -endif > - > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > qresources : qcam_resources, > - dependencies : qt5_dep) > + dependencies : qt6_dep) > > qcam = executable('qcam', qcam_sources, resources, > install : true, > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > libatomic, > libcamera_public, > libtiff, > - qt5_dep, > + qt6_dep, > ], > - cpp_args : qt5_cpp_args) > + cpp_args : qt6_cpp_args) > -- > 2.43.0 >
On Mon, 22 Apr 2024 at 12:31, Kieran Bingham <kieran.bingham@ideasonboard.com> 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. > > It seems that the upgrade to Qt6 also breaks the positioning of the 'No > Image' background in qcam when you stop the camera. Shooting in the dark here, but I can see: export PKG_CONFIG_PATH="/usr/lib64/pkgconfig/" in one of my libcamera related build scripts. Can't remember exactly what was failing or why I added it or for what platform though. Is mise le meas/Regards, Eric Curtin > > Could you check that please? > > -- > Kieran > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > --- > > README.rst | 2 +- > > meson.build | 2 +- > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > diff --git a/README.rst b/README.rst > > index 315738ee..6f1c9302 100644 > > --- a/README.rst > > +++ b/README.rst > > @@ -88,7 +88,7 @@ for cam: [optional] > > - libsdl2-dev: Enables the SDL sink > > > > for qcam: [optional] > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > for tracing with lttng: [optional] > > liblttng-ust-dev python3-jinja2 lttng-tools > > diff --git a/meson.build b/meson.build > > index cb6b666a..4c315e2a 100644 > > --- a/meson.build > > +++ b/meson.build > > @@ -1,7 +1,7 @@ > > # SPDX-License-Identifier: CC0-1.0 > > > > project('libcamera', 'c', 'cpp', > > - meson_version : '>= 0.60', > > + meson_version : '>= 0.63', > > version : '0.2.0', > > default_options : [ > > 'werror=true', > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > index 6cf4c171..c7fcfbeb 100644 > > --- a/src/apps/qcam/meson.build > > +++ b/src/apps/qcam/meson.build > > @@ -1,13 +1,13 @@ > > # SPDX-License-Identifier: CC0-1.0 > > > > -qt5 = import('qt5') > > -qt5_dep = dependency('qt5', > > +qt6 = import('qt6') > > +qt6_dep = dependency('qt6', > > method : 'pkg-config', > > - modules : ['Core', 'Gui', 'Widgets'], > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > required : get_option('qcam'), > > - version : '>=5.4') > > + version : '>=6.2') > > > > -if not qt5_dep.found() > > +if not qt6_dep.found() > > qcam_enabled = false > > subdir_done() > > endif > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > 'main.cpp', > > 'main_window.cpp', > > 'message_handler.cpp', > > + 'viewfinder_gl.cpp', > > 'viewfinder_qt.cpp', > > ]) > > > > qcam_moc_headers = files([ > > 'cam_select_dialog.h', > > 'main_window.h', > > + 'viewfinder_gl.h', > > 'viewfinder_qt.h', > > ]) > > > > qcam_resources = files([ > > 'assets/feathericons/feathericons.qrc', > > + 'assets/shader/shaders.qrc', > > ]) > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > - dependencies : qt5_dep, args : '-fPIC') > > - qcam_sources += files([ > > - 'viewfinder_gl.cpp', > > - ]) > > - qcam_moc_headers += files([ > > - 'viewfinder_gl.h', > > - ]) > > - qcam_resources += files([ > > - 'assets/shader/shaders.qrc' > > - ]) > > -endif > > - > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > - qt5_dep.version().version_compare('<5.13')) or > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > -endif > > - > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > qresources : qcam_resources, > > - dependencies : qt5_dep) > > + dependencies : qt6_dep) > > > > qcam = executable('qcam', qcam_sources, resources, > > install : true, > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > libatomic, > > libcamera_public, > > libtiff, > > - qt5_dep, > > + qt6_dep, > > ], > > - cpp_args : qt5_cpp_args) > > + cpp_args : qt6_cpp_args) > > -- > > 2.43.0 > > >
On Mon, Apr 22, 2024 at 5:31 AM Kieran Bingham <kieran.bingham@ideasonboard.com> 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. > > It seems that the upgrade to Qt6 also breaks the positioning of the 'No > Image' background in qcam when you stop the camera. > > Could you check that please? > Sorry it took me a while to get back to this, but I could not reproduce this issue. Here's what I see: https://i.imgur.com/6YMrBWm.png
On Wed, May 15, 2024 at 1:13 AM Neal Gompa <neal@gompa.dev> wrote: > > On Mon, Apr 22, 2024 at 5:31 AM Kieran Bingham > <kieran.bingham@ideasonboard.com> 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. > > > > It seems that the upgrade to Qt6 also breaks the positioning of the 'No > > Image' background in qcam when you stop the camera. > > > > Could you check that please? > > > > Sorry it took me a while to get back to this, but I could not > reproduce this issue. > > Here's what I see: https://i.imgur.com/6YMrBWm.png > Ping to get this patch landed. It's been six months now...
Quoting Neal Gompa (2024-06-23 08:10:06) > On Wed, May 15, 2024 at 1:13 AM Neal Gompa <neal@gompa.dev> wrote: > > > > On Mon, Apr 22, 2024 at 5:31 AM Kieran Bingham > > <kieran.bingham@ideasonboard.com> 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. > > > > > > It seems that the upgrade to Qt6 also breaks the positioning of the 'No > > > Image' background in qcam when you stop the camera. > > > > > > Could you check that please? > > > > > > > Sorry it took me a while to get back to this, but I could not > > reproduce this issue. > > > > Here's what I see: https://i.imgur.com/6YMrBWm.png > > I don't know what happened with my previous testing of the image centering, but I can't reproduce it now either so lets assume that was just a problem somewhere between my keyboard and chair :D > Ping to get this patch landed. It's been six months now... Well - before we were gated by the fact that we still had to support Ubuntu 22.04 LTS while it was current... Retesting now... sudo apt-get install libtiff-dev qt6-base-dev qt6-tools-dev-tools qt6-tools-dev-tools is already the newest version (6.2.4-1). libtiff-dev is already the newest version (4.3.0-6ubuntu0.9). qt6-base-dev is already the newest version (6.2.4+dfsg-2ubuntu1.1). 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 Checking the meson-log: env[PKG_CONFIG]: /usr/bin/pkg-config ----------- Called: `/usr/bin/pkg-config --modversion Qt6Core` -> 1 stderr: Package Qt6Core was not found in the pkg-config search path. Perhaps you should add the directory containing `Qt6Core.pc' to the PKG_CONFIG_PATH environment variable No package 'Qt6Core' found ----------- detected Qt6 None pkg-config dependency does not have proper tools support, ignoring 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 Argh ... so Ubuntu-22.04 is still broken... But 'perhaps' we can ignore that if 22.04 is no longer supported - except it breaks /my/ build/usage of qcam :-( -- Kieran
Quoting Neal Gompa (2024-04-18 03:20:10) > On Wed, Apr 17, 2024 at 5:02 PM Kieran Bingham > <kieran.bingham@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@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@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@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@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... Did you have any luck here? Where did you attempt this? This does indeed look like what's blocking me currently. -- Kieran
On Mon, Jun 24, 2024 at 02:15:22PM +0100, Kieran Bingham wrote: > Quoting Neal Gompa (2024-06-23 08:10:06) > > On Wed, May 15, 2024 at 1:13 AM Neal Gompa wrote: > > > On Mon, Apr 22, 2024 at 5:31 AM 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. > > > > > > > > It seems that the upgrade to Qt6 also breaks the positioning of the 'No > > > > Image' background in qcam when you stop the camera. > > > > > > > > Could you check that please? > > > > > > Sorry it took me a while to get back to this, but I could not > > > reproduce this issue. > > > > > > Here's what I see: https://i.imgur.com/6YMrBWm.png > > I don't know what happened with my previous testing of the image > centering, but I can't reproduce it now either so lets assume that was > just a problem somewhere between my keyboard and chair :D > > > Ping to get this patch landed. It's been six months now... > > Well - before we were gated by the fact that we still had to support > Ubuntu 22.04 LTS while it was current... > > Retesting now... > > sudo apt-get install libtiff-dev qt6-base-dev qt6-tools-dev-tools > qt6-tools-dev-tools is already the newest version (6.2.4-1). > libtiff-dev is already the newest version (4.3.0-6ubuntu0.9). > qt6-base-dev is already the newest version (6.2.4+dfsg-2ubuntu1.1). > > 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 > > Checking the meson-log: > > env[PKG_CONFIG]: /usr/bin/pkg-config > ----------- > Called: `/usr/bin/pkg-config --modversion Qt6Core` -> 1 > stderr: > Package Qt6Core was not found in the pkg-config search path. > Perhaps you should add the directory containing `Qt6Core.pc' > to the PKG_CONFIG_PATH environment variable > No package 'Qt6Core' found > ----------- > detected Qt6 None pkg-config dependency does not have proper tools support, ignoring > 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 > > Argh ... so Ubuntu-22.04 is still broken... But 'perhaps' we can ignore > that if 22.04 is no longer supported - except it breaks /my/ build/usage > of qcam :-( Ubuntu 24.04 has just been released, and 22.04 has standard support until April 2027. I'd like to support it for a bit longer *if possible*, at least to give users some more time to upgrade. Is there a way to get the Qt 6 pkgconfig fix backported to Ubuntu 22.04, or is that a pipe dream ?
On Wed, Jun 26, 2024 at 10:16:41AM +0300, Laurent Pinchart wrote: > On Mon, Jun 24, 2024 at 02:15:22PM +0100, Kieran Bingham wrote: > > Quoting Neal Gompa (2024-06-23 08:10:06) > > > On Wed, May 15, 2024 at 1:13 AM Neal Gompa wrote: > > > > On Mon, Apr 22, 2024 at 5:31 AM 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. > > > > > > > > > > It seems that the upgrade to Qt6 also breaks the positioning of the 'No > > > > > Image' background in qcam when you stop the camera. > > > > > > > > > > Could you check that please? > > > > > > > > Sorry it took me a while to get back to this, but I could not > > > > reproduce this issue. > > > > > > > > Here's what I see: https://i.imgur.com/6YMrBWm.png > > > > I don't know what happened with my previous testing of the image > > centering, but I can't reproduce it now either so lets assume that was > > just a problem somewhere between my keyboard and chair :D > > > > > Ping to get this patch landed. It's been six months now... > > > > Well - before we were gated by the fact that we still had to support > > Ubuntu 22.04 LTS while it was current... > > > > Retesting now... > > > > sudo apt-get install libtiff-dev qt6-base-dev qt6-tools-dev-tools > > qt6-tools-dev-tools is already the newest version (6.2.4-1). > > libtiff-dev is already the newest version (4.3.0-6ubuntu0.9). > > qt6-base-dev is already the newest version (6.2.4+dfsg-2ubuntu1.1). > > > > 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 > > > > Checking the meson-log: > > > > env[PKG_CONFIG]: /usr/bin/pkg-config > > ----------- > > Called: `/usr/bin/pkg-config --modversion Qt6Core` -> 1 > > stderr: > > Package Qt6Core was not found in the pkg-config search path. > > Perhaps you should add the directory containing `Qt6Core.pc' > > to the PKG_CONFIG_PATH environment variable > > No package 'Qt6Core' found > > ----------- > > detected Qt6 None pkg-config dependency does not have proper tools support, ignoring > > 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 > > > > Argh ... so Ubuntu-22.04 is still broken... But 'perhaps' we can ignore > > that if 22.04 is no longer supported - except it breaks /my/ build/usage > > of qcam :-( > > Ubuntu 24.04 has just been released, and 22.04 has standard support > until April 2027. I'd like to support it for a bit longer *if possible*, > at least to give users some more time to upgrade. > > Is there a way to get the Qt 6 pkgconfig fix backported to Ubuntu 22.04, > or is that a pipe dream ? Additionally, I'm getting the following error with clang-17: clang++-17 -Isrc/apps/qcam/qcam.p -Isrc/apps/qcam -I../../src/apps/qcam -Iinclude -I../../include -Iinclude/libcamera -I/usr/include/webp -I/usr/include/qt6/QtCore -I/usr/include/qt6 -I/usr/lib64/qt6/mkspecs/linux-g++ -I/usr/include/qt6/QtGui -I/usr/include/qt6/QtOpenGL -I/usr/include/qt6/QtOpenGLWidgets -I/usr/include/qt6/QtWidgets -fdiagnostics-color=always -fsanitize=address -fno-omit-frame-pointer -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c++17 -O0 -g -stdlib=libc++ -Wextra-semi -Wthread-safety -Wshadow -include /home/laurent/src/iob/oss/libcamera/libcamera/build/x86-clang-17/config.h -Wno-c99-designator -DQT_OPENGLWIDGETS_LIB -DQT_WIDGETS_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -fPIC -DHAVE_TIFF -DQT_NO_KEYWORDS -MD -MQ src/apps/qcam/qcam.p/main_window.cpp.o -MF src/apps/qcam/qcam.p/main_window.cpp.o.d -o src/apps/qcam/qcam.p/main_window.cpp.o -c ../../src/apps/qcam/main_window.cpp In file included from ../../src/apps/qcam/main_window.cpp:8: In file included from ../../src/apps/qcam/main_window.h:23: In file included from /usr/include/qt6/QtWidgets/QMainWindow:1: In file included from /usr/include/qt6/QtWidgets/qmainwindow.h:8: In file included from /usr/include/qt6/QtWidgets/qwidget.h:12: In file included from /usr/include/qt6/QtGui/qaction.h:9: /usr/include/qt6/QtGui/qkeysequence.h:139:26: error: extra ';' after member function definition [-Werror,-Wextra-semi] 139 | Q_ENUM(SequenceMatch); | ^ 1 error generated. Looks like a bug in Qt. Not the end of the world, we can work around this either with a pragma to ignore the warning around the inclusion of the Qt headers, or disabling it overall for qcam. The pragma would be nicer as we would still catch issues in the qcam code itself, but if that becomes too annoying, we can just disable the warning.
Quoting Kieran Bingham (2024-04-16 19:14:35) > 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. > > However ... > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > --- > > README.rst | 2 +- > > meson.build | 2 +- > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > diff --git a/README.rst b/README.rst > > index 315738ee..6f1c9302 100644 > > --- a/README.rst > > +++ b/README.rst > > @@ -88,7 +88,7 @@ for cam: [optional] > > - libsdl2-dev: Enables the SDL sink > > > > for qcam: [optional] > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > Having installed these packages - I still can't enable qcam. So we must > be missing some more dependencies that need to be listed here. So following this back to the list: The issue above impacts Ubuntu-22.04 LTS, but has been reported to Launchpad at: Link: https://bugs.launchpad.net/ubuntu/+source/qt6-base/+bug/2067202 And should be resolved in a timeframe based on Ubuntu's priorities. I don't think we should withhold our development on that time frame - and I think this Qt6 enablement patch should be merged. Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> The 'negative' impacts of merging this patch are: - Developers (not users) using Ubuntu 22.04 will have to manually install a newer version of meson * This is I expect more than likely easy or already done by any actual developers of libcamera - Developers using Ubuntu 22.04 may lose qcam by default. - This will not break the build - but qcam may stop being enabled by default if QT6 can not be found while the bug link referenced above is not resolved. - I would hope this would give more pressure for Canonical to fix the issue - but I expect that the number of libcamera developers who are using libcamera, ubuntu-22.04 *and* need qcam are quite limited. (perhaps just me?) - and solutions can be provided to support them as required - while I think there are more build systems that are now using a qt6 build instead of an EOL qt5 so it's time to move on. -- Kieran > > > -- > Kieran > > > > > > for tracing with lttng: [optional] > > liblttng-ust-dev python3-jinja2 lttng-tools > > diff --git a/meson.build b/meson.build > > index cb6b666a..4c315e2a 100644 > > --- a/meson.build > > +++ b/meson.build > > @@ -1,7 +1,7 @@ > > # SPDX-License-Identifier: CC0-1.0 > > > > project('libcamera', 'c', 'cpp', > > - meson_version : '>= 0.60', > > + meson_version : '>= 0.63', > > version : '0.2.0', > > default_options : [ > > 'werror=true', > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > index 6cf4c171..c7fcfbeb 100644 > > --- a/src/apps/qcam/meson.build > > +++ b/src/apps/qcam/meson.build > > @@ -1,13 +1,13 @@ > > # SPDX-License-Identifier: CC0-1.0 > > > > -qt5 = import('qt5') > > -qt5_dep = dependency('qt5', > > +qt6 = import('qt6') > > +qt6_dep = dependency('qt6', > > method : 'pkg-config', > > - modules : ['Core', 'Gui', 'Widgets'], > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > required : get_option('qcam'), > > - version : '>=5.4') > > + version : '>=6.2') > > > > -if not qt5_dep.found() > > +if not qt6_dep.found() > > qcam_enabled = false > > subdir_done() > > endif > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > 'main.cpp', > > 'main_window.cpp', > > 'message_handler.cpp', > > + 'viewfinder_gl.cpp', > > 'viewfinder_qt.cpp', > > ]) > > > > qcam_moc_headers = files([ > > 'cam_select_dialog.h', > > 'main_window.h', > > + 'viewfinder_gl.h', > > 'viewfinder_qt.h', > > ]) > > > > qcam_resources = files([ > > 'assets/feathericons/feathericons.qrc', > > + 'assets/shader/shaders.qrc', > > ]) > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > - dependencies : qt5_dep, args : '-fPIC') > > - qcam_sources += files([ > > - 'viewfinder_gl.cpp', > > - ]) > > - qcam_moc_headers += files([ > > - 'viewfinder_gl.h', > > - ]) > > - qcam_resources += files([ > > - 'assets/shader/shaders.qrc' > > - ]) > > -endif > > - > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > - qt5_dep.version().version_compare('<5.13')) or > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > -endif > > - > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > qresources : qcam_resources, > > - dependencies : qt5_dep) > > + dependencies : qt6_dep) > > > > qcam = executable('qcam', qcam_sources, resources, > > install : true, > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > libatomic, > > libcamera_public, > > libtiff, > > - qt5_dep, > > + qt6_dep, > > ], > > - cpp_args : qt5_cpp_args) > > + cpp_args : qt6_cpp_args) > > -- > > 2.43.0 > >
Quoting Kieran Bingham (2024-07-22 15:13:57) > Quoting Kieran Bingham (2024-04-16 19:14:35) > > 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. > > > > However ... > > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > --- > > > README.rst | 2 +- > > > meson.build | 2 +- > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > diff --git a/README.rst b/README.rst > > > index 315738ee..6f1c9302 100644 > > > --- a/README.rst > > > +++ b/README.rst > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > - libsdl2-dev: Enables the SDL sink > > > > > > for qcam: [optional] > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools On debian bullseye there's no qt6-tools-dev-tools package ... Trying to identify either the correct package or when it gets added... Hrm. ... it looks like it's only available in bullseye-backports: https://packages.debian.org/bullseye-backports/amd64/qt6-tools-dev-tools Now ... how do we handle this on the CI ... > > > > Having installed these packages - I still can't enable qcam. So we must > > be missing some more dependencies that need to be listed here. > > So following this back to the list: > > > The issue above impacts Ubuntu-22.04 LTS, but has been reported to > Launchpad at: > > Link: https://bugs.launchpad.net/ubuntu/+source/qt6-base/+bug/2067202 > > And should be resolved in a timeframe based on Ubuntu's priorities. > > I don't think we should withhold our development on that time frame - > and I think this Qt6 enablement patch should be merged. > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > The 'negative' impacts of merging this patch are: > - Developers (not users) using Ubuntu 22.04 will have to manually > install a newer version of meson > * This is I expect more than likely easy or already done by any > actual developers of libcamera > > - Developers using Ubuntu 22.04 may lose qcam by default. > - This will not break the build - but qcam may stop being enabled by > default if QT6 can not be found while the bug link referenced above > is not resolved. > - I would hope this would give more pressure for Canonical to fix the > issue - but I expect that the number of libcamera developers who > are using libcamera, ubuntu-22.04 *and* need qcam are quite > limited. (perhaps just me?) - and solutions can be provided to > support them as required - while I think there are more build > systems that are now using a qt6 build instead of an EOL qt5 so > it's time to move on. > > -- > Kieran > > > > > > > > > -- > > Kieran > > > > > > > > > > for tracing with lttng: [optional] > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > diff --git a/meson.build b/meson.build > > > index cb6b666a..4c315e2a 100644 > > > --- a/meson.build > > > +++ b/meson.build > > > @@ -1,7 +1,7 @@ > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > project('libcamera', 'c', 'cpp', > > > - meson_version : '>= 0.60', > > > + meson_version : '>= 0.63', > > > version : '0.2.0', > > > default_options : [ > > > 'werror=true', > > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > > index 6cf4c171..c7fcfbeb 100644 > > > --- a/src/apps/qcam/meson.build > > > +++ b/src/apps/qcam/meson.build > > > @@ -1,13 +1,13 @@ > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > -qt5 = import('qt5') > > > -qt5_dep = dependency('qt5', > > > +qt6 = import('qt6') > > > +qt6_dep = dependency('qt6', > > > method : 'pkg-config', > > > - modules : ['Core', 'Gui', 'Widgets'], > > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > > required : get_option('qcam'), > > > - version : '>=5.4') > > > + version : '>=6.2') > > > > > > -if not qt5_dep.found() > > > +if not qt6_dep.found() > > > qcam_enabled = false > > > subdir_done() > > > endif > > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > > 'main.cpp', > > > 'main_window.cpp', > > > 'message_handler.cpp', > > > + 'viewfinder_gl.cpp', > > > 'viewfinder_qt.cpp', > > > ]) > > > > > > qcam_moc_headers = files([ > > > 'cam_select_dialog.h', > > > 'main_window.h', > > > + 'viewfinder_gl.h', > > > 'viewfinder_qt.h', > > > ]) > > > > > > qcam_resources = files([ > > > 'assets/feathericons/feathericons.qrc', > > > + 'assets/shader/shaders.qrc', > > > ]) > > > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > > - dependencies : qt5_dep, args : '-fPIC') > > > - qcam_sources += files([ > > > - 'viewfinder_gl.cpp', > > > - ]) > > > - qcam_moc_headers += files([ > > > - 'viewfinder_gl.h', > > > - ]) > > > - qcam_resources += files([ > > > - 'assets/shader/shaders.qrc' > > > - ]) > > > -endif > > > - > > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > > - qt5_dep.version().version_compare('<5.13')) or > > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > > -endif > > > - > > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > > qresources : qcam_resources, > > > - dependencies : qt5_dep) > > > + dependencies : qt6_dep) > > > > > > qcam = executable('qcam', qcam_sources, resources, > > > install : true, > > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > > libatomic, > > > libcamera_public, > > > libtiff, > > > - qt5_dep, > > > + qt6_dep, > > > ], > > > - cpp_args : qt5_cpp_args) > > > + cpp_args : qt6_cpp_args) > > > -- > > > 2.43.0 > > >
On Mon, Jul 22, 2024 at 04:01:23PM +0100, Kieran Bingham wrote: > Quoting Kieran Bingham (2024-07-22 15:13:57) > > Quoting Kieran Bingham (2024-04-16 19:14:35) > > > 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. > > > > > > However ... > > > > > > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > --- > > > > README.rst | 2 +- > > > > meson.build | 2 +- > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > diff --git a/README.rst b/README.rst > > > > index 315738ee..6f1c9302 100644 > > > > --- a/README.rst > > > > +++ b/README.rst > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > for qcam: [optional] > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > On debian bullseye there's no qt6-tools-dev-tools package ... > > Trying to identify either the correct package or when it gets added... > > > Hrm. ... it looks like it's only available in bullseye-backports: > > https://packages.debian.org/bullseye-backports/amd64/qt6-tools-dev-tools > > Now ... how do we handle this on the CI ... See commit 239de776df95044aa8efa7d19064a9d5c679f4ca in the CI, which removed handling of backports :-) > > > Having installed these packages - I still can't enable qcam. So we must > > > be missing some more dependencies that need to be listed here. > > > > So following this back to the list: > > > > > > The issue above impacts Ubuntu-22.04 LTS, but has been reported to > > Launchpad at: > > > > Link: https://bugs.launchpad.net/ubuntu/+source/qt6-base/+bug/2067202 > > > > And should be resolved in a timeframe based on Ubuntu's priorities. > > > > I don't think we should withhold our development on that time frame - > > and I think this Qt6 enablement patch should be merged. > > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > > > > The 'negative' impacts of merging this patch are: > > - Developers (not users) using Ubuntu 22.04 will have to manually > > install a newer version of meson > > * This is I expect more than likely easy or already done by any > > actual developers of libcamera > > > > - Developers using Ubuntu 22.04 may lose qcam by default. > > - This will not break the build - but qcam may stop being enabled by > > default if QT6 can not be found while the bug link referenced above > > is not resolved. > > - I would hope this would give more pressure for Canonical to fix the > > issue - but I expect that the number of libcamera developers who > > are using libcamera, ubuntu-22.04 *and* need qcam are quite > > limited. (perhaps just me?) - and solutions can be provided to > > support them as required - while I think there are more build > > systems that are now using a qt6 build instead of an EOL qt5 so > > it's time to move on. > > > > > > for tracing with lttng: [optional] > > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > > diff --git a/meson.build b/meson.build > > > > index cb6b666a..4c315e2a 100644 > > > > --- a/meson.build > > > > +++ b/meson.build > > > > @@ -1,7 +1,7 @@ > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > project('libcamera', 'c', 'cpp', > > > > - meson_version : '>= 0.60', > > > > + meson_version : '>= 0.63', > > > > version : '0.2.0', > > > > default_options : [ > > > > 'werror=true', > > > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > > > index 6cf4c171..c7fcfbeb 100644 > > > > --- a/src/apps/qcam/meson.build > > > > +++ b/src/apps/qcam/meson.build > > > > @@ -1,13 +1,13 @@ > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > -qt5 = import('qt5') > > > > -qt5_dep = dependency('qt5', > > > > +qt6 = import('qt6') > > > > +qt6_dep = dependency('qt6', > > > > method : 'pkg-config', > > > > - modules : ['Core', 'Gui', 'Widgets'], > > > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > > > required : get_option('qcam'), > > > > - version : '>=5.4') > > > > + version : '>=6.2') > > > > > > > > -if not qt5_dep.found() > > > > +if not qt6_dep.found() > > > > qcam_enabled = false > > > > subdir_done() > > > > endif > > > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > > > 'main.cpp', > > > > 'main_window.cpp', > > > > 'message_handler.cpp', > > > > + 'viewfinder_gl.cpp', > > > > 'viewfinder_qt.cpp', > > > > ]) > > > > > > > > qcam_moc_headers = files([ > > > > 'cam_select_dialog.h', > > > > 'main_window.h', > > > > + 'viewfinder_gl.h', > > > > 'viewfinder_qt.h', > > > > ]) > > > > > > > > qcam_resources = files([ > > > > 'assets/feathericons/feathericons.qrc', > > > > + 'assets/shader/shaders.qrc', > > > > ]) > > > > > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > > > - dependencies : qt5_dep, args : '-fPIC') > > > > - qcam_sources += files([ > > > > - 'viewfinder_gl.cpp', > > > > - ]) > > > > - qcam_moc_headers += files([ > > > > - 'viewfinder_gl.h', > > > > - ]) > > > > - qcam_resources += files([ > > > > - 'assets/shader/shaders.qrc' > > > > - ]) > > > > -endif > > > > - > > > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > > > - qt5_dep.version().version_compare('<5.13')) or > > > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > > > -endif > > > > - > > > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > > > qresources : qcam_resources, > > > > - dependencies : qt5_dep) > > > > + dependencies : qt6_dep) > > > > > > > > qcam = executable('qcam', qcam_sources, resources, > > > > install : true, > > > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > > > libatomic, > > > > libcamera_public, > > > > libtiff, > > > > - qt5_dep, > > > > + qt6_dep, > > > > ], > > > > - cpp_args : qt5_cpp_args) > > > > + cpp_args : qt6_cpp_args)
Quoting Laurent Pinchart (2024-07-22 16:13:57) > On Mon, Jul 22, 2024 at 04:01:23PM +0100, Kieran Bingham wrote: > > Quoting Kieran Bingham (2024-07-22 15:13:57) > > > Quoting Kieran Bingham (2024-04-16 19:14:35) > > > > 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. > > > > > > > > However ... > > > > > > > > > > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > > --- > > > > > README.rst | 2 +- > > > > > meson.build | 2 +- > > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > > > diff --git a/README.rst b/README.rst > > > > > index 315738ee..6f1c9302 100644 > > > > > --- a/README.rst > > > > > +++ b/README.rst > > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > > > for qcam: [optional] > > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > On debian bullseye there's no qt6-tools-dev-tools package ... > > > > Trying to identify either the correct package or when it gets added... > > > > > > Hrm. ... it looks like it's only available in bullseye-backports: > > > > https://packages.debian.org/bullseye-backports/amd64/qt6-tools-dev-tools > > > > Now ... how do we handle this on the CI ... > > See commit 239de776df95044aa8efa7d19064a9d5c679f4ca in the CI, which > removed handling of backports :-) This must be the hardest patch I've ever tried to land. So ... The CI builders now have QT6 packages, provided through backports in the case of debian-bullseye. We have: - Debian 11 : Bullsye : QT 6.4.2 - Debian 12 : Bookworm : QT 6.4.2 - Debian 13 : Trixie : QT 6.6.2 But this QT6 qcam patch now has a set of failures: - https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1230127/ Debian 11 : gcc 9 : https://gitlab.freedesktop.org/camera/libcamera/-/jobs/61356458 - [358/622] Compiling C++ object src/ipa/rpi/controller/librpi_ipa_controller.a.p/rpi_awb.cpp.o In file included from ../src/ipa/libipa/pwl.h:18, from ../src/ipa/rpi/controller/rpi/awb.h:19, from ../src/ipa/rpi/controller/rpi/awb.cpp:16: ../src/ipa/libipa/vector.h: In instantiation of ‘constexpr libcamera::ipa::Vector<T, Rows> libcamera::ipa::Vector<T, Rows, <anonymous> >::operator-(const libcamera::ipa::Vector<T, Rows>&) const [with T = double; unsigned int Rows = 2; std::enable_if_t<is_arithmetic_v<T> >* <anonymous> = 0; std::enable_if_t<is_arithmetic_v<T> > = void]’: ../src/ipa/rpi/controller/rpi/awb.cpp:506:27: required from here (This makes no sense to me at all) Debian 11 : gcc 10 : In file included from src/apps/qcam/qcam.p/moc_viewfinder_gl.cpp:10: src/apps/qcam/qcam.p/../../../../../src/apps/qcam/viewfinder_gl.h:15:10: fatal error: QOpenGLBuffer: No such file or directory 15 | #include <QOpenGLBuffer> | ^~~~~~~~~~~~~~~ compilation terminated. (At least this looks related) Debian 12 : clang ... in fact all the Debian 12's have this error: In file included from src/apps/qcam/qcam.p/moc_viewfinder_gl.cpp:10: src/apps/qcam/qcam.p/../../../../../src/apps/qcam/viewfinder_gl.h:15:10: fatal error: 'QOpenGLBuffer' file not found #include <QOpenGLBuffer> ^~~~~~~~~~~~~~~ And Buildhistory job also fails as it's based on Debian 12. So ... there's a crazy-how-can-it-be-related-but-consistently-repeatable failure on Debian 11 : gcc 9, and a missing QOpenGLBuffer on all the other failures. Does anyone know if QOpenGLBuffer is just missing from QT 6.4.2 or is this just some spurious build configuration corner case failure we're hitting? -- Kieran > > > > > Having installed these packages - I still can't enable qcam. So we must > > > > be missing some more dependencies that need to be listed here. > > > > > > So following this back to the list: > > > > > > > > > The issue above impacts Ubuntu-22.04 LTS, but has been reported to > > > Launchpad at: > > > > > > Link: https://bugs.launchpad.net/ubuntu/+source/qt6-base/+bug/2067202 > > > > > > And should be resolved in a timeframe based on Ubuntu's priorities. > > > > > > I don't think we should withhold our development on that time frame - > > > and I think this Qt6 enablement patch should be merged. > > > > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > > > > > > > The 'negative' impacts of merging this patch are: > > > - Developers (not users) using Ubuntu 22.04 will have to manually > > > install a newer version of meson > > > * This is I expect more than likely easy or already done by any > > > actual developers of libcamera > > > > > > - Developers using Ubuntu 22.04 may lose qcam by default. > > > - This will not break the build - but qcam may stop being enabled by > > > default if QT6 can not be found while the bug link referenced above > > > is not resolved. > > > - I would hope this would give more pressure for Canonical to fix the > > > issue - but I expect that the number of libcamera developers who > > > are using libcamera, ubuntu-22.04 *and* need qcam are quite > > > limited. (perhaps just me?) - and solutions can be provided to > > > support them as required - while I think there are more build > > > systems that are now using a qt6 build instead of an EOL qt5 so > > > it's time to move on. > > > > > > > > for tracing with lttng: [optional] > > > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > > > diff --git a/meson.build b/meson.build > > > > > index cb6b666a..4c315e2a 100644 > > > > > --- a/meson.build > > > > > +++ b/meson.build > > > > > @@ -1,7 +1,7 @@ > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > project('libcamera', 'c', 'cpp', > > > > > - meson_version : '>= 0.60', > > > > > + meson_version : '>= 0.63', > > > > > version : '0.2.0', > > > > > default_options : [ > > > > > 'werror=true', > > > > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > > > > index 6cf4c171..c7fcfbeb 100644 > > > > > --- a/src/apps/qcam/meson.build > > > > > +++ b/src/apps/qcam/meson.build > > > > > @@ -1,13 +1,13 @@ > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > -qt5 = import('qt5') > > > > > -qt5_dep = dependency('qt5', > > > > > +qt6 = import('qt6') > > > > > +qt6_dep = dependency('qt6', > > > > > method : 'pkg-config', > > > > > - modules : ['Core', 'Gui', 'Widgets'], > > > > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > > > > required : get_option('qcam'), > > > > > - version : '>=5.4') > > > > > + version : '>=6.2') > > > > > > > > > > -if not qt5_dep.found() > > > > > +if not qt6_dep.found() > > > > > qcam_enabled = false > > > > > subdir_done() > > > > > endif > > > > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > > > > 'main.cpp', > > > > > 'main_window.cpp', > > > > > 'message_handler.cpp', > > > > > + 'viewfinder_gl.cpp', > > > > > 'viewfinder_qt.cpp', > > > > > ]) > > > > > > > > > > qcam_moc_headers = files([ > > > > > 'cam_select_dialog.h', > > > > > 'main_window.h', > > > > > + 'viewfinder_gl.h', > > > > > 'viewfinder_qt.h', > > > > > ]) > > > > > > > > > > qcam_resources = files([ > > > > > 'assets/feathericons/feathericons.qrc', > > > > > + 'assets/shader/shaders.qrc', > > > > > ]) > > > > > > > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > > > > - dependencies : qt5_dep, args : '-fPIC') > > > > > - qcam_sources += files([ > > > > > - 'viewfinder_gl.cpp', > > > > > - ]) > > > > > - qcam_moc_headers += files([ > > > > > - 'viewfinder_gl.h', > > > > > - ]) > > > > > - qcam_resources += files([ > > > > > - 'assets/shader/shaders.qrc' > > > > > - ]) > > > > > -endif > > > > > - > > > > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > > > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > > > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > > > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > > > > - qt5_dep.version().version_compare('<5.13')) or > > > > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > > > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > > > > -endif > > > > > - > > > > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > > > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > > > > qresources : qcam_resources, > > > > > - dependencies : qt5_dep) > > > > > + dependencies : qt6_dep) > > > > > > > > > > qcam = executable('qcam', qcam_sources, resources, > > > > > install : true, > > > > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > > > > libatomic, > > > > > libcamera_public, > > > > > libtiff, > > > > > - qt5_dep, > > > > > + qt6_dep, > > > > > ], > > > > > - cpp_args : qt5_cpp_args) > > > > > + cpp_args : qt6_cpp_args) > > -- > Regards, > > Laurent Pinchart
On Tue, Jul 23, 2024 at 06:11:19PM +0100, Kieran Bingham wrote: > Quoting Laurent Pinchart (2024-07-22 16:13:57) > > On Mon, Jul 22, 2024 at 04:01:23PM +0100, Kieran Bingham wrote: > > > Quoting Kieran Bingham (2024-07-22 15:13:57) > > > > Quoting Kieran Bingham (2024-04-16 19:14:35) > > > > > 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. > > > > > > > > > > However ... > > > > > > > > > > > > > > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > > > --- > > > > > > README.rst | 2 +- > > > > > > meson.build | 2 +- > > > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > > > > > diff --git a/README.rst b/README.rst > > > > > > index 315738ee..6f1c9302 100644 > > > > > > --- a/README.rst > > > > > > +++ b/README.rst > > > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > > > > > for qcam: [optional] > > > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > On debian bullseye there's no qt6-tools-dev-tools package ... > > > > > > Trying to identify either the correct package or when it gets added... > > > > > > > > > Hrm. ... it looks like it's only available in bullseye-backports: > > > > > > https://packages.debian.org/bullseye-backports/amd64/qt6-tools-dev-tools > > > > > > Now ... how do we handle this on the CI ... > > > > See commit 239de776df95044aa8efa7d19064a9d5c679f4ca in the CI, which > > removed handling of backports :-) > > This must be the hardest patch I've ever tried to land. > > So ... The CI builders now have QT6 packages, provided through backports > in the case of debian-bullseye. > > We have: > > - Debian 11 : Bullsye : QT 6.4.2 > - Debian 12 : Bookworm : QT 6.4.2 > - Debian 13 : Trixie : QT 6.6.2 > > > But this QT6 qcam patch now has a set of failures: > > - https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1230127/ > > Debian 11 : gcc 9 : https://gitlab.freedesktop.org/camera/libcamera/-/jobs/61356458 > - [358/622] Compiling C++ object src/ipa/rpi/controller/librpi_ipa_controller.a.p/rpi_awb.cpp.o > > In file included from ../src/ipa/libipa/pwl.h:18, > from ../src/ipa/rpi/controller/rpi/awb.h:19, > from ../src/ipa/rpi/controller/rpi/awb.cpp:16: > ../src/ipa/libipa/vector.h: In instantiation of ‘constexpr libcamera::ipa::Vector<T, Rows> libcamera::ipa::Vector<T, Rows, <anonymous> >::operator-(const libcamera::ipa::Vector<T, Rows>&) const [with T = double; unsigned int Rows = 2; std::enable_if_t<is_arithmetic_v<T> >* <anonymous> = 0; std::enable_if_t<is_arithmetic_v<T> > = void]’: > ../src/ipa/rpi/controller/rpi/awb.cpp:506:27: required from here > > (This makes no sense to me at all) That's a note, not an error. I don't think it's related or new. > Debian 11 : gcc 10 : > > In file included from src/apps/qcam/qcam.p/moc_viewfinder_gl.cpp:10: > src/apps/qcam/qcam.p/../../../../../src/apps/qcam/viewfinder_gl.h:15:10: fatal error: QOpenGLBuffer: No such file or directory > 15 | #include <QOpenGLBuffer> > | ^~~~~~~~~~~~~~~ > compilation terminated. > > (At least this looks related) > > Debian 12 : clang ... in fact all the Debian 12's have this error: > > In file included from src/apps/qcam/qcam.p/moc_viewfinder_gl.cpp:10: > src/apps/qcam/qcam.p/../../../../../src/apps/qcam/viewfinder_gl.h:15:10: fatal error: 'QOpenGLBuffer' file not found > #include <QOpenGLBuffer> > ^~~~~~~~~~~~~~~ > > > And Buildhistory job also fails as it's based on Debian 12. > > > So ... there's a crazy-how-can-it-be-related-but-consistently-repeatable > failure on Debian 11 : gcc 9, and a missing QOpenGLBuffer on all the > other failures. > > > Does anyone know if QOpenGLBuffer is just missing from QT 6.4.2 or is > this just some spurious build configuration corner case failure we're > hitting? Aren't you just missing the libqt6opengl6-dev package ? > > > > > Having installed these packages - I still can't enable qcam. So we must > > > > > be missing some more dependencies that need to be listed here. > > > > > > > > So following this back to the list: > > > > > > > > > > > > The issue above impacts Ubuntu-22.04 LTS, but has been reported to > > > > Launchpad at: > > > > > > > > Link: https://bugs.launchpad.net/ubuntu/+source/qt6-base/+bug/2067202 > > > > > > > > And should be resolved in a timeframe based on Ubuntu's priorities. > > > > > > > > I don't think we should withhold our development on that time frame - > > > > and I think this Qt6 enablement patch should be merged. > > > > > > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > > > > > > > > > > The 'negative' impacts of merging this patch are: > > > > - Developers (not users) using Ubuntu 22.04 will have to manually > > > > install a newer version of meson > > > > * This is I expect more than likely easy or already done by any > > > > actual developers of libcamera > > > > > > > > - Developers using Ubuntu 22.04 may lose qcam by default. > > > > - This will not break the build - but qcam may stop being enabled by > > > > default if QT6 can not be found while the bug link referenced above > > > > is not resolved. > > > > - I would hope this would give more pressure for Canonical to fix the > > > > issue - but I expect that the number of libcamera developers who > > > > are using libcamera, ubuntu-22.04 *and* need qcam are quite > > > > limited. (perhaps just me?) - and solutions can be provided to > > > > support them as required - while I think there are more build > > > > systems that are now using a qt6 build instead of an EOL qt5 so > > > > it's time to move on. > > > > > > > > > > for tracing with lttng: [optional] > > > > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > > > > diff --git a/meson.build b/meson.build > > > > > > index cb6b666a..4c315e2a 100644 > > > > > > --- a/meson.build > > > > > > +++ b/meson.build > > > > > > @@ -1,7 +1,7 @@ > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > project('libcamera', 'c', 'cpp', > > > > > > - meson_version : '>= 0.60', > > > > > > + meson_version : '>= 0.63', > > > > > > version : '0.2.0', > > > > > > default_options : [ > > > > > > 'werror=true', > > > > > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > > > > > index 6cf4c171..c7fcfbeb 100644 > > > > > > --- a/src/apps/qcam/meson.build > > > > > > +++ b/src/apps/qcam/meson.build > > > > > > @@ -1,13 +1,13 @@ > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > -qt5 = import('qt5') > > > > > > -qt5_dep = dependency('qt5', > > > > > > +qt6 = import('qt6') > > > > > > +qt6_dep = dependency('qt6', > > > > > > method : 'pkg-config', > > > > > > - modules : ['Core', 'Gui', 'Widgets'], > > > > > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > > > > > required : get_option('qcam'), > > > > > > - version : '>=5.4') > > > > > > + version : '>=6.2') > > > > > > > > > > > > -if not qt5_dep.found() > > > > > > +if not qt6_dep.found() > > > > > > qcam_enabled = false > > > > > > subdir_done() > > > > > > endif > > > > > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > > > > > 'main.cpp', > > > > > > 'main_window.cpp', > > > > > > 'message_handler.cpp', > > > > > > + 'viewfinder_gl.cpp', > > > > > > 'viewfinder_qt.cpp', > > > > > > ]) > > > > > > > > > > > > qcam_moc_headers = files([ > > > > > > 'cam_select_dialog.h', > > > > > > 'main_window.h', > > > > > > + 'viewfinder_gl.h', > > > > > > 'viewfinder_qt.h', > > > > > > ]) > > > > > > > > > > > > qcam_resources = files([ > > > > > > 'assets/feathericons/feathericons.qrc', > > > > > > + 'assets/shader/shaders.qrc', > > > > > > ]) > > > > > > > > > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > > > > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > > > > > - dependencies : qt5_dep, args : '-fPIC') > > > > > > - qcam_sources += files([ > > > > > > - 'viewfinder_gl.cpp', > > > > > > - ]) > > > > > > - qcam_moc_headers += files([ > > > > > > - 'viewfinder_gl.h', > > > > > > - ]) > > > > > > - qcam_resources += files([ > > > > > > - 'assets/shader/shaders.qrc' > > > > > > - ]) > > > > > > -endif > > > > > > - > > > > > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > > > > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > > > > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > > > > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > > > > > - qt5_dep.version().version_compare('<5.13')) or > > > > > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > > > > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > > > > > -endif > > > > > > - > > > > > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > > > > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > > > > > qresources : qcam_resources, > > > > > > - dependencies : qt5_dep) > > > > > > + dependencies : qt6_dep) > > > > > > > > > > > > qcam = executable('qcam', qcam_sources, resources, > > > > > > install : true, > > > > > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > > > > > libatomic, > > > > > > libcamera_public, > > > > > > libtiff, > > > > > > - qt5_dep, > > > > > > + qt6_dep, > > > > > > ], > > > > > > - cpp_args : qt5_cpp_args) > > > > > > + cpp_args : qt6_cpp_args)
Quoting Laurent Pinchart (2024-07-23 19:53:52) > On Tue, Jul 23, 2024 at 06:11:19PM +0100, Kieran Bingham wrote: > > Quoting Laurent Pinchart (2024-07-22 16:13:57) > > > On Mon, Jul 22, 2024 at 04:01:23PM +0100, Kieran Bingham wrote: > > > > Quoting Kieran Bingham (2024-07-22 15:13:57) > > > > > Quoting Kieran Bingham (2024-04-16 19:14:35) > > > > > > 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. > > > > > > > > > > > > However ... > > > > > > > > > > > > > > > > > > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > > > > --- > > > > > > > README.rst | 2 +- > > > > > > > meson.build | 2 +- > > > > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > > > > > > > diff --git a/README.rst b/README.rst > > > > > > > index 315738ee..6f1c9302 100644 > > > > > > > --- a/README.rst > > > > > > > +++ b/README.rst > > > > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > > > > > > > for qcam: [optional] > > > > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > > > On debian bullseye there's no qt6-tools-dev-tools package ... > > > > > > > > Trying to identify either the correct package or when it gets added... > > > > > > > > > > > > Hrm. ... it looks like it's only available in bullseye-backports: > > > > > > > > https://packages.debian.org/bullseye-backports/amd64/qt6-tools-dev-tools > > > > > > > > Now ... how do we handle this on the CI ... > > > > > > See commit 239de776df95044aa8efa7d19064a9d5c679f4ca in the CI, which > > > removed handling of backports :-) > > > > This must be the hardest patch I've ever tried to land. > > > > So ... The CI builders now have QT6 packages, provided through backports > > in the case of debian-bullseye. > > > > We have: > > > > - Debian 11 : Bullsye : QT 6.4.2 > > - Debian 12 : Bookworm : QT 6.4.2 > > - Debian 13 : Trixie : QT 6.6.2 > > > > > > But this QT6 qcam patch now has a set of failures: > > > > - https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1230127/ > > > > Debian 11 : gcc 9 : https://gitlab.freedesktop.org/camera/libcamera/-/jobs/61356458 > > - [358/622] Compiling C++ object src/ipa/rpi/controller/librpi_ipa_controller.a.p/rpi_awb.cpp.o > > > > In file included from ../src/ipa/libipa/pwl.h:18, > > from ../src/ipa/rpi/controller/rpi/awb.h:19, > > from ../src/ipa/rpi/controller/rpi/awb.cpp:16: > > ../src/ipa/libipa/vector.h: In instantiation of ‘constexpr libcamera::ipa::Vector<T, Rows> libcamera::ipa::Vector<T, Rows, <anonymous> >::operator-(const libcamera::ipa::Vector<T, Rows>&) const [with T = double; unsigned int Rows = 2; std::enable_if_t<is_arithmetic_v<T> >* <anonymous> = 0; std::enable_if_t<is_arithmetic_v<T> > = void]’: > > ../src/ipa/rpi/controller/rpi/awb.cpp:506:27: required from here > > > > (This makes no sense to me at all) > > That's a note, not an error. I don't think it's related or new. Argh! I hadn't realised that. I thought we had a 'clean' build with no warnings. I didn't see it was a 'note' (it really looks like a warning) ... so I put more into this than it deserved. Ignored ... > > > Debian 11 : gcc 10 : > > > > In file included from src/apps/qcam/qcam.p/moc_viewfinder_gl.cpp:10: > > src/apps/qcam/qcam.p/../../../../../src/apps/qcam/viewfinder_gl.h:15:10: fatal error: QOpenGLBuffer: No such file or directory > > 15 | #include <QOpenGLBuffer> > > | ^~~~~~~~~~~~~~~ > > compilation terminated. > > > > (At least this looks related) > > > > Debian 12 : clang ... in fact all the Debian 12's have this error: > > > > In file included from src/apps/qcam/qcam.p/moc_viewfinder_gl.cpp:10: > > src/apps/qcam/qcam.p/../../../../../src/apps/qcam/viewfinder_gl.h:15:10: fatal error: 'QOpenGLBuffer' file not found > > #include <QOpenGLBuffer> > > ^~~~~~~~~~~~~~~ > > > > > > And Buildhistory job also fails as it's based on Debian 12. > > > > > > So ... there's a crazy-how-can-it-be-related-but-consistently-repeatable > > failure on Debian 11 : gcc 9, and a missing QOpenGLBuffer on all the > > other failures. > > > > > > Does anyone know if QOpenGLBuffer is just missing from QT 6.4.2 or is > > this just some spurious build configuration corner case failure we're > > hitting? > > Aren't you just missing the libqt6opengl6-dev package ? Ok - so yes - that bit was that simple. I've added libqt6opengl6-dev to the CI explicitly. I think that means the README needs to be updated again to reference libqt6opengl6-dev in this patch too. On to the next (final please?) failure: https://gitlab.freedesktop.org/camera/libcamera/-/jobs/61434092 [424/606] Linking target src/apps/qcam/qcam FAILED: src/apps/qcam/qcam clang++ -o src/apps/qcam/qcam src/apps/qcam/qcam.p/meson-generated_.._qt6-feathericons_qrc.cpp.o src/apps/qcam/qcam.p/meson-generated_.._qt6-shaders_qrc.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_cam_select_dialog.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_main_window.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_viewfinder_gl.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_viewfinder_qt.cpp.o src/apps/qcam/qcam.p/cam_select_dialog.cpp.o src/apps/qcam/qcam.p/format_converter.cpp.o src/apps/qcam/qcam.p/main.cpp.o src/apps/qcam/qcam.p/main_window.cpp.o src/apps/qcam/qcam.p/message_handler.cpp.o src/apps/qcam/qcam.p/viewfinder_gl.cpp.o src/apps/qcam/qcam.p/viewfinder_qt.cpp.o -Wl,--as-needed -Wl,--no-undefined -stdlib=libc++ -Wextra-semi -Wthread-safety -Wmissing-declarations -Wshadow -include /builds/camera/libcamera/build/config.h -Wno-c99-designator '-Wl,-rpath,$ORIGIN/../../libcamera:$ORIGIN/../../libcamera/base' -Wl,-rpath-link,/builds/camera/libcamera/build/src/libcamera -Wl,-rpath-link,/builds/camera/libcamera/build/src/libcamera/base -Wl,--start-group src/apps/common/libapps.a src/libcamera/libcamera.so.0.3.0 src/libcamera/base/libcamera-base.so.0.3.0 -latomic /usr/lib/x86_64-linux-gnu/libtiff.so /usr/lib/x86_64-linux-gnu/libQt6Core.so /usr/lib/x86_64-linux-gnu/libQt6Gui.so /usr/lib/x86_64-linux-gnu/libQt6OpenGL.so /usr/lib/x86_64-linux-gnu/libQt6OpenGLWidgets.so /usr/lib/x86_64-linux-gnu/libQt6Widgets.so -Wl,--end-group /usr/bin/ld: src/apps/qcam/qcam.p/cam_select_dialog.cpp.o: in function `QString::toStdString() const': /usr/include/x86_64-linux-gnu/qt6/QtCore/qstring.h:1477: undefined reference to `QByteArray::toStdString() const' clang: error: linker command failed with exit code 1 (use -v to see invocation) on the clang builds of debian-12 though gcc-12 builds fine there! digging ... -- Kieran > > > > > > > Having installed these packages - I still can't enable qcam. So we must > > > > > > be missing some more dependencies that need to be listed here. > > > > > > > > > > So following this back to the list: > > > > > > > > > > > > > > > The issue above impacts Ubuntu-22.04 LTS, but has been reported to > > > > > Launchpad at: > > > > > > > > > > Link: https://bugs.launchpad.net/ubuntu/+source/qt6-base/+bug/2067202 > > > > > > > > > > And should be resolved in a timeframe based on Ubuntu's priorities. > > > > > > > > > > I don't think we should withhold our development on that time frame - > > > > > and I think this Qt6 enablement patch should be merged. > > > > > > > > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > > > > > > > > > > > > > The 'negative' impacts of merging this patch are: > > > > > - Developers (not users) using Ubuntu 22.04 will have to manually > > > > > install a newer version of meson > > > > > * This is I expect more than likely easy or already done by any > > > > > actual developers of libcamera > > > > > > > > > > - Developers using Ubuntu 22.04 may lose qcam by default. > > > > > - This will not break the build - but qcam may stop being enabled by > > > > > default if QT6 can not be found while the bug link referenced above > > > > > is not resolved. > > > > > - I would hope this would give more pressure for Canonical to fix the > > > > > issue - but I expect that the number of libcamera developers who > > > > > are using libcamera, ubuntu-22.04 *and* need qcam are quite > > > > > limited. (perhaps just me?) - and solutions can be provided to > > > > > support them as required - while I think there are more build > > > > > systems that are now using a qt6 build instead of an EOL qt5 so > > > > > it's time to move on. > > > > > > > > > > > > for tracing with lttng: [optional] > > > > > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > > > > > diff --git a/meson.build b/meson.build > > > > > > > index cb6b666a..4c315e2a 100644 > > > > > > > --- a/meson.build > > > > > > > +++ b/meson.build > > > > > > > @@ -1,7 +1,7 @@ > > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > > > project('libcamera', 'c', 'cpp', > > > > > > > - meson_version : '>= 0.60', > > > > > > > + meson_version : '>= 0.63', > > > > > > > version : '0.2.0', > > > > > > > default_options : [ > > > > > > > 'werror=true', > > > > > > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > > > > > > index 6cf4c171..c7fcfbeb 100644 > > > > > > > --- a/src/apps/qcam/meson.build > > > > > > > +++ b/src/apps/qcam/meson.build > > > > > > > @@ -1,13 +1,13 @@ > > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > > > -qt5 = import('qt5') > > > > > > > -qt5_dep = dependency('qt5', > > > > > > > +qt6 = import('qt6') > > > > > > > +qt6_dep = dependency('qt6', > > > > > > > method : 'pkg-config', > > > > > > > - modules : ['Core', 'Gui', 'Widgets'], > > > > > > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > > > > > > required : get_option('qcam'), > > > > > > > - version : '>=5.4') > > > > > > > + version : '>=6.2') > > > > > > > > > > > > > > -if not qt5_dep.found() > > > > > > > +if not qt6_dep.found() > > > > > > > qcam_enabled = false > > > > > > > subdir_done() > > > > > > > endif > > > > > > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > > > > > > 'main.cpp', > > > > > > > 'main_window.cpp', > > > > > > > 'message_handler.cpp', > > > > > > > + 'viewfinder_gl.cpp', > > > > > > > 'viewfinder_qt.cpp', > > > > > > > ]) > > > > > > > > > > > > > > qcam_moc_headers = files([ > > > > > > > 'cam_select_dialog.h', > > > > > > > 'main_window.h', > > > > > > > + 'viewfinder_gl.h', > > > > > > > 'viewfinder_qt.h', > > > > > > > ]) > > > > > > > > > > > > > > qcam_resources = files([ > > > > > > > 'assets/feathericons/feathericons.qrc', > > > > > > > + 'assets/shader/shaders.qrc', > > > > > > > ]) > > > > > > > > > > > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > > > > > > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > > > > > > - dependencies : qt5_dep, args : '-fPIC') > > > > > > > - qcam_sources += files([ > > > > > > > - 'viewfinder_gl.cpp', > > > > > > > - ]) > > > > > > > - qcam_moc_headers += files([ > > > > > > > - 'viewfinder_gl.h', > > > > > > > - ]) > > > > > > > - qcam_resources += files([ > > > > > > > - 'assets/shader/shaders.qrc' > > > > > > > - ]) > > > > > > > -endif > > > > > > > - > > > > > > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > > > > > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > > > > > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > > > > > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > > > > > > - qt5_dep.version().version_compare('<5.13')) or > > > > > > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > > > > > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > > > > > > -endif > > > > > > > - > > > > > > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > > > > > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > > > > > > qresources : qcam_resources, > > > > > > > - dependencies : qt5_dep) > > > > > > > + dependencies : qt6_dep) > > > > > > > > > > > > > > qcam = executable('qcam', qcam_sources, resources, > > > > > > > install : true, > > > > > > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > > > > > > libatomic, > > > > > > > libcamera_public, > > > > > > > libtiff, > > > > > > > - qt5_dep, > > > > > > > + qt6_dep, > > > > > > > ], > > > > > > > - cpp_args : qt5_cpp_args) > > > > > > > + cpp_args : qt6_cpp_args) > > -- > Regards, > > Laurent Pinchart
Quoting Kieran Bingham (2024-07-24 11:38:07) > Quoting Laurent Pinchart (2024-07-23 19:53:52) > > On Tue, Jul 23, 2024 at 06:11:19PM +0100, Kieran Bingham wrote: > > > Quoting Laurent Pinchart (2024-07-22 16:13:57) > > > > On Mon, Jul 22, 2024 at 04:01:23PM +0100, Kieran Bingham wrote: > > > > > Quoting Kieran Bingham (2024-07-22 15:13:57) > > > > > > Quoting Kieran Bingham (2024-04-16 19:14:35) > > > > > > > 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. > > > > > > > > > > > > > > However ... > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > > > > > --- > > > > > > > > README.rst | 2 +- > > > > > > > > meson.build | 2 +- > > > > > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > > > > > > > > > diff --git a/README.rst b/README.rst > > > > > > > > index 315738ee..6f1c9302 100644 > > > > > > > > --- a/README.rst > > > > > > > > +++ b/README.rst > > > > > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > > > > > > > > > for qcam: [optional] > > > > > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > > > > > On debian bullseye there's no qt6-tools-dev-tools package ... > > > > > > > > > > Trying to identify either the correct package or when it gets added... > > > > > > > > > > > > > > > Hrm. ... it looks like it's only available in bullseye-backports: > > > > > > > > > > https://packages.debian.org/bullseye-backports/amd64/qt6-tools-dev-tools > > > > > > > > > > Now ... how do we handle this on the CI ... > > > > > > > > See commit 239de776df95044aa8efa7d19064a9d5c679f4ca in the CI, which > > > > removed handling of backports :-) > > > > > > This must be the hardest patch I've ever tried to land. > > > > > > So ... The CI builders now have QT6 packages, provided through backports > > > in the case of debian-bullseye. > > > > > > We have: > > > > > > - Debian 11 : Bullsye : QT 6.4.2 > > > - Debian 12 : Bookworm : QT 6.4.2 > > > - Debian 13 : Trixie : QT 6.6.2 > > > > > > > > > But this QT6 qcam patch now has a set of failures: > > > > > > - https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1230127/ > > > > > > Debian 11 : gcc 9 : https://gitlab.freedesktop.org/camera/libcamera/-/jobs/61356458 > > > - [358/622] Compiling C++ object src/ipa/rpi/controller/librpi_ipa_controller.a.p/rpi_awb.cpp.o > > > > > > In file included from ../src/ipa/libipa/pwl.h:18, > > > from ../src/ipa/rpi/controller/rpi/awb.h:19, > > > from ../src/ipa/rpi/controller/rpi/awb.cpp:16: > > > ../src/ipa/libipa/vector.h: In instantiation of ‘constexpr libcamera::ipa::Vector<T, Rows> libcamera::ipa::Vector<T, Rows, <anonymous> >::operator-(const libcamera::ipa::Vector<T, Rows>&) const [with T = double; unsigned int Rows = 2; std::enable_if_t<is_arithmetic_v<T> >* <anonymous> = 0; std::enable_if_t<is_arithmetic_v<T> > = void]’: > > > ../src/ipa/rpi/controller/rpi/awb.cpp:506:27: required from here > > > > > > (This makes no sense to me at all) > > > > That's a note, not an error. I don't think it's related or new. > > Argh! I hadn't realised that. I thought we had a 'clean' build with no > warnings. I didn't see it was a 'note' (it really looks like a warning) > ... so I put more into this than it deserved. > > Ignored ... > > > > > > Debian 11 : gcc 10 : > > > > > > In file included from src/apps/qcam/qcam.p/moc_viewfinder_gl.cpp:10: > > > src/apps/qcam/qcam.p/../../../../../src/apps/qcam/viewfinder_gl.h:15:10: fatal error: QOpenGLBuffer: No such file or directory > > > 15 | #include <QOpenGLBuffer> > > > | ^~~~~~~~~~~~~~~ > > > compilation terminated. > > > > > > (At least this looks related) > > > > > > Debian 12 : clang ... in fact all the Debian 12's have this error: > > > > > > In file included from src/apps/qcam/qcam.p/moc_viewfinder_gl.cpp:10: > > > src/apps/qcam/qcam.p/../../../../../src/apps/qcam/viewfinder_gl.h:15:10: fatal error: 'QOpenGLBuffer' file not found > > > #include <QOpenGLBuffer> > > > ^~~~~~~~~~~~~~~ > > > > > > > > > And Buildhistory job also fails as it's based on Debian 12. > > > > > > > > > So ... there's a crazy-how-can-it-be-related-but-consistently-repeatable > > > failure on Debian 11 : gcc 9, and a missing QOpenGLBuffer on all the > > > other failures. > > > > > > > > > Does anyone know if QOpenGLBuffer is just missing from QT 6.4.2 or is > > > this just some spurious build configuration corner case failure we're > > > hitting? > > > > Aren't you just missing the libqt6opengl6-dev package ? > > Ok - so yes - that bit was that simple. I've added libqt6opengl6-dev to > the CI explicitly. > > I think that means the README needs to be updated again to reference > libqt6opengl6-dev in this patch too. > > > On to the next (final please?) failure: > > > https://gitlab.freedesktop.org/camera/libcamera/-/jobs/61434092 > > [424/606] Linking target src/apps/qcam/qcam > FAILED: src/apps/qcam/qcam > clang++ -o src/apps/qcam/qcam src/apps/qcam/qcam.p/meson-generated_.._qt6-feathericons_qrc.cpp.o src/apps/qcam/qcam.p/meson-generated_.._qt6-shaders_qrc.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_cam_select_dialog.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_main_window.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_viewfinder_gl.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_viewfinder_qt.cpp.o src/apps/qcam/qcam.p/cam_select_dialog.cpp.o src/apps/qcam/qcam.p/format_converter.cpp.o src/apps/qcam/qcam.p/main.cpp.o src/apps/qcam/qcam.p/main_window.cpp.o src/apps/qcam/qcam.p/message_handler.cpp.o src/apps/qcam/qcam.p/viewfinder_gl.cpp.o src/apps/qcam/qcam.p/viewfinder_qt.cpp.o -Wl,--as-needed -Wl,--no-undefined -stdlib=libc++ -Wextra-semi -Wthread-safety -Wmissing-declarations -Wshadow -include /builds/camera/libcamera/build/config.h -Wno-c99-designator '-Wl,-rpath,$ORIGIN/../../libcamera:$ORIGIN/../../libcamera/base' -Wl,-rpath-link,/builds/camera/libcamera/build/src/libcamera -Wl,-rpath-link,/builds/camera/libcamera/build/src/libcamera/base -Wl,--start-group src/apps/common/libapps.a src/libcamera/libcamera.so.0.3.0 src/libcamera/base/libcamera-base.so.0.3.0 -latomic /usr/lib/x86_64-linux-gnu/libtiff.so /usr/lib/x86_64-linux-gnu/libQt6Core.so /usr/lib/x86_64-linux-gnu/libQt6Gui.so /usr/lib/x86_64-linux-gnu/libQt6OpenGL.so /usr/lib/x86_64-linux-gnu/libQt6OpenGLWidgets.so /usr/lib/x86_64-linux-gnu/libQt6Widgets.so -Wl,--end-group > /usr/bin/ld: src/apps/qcam/qcam.p/cam_select_dialog.cpp.o: in function `QString::toStdString() const': > /usr/include/x86_64-linux-gnu/qt6/QtCore/qstring.h:1477: undefined reference to `QByteArray::toStdString() const' > clang: error: linker command failed with exit code 1 (use -v to see invocation) > > > on the clang builds of debian-12 though gcc-12 builds fine there! > > digging ... I took Laurent's suggestion and disabled Qcam builds on debian-12 with clang. From the looks of this, the compilation of 'QByteArray::toStdString() const' in this specific version of qt6 on debian-12 ends up binary incompatible with the libstdc++ abi ... and thus fails to link. I expect users who want to build qcam on debian-12 with clang and libstdc++ to be ... quite rare so I think we can ignore this. https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1231737 is now green - so I think I can finally merge this ! -- Kieran > > -- > Kieran > > > > > > > > > > > > Having installed these packages - I still can't enable qcam. So we must > > > > > > > be missing some more dependencies that need to be listed here. > > > > > > > > > > > > So following this back to the list: > > > > > > > > > > > > > > > > > > The issue above impacts Ubuntu-22.04 LTS, but has been reported to > > > > > > Launchpad at: > > > > > > > > > > > > Link: https://bugs.launchpad.net/ubuntu/+source/qt6-base/+bug/2067202 > > > > > > > > > > > > And should be resolved in a timeframe based on Ubuntu's priorities. > > > > > > > > > > > > I don't think we should withhold our development on that time frame - > > > > > > and I think this Qt6 enablement patch should be merged. > > > > > > > > > > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > > > > > > > > > > > > > > > > The 'negative' impacts of merging this patch are: > > > > > > - Developers (not users) using Ubuntu 22.04 will have to manually > > > > > > install a newer version of meson > > > > > > * This is I expect more than likely easy or already done by any > > > > > > actual developers of libcamera > > > > > > > > > > > > - Developers using Ubuntu 22.04 may lose qcam by default. > > > > > > - This will not break the build - but qcam may stop being enabled by > > > > > > default if QT6 can not be found while the bug link referenced above > > > > > > is not resolved. > > > > > > - I would hope this would give more pressure for Canonical to fix the > > > > > > issue - but I expect that the number of libcamera developers who > > > > > > are using libcamera, ubuntu-22.04 *and* need qcam are quite > > > > > > limited. (perhaps just me?) - and solutions can be provided to > > > > > > support them as required - while I think there are more build > > > > > > systems that are now using a qt6 build instead of an EOL qt5 so > > > > > > it's time to move on. > > > > > > > > > > > > > > for tracing with lttng: [optional] > > > > > > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > > > > > > diff --git a/meson.build b/meson.build > > > > > > > > index cb6b666a..4c315e2a 100644 > > > > > > > > --- a/meson.build > > > > > > > > +++ b/meson.build > > > > > > > > @@ -1,7 +1,7 @@ > > > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > > > > > project('libcamera', 'c', 'cpp', > > > > > > > > - meson_version : '>= 0.60', > > > > > > > > + meson_version : '>= 0.63', > > > > > > > > version : '0.2.0', > > > > > > > > default_options : [ > > > > > > > > 'werror=true', > > > > > > > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > > > > > > > index 6cf4c171..c7fcfbeb 100644 > > > > > > > > --- a/src/apps/qcam/meson.build > > > > > > > > +++ b/src/apps/qcam/meson.build > > > > > > > > @@ -1,13 +1,13 @@ > > > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > > > > > -qt5 = import('qt5') > > > > > > > > -qt5_dep = dependency('qt5', > > > > > > > > +qt6 = import('qt6') > > > > > > > > +qt6_dep = dependency('qt6', > > > > > > > > method : 'pkg-config', > > > > > > > > - modules : ['Core', 'Gui', 'Widgets'], > > > > > > > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > > > > > > > required : get_option('qcam'), > > > > > > > > - version : '>=5.4') > > > > > > > > + version : '>=6.2') > > > > > > > > > > > > > > > > -if not qt5_dep.found() > > > > > > > > +if not qt6_dep.found() > > > > > > > > qcam_enabled = false > > > > > > > > subdir_done() > > > > > > > > endif > > > > > > > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > > > > > > > 'main.cpp', > > > > > > > > 'main_window.cpp', > > > > > > > > 'message_handler.cpp', > > > > > > > > + 'viewfinder_gl.cpp', > > > > > > > > 'viewfinder_qt.cpp', > > > > > > > > ]) > > > > > > > > > > > > > > > > qcam_moc_headers = files([ > > > > > > > > 'cam_select_dialog.h', > > > > > > > > 'main_window.h', > > > > > > > > + 'viewfinder_gl.h', > > > > > > > > 'viewfinder_qt.h', > > > > > > > > ]) > > > > > > > > > > > > > > > > qcam_resources = files([ > > > > > > > > 'assets/feathericons/feathericons.qrc', > > > > > > > > + 'assets/shader/shaders.qrc', > > > > > > > > ]) > > > > > > > > > > > > > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > > > > > > > > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > > > > > > > - dependencies : qt5_dep, args : '-fPIC') > > > > > > > > - qcam_sources += files([ > > > > > > > > - 'viewfinder_gl.cpp', > > > > > > > > - ]) > > > > > > > > - qcam_moc_headers += files([ > > > > > > > > - 'viewfinder_gl.h', > > > > > > > > - ]) > > > > > > > > - qcam_resources += files([ > > > > > > > > - 'assets/shader/shaders.qrc' > > > > > > > > - ]) > > > > > > > > -endif > > > > > > > > - > > > > > > > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > > > > > > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > > > > > > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > > > > > > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > > > > > > > - qt5_dep.version().version_compare('<5.13')) or > > > > > > > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > > > > > > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > > > > > > > -endif > > > > > > > > - > > > > > > > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > > > > > > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > > > > > > > qresources : qcam_resources, > > > > > > > > - dependencies : qt5_dep) > > > > > > > > + dependencies : qt6_dep) > > > > > > > > > > > > > > > > qcam = executable('qcam', qcam_sources, resources, > > > > > > > > install : true, > > > > > > > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > > > > > > > libatomic, > > > > > > > > libcamera_public, > > > > > > > > libtiff, > > > > > > > > - qt5_dep, > > > > > > > > + qt6_dep, > > > > > > > > ], > > > > > > > > - cpp_args : qt5_cpp_args) > > > > > > > > + cpp_args : qt6_cpp_args) > > > > -- > > Regards, > > > > Laurent Pinchart
On Wed, Jul 24, 2024 at 02:55:43PM +0100, Kieran Bingham wrote: > Quoting Kieran Bingham (2024-07-24 11:38:07) > > Quoting Laurent Pinchart (2024-07-23 19:53:52) > > > On Tue, Jul 23, 2024 at 06:11:19PM +0100, Kieran Bingham wrote: > > > > Quoting Laurent Pinchart (2024-07-22 16:13:57) > > > > > On Mon, Jul 22, 2024 at 04:01:23PM +0100, Kieran Bingham wrote: > > > > > > Quoting Kieran Bingham (2024-07-22 15:13:57) > > > > > > > Quoting Kieran Bingham (2024-04-16 19:14:35) > > > > > > > > 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. > > > > > > > > > > > > > > > > However ... > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > > > > > > --- > > > > > > > > > README.rst | 2 +- > > > > > > > > > meson.build | 2 +- > > > > > > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > > > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > > > > > > > > > > > diff --git a/README.rst b/README.rst > > > > > > > > > index 315738ee..6f1c9302 100644 > > > > > > > > > --- a/README.rst > > > > > > > > > +++ b/README.rst > > > > > > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > > > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > > > > > > > > > > > for qcam: [optional] > > > > > > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > > > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > > > > > > > On debian bullseye there's no qt6-tools-dev-tools package ... > > > > > > > > > > > > Trying to identify either the correct package or when it gets added... > > > > > > > > > > > > > > > > > > Hrm. ... it looks like it's only available in bullseye-backports: > > > > > > > > > > > > https://packages.debian.org/bullseye-backports/amd64/qt6-tools-dev-tools > > > > > > > > > > > > Now ... how do we handle this on the CI ... > > > > > > > > > > See commit 239de776df95044aa8efa7d19064a9d5c679f4ca in the CI, which > > > > > removed handling of backports :-) > > > > > > > > This must be the hardest patch I've ever tried to land. > > > > > > > > So ... The CI builders now have QT6 packages, provided through backports > > > > in the case of debian-bullseye. > > > > > > > > We have: > > > > > > > > - Debian 11 : Bullsye : QT 6.4.2 > > > > - Debian 12 : Bookworm : QT 6.4.2 > > > > - Debian 13 : Trixie : QT 6.6.2 > > > > > > > > > > > > But this QT6 qcam patch now has a set of failures: > > > > > > > > - https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1230127/ > > > > > > > > Debian 11 : gcc 9 : https://gitlab.freedesktop.org/camera/libcamera/-/jobs/61356458 > > > > - [358/622] Compiling C++ object src/ipa/rpi/controller/librpi_ipa_controller.a.p/rpi_awb.cpp.o > > > > > > > > In file included from ../src/ipa/libipa/pwl.h:18, > > > > from ../src/ipa/rpi/controller/rpi/awb.h:19, > > > > from ../src/ipa/rpi/controller/rpi/awb.cpp:16: > > > > ../src/ipa/libipa/vector.h: In instantiation of ‘constexpr libcamera::ipa::Vector<T, Rows> libcamera::ipa::Vector<T, Rows, <anonymous> >::operator-(const libcamera::ipa::Vector<T, Rows>&) const [with T = double; unsigned int Rows = 2; std::enable_if_t<is_arithmetic_v<T> >* <anonymous> = 0; std::enable_if_t<is_arithmetic_v<T> > = void]’: > > > > ../src/ipa/rpi/controller/rpi/awb.cpp:506:27: required from here > > > > > > > > (This makes no sense to me at all) > > > > > > That's a note, not an error. I don't think it's related or new. > > > > Argh! I hadn't realised that. I thought we had a 'clean' build with no > > warnings. I didn't see it was a 'note' (it really looks like a warning) > > ... so I put more into this than it deserved. > > > > Ignored ... > > > > > > > > > Debian 11 : gcc 10 : > > > > > > > > In file included from src/apps/qcam/qcam.p/moc_viewfinder_gl.cpp:10: > > > > src/apps/qcam/qcam.p/../../../../../src/apps/qcam/viewfinder_gl.h:15:10: fatal error: QOpenGLBuffer: No such file or directory > > > > 15 | #include <QOpenGLBuffer> > > > > | ^~~~~~~~~~~~~~~ > > > > compilation terminated. > > > > > > > > (At least this looks related) > > > > > > > > Debian 12 : clang ... in fact all the Debian 12's have this error: > > > > > > > > In file included from src/apps/qcam/qcam.p/moc_viewfinder_gl.cpp:10: > > > > src/apps/qcam/qcam.p/../../../../../src/apps/qcam/viewfinder_gl.h:15:10: fatal error: 'QOpenGLBuffer' file not found > > > > #include <QOpenGLBuffer> > > > > ^~~~~~~~~~~~~~~ > > > > > > > > > > > > And Buildhistory job also fails as it's based on Debian 12. > > > > > > > > > > > > So ... there's a crazy-how-can-it-be-related-but-consistently-repeatable > > > > failure on Debian 11 : gcc 9, and a missing QOpenGLBuffer on all the > > > > other failures. > > > > > > > > > > > > Does anyone know if QOpenGLBuffer is just missing from QT 6.4.2 or is > > > > this just some spurious build configuration corner case failure we're > > > > hitting? > > > > > > Aren't you just missing the libqt6opengl6-dev package ? > > > > Ok - so yes - that bit was that simple. I've added libqt6opengl6-dev to > > the CI explicitly. > > > > I think that means the README needs to be updated again to reference > > libqt6opengl6-dev in this patch too. > > > > > > On to the next (final please?) failure: > > > > > > https://gitlab.freedesktop.org/camera/libcamera/-/jobs/61434092 > > > > [424/606] Linking target src/apps/qcam/qcam > > FAILED: src/apps/qcam/qcam > > clang++ -o src/apps/qcam/qcam src/apps/qcam/qcam.p/meson-generated_.._qt6-feathericons_qrc.cpp.o src/apps/qcam/qcam.p/meson-generated_.._qt6-shaders_qrc.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_cam_select_dialog.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_main_window.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_viewfinder_gl.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_viewfinder_qt.cpp.o src/apps/qcam/qcam.p/cam_select_dialog.cpp.o src/apps/qcam/qcam.p/format_converter.cpp.o src/apps/qcam/qcam.p/main.cpp.o src/apps/qcam/qcam.p/main_window.cpp.o src/apps/qcam/qcam.p/message_handler.cpp.o src/apps/qcam/qcam.p/viewfinder_gl.cpp.o src/apps/qcam/qcam.p/viewfinder_qt.cpp.o -Wl,--as-needed -Wl,--no-undefined -stdlib=libc++ -Wextra-semi -Wthread-safety -Wmissing-declarations -Wshadow -include /builds/camera/libcamera/build/config.h -Wno-c99-designator '-Wl,-rpath,$ORIGIN/../../libcamera:$ORIGIN/../../libcamera/base' -Wl,-rpath-link,/builds/camera/libcamera/build/src/libcamera -Wl,-rpath-link,/builds/camera/libcamera/build/src/libcamera/base -Wl,--start-group src/apps/common/libapps.a src/libcamera/libcamera.so.0.3.0 src/libcamera/base/libcamera-base.so.0.3.0 -latomic /usr/lib/x86_64-linux-gnu/libtiff.so /usr/lib/x86_64-linux-gnu/libQt6Core.so /usr/lib/x86_64-linux-gnu/libQt6Gui.so /usr/lib/x86_64-linux-gnu/libQt6OpenGL.so /usr/lib/x86_64-linux-gnu/libQt6OpenGLWidgets.so /usr/lib/x86_64-linux-gnu/libQt6Widgets.so -Wl,--end-group > > /usr/bin/ld: src/apps/qcam/qcam.p/cam_select_dialog.cpp.o: in function `QString::toStdString() const': > > /usr/include/x86_64-linux-gnu/qt6/QtCore/qstring.h:1477: undefined reference to `QByteArray::toStdString() const' > > clang: error: linker command failed with exit code 1 (use -v to see invocation) > > > > > > on the clang builds of debian-12 though gcc-12 builds fine there! > > > > digging ... > > I took Laurent's suggestion and disabled Qcam builds on debian-12 with > clang. > > From the looks of this, the compilation of 'QByteArray::toStdString() > const' in this specific version of qt6 on debian-12 ends up binary > incompatible with the libstdc++ abi ... and thus fails to link. Did you mean libc++ ? libstdc++ is the library that comes with gcc. Does Debian 12 compile packages with gcc + libc++ ? > I expect users who want to build qcam on debian-12 with clang and > libstdc++ to be ... quite rare so I think we can ignore this. > > https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1231737 > > is now green - so I think I can finally merge this ! > > > > > > > > > Having installed these packages - I still can't enable qcam. So we must > > > > > > > > be missing some more dependencies that need to be listed here. > > > > > > > > > > > > > > So following this back to the list: > > > > > > > > > > > > > > > > > > > > > The issue above impacts Ubuntu-22.04 LTS, but has been reported to > > > > > > > Launchpad at: > > > > > > > > > > > > > > Link: https://bugs.launchpad.net/ubuntu/+source/qt6-base/+bug/2067202 > > > > > > > > > > > > > > And should be resolved in a timeframe based on Ubuntu's priorities. > > > > > > > > > > > > > > I don't think we should withhold our development on that time frame - > > > > > > > and I think this Qt6 enablement patch should be merged. > > > > > > > > > > > > > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > > > > > > > > > > > > > > > > > > > > > The 'negative' impacts of merging this patch are: > > > > > > > - Developers (not users) using Ubuntu 22.04 will have to manually > > > > > > > install a newer version of meson > > > > > > > * This is I expect more than likely easy or already done by any > > > > > > > actual developers of libcamera > > > > > > > > > > > > > > - Developers using Ubuntu 22.04 may lose qcam by default. > > > > > > > - This will not break the build - but qcam may stop being enabled by > > > > > > > default if QT6 can not be found while the bug link referenced above > > > > > > > is not resolved. > > > > > > > - I would hope this would give more pressure for Canonical to fix the > > > > > > > issue - but I expect that the number of libcamera developers who > > > > > > > are using libcamera, ubuntu-22.04 *and* need qcam are quite > > > > > > > limited. (perhaps just me?) - and solutions can be provided to > > > > > > > support them as required - while I think there are more build > > > > > > > systems that are now using a qt6 build instead of an EOL qt5 so > > > > > > > it's time to move on. > > > > > > > > > > > > > > > > for tracing with lttng: [optional] > > > > > > > > > liblttng-ust-dev python3-jinja2 lttng-tools > > > > > > > > > diff --git a/meson.build b/meson.build > > > > > > > > > index cb6b666a..4c315e2a 100644 > > > > > > > > > --- a/meson.build > > > > > > > > > +++ b/meson.build > > > > > > > > > @@ -1,7 +1,7 @@ > > > > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > > > > > > > project('libcamera', 'c', 'cpp', > > > > > > > > > - meson_version : '>= 0.60', > > > > > > > > > + meson_version : '>= 0.63', > > > > > > > > > version : '0.2.0', > > > > > > > > > default_options : [ > > > > > > > > > 'werror=true', > > > > > > > > > diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build > > > > > > > > > index 6cf4c171..c7fcfbeb 100644 > > > > > > > > > --- a/src/apps/qcam/meson.build > > > > > > > > > +++ b/src/apps/qcam/meson.build > > > > > > > > > @@ -1,13 +1,13 @@ > > > > > > > > > # SPDX-License-Identifier: CC0-1.0 > > > > > > > > > > > > > > > > > > -qt5 = import('qt5') > > > > > > > > > -qt5_dep = dependency('qt5', > > > > > > > > > +qt6 = import('qt6') > > > > > > > > > +qt6_dep = dependency('qt6', > > > > > > > > > method : 'pkg-config', > > > > > > > > > - modules : ['Core', 'Gui', 'Widgets'], > > > > > > > > > + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], > > > > > > > > > required : get_option('qcam'), > > > > > > > > > - version : '>=5.4') > > > > > > > > > + version : '>=6.2') > > > > > > > > > > > > > > > > > > -if not qt5_dep.found() > > > > > > > > > +if not qt6_dep.found() > > > > > > > > > qcam_enabled = false > > > > > > > > > subdir_done() > > > > > > > > > endif > > > > > > > > > @@ -20,46 +20,27 @@ qcam_sources = files([ > > > > > > > > > 'main.cpp', > > > > > > > > > 'main_window.cpp', > > > > > > > > > 'message_handler.cpp', > > > > > > > > > + 'viewfinder_gl.cpp', > > > > > > > > > 'viewfinder_qt.cpp', > > > > > > > > > ]) > > > > > > > > > > > > > > > > > > qcam_moc_headers = files([ > > > > > > > > > 'cam_select_dialog.h', > > > > > > > > > 'main_window.h', > > > > > > > > > + 'viewfinder_gl.h', > > > > > > > > > 'viewfinder_qt.h', > > > > > > > > > ]) > > > > > > > > > > > > > > > > > > qcam_resources = files([ > > > > > > > > > 'assets/feathericons/feathericons.qrc', > > > > > > > > > + 'assets/shader/shaders.qrc', > > > > > > > > > ]) > > > > > > > > > > > > > > > > > > -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > > > > +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] > > > > > > > > > > > > > > > > > > -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', > > > > > > > > > - dependencies : qt5_dep, args : '-fPIC') > > > > > > > > > - qcam_sources += files([ > > > > > > > > > - 'viewfinder_gl.cpp', > > > > > > > > > - ]) > > > > > > > > > - qcam_moc_headers += files([ > > > > > > > > > - 'viewfinder_gl.h', > > > > > > > > > - ]) > > > > > > > > > - qcam_resources += files([ > > > > > > > > > - 'assets/shader/shaders.qrc' > > > > > > > > > - ]) > > > > > > > > > -endif > > > > > > > > > - > > > > > > > > > -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until > > > > > > > > > -# Qt 5.13. clang 10 introduced the same warning, but detects more issues > > > > > > > > > -# that are not fixed in Qt yet. Disable the warning manually in both cases. > > > > > > > > > -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and > > > > > > > > > - qt5_dep.version().version_compare('<5.13')) or > > > > > > > > > - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) > > > > > > > > > - qt5_cpp_args += ['-Wno-deprecated-copy'] > > > > > > > > > -endif > > > > > > > > > - > > > > > > > > > -resources = qt5.preprocess(moc_headers : qcam_moc_headers, > > > > > > > > > +resources = qt6.preprocess(moc_headers : qcam_moc_headers, > > > > > > > > > qresources : qcam_resources, > > > > > > > > > - dependencies : qt5_dep) > > > > > > > > > + dependencies : qt6_dep) > > > > > > > > > > > > > > > > > > qcam = executable('qcam', qcam_sources, resources, > > > > > > > > > install : true, > > > > > > > > > @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, > > > > > > > > > libatomic, > > > > > > > > > libcamera_public, > > > > > > > > > libtiff, > > > > > > > > > - qt5_dep, > > > > > > > > > + qt6_dep, > > > > > > > > > ], > > > > > > > > > - cpp_args : qt5_cpp_args) > > > > > > > > > + cpp_args : qt6_cpp_args)
On Wed, Jul 24, 2024 at 3:00 PM Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote: > > On Wed, Jul 24, 2024 at 02:55:43PM +0100, Kieran Bingham wrote: > > Quoting Kieran Bingham (2024-07-24 11:38:07) > > > Quoting Laurent Pinchart (2024-07-23 19:53:52) > > > > On Tue, Jul 23, 2024 at 06:11:19PM +0100, Kieran Bingham wrote: > > > > > Quoting Laurent Pinchart (2024-07-22 16:13:57) > > > > > > On Mon, Jul 22, 2024 at 04:01:23PM +0100, Kieran Bingham wrote: > > > > > > > Quoting Kieran Bingham (2024-07-22 15:13:57) > > > > > > > > Quoting Kieran Bingham (2024-04-16 19:14:35) > > > > > > > > > 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. > > > > > > > > > > > > > > > > > > However ... > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > > > > > > > --- > > > > > > > > > > README.rst | 2 +- > > > > > > > > > > meson.build | 2 +- > > > > > > > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > > > > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > > > > > > > > > > > > > diff --git a/README.rst b/README.rst > > > > > > > > > > index 315738ee..6f1c9302 100644 > > > > > > > > > > --- a/README.rst > > > > > > > > > > +++ b/README.rst > > > > > > > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > > > > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > > > > > > > > > > > > > for qcam: [optional] > > > > > > > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > > > > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > > > > > > > > > On debian bullseye there's no qt6-tools-dev-tools package ... > > > > > > > > > > > > > > Trying to identify either the correct package or when it gets added... > > > > > > > > > > > > > > > > > > > > > Hrm. ... it looks like it's only available in bullseye-backports: > > > > > > > > > > > > > > https://packages.debian.org/bullseye-backports/amd64/qt6-tools-dev-tools > > > > > > > > > > > > > > Now ... how do we handle this on the CI ... > > > > > > > > > > > > See commit 239de776df95044aa8efa7d19064a9d5c679f4ca in the CI, which > > > > > > removed handling of backports :-) > > > > > > > > > > This must be the hardest patch I've ever tried to land. > > > > > > > > > > So ... The CI builders now have QT6 packages, provided through backports > > > > > in the case of debian-bullseye. > > > > > > > > > > We have: > > > > > > > > > > - Debian 11 : Bullsye : QT 6.4.2 > > > > > - Debian 12 : Bookworm : QT 6.4.2 > > > > > - Debian 13 : Trixie : QT 6.6.2 > > > > > > > > > > > > > > > But this QT6 qcam patch now has a set of failures: > > > > > > > > > > - https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1230127/ > > > > > > > > > > Debian 11 : gcc 9 : https://gitlab.freedesktop.org/camera/libcamera/-/jobs/61356458 > > > > > - [358/622] Compiling C++ object src/ipa/rpi/controller/librpi_ipa_controller.a.p/rpi_awb.cpp.o > > > > > > > > > > In file included from ../src/ipa/libipa/pwl.h:18, > > > > > from ../src/ipa/rpi/controller/rpi/awb.h:19, > > > > > from ../src/ipa/rpi/controller/rpi/awb.cpp:16: > > > > > ../src/ipa/libipa/vector.h: In instantiation of ‘constexpr libcamera::ipa::Vector<T, Rows> libcamera::ipa::Vector<T, Rows, <anonymous> >::operator-(const libcamera::ipa::Vector<T, Rows>&) const [with T = double; unsigned int Rows = 2; std::enable_if_t<is_arithmetic_v<T> >* <anonymous> = 0; std::enable_if_t<is_arithmetic_v<T> > = void]’: > > > > > ../src/ipa/rpi/controller/rpi/awb.cpp:506:27: required from here > > > > > > > > > > (This makes no sense to me at all) > > > > > > > > That's a note, not an error. I don't think it's related or new. > > > > > > Argh! I hadn't realised that. I thought we had a 'clean' build with no > > > warnings. I didn't see it was a 'note' (it really looks like a warning) > > > ... so I put more into this than it deserved. > > > > > > Ignored ... > > > > > > > > > > > > Debian 11 : gcc 10 : > > > > > > > > > > In file included from src/apps/qcam/qcam.p/moc_viewfinder_gl.cpp:10: > > > > > src/apps/qcam/qcam.p/../../../../../src/apps/qcam/viewfinder_gl.h:15:10: fatal error: QOpenGLBuffer: No such file or directory > > > > > 15 | #include <QOpenGLBuffer> > > > > > | ^~~~~~~~~~~~~~~ > > > > > compilation terminated. > > > > > > > > > > (At least this looks related) > > > > > > > > > > Debian 12 : clang ... in fact all the Debian 12's have this error: > > > > > > > > > > In file included from src/apps/qcam/qcam.p/moc_viewfinder_gl.cpp:10: > > > > > src/apps/qcam/qcam.p/../../../../../src/apps/qcam/viewfinder_gl.h:15:10: fatal error: 'QOpenGLBuffer' file not found > > > > > #include <QOpenGLBuffer> > > > > > ^~~~~~~~~~~~~~~ > > > > > > > > > > > > > > > And Buildhistory job also fails as it's based on Debian 12. > > > > > > > > > > > > > > > So ... there's a crazy-how-can-it-be-related-but-consistently-repeatable > > > > > failure on Debian 11 : gcc 9, and a missing QOpenGLBuffer on all the > > > > > other failures. > > > > > > > > > > > > > > > Does anyone know if QOpenGLBuffer is just missing from QT 6.4.2 or is > > > > > this just some spurious build configuration corner case failure we're > > > > > hitting? > > > > > > > > Aren't you just missing the libqt6opengl6-dev package ? > > > > > > Ok - so yes - that bit was that simple. I've added libqt6opengl6-dev to > > > the CI explicitly. > > > > > > I think that means the README needs to be updated again to reference > > > libqt6opengl6-dev in this patch too. > > > > > > > > > On to the next (final please?) failure: > > > > > > > > > https://gitlab.freedesktop.org/camera/libcamera/-/jobs/61434092 > > > > > > [424/606] Linking target src/apps/qcam/qcam > > > FAILED: src/apps/qcam/qcam > > > clang++ -o src/apps/qcam/qcam src/apps/qcam/qcam.p/meson-generated_.._qt6-feathericons_qrc.cpp.o src/apps/qcam/qcam.p/meson-generated_.._qt6-shaders_qrc.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_cam_select_dialog.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_main_window.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_viewfinder_gl.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_viewfinder_qt.cpp.o src/apps/qcam/qcam.p/cam_select_dialog.cpp.o src/apps/qcam/qcam.p/format_converter.cpp.o src/apps/qcam/qcam.p/main.cpp.o src/apps/qcam/qcam.p/main_window.cpp.o src/apps/qcam/qcam.p/message_handler.cpp.o src/apps/qcam/qcam.p/viewfinder_gl.cpp.o src/apps/qcam/qcam.p/viewfinder_qt.cpp.o -Wl,--as-needed -Wl,--no-undefined -stdlib=libc++ -Wextra-semi -Wthread-safety -Wmissing-declarations -Wshadow -include /builds/camera/libcamera/build/config.h -Wno-c99-designator '-Wl,-rpath,$ORIGIN/../../libcamera:$ORIGIN/../../libcamera/base' -Wl,-rpath-link,/builds/camera/libcamera/build/src/libcamera -Wl,-rpath-link,/builds/camera/libcamera/build/src/libcamera/base -Wl,--start-group src/apps/common/libapps.a src/libcamera/libcamera.so.0.3.0 src/libcamera/base/libcamera-base.so.0.3.0 -latomic /usr/lib/x86_64-linux-gnu/libtiff.so /usr/lib/x86_64-linux-gnu/libQt6Core.so /usr/lib/x86_64-linux-gnu/libQt6Gui.so /usr/lib/x86_64-linux-gnu/libQt6OpenGL.so /usr/lib/x86_64-linux-gnu/libQt6OpenGLWidgets.so /usr/lib/x86_64-linux-gnu/libQt6Widgets.so -Wl,--end-group > > > /usr/bin/ld: src/apps/qcam/qcam.p/cam_select_dialog.cpp.o: in function `QString::toStdString() const': > > > /usr/include/x86_64-linux-gnu/qt6/QtCore/qstring.h:1477: undefined reference to `QByteArray::toStdString() const' > > > clang: error: linker command failed with exit code 1 (use -v to see invocation) > > > > > > > > > on the clang builds of debian-12 though gcc-12 builds fine there! > > > > > > digging ... > > > > I took Laurent's suggestion and disabled Qcam builds on debian-12 with > > clang. > > > > From the looks of this, the compilation of 'QByteArray::toStdString() > > const' in this specific version of qt6 on debian-12 ends up binary > > incompatible with the libstdc++ abi ... and thus fails to link. > > Did you mean libc++ ? libstdc++ is the library that comes with gcc. Does > Debian 12 compile packages with gcc + libc++ ? > It is fairly common to have clang built against and linked to libstdc++. That ensures that you can use clang for some things and gcc for other things and they can be combined into a single executable.
On Sun, Jul 28, 2024 at 11:03:11AM -0400, Neal Gompa wrote: > On Wed, Jul 24, 2024 at 3:00 PM Laurent Pinchart wrote: > > On Wed, Jul 24, 2024 at 02:55:43PM +0100, Kieran Bingham wrote: > > > Quoting Kieran Bingham (2024-07-24 11:38:07) > > > > Quoting Laurent Pinchart (2024-07-23 19:53:52) > > > > > On Tue, Jul 23, 2024 at 06:11:19PM +0100, Kieran Bingham wrote: > > > > > > Quoting Laurent Pinchart (2024-07-22 16:13:57) > > > > > > > On Mon, Jul 22, 2024 at 04:01:23PM +0100, Kieran Bingham wrote: > > > > > > > > Quoting Kieran Bingham (2024-07-22 15:13:57) > > > > > > > > > Quoting Kieran Bingham (2024-04-16 19:14:35) > > > > > > > > > > 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. > > > > > > > > > > > > > > > > > > > > However ... > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Signed-off-by: Neal Gompa <neal@gompa.dev> > > > > > > > > > > > --- > > > > > > > > > > > README.rst | 2 +- > > > > > > > > > > > meson.build | 2 +- > > > > > > > > > > > src/apps/qcam/meson.build | 45 +++++++++++---------------------------- > > > > > > > > > > > 3 files changed, 15 insertions(+), 34 deletions(-) > > > > > > > > > > > > > > > > > > > > > > diff --git a/README.rst b/README.rst > > > > > > > > > > > index 315738ee..6f1c9302 100644 > > > > > > > > > > > --- a/README.rst > > > > > > > > > > > +++ b/README.rst > > > > > > > > > > > @@ -88,7 +88,7 @@ for cam: [optional] > > > > > > > > > > > - libsdl2-dev: Enables the SDL sink > > > > > > > > > > > > > > > > > > > > > > for qcam: [optional] > > > > > > > > > > > - libtiff-dev qtbase5-dev qttools5-dev-tools > > > > > > > > > > > + libtiff-dev qt6-base-dev qt6-tools-dev-tools > > > > > > > > > > > > > > > > On debian bullseye there's no qt6-tools-dev-tools package ... > > > > > > > > > > > > > > > > Trying to identify either the correct package or when it gets added... > > > > > > > > > > > > > > > > > > > > > > > > Hrm. ... it looks like it's only available in bullseye-backports: > > > > > > > > > > > > > > > > https://packages.debian.org/bullseye-backports/amd64/qt6-tools-dev-tools > > > > > > > > > > > > > > > > Now ... how do we handle this on the CI ... > > > > > > > > > > > > > > See commit 239de776df95044aa8efa7d19064a9d5c679f4ca in the CI, which > > > > > > > removed handling of backports :-) > > > > > > > > > > > > This must be the hardest patch I've ever tried to land. > > > > > > > > > > > > So ... The CI builders now have QT6 packages, provided through backports > > > > > > in the case of debian-bullseye. > > > > > > > > > > > > We have: > > > > > > > > > > > > - Debian 11 : Bullsye : QT 6.4.2 > > > > > > - Debian 12 : Bookworm : QT 6.4.2 > > > > > > - Debian 13 : Trixie : QT 6.6.2 > > > > > > > > > > > > > > > > > > But this QT6 qcam patch now has a set of failures: > > > > > > > > > > > > - https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1230127/ > > > > > > > > > > > > Debian 11 : gcc 9 : https://gitlab.freedesktop.org/camera/libcamera/-/jobs/61356458 > > > > > > - [358/622] Compiling C++ object src/ipa/rpi/controller/librpi_ipa_controller.a.p/rpi_awb.cpp.o > > > > > > > > > > > > In file included from ../src/ipa/libipa/pwl.h:18, > > > > > > from ../src/ipa/rpi/controller/rpi/awb.h:19, > > > > > > from ../src/ipa/rpi/controller/rpi/awb.cpp:16: > > > > > > ../src/ipa/libipa/vector.h: In instantiation of ‘constexpr libcamera::ipa::Vector<T, Rows> libcamera::ipa::Vector<T, Rows, <anonymous> >::operator-(const libcamera::ipa::Vector<T, Rows>&) const [with T = double; unsigned int Rows = 2; std::enable_if_t<is_arithmetic_v<T> >* <anonymous> = 0; std::enable_if_t<is_arithmetic_v<T> > = void]’: > > > > > > ../src/ipa/rpi/controller/rpi/awb.cpp:506:27: required from here > > > > > > > > > > > > (This makes no sense to me at all) > > > > > > > > > > That's a note, not an error. I don't think it's related or new. > > > > > > > > Argh! I hadn't realised that. I thought we had a 'clean' build with no > > > > warnings. I didn't see it was a 'note' (it really looks like a warning) > > > > ... so I put more into this than it deserved. > > > > > > > > Ignored ... > > > > > > > > > > > > > > > Debian 11 : gcc 10 : > > > > > > > > > > > > In file included from src/apps/qcam/qcam.p/moc_viewfinder_gl.cpp:10: > > > > > > src/apps/qcam/qcam.p/../../../../../src/apps/qcam/viewfinder_gl.h:15:10: fatal error: QOpenGLBuffer: No such file or directory > > > > > > 15 | #include <QOpenGLBuffer> > > > > > > | ^~~~~~~~~~~~~~~ > > > > > > compilation terminated. > > > > > > > > > > > > (At least this looks related) > > > > > > > > > > > > Debian 12 : clang ... in fact all the Debian 12's have this error: > > > > > > > > > > > > In file included from src/apps/qcam/qcam.p/moc_viewfinder_gl.cpp:10: > > > > > > src/apps/qcam/qcam.p/../../../../../src/apps/qcam/viewfinder_gl.h:15:10: fatal error: 'QOpenGLBuffer' file not found > > > > > > #include <QOpenGLBuffer> > > > > > > ^~~~~~~~~~~~~~~ > > > > > > > > > > > > > > > > > > And Buildhistory job also fails as it's based on Debian 12. > > > > > > > > > > > > > > > > > > So ... there's a crazy-how-can-it-be-related-but-consistently-repeatable > > > > > > failure on Debian 11 : gcc 9, and a missing QOpenGLBuffer on all the > > > > > > other failures. > > > > > > > > > > > > > > > > > > Does anyone know if QOpenGLBuffer is just missing from QT 6.4.2 or is > > > > > > this just some spurious build configuration corner case failure we're > > > > > > hitting? > > > > > > > > > > Aren't you just missing the libqt6opengl6-dev package ? > > > > > > > > Ok - so yes - that bit was that simple. I've added libqt6opengl6-dev to > > > > the CI explicitly. > > > > > > > > I think that means the README needs to be updated again to reference > > > > libqt6opengl6-dev in this patch too. > > > > > > > > > > > > On to the next (final please?) failure: > > > > > > > > > > > > https://gitlab.freedesktop.org/camera/libcamera/-/jobs/61434092 > > > > > > > > [424/606] Linking target src/apps/qcam/qcam > > > > FAILED: src/apps/qcam/qcam > > > > clang++ -o src/apps/qcam/qcam src/apps/qcam/qcam.p/meson-generated_.._qt6-feathericons_qrc.cpp.o src/apps/qcam/qcam.p/meson-generated_.._qt6-shaders_qrc.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_cam_select_dialog.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_main_window.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_viewfinder_gl.cpp.o src/apps/qcam/qcam.p/meson-generated_moc_viewfinder_qt.cpp.o src/apps/qcam/qcam.p/cam_select_dialog.cpp.o src/apps/qcam/qcam.p/format_converter.cpp.o src/apps/qcam/qcam.p/main.cpp.o src/apps/qcam/qcam.p/main_window.cpp.o src/apps/qcam/qcam.p/message_handler.cpp.o src/apps/qcam/qcam.p/viewfinder_gl.cpp.o src/apps/qcam/qcam.p/viewfinder_qt.cpp.o -Wl,--as-needed -Wl,--no-undefined -stdlib=libc++ -Wextra-semi -Wthread-safety -Wmissing-declarations -Wshadow -include /builds/camera/libcamera/build/config.h -Wno-c99-designator '-Wl,-rpath,$ORIGIN/../../libcamera:$ORIGIN/../../libcamera/base' -Wl,-rpath-link,/builds/camera/libcamera/build/src/libcamera -Wl,-rpath-link,/builds/camera/libcamera/build/src/libcamera/base -Wl,--start-group src/apps/common/libapps.a src/libcamera/libcamera.so.0.3.0 src/libcamera/base/libcamera-base.so.0.3.0 -latomic /usr/lib/x86_64-linux-gnu/libtiff.so /usr/lib/x86_64-linux-gnu/libQt6Core.so /usr/lib/x86_64-linux-gnu/libQt6Gui.so /usr/lib/x86_64-linux-gnu/libQt6OpenGL.so /usr/lib/x86_64-linux-gnu/libQt6OpenGLWidgets.so /usr/lib/x86_64-linux-gnu/libQt6Widgets.so -Wl,--end-group > > > > /usr/bin/ld: src/apps/qcam/qcam.p/cam_select_dialog.cpp.o: in function `QString::toStdString() const': > > > > /usr/include/x86_64-linux-gnu/qt6/QtCore/qstring.h:1477: undefined reference to `QByteArray::toStdString() const' > > > > clang: error: linker command failed with exit code 1 (use -v to see invocation) > > > > > > > > > > > > on the clang builds of debian-12 though gcc-12 builds fine there! > > > > > > > > digging ... > > > > > > I took Laurent's suggestion and disabled Qcam builds on debian-12 with > > > clang. > > > > > > From the looks of this, the compilation of 'QByteArray::toStdString() > > > const' in this specific version of qt6 on debian-12 ends up binary > > > incompatible with the libstdc++ abi ... and thus fails to link. > > > > Did you mean libc++ ? libstdc++ is the library that comes with gcc. Does > > Debian 12 compile packages with gcc + libc++ ? > > It is fairly common to have clang built against and linked to > libstdc++. That ensures that you can use clang for some things and gcc > for other things and they can be combined into a single executable. Yes, it's the other way around that would puzzle me. Kieran mention a Debian Qt 6 package incompatible with the *libstdc++* ABI.
diff --git a/README.rst b/README.rst index 315738ee..6f1c9302 100644 --- a/README.rst +++ b/README.rst @@ -88,7 +88,7 @@ for cam: [optional] - libsdl2-dev: Enables the SDL sink for qcam: [optional] - libtiff-dev qtbase5-dev qttools5-dev-tools + libtiff-dev qt6-base-dev qt6-tools-dev-tools for tracing with lttng: [optional] liblttng-ust-dev python3-jinja2 lttng-tools diff --git a/meson.build b/meson.build index cb6b666a..4c315e2a 100644 --- a/meson.build +++ b/meson.build @@ -1,7 +1,7 @@ # SPDX-License-Identifier: CC0-1.0 project('libcamera', 'c', 'cpp', - meson_version : '>= 0.60', + meson_version : '>= 0.63', version : '0.2.0', default_options : [ 'werror=true', diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build index 6cf4c171..c7fcfbeb 100644 --- a/src/apps/qcam/meson.build +++ b/src/apps/qcam/meson.build @@ -1,13 +1,13 @@ # SPDX-License-Identifier: CC0-1.0 -qt5 = import('qt5') -qt5_dep = dependency('qt5', +qt6 = import('qt6') +qt6_dep = dependency('qt6', method : 'pkg-config', - modules : ['Core', 'Gui', 'Widgets'], + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], required : get_option('qcam'), - version : '>=5.4') + version : '>=6.2') -if not qt5_dep.found() +if not qt6_dep.found() qcam_enabled = false subdir_done() endif @@ -20,46 +20,27 @@ qcam_sources = files([ 'main.cpp', 'main_window.cpp', 'message_handler.cpp', + 'viewfinder_gl.cpp', 'viewfinder_qt.cpp', ]) qcam_moc_headers = files([ 'cam_select_dialog.h', 'main_window.h', + 'viewfinder_gl.h', 'viewfinder_qt.h', ]) qcam_resources = files([ 'assets/feathericons/feathericons.qrc', + 'assets/shader/shaders.qrc', ]) -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', - dependencies : qt5_dep, args : '-fPIC') - qcam_sources += files([ - 'viewfinder_gl.cpp', - ]) - qcam_moc_headers += files([ - 'viewfinder_gl.h', - ]) - qcam_resources += files([ - 'assets/shader/shaders.qrc' - ]) -endif - -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until -# Qt 5.13. clang 10 introduced the same warning, but detects more issues -# that are not fixed in Qt yet. Disable the warning manually in both cases. -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and - qt5_dep.version().version_compare('<5.13')) or - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) - qt5_cpp_args += ['-Wno-deprecated-copy'] -endif - -resources = qt5.preprocess(moc_headers : qcam_moc_headers, +resources = qt6.preprocess(moc_headers : qcam_moc_headers, qresources : qcam_resources, - dependencies : qt5_dep) + dependencies : qt6_dep) qcam = executable('qcam', qcam_sources, resources, install : true, @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, libatomic, libcamera_public, libtiff, - qt5_dep, + qt6_dep, ], - cpp_args : qt5_cpp_args) + cpp_args : qt6_cpp_args)
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. Signed-off-by: Neal Gompa <neal@gompa.dev> --- README.rst | 2 +- meson.build | 2 +- src/apps/qcam/meson.build | 45 +++++++++++---------------------------- 3 files changed, 15 insertions(+), 34 deletions(-)