Files
omarchy-pkgs/pkgbuilds/libfprint-git/PKGBUILD
T
7b1fbb1cbb Guard the Touch ID patch by its content, and check it
Marcelo's review: prepare() skipped the patch whenever aurora.c existed, a
file the patch itself creates, so a tree a failed run left half-patched
would build. It now skips only when every hunk is already in, and a
half-patched tree fails prepare(). The patch has a real b2sum, and the
recipe says the driver accepts only /dev/sep-bio interface version 4, so a
kernel bump and this patch move together.

Co-authored-by: Chris Kearney <303316+iconidentify@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-05 10:37:47 -04:00

106 lines
3.0 KiB
Bash

# Maintainer: Mikko Nyman <mikko@nyman.xyz>
# Based on the Arch libfprint package by Jan Alexander Steffens (heftig).
#
# Omarchy's fingerprint setup installs this in place of stock libfprint, so
# readers upstream supports ahead of an Arch release reach users by bumping
# the pin here. Pinned to the commit adding the Synaptics reader USB
# 06cb:010b, missing from stock libfprint 1.94.100; the FocalTech MOC support
# carried by the previous pin is retained.
#
# On aarch64 it also carries the aurora driver for Apple Touch ID, which the
# aurora kernel's Secure Enclave driver exposes as /dev/sep-bio
# (aurora-apple-sep.patch, by Chris Kearney). The x86_64 build is unchanged.
# The driver accepts only /dev/sep-bio interface version 4
# (AURORA_BIO_IFACE_VERSION): a kernel that bumps it turns Touch ID off until
# this patch follows, so move the two together.
pkgname=libfprint-git
pkgver=1.94.100.r10.g6f9479c
pkgrel=2
# Retain the epoch used to supersede the previously published untested build.
epoch=1
pkgdesc="Library for fingerprint readers (pinned upstream snapshot with FocalTech and Synaptics 06cb:010b support, and Apple Touch ID on aarch64)"
url="https://fprint.freedesktop.org/"
arch=(x86_64 aarch64)
license=(LGPL-2.1-or-later)
depends=(
gcc-libs
glib2
glibc
libgudev
libgusb
openssl
pixman
)
makedepends=(
git
glib2-devel
gobject-introspection
gtk-doc
meson
python-cairo
python-gobject
systemd
)
checkdepends=(
cairo
umockdev
)
# Versioned, so a package that requires a libfprint version still installs.
provides=("libfprint=$pkgver" libfprint-2.so)
conflicts=(libfprint)
groups=(fprint)
source=(
"git+https://gitlab.freedesktop.org/libfprint/libfprint.git#commit=6f9479c3d55f847c1b3769f28ceb99227f9858cf"
"focaltech_moc-add-pid-0xA97A.patch"
)
source_aarch64=("aurora-apple-sep.patch")
b2sums=(
'SKIP'
'SKIP'
)
b2sums_aarch64=('ec577996066baf6db6d741763abd681aae5556d52a8b67f7a52a60a4df7015c5d1edf3637835e563b2fb0edde2499173d61c50717b621f6bddf94a1f700075e5')
pkgver() {
cd libfprint
( set -o pipefail
git describe --long --tags --abbrev=7 2>/dev/null \
| sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' \
|| printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short=7 HEAD)"
)
}
prepare() {
cd libfprint
if ! grep -qi 'pid = 0xa97a' libfprint/drivers/focaltech_moc/focaltech_moc.c; then
patch -p1 < "$srcdir/focaltech_moc-add-pid-0xA97A.patch"
fi
# Skipped only when every hunk is already in: a tree a failed run left
# half-patched fails here instead of building.
if [[ $CARCH == "aarch64" ]] &&
! patch -p1 -R --dry-run --silent --force < "$srcdir/aurora-apple-sep.patch" >/dev/null 2>&1; then
patch -p1 --forward < "$srcdir/aurora-apple-sep.patch"
fi
}
build() {
local meson_options=(
-D drivers=all
-D installed-tests=false
)
arch-meson libfprint build "${meson_options[@]}"
meson compile -C build
}
check() {
meson test -C build --print-errorlogs
}
package() {
meson install -C build --destdir "$pkgdir"
}
# vim:set sw=2 sts=-1 et: