Message ID | 20240121224052.1049989-2-neal@gompa.dev |
---|---|
State | New |
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 > > >
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(-)