howdy icon indicating copy to clipboard operation
howdy copied to clipboard

Howdy on Fedora 43 fails to install

Open B0ndo2 opened this issue 1 month ago • 4 comments


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

B0ndo2 avatar Nov 26 '25 21:11 B0ndo2

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

keithvassallomt avatar Nov 30 '25 09:11 keithvassallomt

I am assuming Python 2 is no longer required, correct?

mbeps avatar Dec 06 '25 12:12 mbeps

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

RonnyPfannschmidt avatar Dec 06 '25 18:12 RonnyPfannschmidt

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

RonnyPfannschmidt avatar Dec 06 '25 19:12 RonnyPfannschmidt

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.

dec-legal avatar Dec 12 '25 08:12 dec-legal

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

keithvassallomt avatar Dec 12 '25 10:12 keithvassallomt

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?

RaveenLiyanage avatar Dec 13 '25 21:12 RaveenLiyanage

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

notnotno avatar Dec 17 '25 01:12 notnotno