#!/usr/bin/bash # JOBoRun : Jwm OpenBox Obarun RUNit # Maintainer : Joe Bo Run # PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" # Website : https://pozol.eu #-----------------------------------------| DESCRIPTION |--------------------------------------- pkgbase=libcamera pkgname=(libcamera libcamera-ipa libcamera-tools gst-plugin-libcamera) # libcamera-docs pkgver=0.0.4 _commit=6a57d964abdb3f24608c0fc2839d96e02eebddeb # refs/tags/v0.0.4 pkgrel=04 pkgdesc="A complex camera support library for Linux, Android, and ChromeOS w/o systemd" url="https://libcamera.org/" depends=(glibc) makedepends=(doxygen git glib2 graphviz gst-plugins-base gtest libdrm libjpeg-turbo libtiff libyaml meson python-jinja python-ply python-sphinx python-pyyaml qt5-base qt5-tools sdl2 texlive-core) source=(git+https://git.libcamera.org/$pkgname/$pkgname.git#tag=$_commit) _pick() { local p="$1" f d; shift for f; do d="$srcdir/$p/${f#$pkgdir/}" mkdir -p "$(dirname "$d")" mv "$f" "$d" rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")" done } prepare() { cd $pkgname # add version, so that utils/gen-version.sh may rely on it printf "%s\n" "$pkgver" > .tarball-version # Fix exponential callback explosion git cherry-pick -n a146e05125fdac75b8ffb6a818e00a446cec65dd } build() { local meson_options=( -D v4l2=true -D tracing=disabled -D test=true ) arch-meson $pkgname build "${meson_options[@]}" meson compile -C build } check() { meson test -C build || echo "Tests require CLONE_NEWUSER/ CLONE_NEWNET." } package_libcamera() { depends=( gcc-libs glibc gnutls libcamera-ipa libelf libunwind libyaml libudev.so sh ) optdepends=( 'gst-plugin-libcamera: GStreamer plugin' 'libcamera-docs: for documentation' 'libcamera-tools: for applications' ) provides=(libcamera.so libcamera-base.so) meson install -C build --destdir "$pkgdir" ( cd "$pkgdir" # _pick $pkgbase-docs usr/share/doc _pick $pkgbase-ipa usr/lib/libcamera/ _pick $pkgbase-tools usr/bin/{cam,qcam,lc-compliance} _pick gst-plugin-$pkgbase usr/lib/gstreamer-* ) } #package_libcamera-docs() { # pkgdesc+=" - documentation" # # mv -v $pkgname/* "$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-ipa() { pkgdesc+=" - signed IPA" depends=( gcc-libs glibc libcamera libcamera.so libcamera-base.so ) # stripping requires re-signing of IPA libs, so we do it manually options=(!strip) strip $pkgname/usr/lib/libcamera/*{.so,proxy} for _lib in $pkgname/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" } package_libcamera-tools() { pkgdesc+=" - tools" depends=( gcc-libs glibc gtest libcamera libcamera.so libcamera-base.so libdrm libevent libevent-2.1.so libevent_pthreads-2.1.so libjpeg-turbo libjpeg.so libtiff libtiff.so libyaml qt5-base sdl2 ) conflicts=("$pkgbase-tests<0.0.1-2") replaces=("$pkgbase-tests<0.0.1-2") mv -v $pkgname/* "$pkgdir" } package_gst-plugin-libcamera() { pkgdesc="Multimedia graph framework - libcamera plugin" depends=( gcc-libs glibc glib2 libg{lib,object}-2.0.so gstreamer gst-plugins-base-libs libcamera libcamera.so libcamera-base.so ) mv -v $pkgname/* "$pkgdir" } #---- arch license gpg-key & sha256sums ---- arch=(x86_64) license=(LGPL2.1 GPL2) sha256sums=(SKIP) ## fb6adde2f2aea10e09b3e8a3cb88b36d975792d44e97bbd2aa89e77084970db8 gst-plugin-libcamera-0.0.4-04-x86_64.pkg.tar.lz ## f8dfc738810054bd1a76a0b1364a62d1b5c79c373acaf5d4757c47801f02dea1 libcamera-0.0.4-04-x86_64.pkg.tar.lz ## bd9daf7d306d2879950882926bc0f5b1b4e70e9f1ea38319cff4148bbdbb94f5 libcamera-ipa-0.0.4-04-x86_64.pkg.tar.lz ## 220f61b09ea1f954b78d2dfe9c4c3818dd17d30a34fa87cf0bb8656a89d9e5a5 libcamera-tools-0.0.4-04-x86_64.pkg.tar.lz