summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIngar <ingar@telenet.be>2025-12-20 15:37:55 +0100
committerIngar <ingar@telenet.be>2025-12-20 15:37:55 +0100
commit8c9fdec60a643220baae9213ac44f82558f098d4 (patch)
tree1d14ab05bca3a1044ce632db68cdf9f9717257c1
parentc73385cb5ce0af041c4eddb93c2abe3c584eb3b1 (diff)
Updated to 0.6.0-rpt20251202HEADmaster
-rw-r--r--PKGBUILD132
-rw-r--r--libcamera-rpi-0.3.2-arch.patch11
2 files changed, 73 insertions, 70 deletions
diff --git a/PKGBUILD b/PKGBUILD
index c94193b..1f2b767 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,25 +1,25 @@
-# Maintainer: Ingar <ingar@telenet.be>
-# based on the archlinux libcamera package by David Runge <dvzrv@archlinux.org>
-#
-# TODO
-# - create a separate libpisp package
+# Maintainer: David Runge <dvzrv@archlinux.org>
+# Mantainer: Mattia Procopio <matto.astro@gmail.com>
-pkgbase=libcamera-rpi
+pkgbase=libcamera
pkgname=(
libcamera-rpi
- libcamera-rpi-docs
- libcamera-rpi-ipa
- libcamera-rpi-tools
+ libcamera-docs-rpi
+ libcamera-ipa-rpi
+ libcamera-tools-rpi
gst-plugin-libcamera-rpi
+ python-libcamera-rpi
)
-pkgver=0.3.2+rpt20240927
-pkgrel=1
-pkgdesc="A complex camera support library for Linux, Android, and ChromeOS (RPi Foundation fork)"
+pkgver=0.6.0
+_customtag=rpt20251202
+pkgrel=2
+pkgdesc="A complex camera support library for Linux, Android, and ChromeOS"
arch=(aarch64)
url="https://github.com/raspberrypi/libcamera"
-_url="https://github.com/raspberrypi/libcamera.git"
makedepends=(
+ boost
doxygen
+ git
glib2
graphviz
gst-plugins-base
@@ -28,27 +28,28 @@ makedepends=(
libjpeg-turbo
libtiff
libyaml
+ libpisp
+ llvm-libs
+ lttng-ust
meson
+ cmake
pybind11
python-jinja
python-ply
python-sphinx
python-pyyaml
+ python-pip
qt6-base
qt6-tools
sdl2
systemd
texlive-core
- texlive-latex
-)
-source=(
- "https://github.com/raspberrypi/libcamera/releases/download/v${pkgver}/libcamera-${pkgver}.tar.xz"
- "libcamera-rpi-0.3.2-arch.patch"
-)
-sha256sums=(
- '4d6502a2371204f3a54955f4a25f806be88fcc469167f655afbe9b398f827392'
- '5c8f66b75a3d470101bb69c572de93e1d14e29c614dcb0391f3ea526781c260e'
+ nlohmann-json
+ python-sphinxcontrib-doxylink
)
+source=("libcamera.tar.gz::https://github.com/raspberrypi/libcamera/archive/refs/tags/v$pkgver+$_customtag.tar.gz")
+sha256sums=('6182cd1e2c9da2b5a5ee1dc3733b2068629fb4d53b20d3071de30a36a2221796')
+
_pick() {
local p="$1" f d; shift
for f; do
@@ -59,30 +60,23 @@ _pick() {
done
}
+#pkgver() {
+# cd $pkgbase
+# git describe --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/v//g'
+#}
+
prepare() {
- mv libcamera-0.3.2 $pkgbase
+ mv $pkgbase-$pkgver-$_customtag $pkgbase
cd $pkgbase
- patch -Np1 -i ../libcamera-rpi-0.3.2-arch.patch
-
# add version, so that utils/gen-version.sh may rely on it
printf "%s\n" "$pkgver" > .tarball-version
}
build() {
- local meson_options=(
- --buildtype=release
- --wrap-mode default
- -D pipelines=rpi/vc4,rpi/pisp
- -D ipas=rpi/vc4,rpi/pisp
- -D v4l2=true
- -D tracing=disabled
- -D test=true
- -D pycamera=enabled
- )
-
- arch-meson $pkgbase build "${meson_options[@]}"
+ meson setup $pkgbase build --prefix=/usr --libexecdir=lib --sbindir=bin --auto-features=enabled --wrap-mode=nodownload --buildtype=release -Db_lto=false -Db_pie=true -Dtracing=disabled -Dpython.bytecompile=1 -Dpipelines=rpi/vc4,rpi/pisp -Dipas=rpi/vc4,rpi/pisp -Dv4l2=enabled -Dgstreamer=enabled -Dtest=true -Dlc-compliance=enabled -Dcam=enabled -Dqcam=enabled -Ddocumentation=enabled -Dpycamera=enabled
meson compile -C build
+ #ninja -C build install
}
check() {
@@ -103,7 +97,7 @@ package_libcamera-rpi() {
gcc-libs
glibc
gnutls
- libcamera-rpi-ipa
+ libcamera-ipa-rpi
libelf
libunwind
libyaml
@@ -112,15 +106,14 @@ package_libcamera-rpi() {
)
optdepends=(
'gst-plugin-libcamera-rpi: GStreamer plugin'
- 'libcamera-rpi-docs: for documentation'
- 'libcamera-rpi-tools: for applications'
+ 'libcamera-docs-rpi: for documentation'
+ 'libcamera-tools-rpi: for applications'
)
- provides=(libcamera.so libcamera-base.so)
-
+ provides=(libcamera libcamera.so libcamera-base.so)
conflicts=(libcamera)
meson install -C build --destdir "$pkgdir"
- install -vDm 644 $pkgbase/LICENSES/{BSD-3-Clause,Linux-syscall-note,MIT}.txt -t "$pkgdir/usr/share/licenses/$pkgname/"
+ install -vDm 644 $pkgbase/LICENSES/{BSD-3-Clause,Linux-syscall-note,MIT}.txt -t "$pkgdir/usr/share/licenses/${pkgname%"-rpi"}/"
(
cd "$pkgdir"
@@ -128,24 +121,26 @@ package_libcamera-rpi() {
_pick $pkgbase-ipa usr/lib/libcamera/
_pick $pkgbase-tools usr/bin/{cam,qcam,lc-compliance}
_pick gst-plugin-$pkgbase usr/lib/gstreamer-*
+ _pick python-$pkgbase usr/lib/python*
)
}
-package_libcamera-rpi-docs() {
+package_libcamera-docs-rpi() {
pkgdesc+=" - documentation"
license=(
CC-BY-4.0
CC-BY-SA-4.0
CC0-1.0
)
- conflicts=(libcamera-docs)
+ conflicts=("libcamera-docs")
+ provides=("libcamera-docs")
- mv -v $pkgname/* "$pkgdir"
- mv -v "$pkgdir/usr/share/doc/libcamera-0.3.2/" "$pkgdir/usr/share/doc/$pkgbase/"
+ mv -v ${pkgname%"-rpi"}/* "$pkgdir"
+ mv -v "$pkgdir/usr/share/doc/$pkgbase-$pkgver/" "$pkgdir/usr/share/doc/$pkgbase/"
rm -frv "$pkgdir/usr/share/doc/$pkgbase/html/.buildinfo"
}
-package_libcamera-rpi-ipa() {
+package_libcamera-ipa-rpi() {
pkgdesc+=" - signed IPA"
license=(
BSD-2-Clause
@@ -159,19 +154,20 @@ package_libcamera-rpi-ipa() {
glibc
libcamera-rpi libcamera.so libcamera-base.so
)
- conflicts=(libcamera-ipa)
# stripping requires re-signing of IPA libs, so we do it manually
options=(!strip)
+ provides=(libcamera-ipa)
+ conflicts=(libcamera-ipa)
- strip $pkgname/usr/lib/libcamera/*{.so,proxy}
- for _lib in $pkgname/usr/lib/libcamera/*.so; do
+ strip ${pkgname%"-rpi"}/usr/lib/libcamera/*{.so,proxy}
+ for _lib in ${pkgname%"-rpi"}/usr/lib/libcamera/*.so; do
$pkgbase/src/ipa/ipa-sign.sh "$(find build -type f -iname "*ipa-priv-key.pem")" "$_lib" "$_lib.sign"
done
- mv -v $pkgname/* "$pkgdir"
- install -vDm 644 $pkgbase/LICENSES/BSD-2-Clause.txt -t "$pkgdir/usr/share/licenses/$pkgname/"
+ mv -v ${pkgname%"-rpi"}/* "$pkgdir"
+ install -vDm 644 $pkgbase/LICENSES/BSD-2-Clause.txt -t "$pkgdir/usr/share/licenses/${pkgname%"-rpi"}/"
}
-package_libcamera-rpi-tools() {
+package_libcamera-tools-rpi() {
pkgdesc+=" - tools"
license=(
BSD-2-Clause
@@ -189,13 +185,15 @@ package_libcamera-rpi-tools() {
libjpeg-turbo libjpeg.so
libtiff libtiff.so
libyaml
- qt5-base
+ qt6-base
sdl2
)
- conflicts=("libcamera-tools")
+ conflicts=("$pkgbase-tests<0.0.1-2" "libcamera-tools")
+ replaces=("$pkgbase-tests<0.0.1-2")
+ provides=("libcamera-tools")
- mv -v $pkgname/* "$pkgdir"
- install -vDm 644 $pkgbase/LICENSES/BSD-2-Clause.txt -t "$pkgdir/usr/share/licenses/$pkgname/"
+ mv -v ${pkgname%"-rpi"}/* "$pkgdir"
+ install -vDm 644 $pkgbase/LICENSES/BSD-2-Clause.txt -t "$pkgdir/usr/share/licenses/${pkgname%"-rpi"}/"
}
package_gst-plugin-libcamera-rpi() {
@@ -213,6 +211,22 @@ package_gst-plugin-libcamera-rpi() {
libcamera-rpi libcamera.so libcamera-base.so
)
conflicts=(gst-plugin-libcamera)
+ provides=(gst-plugin-camera)
+ mv -v ${pkgname%"-rpi"}/* "$pkgdir"
+}
+
+package_python-libcamera-rpi() {
+ pkgdesc+=" - Python integration"
+ license=(
+ CC0-1.0
+ LGPL-2.1-or-later
+ )
+ depends=(
+ gcc-libs
+ glibc
+ libcamera
+ python
+ )
- mv -v $pkgname/* "$pkgdir"
+ mv -v ${pkgname%"-rpi"}/* "$pkgdir"
}
diff --git a/libcamera-rpi-0.3.2-arch.patch b/libcamera-rpi-0.3.2-arch.patch
deleted file mode 100644
index 108dc9d..0000000
--- a/libcamera-rpi-0.3.2-arch.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- libcamera-rpi-0.3.2/src/ipa/rpi/cam_helper/cam_helper_imx500.cpp 2024-10-20 21:38:58.492510656 +0200
-+++ libcamera-rpi-0.3.2-arch/src/ipa/rpi/cam_helper/cam_helper_imx500.cpp 2024-10-20 21:23:25.628222018 +0200
-@@ -257,7 +257,7 @@
- exported.height = inputTensorInfo.height;
- exported.numChannels = inputTensorInfo.channels;
- strncpy(exported.networkName, inputTensorInfo.networkName.c_str(),
-- sizeof(exported.networkName));
-+ sizeof(exported.networkName) - 1);
- exported.networkName[sizeof(exported.networkName) - 1] = '\0';
- metadata.set("cnn.input_tensor_info", exported);
- metadata.set("cnn.input_tensor", std::move(inputTensorInfo.data));