Compare commits

...

13 Commits

Author SHA1 Message Date
David Abdurachmanov 10a853fcd0
Disable IPA
[..]
RPM build errors:
error: Directory not found: /builddir/build/BUILDROOT/libcamera-0.2.0-1.fc40.riscv64/usr/share/libcamera
error: Directory not found: /builddir/build/BUILDROOT/libcamera-0.2.0-1.fc40.riscv64/usr/lib64/libcamera
    Directory not found: /builddir/build/BUILDROOT/libcamera-0.2.0-1.fc40.riscv64/usr/share/libcamera
    Directory not found: /builddir/build/BUILDROOT/libcamera-0.2.0-1.fc40.riscv64/usr/lib64/libcamera
[..]

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-01-11 14:01:46 +02:00
Javier Martinez Canillas d3cc5ec78a
Update to version 0.2.0
Resolves: rhbz#2257601

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2024-01-10 19:08:12 +01:00
Terje Rosten 2d8a953446 Rebuild for gtest 1.14.0 2023-10-31 19:53:30 +01:00
Terje Rosten 4fe125b84b Add patch from upstream to build with sphinx 7.0+ 2023-10-21 18:53:03 +02:00
Miroslav Suchý b24ec75e78 fix typo from previous commit 2023-10-09 22:19:37 +02:00
Miroslav Suchý cb0af6441f Migrate to SPDX license
And clarify license according to COPYING and REUSE data in sources.

This is part of https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_2
2023-09-18 05:48:02 +00:00
Javier Martinez Canillas 30d7f34f79
Update to version 0.1.0
Resolves: rhbz#2192455

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2023-07-30 12:26:34 +02:00
Fedora Release Engineering d3c9e59621 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-20 10:25:46 +00:00
Yaakov Selkowitz 8427a57b83 Disable qcam on RHEL 10
RHEL 10 is dropping support for Qt 5.
2023-07-11 17:37:31 -04:00
Yaakov Selkowitz 555acc4bdd Fix build with Python 3.12
utils/ipc/mojo is imported from Chromium, so it will take some
time to get this upstreamed.
2023-07-11 17:34:37 -04:00
Javier Martinez Canillas 0d837135f5
Fix path of key for IPA modules re-sign and drop unused env var
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2023-05-17 20:14:30 +02:00
Javier Martinez Canillas b1a2f09dcc
Re-sign IPA modules for real now
The path to the modules wasn't correct, MESON_INSTALL_DESTDIR_PREFIX must
be unset or otherwise the .so isn't found and ipa-sign.sh not called.

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2023-05-17 19:26:40 +02:00
Javier Martinez Canillas b857828a1d
Update to version 0.0.5 and other improvements
- Update to version 0.0.5
- Build again for s390x and ppc64le
- Drop boost-devel build requires
- Drop workaround patch to fix a GCC13 build issue
- Add a libcamera-v4l2-devel sub-package for the V4L2 compatibility layer
- Re-sign IPA modules after debug symbol stripping

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
2023-05-17 16:00:31 +02:00
6 changed files with 334 additions and 57 deletions

View File

@ -1,46 +0,0 @@
From e268bf274d315b90d205e3778cf06c40b6f374b6 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Tue, 24 Jan 2023 16:29:19 +0100
Subject: [PATCH] cam: fix compilation with gcc-13
Fixes following errors with gcc-13:
../git/src/cam/file_sink.cpp:92:45: error: possibly dangling reference to a temporary [-Werror=dangling-reference]
92 | const FrameMetadata::Plane &meta = buffer->metadata().planes()[i];
| ^~~~
../git/src/cam/file_sink.cpp:92:81: note: the temporary was destroyed at the end of the full expression '(& buffer->libcamera::FrameBuffer::metadata())->libcamera::FrameMetadata::planes().libcamera::Span<const libcamera::FrameMetadata::Plane>::operator[](i)'
92 | const FrameMetadata::Plane &meta = buffer->metadata().planes()[i];
| ^
cc1plus: all warnings being treated as errors
Signed-off-by: Khem Raj <raj.khem at gmail.com>
Signed-off-by: Wim Taymans <wim.taymans at gmail.com>
---
src/apps/cam/file_sink.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/apps/cam/file_sink.cpp b/src/apps/cam/file_sink.cpp
index b32aad24..9f4c5648 100644
--- a/src/apps/cam/file_sink.cpp
+++ b/src/apps/cam/file_sink.cpp
@@ -114,13 +114,13 @@ void FileSink::writeBuffer(const Stream *stream, FrameBuffer *buffer,
}
for (unsigned int i = 0; i < buffer->planes().size(); ++i) {
- const FrameMetadata::Plane &meta = buffer->metadata().planes()[i];
+ unsigned int bytesused = buffer->metadata().planes()[i].bytesused;
Span<uint8_t> data = image->data(i);
- unsigned int length = std::min<unsigned int>(meta.bytesused, data.size());
+ unsigned int length = std::min<unsigned int>(bytesused, data.size());
- if (meta.bytesused > data.size())
- std::cerr << "payload size " << meta.bytesused
+ if (bytesused > data.size())
+ std::cerr << "payload size " << bytesused
<< " larger than plane size " << data.size()
<< std::endl;
--
2.39.1

View File

@ -0,0 +1,41 @@
commit 6cb92b523bd60bd7718df134cc5b1eff51cf42e5
Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Date: Fri Jul 28 22:11:45 2023 +0300
Documentation: theme: Fix compilation with Sphinx >= 7.0.0
Sphinx 7.0.0 has dropped support for the deprecated 'style' variable
(https://github.com/sphinx-doc/sphinx/pull/11381). This breaks
compilation of the documentation:
/usr/bin/sphinx-build -D release=v0.1.0+16-eed6a079 -q -W -b html Documentation Documentation/html
Theme error:
An error happened in rendering the page api-html/index.
Reason: UndefinedError("'style' is undefined")
The recommended replacement is 'styles[-1]'. However, this resolves to
'_static/css/theme.css', which is part of the 'css_styles' variable, and
results in the stylesheet being included twice. To avoid that and fix
the compilation error, simply drop the first reference.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
diff --git a/Documentation/theme/layout.html b/Documentation/theme/layout.html
index fcc6d221..4fffefab 100644
--- a/Documentation/theme/layout.html
+++ b/Documentation/theme/layout.html
@@ -33,11 +33,6 @@ SPDX-License-Identifier: CC-BY-SA-4.0
{% endif %}
- {# RTD hosts this file, so just load on non RTD builds #}
- {% if not READTHEDOCS %}
- <link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
- {% endif %}
-
{% for cssfile in css_files %}
<link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
{% endfor %}

View File

@ -1,9 +1,11 @@
%bcond qt %[%{undefined rhel} || 0%{?rhel} < 10]
Name: libcamera
Version: 0.0.4
Release: 1%{?dist}
Version: 0.2.0
Release: 1.0.riscv64%{?dist}
Summary: A library to support complex camera ISPs
# Library is LGPLv2.1+ and the cam tool is GPLv2
License: LGPLv2+ and GPLv2
# see .reuse/dep5 and COPYING for details
License: LGPL-2.1-or-later
URL: http://libcamera.org/
# libcamera is not expected to be used in these architectures
@ -19,8 +21,6 @@ Source0: %{name}-%{version}.tar.xz
Source1: qcam.desktop
Source2: qcam.metainfo.xml
Patch0001: 0001-cam-fix-compilation-with-gcc-13.patch
BuildRequires: doxygen
BuildRequires: gcc-c++
BuildRequires: gtest-devel
@ -32,7 +32,6 @@ BuildRequires: python3-jinja2
BuildRequires: python3-ply
BuildRequires: python3-pyyaml
BuildRequires: python3-sphinx
BuildRequires: boost-devel
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: gnutls-devel
BuildRequires: libatomic
@ -41,9 +40,11 @@ BuildRequires: libtiff-devel
BuildRequires: libyaml-devel
BuildRequires: lttng-ust-devel
BuildRequires: systemd-devel
%if %{with qt}
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5Gui)
BuildRequires: pkgconfig(Qt5Widgets)
%endif
BuildRequires: pkgconfig(gstreamer-video-1.0)
BuildRequires: pkgconfig(gstreamer-allocators-1.0)
@ -65,32 +66,39 @@ Files for development with %{name}.
%package doc
Summary: Documentation for %{name}
BuildArch: noarch
License: LGPL-2.1-or-later AND CC-BY-4.0
%description doc
HTML based documentation for %{name} including getting started and API.
%ifnarch riscv64
%package ipa
Summary: ISP Image Processing Algorithm Plugins for %{name}
License: LGPL-2.1-or-later AND BSD-2-Clause
Requires: %{name}%{?_isa} = %{version}-%{release}
%description ipa
Image Processing Algorithms plugins for interfacing with device
ISPs for %{name}
%endif
%package tools
Summary: Tools for %{name}
License: LGPL-2.1-or-later AND BSD-3-Clause
Requires: %{name}%{?_isa} = %{version}-%{release}
%description tools
Command line tools for %{name}
%if %{with qt}
%package qcam
Summary: Graphical QCam application for %{name}
License: GPL-2.0-or-later AND MIT
Requires: %{name}%{?_isa} = %{version}-%{release}
%description qcam
Graphical QCam application for %{name}
%endif
%package gstreamer
Summary: GSTreamer plugin for %{name}
@ -99,6 +107,13 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%description gstreamer
GSTreamer plugins for %{name}
%package v4l2
Summary: V4L2 compatibility layer for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description v4l2
V4L2 compatibility layer for %{name}
%prep
%autosetup -p1 -n %{name}-%{version}
@ -118,12 +133,22 @@ export CFLAGS="${CFLAGS} -mabi=ieeelongdouble"
export CXXFLAGS="${CXXFLAGS} -mabi=ieeelongdouble"
%endif
%meson
%meson -Dv4l2=true %{!?with_qt:-Dqcam=disabled}
%meson_build
# Stripping requires the re-signing of IPA libraries, manually
# copy standard definition of __spec_install_post and re-sign.
%define __spec_install_post \
%{?__debug_package:%{__debug_install_post}} \
%{__arch_install_post} \
%{__os_install_post} \
%{_builddir}/%{name}-%{version}/src/ipa/ipa-sign-install.sh %{_builddir}/%{name}-%{version}/%{_vpath_builddir}/src/ipa-priv-key.pem %{buildroot}/%{_libdir}/libcamera/ipa_*.so \
%{nil}
%install
%meson_install
%if %{with qt}
# Install Desktop Entry file
desktop-file-install --dir=%{buildroot}%{_datadir}/applications \
%SOURCE1
@ -131,6 +156,7 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications \
# Install AppStream metainfo file
mkdir -p %{buildroot}/%{_metainfodir}/
cp -a %SOURCE2 %{buildroot}/%{_metainfodir}/
%endif
# Remove the Sphinx build leftovers
rm -rf ${RPM_BUILD_ROOT}/%{_docdir}/%{name}-*/html/.buildinfo
@ -138,7 +164,8 @@ rm -rf ${RPM_BUILD_ROOT}/%{_docdir}/%{name}-*/html/.doctrees
%files
%license COPYING.rst LICENSES/LGPL-2.1-or-later.txt
%{_libdir}/libcamera*.so.0.0.4
%{_libdir}/libcamera*.so.0.2
%{_libdir}/libcamera*.so.0.2.0
%files devel
%{_includedir}/%{name}/
@ -149,25 +176,64 @@ rm -rf ${RPM_BUILD_ROOT}/%{_docdir}/%{name}-*/html/.doctrees
%files doc
%doc %{_docdir}/%{name}-*/
%ifnarch riscv64
%files ipa
%{_datadir}/libcamera/
%{_libdir}/libcamera/
%{_libexecdir}/libcamera/
%endif
%files gstreamer
%{_libdir}/gstreamer-1.0/libgstlibcamera.so
%if %{with qt}
%files qcam
%{_bindir}/qcam
%{_datadir}/applications/qcam.desktop
%{_metainfodir}/qcam.metainfo.xml
%endif
%files tools
%license LICENSES/GPL-2.0-only.txt
%{_bindir}/cam
%{_bindir}/lc-compliance
%files v4l2
%{_bindir}/libcamerify
%{_libexecdir}/libcamera/v4l2-compat.so
%changelog
* Thu Jan 11 2024 David Abdurachmanov <davidlt@rivosinc.com> - 0.2.0-1.0.riscv64
- Disable IPA on riscv64 (empty package)
* Wed Jan 10 2024 Javier Martinez Canillas <javierm@redhat.com> - 0.2.0-1
- Update to version 0.2.0
- Resolves: rhbz#2257601
* Tue Oct 31 2023 Terje Rosten <terje.rosten@ntnu.no> - 0.1.0-3
- Rebuild for gtest 1.14.0
* Sun Jul 30 2023 Javier Martinez Canillas <javierm@redhat.com> - 0.1.0-1
- Update to version 0.1.0
- Resolves: rhbz#2192455
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.5-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed May 17 2023 Javier Martinez Canillas <javierm@redhat.com> - 0.0.5-3
- Fix path of key for IPA modules re-sign and drop unused env var
* Wed May 17 2023 Javier Martinez Canillas <javierm@redhat.com> - 0.0.5-2
- Re-sign IPA modules for real now
* Wed May 17 2023 Javier Martinez Canillas <javierm@redhat.com> - 0.0.5-1
- Update to version 0.0.5
- Build again for s390x and ppc64le
- Drop boost-devel build requires
- Drop workaround patch to fix a GCC13 build issue
- Add a libcamera-v4l2-devel sub-package for the V4L2 compatibility layer
- Re-sign IPA modules after debug symbol stripping
* Wed Feb 01 2023 Javier Martinez Canillas <javierm@redhat.com> - 0.0.4-1
- Update to version 0.0.4
- Add ExcludeArch tag to avoid building libcamera for s390x and ppc64le.

144
mojo-importlib.patch Normal file
View File

@ -0,0 +1,144 @@
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py b/utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py
index bf626f54..e1c823da 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/fileutil.py
@@ -3,7 +3,6 @@
# found in the LICENSE file.
import errno
-import imp
import os.path
import sys
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py
index ff5753a2..e754151f 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/fileutil_unittest.py
@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import imp
import os.path
import shutil
import sys
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
index 32c884a8..f2064005 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/generate/generator_unittest.py
@@ -2,7 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import imp
+import importlib.util
import os.path
import sys
import unittest
@@ -19,9 +19,7 @@ def _GetDirAbove(dirname):
return path
-try:
- imp.find_module("mojom")
-except ImportError:
+if importlib.util.find_spec("mojom") is None:
sys.path.append(os.path.join(_GetDirAbove("pylib"), "pylib"))
from mojom.generate import generator
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/generate/translate_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/generate/translate_unittest.py
index 19905c8a..09724d88 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/generate/translate_unittest.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/generate/translate_unittest.py
@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import imp
import os.path
import sys
import unittest
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/ast_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/ast_unittest.py
index 62798631..4ab51033 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/ast_unittest.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/ast_unittest.py
@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import imp
import os.path
import sys
import unittest
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py
index aa609be7..682ee5ce 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/conditional_features_unittest.py
@@ -2,7 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import imp
+import importlib.util
import os
import sys
import unittest
@@ -19,9 +19,7 @@ def _GetDirAbove(dirname):
return path
-try:
- imp.find_module('mojom')
-except ImportError:
+if importlib.util.find_spec("mojom") is None:
sys.path.append(os.path.join(_GetDirAbove('pylib'), 'pylib'))
import mojom.parse.ast as ast
import mojom.parse.conditional_features as conditional_features
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py
index 3e084bbf..1e8b49f2 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer.py
@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import imp
import os.path
import sys
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py
index eadc6587..77976507 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/lexer_unittest.py
@@ -2,7 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import imp
+import importlib.util
import os.path
import sys
import unittest
@@ -22,9 +22,7 @@ def _GetDirAbove(dirname):
sys.path.insert(1, os.path.join(_GetDirAbove("mojo"), "third_party"))
from ply import lex
-try:
- imp.find_module("mojom")
-except ImportError:
+if importlib.util.find_spec("mojom") is None:
sys.path.append(os.path.join(_GetDirAbove("pylib"), "pylib"))
import mojom.parse.lexer
diff --git a/utils/ipc/mojo/public/tools/mojom/mojom/parse/parser_unittest.py b/utils/ipc/mojo/public/tools/mojom/mojom/parse/parser_unittest.py
index 6d6b7153..7e8acf43 100644
--- a/utils/ipc/mojo/public/tools/mojom/mojom/parse/parser_unittest.py
+++ b/utils/ipc/mojo/public/tools/mojom/mojom/parse/parser_unittest.py
@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import imp
import os.path
import sys
import unittest

View File

@ -1 +1 @@
SHA512 (libcamera-0.0.4.tar.xz) = 918745953d4a1e240e376e577de8fd432fd506b97b6bcc22c326124ec1c729bd38510a38f40b71d6f88343fb2d9a178307b59f0c178d068b334207fba077f521
SHA512 (libcamera-0.2.0.tar.xz) = 93dd5aef7580c186b1482e5671cbc82b92f7b2e9598ed10c8c03802a09dd15f996d54d8acf0ba452e3e577fed5f33c4d9ef8784e8e0f456976c1bc2aaa066857

View File

@ -0,0 +1,72 @@
From 1c512d406536d72a393c38c3f6a75fe0fdb9ecb2 Mon Sep 17 00:00:00 2001
From: Kieran Bingham <kieran.bingham@ideasonboard.com>
Date: Thu, 4 May 2023 15:48:01 +0100
Subject: [PATCH] v4l2: Move the v4l2 compat layer to libexec/libcamera
Move the v4l2-compat.so shared library installation to the libcamera
directory under libexec. This is the same location that the proxy
workers live and will facilitate easier packaging of the V4L2
compatibility layer with distributions.
Create a new libcamera_libexecdir variable within meson to simplify
representation of this path and update the proxy worker meson.build
infrastructure to make use of it as well.
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
---
src/libcamera/proxy/worker/meson.build | 2 +-
src/meson.build | 1 +
src/v4l2/meson.build | 3 ++-
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/libcamera/proxy/worker/meson.build b/src/libcamera/proxy/worker/meson.build
index 70c8760a3d42..aa4d9cd7b5d8 100644
--- a/src/libcamera/proxy/worker/meson.build
+++ b/src/libcamera/proxy/worker/meson.build
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: CC0-1.0
-proxy_install_dir = get_option('libexecdir') / 'libcamera'
+proxy_install_dir = libcamera_libexecdir
# generate {pipeline}_ipa_proxy_worker.cpp
foreach mojom : ipa_mojoms
diff --git a/src/meson.build b/src/meson.build
index a3821fb90a0f..165a77bb9d53 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -3,6 +3,7 @@
# Cache system paths
libcamera_datadir = get_option('datadir') / 'libcamera'
libcamera_libdir = get_option('libdir') / 'libcamera'
+libcamera_libexecdir = get_option('libexecdir') / 'libcamera'
libcamera_sysconfdir = get_option('sysconfdir') / 'libcamera'
config_h.set('LIBCAMERA_DATA_DIR', '"' + get_option('prefix') / libcamera_datadir + '"')
diff --git a/src/v4l2/meson.build b/src/v4l2/meson.build
index f132103cb503..ab4b35dd0e6b 100644
--- a/src/v4l2/meson.build
+++ b/src/v4l2/meson.build
@@ -31,6 +31,7 @@ v4l2_compat = shared_library('v4l2-compat',
v4l2_compat_sources,
name_prefix : '',
install : true,
+ install_dir : libcamera_libexecdir,
dependencies : [libcamera_private, libdl],
cpp_args : v4l2_compat_cpp_args)
@@ -38,7 +39,7 @@ v4l2_compat = shared_library('v4l2-compat',
# adaptation layer.
cdata = configuration_data()
-cdata.set('LIBCAMERA_V4L2_SO', get_option('prefix') / get_option('libdir') / 'v4l2-compat.so')
+cdata.set('LIBCAMERA_V4L2_SO', get_option('prefix') / libcamera_libexecdir / 'v4l2-compat.so')
configure_file(input : 'libcamerify.in',
output : 'libcamerify',
--
2.40.0