AUR doesn't seem to have python3-pyqt4 there is only a python2 version

My HP printer says a python3-pyqt4 package is required but in AUR they say they only do a python2 for legacy devices. Any thoughts on what could be happening? The printer normally worked fine. I can delete it and add it as normal, but it immediately gives me a device communication error. This continues to happen even with firewalld stopped.

I also get an error saying

error: dbus          DBus - Message bus system                                    REQUIRED        -               1.16.2          MISSING    'DBUS may not be installed or not running'

warning: Failed to read /etc/cups/ppd/xx.ppd ppd file
PPD Description: 
Printer reason unknownr printer disabled since Fri 02 May 2025 07:22:33 PM PDT -
error: unable to open channel
error: Communication status: Failed

In what way?
Some other AUR package?
Which one exactly?

Giving a quick peak I might say python-anyqt is maybe an option.
But the AUR PKGBUILD should correctly list the needed dependencies.

When running the hplip diag one of the missing and required items is this:

error: python3-pyqt4 PyQt 4- Qt interface for Python (for Qt version 4.x) REQUIRED 4.0 - MISSING ‘python3-pyqt4 needs to be installed’

The hplip in the repos lists the following dependency:
python-pyqt5 (optional) - for running GUI and hp-toolbox
But no such entry for python3-pyqt4 (or python-pyqt4).

Maybe we can double check your hp packages;

pacman -Qs hp

This sorta smells like a partial upgrade or maybe outdated AUR packages or similar.

pacman -Qs hp

local/hplip 1:3.25.2-1
    Drivers for HP DeskJet, OfficeJet, Photosmart, Business Inkjet and some LaserJet
local/vulkan-headers 1:1.4.309.0-1 (vulkan-devel)
    Vulkan header files and API registry

by the way the python-anyqt package didnt solve it

my hplip version appears to be the latest, and I selected HP drivers when installing EOS

i just tried yay -S hplip and it didnt appear to solve it either

How was the printer added?

Was some other driver/software also installed?

(For example to print all foreign [AUR] packages pacman -Qm)

We think the system is up to date but this still feels like something is not so I would wonder if any are available. ex; sudo pacman -Syu

As to python-pyqt4 .. it certainly does not exist in the repos or the AUR, at least right now, though I can find some examples referencing it in the past. ex 2020; https://bbs.archlinux.org/viewtopic.php?id=258238 , 2018; https://archive.org/details/archlinux_pkg_python-pyqt4

I add it through the HP device manager, click find through Wi-Fi and it does find it automatically. This was how it was always added in the past and worked. I tried adding through CUPS as well and it also finds it, still communication error.

sudo pacman -Syu only finds a fuse3 package to add but I havent because it breaks another app that hasnt updated to that yet.

And yes, in AUR they say they canceled python3 and only keep python2 updated
" Python 3.13 removed PyObject_AsCharBuffer. Since there really is no point in maintaining the Python 3 side, python-pyqt4 has been dropped. Only python2-pyqt4 is kept for the legacy applications. (Also dropped the phonon-qt4 optional dependency."

That quote came from this link https://aur.archlinux.org/packages/pyqt4-common , although I’m not sure python2-pyqt4 would work. Should i try the python2 version? or perhaps the pyqt4-common version?

I really think what we want is to not need that pyqt4 at all.

Not sure if that means you need to hunt down some crusty old ppd files and/or just remove and re-add the printer.. but

hp-setup -i

Should re-run the hp setup, possibly updating the needed plugins beyond that deprecated dependency.

https://wiki.archlinux.org/title/CUPS/Troubleshooting#Out-of-date_plugin

hp-setup -i

--------------------------------
| SELECT CONNECTION (I/O) TYPE |
--------------------------------

  Num       Connection  Description                                               
            Type                                                                  
  --------  ----------  ----------------------------------------------------------
  0*        usb         Universal Serial Bus (USB)                                
  1         net         Network/Ethernet/Wireless (direct connection or JetDirect)
  2         par         Parallel Port (LPT:)                                      

Enter number 0...2 for connection type (q=quit, enter=usb*) ? 1

Using connection type: net

error: No device selected/specified or that supports this functionality.

Same error for usb option 0 and option 2 parallel port

I’ve tried removing and adding the printer several times today =\

Net does try loading for a few seconds before the error, the other 2 give me the immediate error

Should i try this with the printer removed?

Is cups service or socket working?

systemctl status cups.service
systemctl status cups.socket

(The socket is the preferred way and should normally start the service as needed. But there are some troubleshooitng entries that do call for starting the service under certain circumstances.)

systemctl status cups.service
● cups.service - CUPS Scheduler
     Loaded: loaded (/usr/lib/systemd/system/cups.service; enabled; preset: disabled)
     Active: active (running) since Fri 2025-05-02 17:37:12 PDT; 3h 13min ago
 Invocation: db470957b35c4b9fa6e77634941f49c3
TriggeredBy: ● cups.path
             ● cups.socket
       Docs: man:cupsd(8)
   Main PID: 1149 (cupsd)
     Status: "Scheduler is running..."
      Tasks: 2 (limit: 115224)
     Memory: 178.7M (peak: 333.5M)
        CPU: 20.866s
     CGroup: /system.slice/system-cups.slice/cups.service
             ├─ 1149 /usr/bin/cupsd -l
             └─24342 /usr/lib/cups/notifier/dbus dbus://

May 02 20:20:01 7750 hp[48911]: io/hpmud/jd.c 93: unable to read device-id
May 02 20:20:01 7750 hp[48911]: prnt/backend/hp.c 824: ERROR: open device failed stat=12: hp:/net/DeskJet_410>
May 02 20:21:27 7750 hp[52956]: io/hpmud/jd.c 93: unable to read device-id
May 02 20:21:27 7750 hp[52956]: prnt/backend/hp.c 824: ERROR: open device failed stat=12: hp:/net/DeskJet_410>
May 02 20:21:59 7750 hp[53025]: io/hpmud/jd.c 93: unable to read device-id
May 02 20:21:59 7750 hp[53025]: prnt/backend/hp.c 824: ERROR: open device failed stat=12: hp:/net/DeskJet_410>
May 02 20:22:13 7750 hp[53102]: io/hpmud/jd.c 93: unable to read device-id
May 02 20:22:13 7750 hp[53102]: prnt/backend/hp.c 824: ERROR: open device failed stat=12: hp:/net/DeskJet_410>
May 02 20:23:16 7750 hp[53357]: io/hpmud/jd.c 93: unable to read device-id
May 02 20:23:16 7750 hp[53357]: prnt/backend/hp.c 824: ERROR: open device failed stat=12: hp:/net/DeskJet_410>
lines 1-26/26 (END)

ystemctl status cups.socket
● cups.socket - CUPS Scheduler
     Loaded: loaded (/usr/lib/systemd/system/cups.socket; enabled; preset: disabled)
     Active: active (running) since Fri 2025-05-02 17:37:11 PDT; 3h 15min ago
 Invocation: 00729cf7f12d474fbf99602dc4da59af
   Triggers: ● cups.service
     Listen: /run/cups/cups.sock (Stream)
     CGroup: /system.slice/cups.socket

May 02 17:37:11  systemd[1]: Listening on CUPS Scheduler.

wonder why both say enabled, but preset is disabled?

Ok - we normally dont want both enabled.

https://wiki.archlinux.org/title/CUPS#Installation

But otherwise I’m not sure I am much more help.

The wiki does seem to contain some notes on slightly crazy dances to re-download printer drivers.
ex;

https://wiki.archlinux.org/title/CUPS/Printer-specific_problems#HPLIP

But silly as it is .. I am sorta thinking this dance, or something like it, might be what we are really after.

ok i disabled cups.socket and enabled and started cups.service and that didn’t solve it.

i removed those 3 packages, and readded hplip. it installed hplip and foomatic-db-engine but not foomatic-db.

that did not appear to solve it either, even after i removed and re-added the printer =\

what would you do in this situation?? diag errors say this:

error: dbus          DBus - Message bus system                                    
REQUIRED        -               1.16.2          
MISSING    'DBUS may not be installed or not running'

rror: python3-pyqt4 PyQt 4- Qt interface for Python (for Qt version 4.x)         
REQUIRED        4.0             -               
MISSING    'python3-pyqt4 needs to be installed'

Type: Printer
Device URI: hp:/net/DeskJet_4100_series?ip=192.168.1.54
PPD: /etc/cups/ppd/DeskJet_4100.ppd
warning: Failed to read /etc/cups/ppd/DeskJet_4100.ppd ppd file
PPD Description: 
Printer status: printer DeskJet_4100 is idle.  enabled since Fri 02 May 2025 09:04:19 PM PDT
error: unable to open channel
error: Communication status: Failed

I guess we might wonder about the path and permissions?

ls -lA /etc/cups/ppd/

And then your own users groups;

groups

(As, at least on my system, the ppd should be owned by root user and cups group .. my user is part of lp group which implies cups)

ls -lA /etc/cups/ppd/
total 32
-rw-r----- 1 root cups 14297 May  2 21:04 DeskJet_4100.ppd
-rw-r----- 1 root cups 14297 May  2 21:04 DeskJet_4100.ppd.O

 groups
admin sys rfkill wheel

oh?

One last thing to check and then I think we might add you to a respective group.

cat /etc/group

Or more selectively

grep cups /etc/group
cat /etc/group

root:x:0:root
sys:x:3:bin,admin
mem:x:8:
ftp:x:11:
mail:x:12:
log:x:19:
smmsp:x:25:
proc:x:26:
games:x:50:
lock:x:54:
network:x:90:
floppy:x:94:
scanner:x:96:
power:x:98:
nobody:x:65534:
adm:x:999:daemon
wheel:x:998:admin
utmp:x:997:
audio:x:996:
disk:x:995:
input:x:994:
kmem:x:993:
kvm:x:992:
lp:x:991:cups
optical:x:990:
render:x:989:
sgx:x:988:
storage:x:987:
tty:x:5:
uucp:x:986:
video:x:985:
users:x:984:
groups:x:983:
systemd-journal:x:982:
rfkill:x:981:admin
bin:x:1:daemon
daemon:x:2:bin
http:x:33:
dbus:x:81:
systemd-coredump:x:980:
systemd-network:x:979:
systemd-oom:x:978:
systemd-journal-remote:x:977:
systemd-resolve:x:976:
systemd-timesync:x:975:
tss:x:974:
uuidd:x:68:
alpm:x:973:
_talkd:x:972:
i2c:x:971:
ntp:x:87:
locate:x:21:
avahi:x:970:
named:x:40:
cups:x:209:
dnsmasq:x:969:
fwupd:x:968:
geoclue:x:967:
git:x:966:
nm-openconnect:x:965:
nm-openvpn:x:964:
openvpn:x:963:
passim:x:962:
polkitd:x:102:
rpc:x:32:
rpcuser:x:34:
rtkit:x:133:
saned:x:961:
sddm:x:960:
admin:x:1000:

grep cups /etc/group
lp:x:991:cups
cups:x:209:

Looks like we should add you to one of these then. Considering lp purpose is

and also implies cups group so lets go with that.

sudo gpasswd -a $USER lp

where $USER is replaced with the correct username (admin?).

If you are logged in as that user currently then you will have to log out for the changes to take effect.

After loggin back in .. lets see what we can do with that printer.
(We should, for example, no longer see Failed to read...*.ppd)

[admin@7750 ~]$ sudo gpasswd -a $admin lp
[sudo] password for admin: 
gpasswd: user 'lp' does not exist

Careful there.
I used $USER as $xxx is used for variables. Which expand to their respective definitions.
(no $ need be included in the actual command)

If the username is admin then the command would be

sudo gpasswd -a admin lp