1
0
forked from pool/libcamera
Dominique Leuenberger 2022-10-20 09:09:27 +00:00 committed by Git OBS Bridge
commit c3fc24f570
10 changed files with 79 additions and 122 deletions

View File

@ -1,14 +1,17 @@
<?xml version="1.0"?>
<services> <services>
<service name="tar_scm" mode="disabled"> <service name="obs_scm" mode="manual">
<param name="scm">git</param> <param name="scm">git</param>
<param name="url">git://linuxtv.org/libcamera</param> <param name="url">git://linuxtv.org/libcamera</param>
<param name="revision">f1776100f55e70320a8938586bc8bf2f242addd4</param> <param name="revision">refs/tags/v0.0.1</param>
<param name="parent-tag">v0.0.0</param> <param name="versionformat">@PARENT_TAG@</param>
<param name="versionformat">0.0.0+g@TAG_OFFSET@.%h</param> <param name="versionrewrite-pattern">v([0-9\.]*)</param>
<param name="changesgenerate">enable</param>
</service> </service>
<service name="recompress" mode="disabled"> <service name="tar" mode="buildtime" />
<service name="recompress" mode="buildtime">
<param name="file">*.tar</param> <param name="file">*.tar</param>
<param name="compression">xz</param> <param name="compression">xz</param>
</service> </service>
<service name="set_version" mode="disabled"/> <service name="set_version" mode="manual"/>
</services> </services>

4
_servicedata Normal file
View File

@ -0,0 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">git://linuxtv.org/libcamera</param>
<param name="changesrevision">a83aed77df1258e469c0eb42d9cb4f1938db53f2</param></service></servicedata>

View File

@ -1 +1,2 @@
libcamera-suse7 libcamera0_0_1
libcamera-base0_0_1

View File

@ -1,42 +0,0 @@
From: Antonio Larrosa <alarrosa@suse.com>
Subject: Work around what seems to be a gcc bug only happening in ppc64/ppc64le
When building code like:
constexpr Duration defaultMinFrameDuration = 1.0s / 30.0;
or
constexpr Duration controllerMinFrameDuration = 1.0s / 60.0;
gcc 11.1.1 is giving this error:
[ 235s] In file included from ../include/libcamera/base/log.h:10,
[ 235s] from ../src/ipa/raspberrypi/raspberrypi.cpp:18:
[ 235s] ../src/ipa/raspberrypi/raspberrypi.cpp:64:53: in constexpr expansion of std::chrono::operator/<long double, std::ratio<1>, double>(std::literals::chrono_literals::operator""s(1.0e+0l), 3.0e+1)
[ 235s] /usr/include/c++/11/chrono:710:39: error: (1.0e+0l / 3.0e+1) is not a constant expression
[ 235s] 710 | return __cd(__cd(__d).count() / __s);
[ 235s] | ~~~~~~~~~~~~~~~~~~^~~~~
[ 235s] ../src/ipa/raspberrypi/raspberrypi.cpp:73:56: in constexpr expansion of std::chrono::operator/<long double, std::ratio<1>, double>(std::literals::chrono_literals::operator""s(1.0e+0l), 6.0e+1)
This change works around it to let it build fine.
Index: libcamera-0~2809.e0704e97/src/ipa/raspberrypi/raspberrypi.cpp
===================================================================
--- libcamera-0~2809.e0704e97.orig/src/ipa/raspberrypi/raspberrypi.cpp
+++ libcamera-0~2809.e0704e97/src/ipa/raspberrypi/raspberrypi.cpp
@@ -61,7 +61,7 @@ using utils::Duration;
/* Configure the sensor with these values initially. */
constexpr double defaultAnalogueGain = 1.0;
constexpr Duration defaultExposureTime = 20.0ms;
-constexpr Duration defaultMinFrameDuration = 1.0s / 30.0;
+const Duration defaultMinFrameDuration = 1.0s / 30.0;
constexpr Duration defaultMaxFrameDuration = 250.0s;
/*
@@ -70,7 +70,7 @@ constexpr Duration defaultMaxFrameDurati
* we rate-limit the controller Prepare() and Process() calls to lower than or
* equal to this rate.
*/
-constexpr Duration controllerMinFrameDuration = 1.0s / 60.0;
+const Duration controllerMinFrameDuration = 1.0s / 60.0;
LOG_DEFINE_CATEGORY(IPARPI)

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6a20259a6e1a1dbdeea1753e2639f829a3aeffdf236c606004ad1ea66de6ff93
size 914440

3
libcamera-0.0.1.obscpio Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e66607d2c3a6a10bcaf2856e03ca67c223b57aac2bdb9f78bfd069355783708e
size 5570573

View File

@ -1,3 +1,35 @@
-------------------------------------------------------------------
Tue Oct 18 10:15:03 UTC 2022 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 0.0.1:
* This patch release commences the package release procedures for
the project.
* Initial releases will include a bump to the patch (0.0.x)
version number, as well as a corresponding increment to the
soname.
* utils:
- Provide a release script
- semver: Add version helper
* meson:
- Shared Object version handling
- Fix typo
* pipeline:
- rkisp1: Set bytesused before queuing parameters buffer
- ipu3: Set bytesused before queuing parameters buffer
* libcamera:
- v4l2_videodevice: Warn if bytesused == 0 when queuing output
buffer
- framebuffer: Move remaining private data to Private class
- base: utils: Drop defopt
- Change service to use explicit tags and obs_scm.
- Drop vers.diff patch and fix-ppc64.patch: Fixed upstream.
- Change lname define to new upstream soname libcamera0_0_1 and in
baselibs.conf.
- Split out libcamera-base0_0_1 shared library, add to baselibs.
Package the shared librarys in individual packages.
- Use ldconfig_scriptlets macro for post(un) handling.
- Stop exporting -Wno-error to C(XX)FLAGS, no longer needed.
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Sep 2 10:10:53 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru> Fri Sep 2 10:10:53 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>

4
libcamera.obsinfo Normal file
View File

@ -0,0 +1,4 @@
name: libcamera
version: 0.0.1
mtime: 1665755326
commit: a83aed77df1258e469c0eb42d9cb4f1938db53f2

View File

@ -16,9 +16,10 @@
# #
%define lname libcamera-suse7 %define lname libcamera0_0_1
%define lname_base libcamera-base0_0_1
Name: libcamera Name: libcamera
Version: 0.0.0+g3887.f1776100 Version: 0.0.1
Release: 0 Release: 0
Summary: A complex camera support library in C++ Summary: A complex camera support library in C++
License: GPL-2.0-or-later AND LGPL-2.1-or-later License: GPL-2.0-or-later AND LGPL-2.1-or-later
@ -27,8 +28,7 @@ URL: http://libcamera.org/
Source: %name-%version.tar.xz Source: %name-%version.tar.xz
Source1: baselibs.conf Source1: baselibs.conf
Patch1: vers.diff
Patch2: fix-ppc64.patch
BuildRequires: boost-devel BuildRequires: boost-devel
BuildRequires: c++_compiler BuildRequires: c++_compiler
%if 0%{?suse_version} <= 1500 %if 0%{?suse_version} <= 1500
@ -38,7 +38,7 @@ BuildRequires: gcc9-c++
BuildRequires: libQt5Core-devel BuildRequires: libQt5Core-devel
BuildRequires: libQt5Gui-devel BuildRequires: libQt5Gui-devel
BuildRequires: libQt5Widgets-devel BuildRequires: libQt5Widgets-devel
BuildRequires: meson >= 0.53 BuildRequires: meson >= 0.56
BuildRequires: pkgconfig BuildRequires: pkgconfig
BuildRequires: python3-Jinja2 BuildRequires: python3-Jinja2
BuildRequires: python3-PyYAML BuildRequires: python3-PyYAML
@ -73,10 +73,23 @@ expose multiple kernel device nodes in /dev for different stages of
the pipeline. The libcamera API groups and exposes these pieces as the pipeline. The libcamera API groups and exposes these pieces as
what users consider one "camera". what users consider one "camera".
%package -n %lname_base
Summary: A complex camera support library in C++
Group: System/Libraries
%description -n %lname_base
libcamera is an experimental camera user-space API.
A camera may consist of multiple sensors or function blocks, and can
expose multiple kernel device nodes in /dev for different stages of
the pipeline. The libcamera API groups and exposes these pieces as
what users consider one "camera".
%package devel %package devel
Summary: Development for libcamera, a camera support library Summary: Development for libcamera, a camera support library
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: %lname = %version Requires: %lname = %version
Requires: %lname_base = %version
%description devel %description devel
libcamera is an experimental camera user-space API. libcamera is an experimental camera user-space API.
@ -103,19 +116,13 @@ libcamera is an experimental camera user-space API.
This is its integration plugin for gstreamer. This is its integration plugin for gstreamer.
%prep %prep
%autosetup -p1 -N %autosetup -p1
%patch1 -p1
%ifarch ppc64 ppc64le
%patch2 -p1
%endif
%build %build
%if %{pkg_vcmp gcc < 8} %if %{pkg_vcmp gcc < 8}
export CC=gcc-9 export CC=gcc-9
export CXX=g++-9 export CXX=g++-9
%endif %endif
export CFLAGS="%optflags -Wno-error"
export CXXFLAGS="$CFLAGS"
%meson \ %meson \
-Ddocumentation=disabled \ -Ddocumentation=disabled \
-Dqcam=enabled \ -Dqcam=enabled \
@ -126,19 +133,15 @@ export CXXFLAGS="$CFLAGS"
%install %install
%meson_install %meson_install
# libtool's -release would be so much more direct, but alas, meson...
mv "%buildroot/%_libdir/libcamera-suse.so" "%buildroot/%_libdir/libcamera.so"
mv "%buildroot/%_libdir/libcamera-base-suse.so" "%buildroot/%_libdir/libcamera-base.so"
mv "%buildroot/%_libdir/pkgconfig/libcamera-suse.pc" "%buildroot/%_libdir/pkgconfig/libcamera.pc"
mv "%buildroot/%_libdir/pkgconfig/libcamera-base-suse.pc" "%buildroot/%_libdir/pkgconfig/libcamera-base.pc"
perl -i -pe 's{camera-suse}{camera}' "%buildroot/%_libdir/pkgconfig"/*.pc
perl -i -pe 's{camera-base-suse}{camera-base}' "%buildroot/%_libdir/pkgconfig"/*.pc
%post -n %lname -p /sbin/ldconfig %ldconfig_scriptlets -n %lname
%postun -n %lname -p /sbin/ldconfig %ldconfig_scriptlets -n %lname_base
%files -n %lname %files -n %lname
%_libdir/libcamera*.so.* %_libdir/libcamera.so.*
%files -n %lname_base
%_libdir/libcamera-base.so.*
%files devel %files devel
%license LICENSES/*GPL* %license LICENSES/*GPL*

View File

@ -1,48 +0,0 @@
From: Jan Engelhardt <jengelh@inai.de>
Date: 2018-12-06 12:28:42.992186963 +0100
Every new symbol set shipped needs a new SONAME.
Normally, a distro would just ship tarballed releases, and so SONAMEs are just
what upstream puts out.
When shipping snapshots however that have a noncongruent symbol set to any
other release, a custom SONAME will be needed to not claim false compatibility
with any other release.
---
src/libcamera/base/meson.build | 4 ++--
src/libcamera/meson.build | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
Index: libcamera-0.0.0+g3076.d79b4120/src/libcamera/base/meson.build
===================================================================
--- libcamera-0.0.0+g3076.d79b4120.orig/src/libcamera/base/meson.build
+++ libcamera-0.0.0+g3076.d79b4120/src/libcamera/base/meson.build
@@ -27,9 +27,9 @@ libcamera_base_deps = [
# the use of headers which must not be exposed to the libcamera public api.
libcamera_base_args = [ '-DLIBCAMERA_BASE_PRIVATE' ]
-libcamera_base_lib = shared_library('libcamera-base',
+libcamera_base_lib = shared_library('libcamera-base-suse',
[libcamera_base_sources, libcamera_base_headers],
- version : libcamera_version,
+ soversion : '7',
name_prefix : '',
install : true,
cpp_args : libcamera_base_args,
Index: libcamera-0.0.0+g3076.d79b4120/src/libcamera/meson.build
===================================================================
--- libcamera-0.0.0+g3076.d79b4120.orig/src/libcamera/meson.build
+++ libcamera-0.0.0+g3076.d79b4120/src/libcamera/meson.build
@@ -126,9 +126,9 @@ libcamera_deps = [
# runtime if the library is running from an installed location by checking
# for the presence or abscence of the dynamic tag.
-libcamera = shared_library('libcamera',
+libcamera = shared_library('libcamera-suse',
libcamera_sources,
- version : libcamera_version,
+ soversion : '7',
name_prefix : '',
install : true,
include_directories : includes,