Support Python 3.14
Hello!Due to Fedora 43 Pre-release updated to python 3.14,but howdy still use python 3.13.Please howdy updated to python 3.14 support.
Hi @March7thFedora!
I recently encountered a similar issue with Howdy on Ubuntu, though mine was specifically a Python 2 vs Python 3 compatibility problem. The core issue seems to be that older versions of Howdy (like 2.6.1) have some Python version compatibility issues.
Here's what worked for me, which might help you too:
Quick Fix for Python 3 Compatibility
The main issue I found was in /lib/security/howdy/pam.py where it was using the old Python 2 import syntax. You can fix this by:
-
Backup the original file:
sudo cp /lib/security/howdy/pam.py /lib/security/howdy/pam.py.backup -
Update the ConfigParser import:
sudo sed -i 's/import ConfigParser/import configparser as ConfigParser/' /lib/security/howdy/pam.py -
Test the fix:
sudo howdy test
What this fixes:
- Python 2 used
ConfigParser(uppercase) - Python 3+ uses
configparser(lowercase) - The alias maintains compatibility with existing code
I can confirm that import ConfigParser fails on Ubuntu 24.04. The comment right above that line, that says "pam-python is running python 2, so we use the old module here" is not valid, at least for Ubuntu 24.04.
I also would love for howdy to work on Fedora 43 and later seeing as how it's release is in October.
Today, the Fedora 43 released, but there still no news to this issue.
Fedora 43 seems to not have python3dist(dlib) available which is a dependency for howdy-beta.
Even if you install python3.13 to get past the python3dist(dlib) error, you get hit with nothing provides python(abi) = 3.13 next.
If it is any consolation while we wait for an update to either howdy-beta or python3dist(dlib), I was able to get howdy working on Fedora 43 by jumping through some hoops.
Following the steps in Issue 1004 as a guide, i downloaded the rpm and dependencies using the Fedora 43 Howdy Beta packages where applicable.
For the python dependencies:
python3-pyv4l2 can be downloaded using dnf install libv4l-devel (see the pypi description page).
python3-keyboard and python3-elevate need to be downloaded via pip, at least until they get repacked for the python abi = 3.14 and distributed through dnf/rpm.
lastly, i needed to use rpmrebuild to comment out the 3 above dependencies as well as the python3dist(dlib) dependency in the howdy.spec, so i could manually install the howdy-3.0.0-7 rpm package without the dependency warnings (since we installed them manually through pip in the step above).
Note: I would not recommend these steps. We should wait for the proper update channels (or assist in maintaining dependencies). Howdy integrates with system security by design, so patching and maintainability is of concern. Not using the copr repo and messing with rpm dependencies is not best practice and can lead package versioning issues, incompatibilities, and unintended side-effects, especially when combined with a distro major version update. I (vaguely) document the steps here just in case you are like me and will do it anyway.
Adding some info and links I found about dlib and fedora 43.
The dlib and python-dlib packages are not built right now for Fedora 43: https://src.fedoraproject.org/rpms/dlib
The issue was a build error here: https://bugzilla.redhat.com/show_bug.cgi?id=2366197
The issue was fixed in the dlib upstream project: https://github.com/davisking/dlib/pull/3098
I guess it could be added as a patch to the packit scripts.
Just adding the info. Seems to me more like a fedora packaging issue more than a howdy problem
I really hope it gets fixed soon, regretting the upgrade to 43 now
Adding some info and links I found about dlib and fedora 43.
The dlib and python-dlib packages are not built right now for Fedora 43: https://src.fedoraproject.org/rpms/dlib
The issue was a build error here: https://bugzilla.redhat.com/show_bug.cgi?id=2366197
The issue was fixed in the dlib upstream project: davisking/dlib#3098
I guess it could be added as a patch to the packit scripts.
Just adding the info. Seems to me more like a fedora packaging issue more than a howdy problem
Has someone asked fedora devs to fix the packaging issue ?
All tickets related to dlib seem to have been closed for lack of maintainer: https://bugzilla.redhat.com/buglist.cgi?component=dlib&list_id=13635091&product=Fedora
There's a link at the bottom to unretire but it's timing out for me. Maybe someone more familiar with the Fedora processes can either create a request, or a new ticket.
For FC43 this repo worked for me OOTB: https://copr.fedorainfracloud.org/coprs/starfish/howdy-beta
Im at RH so I can talk to people internally, but not sure resurrecting dlib is a good idea... Its abandoned, it was not very good to start with, today its very much out of date, and there are far more capable alternatives available - both functionally and as viable projects
Replacements to consider: OpenCV's FaceDetectorYN (based on YuNet IIRC) or DeepFace perhaps?
cv2.FaceDetectorYN is "supposed" to be the "standard" modern "lightweight" replacement for dlib's frontal face detector. I've also seen several other libraries suggested recently in one of the tickets here...
A quick look suggests compare.py would be the obvious place to start
NB. I'm not particularly familiar with this field so above might be nonsense...
For FC43 this repo worked for me OOTB: https://copr.fedorainfracloud.org/coprs/starfish/howdy-beta
Im at RH so I can talk to people internally, but not sure resurrecting dlib is a good idea... Its abandoned, it was not very good to start with, today its very much out of date, and there are far more capable alternatives available - both functionally and as viable projects
Replacements to consider: OpenCV's FaceDetectorYN (based on YuNet IIRC) or DeepFace perhaps?
cv2.FaceDetectorYN is "supposed" to be the "standard" modern "lightweight" replacement for dlib's frontal face detector. I've also seen several other libraries suggested recently in one of the tickets here...
A quick look suggests compare.py would be the obvious place to start
NB. I'm not particularly familiar with this field so above might be nonsense...
I managed to get it installed, though I had to set up many thing manually due to some pytho3.13 abi not found thing
I tried making a project for fun with AI, which seems to work upto some degree, linux-hello
It's untested at the pam level. It needs to be tested in a vm first before installing it on a production machine. But it can recognize face and can be used in bash scripts, that much I tested.