principis/howdy-beta

Description

Unofficial builds of Howdy beta.

Installation Instructions

IMPORTANT

Remove howdy and the repo before installing this version!

dnf remove howdy dnf copr remove principis/howdy

Enable repository

dnf copr enable principis/howdy-beta

Install howdy

dnf --refresh install howdy

More info

Installation instruction or more info can be found here: https://copr.fedorainfracloud.org/coprs/principis/howdy/

Active Releases

The following unofficial repositories are provided as-is by owner of this project. Contact the owner directly for bugs or issues (IE: not bugzilla).

* Total number of packages downloaded in the last seven days.


This is a companion discussion topic for the original entry at https://copr.fedorainfracloud.org/coprs/principis/howdy-beta

Hi Dear,

it is possible to create packages for Epel 8, 9 and CentOS ?

Thank you in advance.

I am getting the following error message:

Exception ignored in: <_io.BufferedWriter name=4>
BrokenPipeError: [Errno 32] Broken pipe

To be clear, howdy appears to be working, but the error message bothers me. Is there anything I can do to help debug this?

1 Like

Hi I’m looking for some help :sweat_smile:
I was able to get this working for sudo but not for gnome login.
On login I only get prompted for password or fingerprint, IR camera doesn’t even seem to be activating.
I already added auth sufficient pam_howdy.so to /etc/pam.d/gdm-password just like shown in the guide and added a face model, so not sure what else I could be missing?
I’m using Fedora 41. Thanks in advance!

1 Like

Getting the following error after successful sudo:

Exception ignored in: <_io.BufferedWriter name=4>
BrokenPipeError: [Errno 32] Broken pipe

Face recognition won’t work in gdm, getting the following error below the password input: nknown error:

I am having the same issues… Everything works fine in terminal except the fact I am getting the

“Exception ignored in: <_io.BufferedWriter name=4>
BrokenPipeError: [Errno 32] Broken pipe”

error as well. I also cannot sign into fedora with howdy or unlock my device.

Same, also have the Errno32 Broken pipe error on Fedora 41.

The broken pipe error fix is on Issue #968, but hasn’t been merged yet on the howdy side.

On the other hand, the fix for sporadic unlocks on Hyprlock Issue #969 seems to be merged into beta 2 weeks ago.

I guess we just wait for the fix to be merged and principis to build the package again?

I was initially unable to get howdy-beta working for either the login or unlock screens. To resolve the issue, I had to address the SELinux issue as documented on the legacy howdy page.

I got the beta version working on Fedora 41 with KDE, but after rebooting it just times out. I see “Failure, timeout reached” in SDDM, KDE’s lock screen, and when using sudo.

Working great on Fedora 41 with Gnome. No issues at all after applying the below things.

I had to add code below to “/etc/pam.d/gdm-password”, “/etc/pam.d/sudo” and “/usr/lib/pam.d/polkit-1”.

auth	sufficient	pam_howdy.so /lib64/security/howdy/pam.py

Also had to do the SELinux fix and edit “/usr/lib/python3.13/site-packages/howdy/compare.py” to remove the error in terminal too.

I also installed by using this code below as I did not need all the languages :slight_smile:

sudo dnf --refresh --setopt=install_weak_deps=False install howdy howdy-gtk flexiblas-openblas-serial proj-data-nz

Installation and Configuration of Howdy 3.0.0-5 on Fedora 42

1. Download Dependencies

Before installing Howdy, you need to download the necessary packages:

wget https://download.copr.fedorainfracloud.org/results/principis/howdy-beta/fedora-42-x86_64/07780296-python-pyv4l2/python3-pyv4l2-1.0.2-3.20240124gitf12f0b3.fc41.x86_64.rpm
wget https://download.copr.fedorainfracloud.org/results/principis/howdy-beta/fedora-42-x86_64/07780294-python-keyboard/python3-keyboard-0.13.5-3.fc41.noarch.rpm
wget https://download.copr.fedorainfracloud.org/results/principis/howdy-beta/fedora-42-x86_64/07780296-python-pyv4l2/python3-pyv4l2-1.0.2-3.20240124gitf12f0b3.fc41.x86_64.rpm

2. Install dependencies

Make sure you are in the folder where the downloaded files are located. :

cd ~/Downloads
sudo dnf install \
python3-elevate-0.1.3-3.20240124git78e82a8.fc41.noarch.rpm \
python3-keyboard-0.13.5-3.fc41.noarch.rpm \
python3-pyv4l2-1.0.2-3.20240124gitf12f0b3.fc41.x86_64.rpm

Next, install OpenCV and V4L2:

sudo dnf install -y opencv opencv-devel opencv-python
sudo dnf install -y v4l-utils

3. Download and Install Howdy

Download the Howdy installation files :

wget https://download.copr.fedorainfracloud.org/results/principis/howdy-beta/fedora-41-x86_64/08674716-howdy/howdy-data-3.0.0-5.20250220gitaef35b5.fc41.noarch.rpm
wget https://download.copr.fedorainfracloud.org/results/principis/howdy-beta/fedora-41-x86_64/08674716-howdy/howdy-3.0.0-5.20250220gitaef35b5.fc41.x86_64.rpm
wget https://download.copr.fedorainfracloud.org/results/principis/howdy-beta/fedora-41-x86_64/08674716-howdy/howdy-gtk-3.0.0-5.20250220gitaef35b5.fc41.noarch.rpm

Install the files:

sudo dnf install ~/Downloads/howdy-*.fc41.*.rpm --exclude=*debug*

4. Configure Howdy

Identify the video device

Use the following commands to identify your camera:

v4l2-ctl --list-devices
ls /dev/video*

If multiple devices are detected, test them:

ffplay /dev/video0
ffplay /dev/video1

Edit the Howdy configuration file

Open the configuration file:

sudo howdy config

Modify the following settings:

detection_notice = true
timeout_notice = true
no_confirmation = false
suppress_unknown = false
abort_if_ssh = true
abort_if_lid_closed = true
disabled = false
use_cnn = false
workaround = input
certainty = 4.0
timeout = 10
device_path = /dev/video0 # Replace with your detected device
warn_no_device = true
max_height = 480
frame_width = 640
frame_height = 480
dark_threshold = 80
recording_plugin = opencv
device_format = v4l2
force_mjpeg = true
exposure = -1
device_fps = 15
rotate = 1

Save and exit.

5. Add a face template

Add a facial recognition template for your user:

sudo howdy add

Give the template a name when prompted.

6. Test facial recognition

Test if recognition works:

sudo howdy test

7. Configure authentication

Edit PAM files

Add Howdy to the PAM configuration for sudo:

sudo nano /etc/pam.d/sudo

Add this line to the beginning of the file:

auth sufficient pam_howdy.so no_confirmation

Do the same for GDM:

sudo nano /etc/pam.d/gdm-password

Add:

auth sufficient pam_howdy.so

8. Manage permissions

Give your camera the necessary permissions:

sudo chmod o+rw /dev/video*
sudo chmod -R o+rx /usr/share/howdy/dlib-data
sudo chmod +x /usr/bin/howdy
sudo usermod -aG video gdm
sudo chmod 666 /dev/video*
sudo chmod 755 /usr/lib64/security/pam_howdy.so

9. Create a custom SELinux module to enable Howdy

Create a SELinux policy file, for example, howdy.te:

sudo nano howdy.te

Add the following content to it:

module howdy 1.0;

require {
type unconfined_t;
type v4l_device_t;
class chr_file { open read write ioctl };
}

# Allow camera access for Howdy
allow unconfined_t v4l_device_t:chr_file { open read write ioctl };

Compile the module:

checkmodule -M -m -o howdy.mod howdy.te
semodule_package -o howdy.pp -m howdy.mod

Install the SELinux module:

sudo semodule -i howdy.pp

:bullseye: Conclusion

Your Fedora 42 system is now configured to use facial recognition with Howdy. :rocket:

If you have any problems, check permissions and logs with:

journalctl -xe | grep howdy

Have fun with facial recognition! :blush:

there is an orphaned package on fedora 42:

NB does not work with gdm 48
pam_howdy[5355]: Failure, not possible to open camera at configured path
Only work in terminal

I just updated to fedora 42 with gdm 48 and working great here. I think I had to re-add code to gdm-password and to one of the other ones too. The edit for compare.py didn’t work as it previously did to remove the error in terminal, but just commenting out the lines from 92 to 96 did the trick.

Hi, I’ve just started using the KDE spin of Fedora 42. I was having problems logging into apps using Howdy (authentication failures), until I edited /etc/pam.d/polkit-1, so it became:

#%PAM-1.0
auth        sufficient     pam_howdy.so

auth       include      system-auth
account    include      system-auth
password   include      system-auth
session    include      system-auth

It wasn’t sufficient just to create a new polkit-1 file at /etc/pam.d/ with “auth sufficient pam_howdy.so”. I also had to add the contents of /usr/lib/pam.d/polkit-1 to it.