diff options
Diffstat (limited to 'system/fprintd')
-rw-r--r-- | system/fprintd/README | 17 | ||||
-rw-r--r-- | system/fprintd/doinst.sh | 14 | ||||
-rw-r--r-- | system/fprintd/fprintd.SlackBuild | 132 | ||||
-rw-r--r-- | system/fprintd/fprintd.info | 10 | ||||
-rw-r--r-- | system/fprintd/patches/01-meson-Do-not-hard-require-test-dependencies.patch | 15 | ||||
-rw-r--r-- | system/fprintd/patches/02-meson-Add-option-to-use-libelogind-for-DBus.patch | 31 | ||||
-rw-r--r-- | system/fprintd/patches/03-meson-Permit-build-without-pam_wrapper.patch | 33 | ||||
-rw-r--r-- | system/fprintd/slack-desc | 19 |
8 files changed, 271 insertions, 0 deletions
diff --git a/system/fprintd/README b/system/fprintd/README new file mode 100644 index 0000000000..1ea6e16317 --- /dev/null +++ b/system/fprintd/README @@ -0,0 +1,17 @@ +fprintd is a daemon that provides fingerprint scanning functionality +over D-Bus. +This is the software developers will want to integrate with to add +fingerprint authentication to OSes, desktop environments and +applications. +It also includes small command-line utilities if your desktop +environment does not integrate support. +A PAM module to implement user login (pam_fprintd) is available. +To enable it add these lines on top of /etc/pam.d/sddm: + +auth sufficient pam_unix.so try_first_pass likeauth nullok +auth sufficient pam_fprintd.so + +And /etc/pam.d/kde: + +auth sufficient pam_unix.so try_first_pass likeauth nullok +auth sufficient pam_fprintd.so diff --git a/system/fprintd/doinst.sh b/system/fprintd/doinst.sh new file mode 100644 index 0000000000..4b387050ff --- /dev/null +++ b/system/fprintd/doinst.sh @@ -0,0 +1,14 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +config etc/fprintd.conf.new diff --git a/system/fprintd/fprintd.SlackBuild b/system/fprintd/fprintd.SlackBuild new file mode 100644 index 0000000000..c880e58f18 --- /dev/null +++ b/system/fprintd/fprintd.SlackBuild @@ -0,0 +1,132 @@ +#!/bin/bash + +# Slackware build script for fprintd + +# Copyright 2022 Fabio Bas <ctrlaltca {at} gmail [dot] com> +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +cd $(dirname $0) ; CWD=$(pwd) + +PRGNAM=fprintd +VERSION=${VERSION:-1.94.2} +SRCVERSION=v${VERSION} +BUILD=${BUILD:-2} +TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$SRCVERSION +tar xvf $CWD/$PRGNAM-$SRCVERSION.tar.gz +cd $PRGNAM-$SRCVERSION +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +# Patches +if [ -d $CWD/patches ]; then + for file in $CWD/patches/*.patch ; do + if [ -f $file ]; then + cat $file | patch -p1 --verbose || exit 1 + fi + done +fi + +mkdir build +cd build + CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + meson setup .. \ + -Dman=true \ + -Dgtk_doc=false \ + -Dsystemd=false \ + -Dlibsystemd=libelogind \ + -Dpam=true \ + -Dpam_modules_dir=/lib${LIBDIRSUFFIX}/security \ + --buildtype=release \ + --infodir=/usr/info \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --localstatedir=/var \ + --mandir=/usr/man \ + --prefix=/usr \ + --sysconfdir=/etc + ninja + DESTDIR=$PKG ninja install +cd .. + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +mkdir -p $PKG/usr/man +mv $PKG/usr/share/man/man* $PKG/usr/man +rmdir $PKG/usr/share/man +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +mv $PKG/etc/fprintd.conf $PKG/etc/fprintd.conf.new + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + README TODO AUTHORS COPYING NEWS \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE diff --git a/system/fprintd/fprintd.info b/system/fprintd/fprintd.info new file mode 100644 index 0000000000..571462fadf --- /dev/null +++ b/system/fprintd/fprintd.info @@ -0,0 +1,10 @@ +PRGNAM="fprintd" +VERSION="1.94.2" +HOMEPAGE="https://fprint.freedesktop.org/" +DOWNLOAD="https://gitlab.freedesktop.org/libfprint/fprintd/-/archive/v1.94.2/fprintd-v1.94.2.tar.gz" +MD5SUM="341566e629c70ab428d265f4dd3e00be" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="libfprint" +MAINTAINER="Fabio Bas" +EMAIL="ctrlaltca <at> gmail {dot} com" diff --git a/system/fprintd/patches/01-meson-Do-not-hard-require-test-dependencies.patch b/system/fprintd/patches/01-meson-Do-not-hard-require-test-dependencies.patch new file mode 100644 index 0000000000..32f34ffab5 --- /dev/null +++ b/system/fprintd/patches/01-meson-Do-not-hard-require-test-dependencies.patch @@ -0,0 +1,15 @@ +Patch-Source: https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/ff0aa64e2d9e72d8b54b28cd3615ee3cfe342fdc.diff + +diff --git a/meson.build b/meson.build +index b155a4ae48ae8705ea0c18b526072e73420edb77..159f0e87b3bbdbc37d574ae043fa38ee2e4207ce 100644 +--- a/meson.build ++++ b/meson.build +@@ -153,7 +153,7 @@ python3_available_modules = [] + + foreach module, required : python3_test_modules + if required and run_command(python3, '-c', 'import @0@'.format(module)).returncode() != 0 +- error('Python3 module \'' + module + '\' required by test suite not found') ++ warning('Python3 module \'' + module + '\' required by test suite not found') + endif + endforeach + diff --git a/system/fprintd/patches/02-meson-Add-option-to-use-libelogind-for-DBus.patch b/system/fprintd/patches/02-meson-Add-option-to-use-libelogind-for-DBus.patch new file mode 100644 index 0000000000..b6a0f73a47 --- /dev/null +++ b/system/fprintd/patches/02-meson-Add-option-to-use-libelogind-for-DBus.patch @@ -0,0 +1,31 @@ +Patch-Source: https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/1be0810b695a88407bca084a12063b78a719345e.diff + +diff --git a/meson.build b/meson.build +index 159f0e87b3bbdbc37d574ae043fa38ee2e4207ce..93f96557a2e02adc1aa24c72c82816d1c1a2462f 100644 +--- a/meson.build ++++ b/meson.build +@@ -92,7 +92,7 @@ gmodule_dep = dependency('gmodule-2.0', version: '>=' + glib_min_version) + libfprint_dep = dependency('libfprint-2', version: '>=' + libfprint_min_version) + polkit_gobject_dep = dependency('polkit-gobject-1', version: '>= 0.91') + dbus_dep = dependency('dbus-1', required: false) +-libsystemd_dep = dependency('libsystemd', required: get_option('pam')) ++libsystemd_dep = dependency(get_option('libsystemd'), required: get_option('pam')) + pam_dep = cc.find_library('pam', + required: get_option('pam'), + has_headers: 'security/pam_modules.h', +diff --git a/meson_options.txt b/meson_options.txt +index 5daa9a4800a589e582fb1953c7a9c1c321d9ef88..11aa0bef08010ad350cd611a72149e5b13edbeb5 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -10,6 +10,11 @@ option('systemd', + description: 'Install system service files', + type: 'boolean', + value: true) ++option('libsystemd', ++ description: 'Libsystemd provider (libsystemd or libelogind)', ++ type: 'combo', ++ choices: [ 'libsystemd', 'libelogind' ], ++ value: 'libsystemd') + option('systemd_system_unit_dir', + description: 'Directory for systemd service files', + type: 'string') diff --git a/system/fprintd/patches/03-meson-Permit-build-without-pam_wrapper.patch b/system/fprintd/patches/03-meson-Permit-build-without-pam_wrapper.patch new file mode 100644 index 0000000000..32b0f2db63 --- /dev/null +++ b/system/fprintd/patches/03-meson-Permit-build-without-pam_wrapper.patch @@ -0,0 +1,33 @@ +Patch-Source: https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/b04d4eb3e87da2627ac16364bc03bf6c2c452b8c.diff + +diff --git a/meson.build b/meson.build +index 93f96557a2e02adc1aa24c72c82816d1c1a2462f..859bcf2c7ad63ba2d74f837d00f0ec339a340658 100644 +--- a/meson.build ++++ b/meson.build +@@ -137,7 +137,10 @@ endif + polkit_policy_directory = polkit_gobject_dep.get_pkgconfig_variable('policydir') + + # Tests dependencies +-pam_wrapper_dep = dependency('pam_wrapper', required: get_option('pam')) ++pam_wrapper_dep = dependency('pam_wrapper', required: false) ++if get_option('pam') and not pam_wrapper_dep.found() ++ warning('Dependency "pam_wrapper" required by test suite not found') ++endif + + xmllint = find_program('xmllint', required: false) + python3 = find_program('python3') # No meson without it! +diff --git a/tests/pam/meson.build b/tests/pam/meson.build +index dc0b07165da62524e744c4516d3d7d20a39ac1f1..bb3c1d9e6b0361035a8f4240a873907f8bfd18f9 100644 +--- a/tests/pam/meson.build ++++ b/tests/pam/meson.build +@@ -12,7 +12,9 @@ if address_sanitizer + preloaded_libs += 'asan' + endif + +-preloaded_libs += 'pam_wrapper' ++if pam_wrapper_dep.found() ++ preloaded_libs += 'pam_wrapper' ++endif + + foreach libname: preloaded_libs + lib = run_command(meson.get_compiler('c'), diff --git a/system/fprintd/slack-desc b/system/fprintd/slack-desc new file mode 100644 index 0000000000..2f9579bca6 --- /dev/null +++ b/system/fprintd/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +fprintd: fprintd (fingerprint scanning daemon available over D-Bus) +fprintd: +fprintd: fprintd is a daemon that provides fingerprint scanning functionality +fprintd: over D-Bus. This is the software developers will want to integrate +fprintd: with to add fingerprint authentication to OSes, desktop environments +fprintd: and applications. +fprintd: It also includes small command-line utilities if your desktop +fprintd: environment does not integrate support. +fprintd: A PAM module to implement user login (pam_fprintd) is unavailable on +fprintd: Slackware since it requires systemd. +fprintd: URL: https://fprint.freedesktop.org/ |