Bug 2117478 - Okular does not show all print options for CUPS temporary queues and takes long time to print
Summary: Okular does not show all print options for CUPS temporary queues and takes lo...
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: okular
Version: 36
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Than Ngo
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-08-11 06:24 UTC by Zdenek Dohnal
Modified: 2023-05-25 19:05 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2023-05-25 19:05:02 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Zdenek Dohnal 2022-08-11 06:24:28 UTC
Description of problem:
Okular is not working with CUPS temporary queues and enforces usage of permanent queues or cups-browsed, even in scenarios where is not necessary.

Version-Release number of selected component (if applicable):
okular-22.04.1-1.fc36.x86_64

How reproducible:
Always

Steps to Reproduce:

Prereq: stop and disable cups-browsed.service and remove any permanent queues related to the testing printer via 'lpadmin -x <name>'

With real printer:
1. have a printer capable of driverless printing (network printer capable of Airprint/IPP Everywhere/Mopria/Wifi direct, USB printer with IPP-over-USB or old printer shared by printer applications like ippeveprinter/lprint/ps-printer-app/hplip-printer-app etc. - *-printer-app projects are currently only on SNAP)
2. enable IPP port on the printer if possible
3. start cups and avahi-daemon

If there is no printer available, two Fedora virtual machines in the same network will do:

A. Server
1. install and start cups and avahi-daemon
2. $ lpadmin -p test -v socket://192.168.1.25:9100 -m drv:///sample.drv/generic.ppd -E
3. $ cupsctl --remote-any
4. $ sudo firewall-cmd --permanent --add-service=ipp
5. $ sudo firewall-cmd --reload

B. Client
1. install and start cups and avahi-daemon

Actual results:
$ lpstat -e
<temp_queue>

$ lpstat -a
<empty>

In okular:
only 'Print to File' printer is available

Expected results:
$ lpstat -e
<temp_queue>

$ lpstat -a
<empty>

In okular:
the temporary queue is seen as well

Additional info:
With CUPS 3.0 which release is planned for next or year after, using the current cupsGetDests2() (it will be renamed to cupsGetDests() as well during CUPS 3.0 transition to cleanup the API) will be the way how to get all available destinations for printing - it would be great if okular or its library which implements okular's print dialog migrated their implementation to cupsGetDests2().

Comment 1 Zdenek Dohnal 2022-09-02 11:34:40 UTC
I've tested okular on rawhide - temporary queue is seen there, but print options related to the printer are missing (no duplex etc.), and if the job is sent, okular freezes (GNOME generates 'Application stopped responding' window) and if I click on 'Wait', the job is sent after some time, but only with default options - f.e. duplex or color are not available

According cupsd logs, okular sends only Get-Printers, Get-Default and Get-Printer-Attributes requests (I'm curious why it sees the temp queue then...), Get-Printer-Attributes requests fail because it wants to access the printer via printer-uri (uri how the printer is saved in CUPS - ipp://localhost:631/printers/<print-queue-name>), which is not set for temporary queues by design - and after some time sends Create-Local-Printer, which makes it available for Get-Printer-Attributes.

I would propose to use CUPS destinations API instead of IPP requests - if you ask for destinations via cupsGetDests2(), you will get both types - permanent and temporary. Further requests can be done via cupsGetNamedDest() or cupsCopyDestInfo(). In case you would like combine dest API and IPP requests, you can get the destionation and then use printer-uri-supported if available, otherwise use device-uri for Get-Printer-Attributes and the follow-up operations.

Comment 2 Zdenek Dohnal 2022-09-02 11:55:56 UTC
Updated the summary based on the current situation in rawhide.

Comment 3 Ben Cotton 2023-04-25 17:45:07 UTC
This message is a reminder that Fedora Linux 36 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora Linux 36 on 2023-05-16.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
'version' of '36'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, change the 'version' 
to a later Fedora Linux version. Note that the version field may be hidden.
Click the "Show advanced fields" button if you do not see it.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora Linux 36 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora Linux, you are encouraged to change the 'version' to a later version
prior to this bug being closed.

Comment 4 Ludek Smid 2023-05-25 19:05:02 UTC
Fedora Linux 36 entered end-of-life (EOL) status on 2023-05-16.

Fedora Linux 36 is no longer maintained, which means that it
will not receive any further security or bug fix updates. As a result we
are closing this bug.

If you can reproduce this bug against a currently maintained version of Fedora Linux
please feel free to reopen this bug against that version. Note that the version
field may be hidden. Click the "Show advanced fields" button if you do not see
the version field.

If you are unable to reopen this bug, please file a new report against an
active release.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.