17 Commits

8 changed files with 306 additions and 32 deletions

3
_multibuild Normal file
View File

@@ -0,0 +1,3 @@
<multibuild>
<flavor>full</flavor>
</multibuild>

View File

@@ -2,7 +2,7 @@
<service name="tar_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://git.libcamera.org/libcamera/libcamera.git</param>
<param name="revision">refs/tags/v0.2.0</param>
<param name="revision">refs/tags/v0.6.0</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">v([0-9\.]*)</param>
</service>

View File

@@ -1,2 +1,2 @@
libcamera0_2
libcamera-base0_2
libcamera0_6
libcamera-base0_6

Binary file not shown.

BIN
libcamera-0.6.0.tar.xz LFS Normal file

Binary file not shown.

View File

@@ -1,3 +1,207 @@
-------------------------------------------------------------------
Tue Dec 16 14:24:09 UTC 2025 - Antonio Teixeira <antonio.teixeira@suse.com>
- Update to release 0.6.0
* The abi-compliance checker reports there are both ABI and API
changes in this release
* These have been planned to batch together a lot of recent
development to improve the public facing API, which has extended
the previous merge window on this occasion.
* With 211 commits and a longer merge window, this is quite a
substantial release.
* Key highlights include a new global configuration file system
which will replace or extend the current use of environment
variables to configure runtime behaviours.
* The core V4L2 classes can now support the V4L2 Request API which
in turn has brought in huge developments for the i.MX8MP Dewarper
support allowing full resize, scale, rotate and crop capabilities
on top of also performing lens dewarping.
* The SoftISP continues to develop, and specifically the IPU7 has
been added as a supported configuration to the pipeline.
* New tuning files have been added for Raspberry Pi platforms,
improving support for the Sony IMX335, IMX415, IMX462, and ST
VD55G1 image sensors, and Decompand support has been added for
the Raspberry Pi 5.
* At the core, we now require Meson 1.0.1, and various improvements
have been made for thread handling, improving synchronisation and
event dispatch, as well as fixing the serialisation operations
for isolated IPA modules.
* In the applications components, there are fixes to cam adding
more output formats and qcam now behaves more consistently when
no camera is selected. The python bindings have received fixes
for paths from meson, and the FrameBuffer::planes wrapper.
* On the Documentation side, there's a new theme refresh and
clearer separation between the internal and public API, and fixes
to the contributing guidelines.
* For a full list of changes, please see:
https://gitlab.freedesktop.org/camera/libcamera/-/releases/v0.6.0
- Update meson build requirement to 1.0.1 according to the upstream
changes
-------------------------------------------------------------------
Tue Sep 9 12:42:46 UTC 2025 - pgajdos@suse.com
- Update to release 0.5.2
* This release substantial development on gstreamer.
* In core we can see development that cleans up ProcessManager
in a drive to reduce singleton patterns throughout libcamera.
* Pipelines are now able to limit the number of requests queued
into the pipeline handler which helps prevent issues when
applications desire to use a larger request queue.
* It's now possible to check if controls exist with new macros
defined for every control to help codebases compile against
multiple versions.
- see https://gitlab.freedesktop.org/camera/libcamera/-/releases/v0.5.2
for details
-------------------------------------------------------------------
Wed Jul 9 11:32:16 UTC 2025 - Bernhard Wiedemann <bwiedemann@suse.de>
- Add reproducible.patch to skip module signing (boo#1217690)
-------------------------------------------------------------------
Thu Jun 5 21:57:29 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Update to release 0.5.1
* Improvements have been made to the Raspberry Pi Camera Tuning
Tools, and the geometry, matrix and vector class helpers have
been expanded for greater reuse throughout the project.
* The software ISP has a new Saturation control.
-------------------------------------------------------------------
Thu May 29 16:21:24 UTC 2025 - Antonio Larrosa <alarrosa@suse.com>
- Remove Qt5 BuildRequires which aren't really needed nor used.
-------------------------------------------------------------------
Tue Apr 8 13:52:10 UTC 2025 - Antonio Larrosa <alarrosa@suse.com>
- Also bump the soname in baselibs.conf
-------------------------------------------------------------------
Tue Apr 8 06:57:18 UTC 2025 - Antonio Larrosa <alarrosa@suse.com>
- Update to release 0.5.0
* The abi-compliance-checker reports there are both ABI and API
changes in this release.
* Substantially less than the previous release, and ultimately
quite minor but unfortunately there nonetheless and so the
SONAME is updated to 0.5 accordingly. I do not anticipate
anything there that cannot be solved for applications without
just a recompile.
* This release brings in 201 commits with a huge list of fixes
and code clean up which I'm very happy to see, including
interesting fixes to the AGC and AWB handling in libipa.
* In regards to new features, libcamera-0.5 has aptly now got
the core Raspberry Pi 5 support merged!. There are still
patches that are currently maintained by Raspberry Pi for
additional features, and while the transition to upstream API's
continue, but I think we're all happy to see this support
getting in directly, and Raspberry Pi continue to lead the way
in upstream camera development. I look forward to the kernel
API's for streams being fully utilised by the PiSP platform for
upstream camera metadata handling. This upcoming work is also
supported by the CameraSensor factory and CameraSensorRaw
support that is now also merged in this release.
* Further more in the platform support, the software_isp
continues to be developed and is now able to measure colour
temperature, which will bring in improvements for AWB, and a
CCM can be applied while peforming debayering (at a CPU cost)
which will allow us to finally apply color tuning for sensors
on devices that need to fall back to the software ISP.
* New sensor support seems fairly short in this release, with the
IMX415 being the prominent addition.
* In libipa, and algorithm developments, along with many fixes
and improvements there is a substantial new feature that the
Baysian AWB algorithm from Raspberry Pi can now also be used on
all libipa supported IPA modules, and has shown good impovements
for the RkISP1 supported devices.
* There is minimal changes to the application support side, but
it is notable that now the Y444 format has been mapped to be
usable by the gstreamer src element. lc-compliance has seen
some progress which I hope will bring this to being a more
central part of the test infrastructure.
* For a full list of changes, please see:
https://git.libcamera.org/libcamera/libcamera.git/commit/?id=058f589ae36170935e537910f2c303b1c3ea03b3
- Drop patch which is already included by upstream:
* libcamera-fix-for-gcc15.patch
-------------------------------------------------------------------
Thu Mar 20 12:19:00 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Make build recipe POSIX sh compatible
-------------------------------------------------------------------
Thu Mar 20 10:48:50 UTC 2025 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Add trivial patch to fix build with gcc15:
* libcamera-fix-for-gcc15.patch
-------------------------------------------------------------------
Mon Dec 23 21:51:19 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
- Update to release 0.4.0
* The abi-compliance-checker reports that there is both ABI and
API breakage in this release.
* The majority of the ABI breakages are around the public API for
Control handling and definitions, which have caused underlying
identifiers to be changed, and the reuqired storage for
controls has increased.
* This release brings in 253 commits, with substantial
development on image control and tuning features for IPA and
Pipeline handlers supporting libipa, as well as integrating
libipa support for IPA handling on the ARM Mali-C55 ISP.
* A new 'Virtual Pipeline Handler' has been introduced to support
more testing in CI and virtual environments.
* Gstreamer has had some interesting development to rework
expressing the full control set from libcamera using auto
generation from the full control descriptors.
* A key and notable change in this release too is that the
softISP is now moving towards utilising the libipa
implementaitons which will enable future tuning and image
control capabilities, and should also support future
development on a GPU-ISP implementation for GPU-accelerated
handling. I do believe this work may have introduced an
oscillation regression in the AEGC which will need to be
investigated and fixed in the near future, but I don't want to
hold up progressing the ABI updates at this stage.
* The i.MX8MP can now make full use of the DW100 Dewarp Engine
for full rotation and digital zoom capabilities.
* Raspberry Pi systems now have improved support for the OV7251,
IMX462, and IMX327 Sensors, and libipa platforms can now make
use of the GalaxyCore gc05a2 and gc08a3 Image sensors.
* For a full list of changes, please see:
https://git.libcamera.org/libcamera/libcamera.git/commit/?id=35ed4b91291d9f3d08e4b51acfb51163e65df8f8
-------------------------------------------------------------------
Sat Oct 19 17:05:03 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 0.3.2
* Add Sony IMX214 sensor properties
-------------------------------------------------------------------
Tue Aug 20 07:37:45 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Split SDL/Qt-dependent tools to multibuilt subpackage
-------------------------------------------------------------------
Mon Aug 12 15:41:49 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 0.3.1
* new Soft ISP feature and enablement in the simple-pipeline
handler for Qualcomm based devices supporting CamSS and the
inclusion of a new Pipeline handler to support the Mali-C55
ISP which now has open source kernel drivers available.
* The i.MX8MP ISP is now officially supported through the
existing RKISP1 pipeline handler, and the Simple Pipeline
handler now supports the MediaTek MT8365 platform.
* Three additional camera sensors, IMX283, IMX335, and IMX415
are also now supported.
* The IPU6 is now supported by the SoftISP and Simple Pipeline
handler and the Onsemi AR0144 is now supported by libipa. A
new control has been added to support setting and reading of
Gamma, and gamma control has been added to the RKISP1 IPA.
-------------------------------------------------------------------
Tue Mar 19 07:41:24 UTC 2024 - Richard Biener <rguenther@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package libcamera
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,31 +16,32 @@
#
%define lname libcamera0_2
%define lname_base libcamera-base0_2
Name: libcamera
Version: 0.2.0
%define lname libcamera0_6
%define lname_base libcamera-base0_6
%if "@BUILD_FLAVOR@" != ""
%define extname -@BUILD_FLAVOR@
%else
%define extname %nil
%endif
Name: libcamera%extname
Version: 0.6.0
Release: 0
Summary: A complex camera support library in C++
License: GPL-2.0-or-later AND LGPL-2.1-or-later
License: CC-BY-SA-4.0 AND GPL-2.0-or-later AND LGPL-2.1-or-later
Group: Development/Libraries/C and C++
URL: https://libcamera.org/
#Git-Web: https://git.libcamera.org/libcamera/libcamera.git/
Source: %name-%version.tar.xz
Source: libcamera-%version.tar.xz
Source1: baselibs.conf
Patch0: reproducible.patch
BuildRequires: boost-devel
BuildRequires: c++_compiler
%if 0%{?suse_version} <= 1500
BuildRequires: gcc9
BuildRequires: gcc9-c++
BuildRequires: gcc11
BuildRequires: gcc11-c++
%endif
BuildRequires: libQt5Core-devel
BuildRequires: libQt5Gui-devel
BuildRequires: libQt5Widgets-devel
BuildRequires: meson >= 0.56
BuildRequires: pkgconfig
BuildRequires: meson >= 1.0.1
BuildRequires: pkg-config
BuildRequires: python3-Jinja2
BuildRequires: python3-PyYAML
BuildRequires: python3-ply
@@ -52,7 +53,17 @@ BuildRequires: pkgconfig(libevent_pthreads)
BuildRequires: pkgconfig(libtiff-4)
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(pybind11)
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(yaml-0.1)
%if "@BUILD_FLAVOR@" != ""
BuildRequires: pkgconfig(Qt6Core)
BuildRequires: pkgconfig(Qt6Gui)
BuildRequires: pkgconfig(Qt6OpenGL)
BuildRequires: pkgconfig(Qt6OpenGLWidgets)
BuildRequires: pkgconfig(Qt6Widgets)
BuildRequires: pkgconfig(sdl2)
%endif
%description
libcamera is an experimental camera user-space API.
@@ -104,6 +115,14 @@ Group: Development/Tools/Other
%description tools
libcamera is an experimental camera user-space API.
%package -n libcamera-cam
Summary: Command-line interfaces for libcamera
Group: Development/Tools/Other
# Heavy runtime deps (SDL, Qt6)
%description -n libcamera-cam
libcamera is an experimental camera user-space API.
"cam" is a command-line utility to interact with cameras. The initial state is
limited and only supports listing cameras in the system and selecting a camera
to interact with.
@@ -116,28 +135,46 @@ Group: Productivity/Multimedia/Other
libcamera is an experimental camera user-space API.
This is its integration plugin for gstreamer.
%package -n python3-libcamera
Summary: Python bindings for libcamera
Group: Development/Languages/Python
%description -n python3-libcamera
Python bindings for libcamera.
%prep
%autosetup -p1
%autosetup -p1 -n libcamera-%version
%build
%if 0%{?suse_version} <= 1500
export CC=gcc-9
export CXX=g++-9
export CC=gcc-11
export CXX=g++-11
%endif
%meson \
-Ddocumentation=disabled \
-Dqcam=enabled \
-Dv4l2=false -Dtracing=disabled \
-Dpipelines=ipu3,rkisp1,simple,uvcvideo,vimc \
-Dlc-compliance=disabled
-Ddocumentation=disabled \
%if "@BUILD_FLAVOR@" != ""
-Dqcam=enabled \
%else
-Dqcam=disabled \
%endif
-Dv4l2=false -Dtracing=disabled \
-Dpipelines=ipu3,rkisp1,simple,uvcvideo,vimc \
-Dlc-compliance=disabled
%meson_build
%install
%meson_install
cd "%buildroot"
%if "@BUILD_FLAVOR@" != ""
find . ! -type d ! -path ./usr/bin/cam ! -path ./usr/bin/qcam -print -delete
%else
rm -v usr/bin/cam
%endif
%ldconfig_scriptlets -n %lname
%ldconfig_scriptlets -n %lname_base
%if "@BUILD_FLAVOR@" == ""
%files -n %lname
%_libdir/libcamera.so.*
@@ -152,8 +189,6 @@ export CXX=g++-9
%_libdir/pkgconfig/*.pc
%files tools
%_bindir/cam
%_bindir/qcam
%_libexecdir/libcamera/
%_libdir/libcamera/
%_datadir/libcamera/
@@ -161,4 +196,15 @@ export CXX=g++-9
%files -n gstreamer-plugins-libcamera
%_libdir/gstreamer-1.0/
%files -n python3-libcamera
%python3_sitearch/*
%else
%files -n libcamera-cam
%_bindir/cam
%_bindir/qcam
%endif
%changelog

21
reproducible.patch Normal file
View File

@@ -0,0 +1,21 @@
Date: 2024-09-21
Author: Bernhard M. Wiedemann <bwiedemann suse de>
Skip module signing for https://bugzilla.opensuse.org/show_bug.cgi?id=1217690
reproducible builds, until we can get a better upstream solution
such as
https://lists.libcamera.org/pipermail/libcamera-devel/2024-January/040244.html
diff --git a/src/meson.build b/src/meson.build
index 8eb8f05..41e556d 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -16,7 +16,7 @@ summary({
# Module Signing
openssl = find_program('openssl', required : false)
-if openssl.found()
+if false
ipa_priv_key = custom_target('ipa-priv-key',
output : ['ipa-priv-key.pem'],
command : [gen_ipa_priv_key, '@OUTPUT@'])