diff --git a/pipewire-fix-libcamera-build.patch b/pipewire-fix-libcamera-build.patch new file mode 100644 index 0000000..8223e0a --- /dev/null +++ b/pipewire-fix-libcamera-build.patch @@ -0,0 +1,78 @@ +From 5471a0018b0394327c0cd4f1f60bf326632b29f1 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Thu, 22 Jul 2021 20:09:34 +0200 +Subject: [PATCH 1/2] libcamera: fix no-longer existent + header inclusion + +The SPA plugin is including a header file, but this +got renamed to to match the defined class name: + +../spa/plugins/libcamera/libcamera_wrapper.cpp:52:10: fatal error: libcamera/buffer.h: No such file or directory + 52 | #include + | ^~~~~~~~~~~~~~~~~~~~ + +Fixes #1435 +--- + spa/plugins/libcamera/libcamera_wrapper.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/spa/plugins/libcamera/libcamera_wrapper.cpp b/spa/plugins/libcamera/libcamera_wrapper.cpp +index 58c062412..f25922eb1 100644 +--- a/spa/plugins/libcamera/libcamera_wrapper.cpp ++++ b/spa/plugins/libcamera/libcamera_wrapper.cpp +@@ -49,7 +49,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + +-- +2.26.2 + + +From 76cb5c1169b58b48a2921ccc3f61c713b297c07f Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Thu, 22 Jul 2021 20:17:09 +0200 +Subject: [PATCH 2/2] libcamera: remove unused buffer variable in + LibCamera::stop() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +To fix build warning about a variable being unused in LibCamera::stop(): + +[1/2] Compiling C++ object spa/plugins/libcamera/libspa-libcamera.so.p/libcamera_wrapper.cpp.o +../spa/plugins/libcamera/libcamera_wrapper.cpp: In member function ‘void LibCamera::stop()’: +../spa/plugins/libcamera/libcamera_wrapper.cpp:531:58: warning: unused variable ‘buffer’ [-Wunused-variable] + 531 | for (const std::unique_ptr &buffer : this->allocator_->buffers(stream)) { + | ^~~~~~ +--- + spa/plugins/libcamera/libcamera_wrapper.cpp | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/spa/plugins/libcamera/libcamera_wrapper.cpp b/spa/plugins/libcamera/libcamera_wrapper.cpp +index f25922eb1..d58238d33 100644 +--- a/spa/plugins/libcamera/libcamera_wrapper.cpp ++++ b/spa/plugins/libcamera/libcamera_wrapper.cpp +@@ -524,13 +524,12 @@ extern "C" { + void LibCamera::stop() { + this->disconnect(); + +- uint32_t bufIdx = 0; + StreamConfiguration &cfg = this->config_->at(0); + Stream *stream = cfg.stream(); ++ uint32_t nbuffers = this->allocator_->buffers(stream).size(); + +- for (const std::unique_ptr &buffer : this->allocator_->buffers(stream)) { ++ for (uint32_t bufIdx = 0; bufIdx < nbuffers; bufIdx++) { + delete [] this->fd_[bufIdx]; +- bufIdx++; + } + delete [] this->fd_; + +-- +2.26.2 + diff --git a/pipewire.changes b/pipewire.changes index 9de163e..33dd16e 100644 --- a/pipewire.changes +++ b/pipewire.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Thu Jul 22 07:55:13 UTC 2021 - Frederic Crozat + +- Add patch pipewire-fix-libcamera-build.patch: fix build with + latest libcamera. +- Do no build libcamera support on Leap 15.3 or lower (too old + libcamera) and change name of BuildRequires from camera to + libcamera. +- Update minimal version for alsa buildrequires. + ------------------------------------------------------------------- Tue Jul 20 12:46:57 UTC 2021 - Frederic Crozat diff --git a/pipewire.spec b/pipewire.spec index 9c310d6..f749961 100644 --- a/pipewire.spec +++ b/pipewire.spec @@ -29,6 +29,12 @@ %define with_vulkan 0 %endif +%if 0%{?suse_version} >= 1550 +%define with_libcamera 1 +%else +%define with_libcamera 0 +%endif + %ifnarch s390 s390x ppc64 %define with_ldacBT 1 %else @@ -48,6 +54,8 @@ URL: https://pipewire.org/ Source0: %{name}-%{version}.tar.xz Source1: %{name}-rpmlintrc Source99: baselibs.conf +# PATCH-FIX-UPSTREAM pipewire-fix-libcamera-build.patch fcrozat@suse.com -- Fix build with latest libcamera +Patch0: pipewire-fix-libcamera-build.patch BuildRequires: doxygen BuildRequires: fdupes @@ -60,10 +68,12 @@ BuildRequires: meson BuildRequires: pkgconfig BuildRequires: systemd-rpm-macros BuildRequires: xmltoman -BuildRequires: pkgconfig(alsa) +BuildRequires: pkgconfig(alsa) >= 1.1.7 BuildRequires: pkgconfig(avahi-client) BuildRequires: pkgconfig(bluez) -BuildRequires: pkgconfig(camera) +%if %{with_libcamera} +BuildRequires: pkgconfig(libcamera) +%endif BuildRequires: pkgconfig(dbus-1) %if %{with aac} BuildRequires: pkgconfig(fdk-aac) @@ -339,7 +349,11 @@ export CC=gcc-9 %else -Dbluez5-codec-ldac=disabled \ %endif +%if %{with_libcamera} -Dlibcamera=enabled \ +%else + -Dlibcamera=disabled \ +%endif -Dpipewire-jack=enabled \ -Djack=enabled \ -Djack-devel=enabled \ @@ -631,7 +645,9 @@ fi %{_libdir}/spa-%{spa_ver}/control/libspa-control.so %{_libdir}/spa-%{spa_ver}/ffmpeg/libspa-ffmpeg.so %{_libdir}/spa-%{spa_ver}/jack/libspa-jack.so +%if %{with_libcamera} %{_libdir}/spa-%{spa_ver}/libcamera/libspa-libcamera.so +%endif %{_libdir}/spa-%{spa_ver}/support/libspa-dbus.so %{_libdir}/spa-%{spa_ver}/support/libspa-journal.so %{_libdir}/spa-%{spa_ver}/support/libspa-support.so @@ -654,7 +670,9 @@ fi %dir %{_libdir}/spa-%{spa_ver}/volume %dir %{_libdir}/spa-%{spa_ver}/ffmpeg %dir %{_libdir}/spa-%{spa_ver}/jack +%if %{with_libcamera} %dir %{_libdir}/spa-%{spa_ver}/libcamera +%endif %dir %{_libdir}/spa-%{spa_ver}/support %dir %{_libdir}/spa-%{spa_ver}/v4l2 %dir %{_libdir}/spa-%{spa_ver}/videoconvert