diff options
Diffstat (limited to 'system/fprintd')
5 files changed, 104 insertions, 9 deletions
diff --git a/system/fprintd/README b/system/fprintd/README index 6e56d00df9..1ea6e16317 100644 --- a/system/fprintd/README +++ b/system/fprintd/README @@ -5,5 +5,13 @@ 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 unavailable on -Slackware since it requires systemd. +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/fprintd.SlackBuild b/system/fprintd/fprintd.SlackBuild index 0f895acf79..c880e58f18 100644 --- a/system/fprintd/fprintd.SlackBuild +++ b/system/fprintd/fprintd.SlackBuild @@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd) PRGNAM=fprintd VERSION=${VERSION:-1.94.2} SRCVERSION=v${VERSION} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -77,18 +77,26 @@ find -L . \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; -# Disable tests since tehy require various python modules -sed '154,158 {s/^/#/}' -i meson.build -sed '204,205 {s/^/#/}' -i meson.build -sed -e "/subdir('tests')/ s/^#*/#/" -i meson.build +# 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 .. \ + meson setup .. \ + -Dman=true \ + -Dgtk_doc=false \ -Dsystemd=false \ - -Dpam=false \ + -Dlibsystemd=libelogind \ + -Dpam=true \ + -Dpam_modules_dir=/lib${LIBDIRSUFFIX}/security \ --buildtype=release \ --infodir=/usr/info \ --libdir=/usr/lib${LIBDIRSUFFIX} \ 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'), |