jobextra/libcamera/PKGBUILD

169 lines
4.6 KiB
Bash

#!/usr/bin/bash
# JOBoRun : Jwm OpenBox Obarun RUNit
# Maintainer : Joe Bo Run <joborun@disroot.org>
# 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.5
_commit=5fa37d7623053ef5a693b276986a44d010d057e5 # refs/tags/v0.0.5
pkgrel=01
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
$pkgbase-0.0.5-sphinx.patch)
_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 $pkgbase
# 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
# fix use of python-sphinx
# https://github.com/sphinx-doc/sphinx/pull/11381
git apply -v ../$pkgbase-0.0.5-sphinx.patch
}
build() {
local meson_options=(
-D v4l2=true
-D tracing=disabled
-D test=true
)
arch-meson $pkgbase 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)
sha512sums=('SKIP'
'52abec885c0a38c042622bc1bb106f7cefc19e3d8d0b6dcba7c4fadae3ad9303d5ae74447a72abe710598bc2162d57900be54bfe0de18d4c0842160c1c65b35a')
b2sums=('SKIP'
'e43847222ad644a23761f7f601891971f499552156d8dfd5922732d134e5a09202c6c4fa3880e13c1ae950d34c5a3617ada12fabc06368e3201110ac5455af7f')
sha256sums=(SKIP
618bc981ad18ee3d7609a36c30d7cd9dc213d49dac4ba6be39d143a5881a7684) # libcamera-0.0.5-sphinx.patch
## 3691ef113bd3b4397b2038e7afed5785fd164bf73ff16380b4c6bfd74ce18b90 gst-plugin-libcamera-0.0.5-01-x86_64.pkg.tar.lz
## 329fc5b7400d6833950a61650068087bf4392853577fc406feb75610136e848e libcamera-0.0.5-01-x86_64.pkg.tar.lz
## 7973bbd37c96a64b7f4a28389793ff5b7b30993226b891de9904edfcb01e434e libcamera-ipa-0.0.5-01-x86_64.pkg.tar.lz
## 14f31457e47fbc92173136d6f066704b2db6c9d6fdb473d0749cbce1e8d28407 libcamera-tools-0.0.5-01-x86_64.pkg.tar.lz