[Guide] Installation for Fedora 44
As the newest Fedora release is missing the pre-compiled RPM packages required to run this project and the referenced COPR repository is abandoned, I've put together a quick guide on installing Howdy and its dependencies from sources.
Install the available required packages:
sudo dnf install --setopt=install_weak_deps=False git curl meson bzip2 python3-devel make cmake gcc-c++ pam-devel inih-devel opencv opencv-devel python3-opencv python3-pip redhat-rpm-config
Clone the master branch and build&install:
git clone https://github.com/boltgolt/howdy
cd howdy
meson setup build
meson compile -C build
sudo meson install -C buildCompile missing libraries via pip and downloading facial recognition models:
sudo pip install dlib elevate --break-system-packages
sudo mkdir -p /usr/local/share/dlib-data
sudo curl -Lo /usr/local/share/dlib-data/shape_predictor_5_face_landmarks.dat.bz2 http://dlib.net/files/shape_predictor_5_face_landmarks.dat.bz2
sudo curl -Lo /usr/local/share/dlib-data/dlib_face_recognition_resnet_model_v1.dat.bz2 http://dlib.net/files/dlib_face_recognition_resnet_model_v1.dat.bz2
sudo bzip2 -d /usr/local/share/dlib-data/shape_predictor_5_face_landmarks.dat.bz2
sudo bzip2 -d /usr/local/share/dlib-data/dlib_face_recognition_resnet_model_v1.dat.bz2Copy and link files to the global directory:
sudo ln -sf /usr/local/lib64/security/pam_howdy.so /usr/lib64/security/pam_howdy.so
sudo cp -r /usr/local/lib64/python3.14/site-packages/dlib* /usr/lib64/python3.14/site-packages/
sudo cp -r /usr/local/lib64/python3.14/site-packages/_dlib* /usr/lib64/python3.14/site-packages/
sudo restorecon -Rv /usr/lib64/python3.14/site-packages/dlib*
sudo restorecon -Rv /usr/lib64/python3.14/site-packages/_dlib*Optional cleanup:
rm -rf ~/howdy
sudo rm -rf /usr/local/lib64/python3.14/site-packages/dlib* /usr/local/lib64/python3.14/site-packages/_dlib*Optional adding a launcher for Howdy:
sudo nano /usr/local/lib64/howdy-gtk/init.py
Add after import sys in the line below:
from gi.repository import GLib
GLib.set_prgname('howdy-gtk')Ctrl+o Ctrl+x
nano ~/.local/share/applications/howdy-gtk.desktop
Put:
[Desktop Entry]
Type=Application
Icon=/usr/local/share/howdy-gtk/logo.png
Name=Howdy
Comment=Windows Hello style authentication for Linux
Categories=Settings
Exec=sh -c "xhost +SI:localuser:root && pkexec env DISPLAY=$DISPLAY GDK_BACKEND=x11 PATH=/usr/local/bin:/usr/bin:/bin SUDO_USER=$USER /usr/local/bin/howdy-gtk"
Terminal=false
StartupNotify=false
StartupWMClass=howdy-gtkCtrl+o Ctrl+x
Configure and test Howdy:
sudo howdy config
Edit device_path
Typically device_path = /dev/video2, but check the docs if it doesn't work.
Ctrl+o Ctrl+x
sudo howdy test
If IR emitter doesn't work:
Download latest beta: https://github.com/EmixamPP/linux-enable-ir-emitter/releases
Installing and configuration: https://github.com/EmixamPP/linux-enable-ir-emitter/blob/master/README.md
If work:
Enable Howdy in PAM for sudo, polkit and GDM (if used):
sudo cp /usr/lib/pam.d/polkit-1 /etc/pam.d/polkit-1
Add auth sufficient pam_howdy.so to the top of these files:
sudo nano /etc/pam.d/polkit-1
sudo nano /etc/pam.d/sudo
sudo nano /etc/pam.d/gdm-password (below firs line in this case!)Ctrl+o Ctrl+x
Remember: If you set up IR emitter enabler add its trigger before Howdy. For example:
auth optional pam_exec.so /usr/local/bin/linux-enable-ir-emitter run --config <CONFIG_PATH>
auth sufficient pam_howdy.soAdd a face:
You can add a face using the GUI tool (either by opening the launcher we just created or by running sudo howdy-gtk), or you can stick to the command line by running:
sudo howdy add
Once your face is added, everything should work smoothly.
Well, it should, but it won't, because we're on Fedora SELinux will block Howdy on the login screen, so we need to create and apply a custom SELinux policy.
Log out and log it and run:
sudo ausearch -m AVC -ts recent | audit2allow -M howdy_login
Apply:
sudo semodule -i howdy_login.pp
That's all! Your Howdy setup should work perfectly now. At least until it breaks.
Source: boltgolt/howdy