Howdy on Fedora 43 fails to install
sudo dnf copr enable principis/howdy-beta
sudo dnf --refresh install howdy
Failed to resolve the transaction:
Problem: conflicting requests
- nothing provides python3dist(dlib) needed by howdy-3.0.0-7.20250714gitd3ab993.fc43.x86_64 from copr:copr.fedorainfracloud.org:principis:howdy-beta
You can try to add to command line:
--skip-broken to skip uninstallable packages
This is a known issue, and the problem lies more with Fedora than with Howdy. Here's the workaround I used to get it working on my system:
Howdy on Fedora (GDM + SELinux Enforcing)
With face unlock for login.
✅ 1. Install Howdy Manually
git clone https://github.com/boltgolt/howdy ~/src/howdy
cd ~/src/howdy
sudo dnf install -y python3-devel cmake gcc-c++ pam-devel inih-devel opencv opencv-devel
meson setup build
meson compile -C build
sudo meson install -C build
If pam_howdy.so ends up in /usr/local/lib64/security, link it:
sudo ln -sf /usr/local/lib64/security/pam_howdy.so /usr/lib64/security/pam_howdy.so
✅ 2. Enable Howdy for Login
Edit the GDM PAM file:
sudo nano /etc/pam.d/gdm-password
Insert this line directly after the pam_selinux_permit.so line:
auth sufficient pam_howdy.so
The top of the file should look like this:
auth [success=done ignore=ignore default=bad] pam_selinux_permit.so
auth sufficient pam_howdy.so
auth substack password-auth
auth optional pam_gnome_keyring.so
auth include postlogin
✅ 3. Fix SELinux (Required for Camera Access Under GDM)
Ensure SELinux is enforcing:
sudo setenforce 1
Trigger a denial once:
- Lock the screen (
Super+L) - Let Howdy silently fail (no LED)
Generate and install an SELinux module:
sudo ausearch -m avc -ts recent | audit2allow -M howdy_camera
sudo semodule -i howdy_camera.pp
This allows the GDM SELinux domain (xdm_t) to access /dev/video*.
After this, face unlock works with SELinux enforcing.
🔄 How to Undo Everything
1. Remove SELinux Policy
sudo semodule -r howdy_camera
2. Remove Howdy From GDM
sudo nano /etc/pam.d/gdm-password
Delete the line:
auth sufficient pam_howdy.so
3. Remove Howdy Files
sudo rm /usr/lib64/security/pam_howdy.so
sudo rm -r /usr/local/lib64/howdy
(Or delete your build directory.)
4. Restore Original authselect Profile (Optional)
sudo authselect select minimal --force
sudo authselect apply-changes
I am assuming Python 2 is no longer required, correct?
i freshly mashed up https://copr.fedorainfracloud.org/coprs/ronnypfannschmidt/howdy-beta/ with claude from the initial copr @principis made
i'd love to get some feedback on the hacks as its by no means clean - claude cooked up quite some hacks that may be misplaced
however it works on my fedora silverblue a a rpm-ostree overlay
https://github.com/principis/copr-specs/pull/11 - adding here in the hope that someone with a better understanding of the fedora authselect system and/or rpm packaging can rip it apart
me@fedora:~/src/howdy$ sudo ausearch -m avc -ts recent | audit2allow -M howdy_camera
<no matches>
Nothing to do
me@fedora:~/src/howdy$ sudo semodule -i howdy_camera.pp
libsemanage.map_compressed_file: Unable to open howdy_camera.pp. (No such file or directory).
libsemanage.semanage_direct_install_file: Unable to read file howdy_camera.pp. (No such file or directory).
semodule: Failed on howdy_camera.pp!
Your guide doesn't seem to work, nothing happens when locking fedora.
Your guide doesn't seem to work, nothing happens when locking fedora.
What can I say... it worked for me! Make sure you restart after doing this - but those are exactly the same steps I followed. Obviously make sure face recognition is working with howdy test
me@fedora:~/src/howdy$ sudo ausearch -m avc -ts recent | audit2allow -M howdy_camera <no matches> Nothing to do me@fedora:~/src/howdy$ sudo semodule -i howdy_camera.pp libsemanage.map_compressed_file: Unable to open howdy_camera.pp. (No such file or directory). libsemanage.semanage_direct_install_file: Unable to read file howdy_camera.pp. (No such file or directory). semodule: Failed on howdy_camera.pp!Your guide doesn't seem to work, nothing happens when locking fedora.
I am also getting this issue? Has anyone found a fix?
From https://copr.fedorainfracloud.org/coprs/principis/howdy/:
SELinux issues If login gets stuck and selinux is in enforcing mode, you probably need to allow python3 to access /dev/video*
Create a file howdy.te for the policy module:
module howdy 1.0;
require {
type lib_t;
type xdm_t;
type v4l_device_t;
type sysctl_vm_t;
class chr_file map;
class file { create getattr open read write };
class dir add_name;
}
#============= xdm_t ==============
allow xdm_t lib_t:dir add_name;
allow xdm_t lib_t:file { create write };
allow xdm_t sysctl_vm_t:file { getattr open read };
allow xdm_t v4l_device_t:chr_file map;
Then you can compile and insert it
checkmodule -M -m -o howdy.mod howdy.te
semodule_package -o howdy.pp -m howdy.mod
semodule -i howdy.pp