diff options
Diffstat (limited to 'PKGBUILD')
| -rw-r--r-- | PKGBUILD | 132 |
1 files changed, 73 insertions, 59 deletions
@@ -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" } |
