howdy icon indicating copy to clipboard operation
howdy copied to clipboard

Support Python 3.14

Open EvernightFedora opened this issue 4 months ago • 13 comments

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.

EvernightFedora avatar Aug 15 '25 04:08 EvernightFedora

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:

  1. Backup the original file:

    sudo cp /lib/security/howdy/pam.py /lib/security/howdy/pam.py.backup
    
  2. Update the ConfigParser import:

    sudo sed -i 's/import ConfigParser/import configparser as ConfigParser/' /lib/security/howdy/pam.py
    
  3. 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

praharshbhatt avatar Aug 23 '25 14:08 praharshbhatt

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.

rbasto1 avatar Sep 01 '25 19:09 rbasto1

I also would love for howdy to work on Fedora 43 and later seeing as how it's release is in October.

dexxfm avatar Sep 03 '25 03:09 dexxfm

Today, the Fedora 43 released, but there still no news to this issue.

RickyChau88 avatar Oct 29 '25 10:10 RickyChau88

Fedora 43 seems to not have python3dist(dlib) available which is a dependency for howdy-beta.

DragonflyRobotics avatar Oct 29 '25 22:10 DragonflyRobotics

Even if you install python3.13 to get past the python3dist(dlib) error, you get hit with nothing provides python(abi) = 3.13 next.

rumblpak avatar Oct 30 '25 13:10 rumblpak

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.

roundfox avatar Nov 11 '25 04:11 roundfox

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

gigi81 avatar Nov 16 '25 19:11 gigi81

I really hope it gets fixed soon, regretting the upgrade to 43 now

rexackermann avatar Dec 04 '25 04:12 rexackermann

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 ?

rexackermann avatar Dec 04 '25 06:12 rexackermann

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.

cachapa avatar Dec 04 '25 07:12 cachapa

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...

afalout avatar Dec 04 '25 23:12 afalout

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.

rexackermann avatar Dec 07 '25 13:12 rexackermann