diff options
Diffstat (limited to 'community/libcamera/APKBUILD')
-rw-r--r-- | community/libcamera/APKBUILD | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/community/libcamera/APKBUILD b/community/libcamera/APKBUILD new file mode 100644 index 00000000000..443b423c565 --- /dev/null +++ b/community/libcamera/APKBUILD @@ -0,0 +1,142 @@ +# Contributor: Luca Weiss <luca@z3ntu.xyz> +# Maintainer: Luca Weiss <luca@z3ntu.xyz> +pkgname=libcamera +pkgver=0.2.0 +pkgrel=0 +pkgdesc="Linux camera framework" +url="https://libcamera.org/" +arch="all" +license="LGPL-2.1-or-later AND GPL-2.0-or-later" +depends_dev=" + eudev-dev + glib-dev + gnutls-dev + gst-plugins-bad-dev + qt5-qtbase-dev + " +# upstream calls 'date' with a non-POSIX option so we pull in coreutils +makedepends="$depends_dev + coreutils + doxygen + graphviz + gtest-dev + libevent-dev + libunwind-dev + linux-headers + meson + py3-jinja2 + py3-ply + py3-sphinx + py3-yaml + qt5-qttools-dev + yaml-dev + " +subpackages=" + $pkgname-dbg + $pkgname-dev + $pkgname-doc + qcam + $pkgname-gstreamer + $pkgname-v4l2 + $pkgname-tools + " +source="$pkgname-$pkgver.tar.gz::https://github.com/libcamera-org/libcamera/archive/refs/tags/v$pkgver.tar.gz + 0001-qcam-Decrease-minimum-width-of-selector-dialog.patch + qcam.desktop + " +# gstreamer tests fail +# manual strip because ipa .sign files depend on the file contents- have to re-sign after strip +options="!strip !check" + +case "$CARCH" in +arm*|aarch64) + subpackages="$subpackages $pkgname-raspberrypi" + ;; +esac + +case "$CARCH" in +ppc64le|s390x|riscv64) + # doesn't install any ipa + ;; +*) + depends="$pkgname-ipa=$pkgver-r$pkgrel" + subpackages="$subpackages $pkgname-ipa" + ;; +esac + +build() { + abuild-meson \ + -Dv4l2=true \ + -Dwerror=false \ + . output + meson compile -C output +} + +check() { + meson test --no-rebuild -C output --print-errorlogs +} + +package() { + DESTDIR="$pkgdir" meson install --no-rebuild -C output + install -Dm644 -t "$pkgdir"/usr/share/applications "$srcdir"/qcam.desktop + + # manual strip first.. + scanelf --recursive \ + --nobanner \ + --etype "ET_DYN,ET_EXEC" \ + --format "%F" \ + "$pkgdir" \ + | while read -r file; do + strip "$file" + done +} + +ipa() { + depends="" + amove usr/lib/libcamera + # then sign ipa's + local ipa + for ipa in "$subpkgdir"/usr/lib/libcamera/ipa*.so; do + msg "signing $ipa" + "$builddir"/src/ipa/ipa-sign.sh \ + "$(find "$builddir"/output -type f -iname "*ipa-priv-key.pem")" \ + "$ipa" \ + "$ipa".sign + done +} + +qcam() { + depends="" + amove usr/bin/qcam + + amove usr/share/applications/qcam.desktop +} + +gstreamer() { + depends="" + amove usr/lib/gstreamer-1.0 +} + +v4l2() { + depends="" + amove usr/libexec/libcamera/v4l2-compat.so +} + +raspberrypi() { + depends="" + amove usr/share/libcamera/ipa/rpi + amove usr/libexec/libcamera/raspberrypi_ipa_proxy + amove usr/share/libcamera/pipeline/rpi/vc4 +} + +tools() { + depends="" + amove usr/bin/cam + amove usr/bin/lc-compliance +} + +sha512sums=" +f01afcbf615d6c1a7f6c3f2b89043094a737376a3f3cb3f4e4f72f8366acf0bbf099b1f1b1b306c489a43f92eaf723779f0e49bb047c233367a0d69555b74def libcamera-0.2.0.tar.gz +69d6e29d764f752feed453b9c0f61c81cdb506eb14893d0d99d0d6834f369f1e816c2381dfab5ad1a744a3d11211af02d75dc041ecc87c7e4f73e2bd34c666c2 0001-qcam-Decrease-minimum-width-of-selector-dialog.patch +22167a4eceb6d1b40b0b7c45fdf116c71684f5340de7f767535cb8e160ad9d2ae0f00cb3d461f73a344520a48a4641cf46226841d78bee06bfbfd2a91337f754 qcam.desktop +" |