Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1498823 - control-center assigns bad ppd for new printer
Summary: control-center assigns bad ppd for new printer
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: control-center
Version: 27
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Control Center Maintainer
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 1500497
TreeView+ depends on / blocked
 
Reported: 2017-10-05 10:47 UTC by Kamil Páral
Modified: 2017-10-11 15:33 UTC (History)
16 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1500497 (view as bug list)
Environment:
Last Closed: 2017-10-11 09:55:58 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
journal (43.47 KB, text/plain)
2017-10-05 10:47 UTC, Kamil Páral
no flags Details
rpm-qa (54.64 KB, text/plain)
2017-10-05 10:47 UTC, Kamil Páral
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1498091 0 unspecified CLOSED Cannot browse CUPS servers in GNOME Control Panel Printers 2022-05-16 11:32:56 UTC

Internal Links: 1498091

Description Kamil Páral 2017-10-05 10:47:02 UTC
Description of problem:
On a clean F27 installation, I added a printer using gnome control center (using cups.brq.redhat.com to list network printers) and then tried to print a text from gedit. The page is not printed, and in journal I see:

Oct 05 12:12:54 localhost.localdomain cupsd[888]: Starting renderer with command: \"/bin/cat - | sicgsfilter -MPS -NP  -A1 -utester -V\"Untitled Document 1\" -n1 \"
Oct 05 12:12:54 localhost.localdomain cupsd[888]: Starting process \"kid3\" (generation 1)
Oct 05 12:12:54 localhost.localdomain cupsd[888]: Starting process \"kid4\" (generation 2)
Oct 05 12:12:54 localhost.localdomain cupsd[888]: Starting process \"renderer\" (generation 2)
Oct 05 12:12:54 localhost.localdomain cupsd[888]: JCL: \033%-12345X@PJL
Oct 05 12:12:54 localhost.localdomain cupsd[888]: <job data>
Oct 05 12:12:54 localhost.localdomain cupsd[888]: /bin/bash: sicgsfilter: command not found
Oct 05 12:12:54 localhost.localdomain cupsd[888]: Closing renderer
Oct 05 12:12:54 localhost.localdomain cupsd[888]: renderer exited with status 127
Oct 05 12:12:54 localhost.localdomain cupsd[888]: kid3 exited with status 1
Oct 05 12:12:54 localhost.localdomain cupsd[888]: Process is dying with \"Error closing renderer
Oct 05 12:12:54 localhost.localdomain cupsd[888]: \", exit stat 1
Oct 05 12:12:54 localhost.localdomain cupsd[888]: Cleaning up...
Oct 05 12:12:54 localhost.localdomain cupsd[888]: Killing pdf-to-ps


I can't find any package that would contain "sicgsfilter" executable.


Version-Release number of selected component (if applicable):
cups-2.2.4-6.fc27.x86_64


How reproducible:
always

Comment 1 Kamil Páral 2017-10-05 10:47:28 UTC
Created attachment 1334745 [details]
journal

Comment 2 Kamil Páral 2017-10-05 10:47:34 UTC
Created attachment 1334746 [details]
rpm-qa

Comment 3 Zdenek Dohnal 2017-10-05 13:18:39 UTC
Hi Kamil,

seems like control-center assigns bad ppd file for printer - because I created printer with system-config-printer with same printer uri control-center creates and it prints ok. I reassign this issue to control-center guys, if they have more information about it.

Comment 4 Zdenek Dohnal 2017-10-05 14:04:09 UTC
I would like to mention that getting remote cups queues (like control-center does) is deprecated by upstream (all usage remote cups queues is slowly deprecating - upstream wants CUPS to communicate with class/printer directly) and for most situations is used cups-browsed now (it browses hostname set in its configuration file and creates local printers for all printers/remote cups queues, which it finds), so IMO it would be good that control-center reflects that. 
Like (just idea) user wants to see printers from host, so 'BrowsePoll server.example.com' will be automatically added into /etc/cups/cups-browsed.conf and cups-browsed service will be restarted, so user will choose 'printer1' to have "installed" (in this case, no ppd is needed - this is pro of it), so 'BrowseFilter name printer1' will be added and cups-browsed service will be restarted. This creates local printers from hostname and then it leaves only printer1 as local print queue.

Comment 6 Marek Kašík 2017-10-11 09:55:58 UTC
Hi,

(In reply to Zdenek Dohnal from comment #3)
> Hi Kamil,
> 
> seems like control-center assigns bad ppd file for printer - because I
> created printer with system-config-printer with same printer uri
> control-center creates and it prints ok. I reassign this issue to
> control-center guys, if they have more information about it.

this is because system-config-printer does not assign a PPD to the printer at all so you get a raw printer basically. That is also reason why there is so few options to configure when printing. Once you try to set anything on it in gnome-control-center, it gets the PPD from the configured server and set it there and then you won't be able to print again.

This whole issue is caused by the PPD set on the CUPS server from which you've added the printer. Looking at this there is the line with "sicgsfilter" which looks like a binary filter which we don't distribute.
cups-browsed "fixes" this by this change:

-*cupsFilter:       "application/vnd.cups-postscript 100 foomatic-rip"
-*cupsFilter:       "application/vnd.cups-pdf 0 foomatic-rip"
-*cupsFilter:       "application/vnd.apple-pdf 25 foomatic-rip"
+*cupsFilter: "*/* 0 -"

I've opened a ticket to modify the PPD this way on the server.


(In reply to Zdenek Dohnal from comment #4)
> I would like to mention that getting remote cups queues (like control-center
> does) is deprecated by upstream (all usage remote cups queues is slowly
> deprecating - upstream wants CUPS to communicate with class/printer
> directly) and for most situations is used cups-browsed now (it browses
> hostname set in its configuration file and creates local printers for all
> printers/remote cups queues, which it finds), so IMO it would be good that
> control-center reflects that. 

This would need a way to configure the /etc/cups/cups-browsed.conf from control-center. Also, we still need to support network CUPS servers which are quite old (1.4, sometimes even 1.2).
Where can I find more info about the deprecated feature of getting of remote cups queues?

> Like (just idea) user wants to see printers from host, so 'BrowsePoll
> server.example.com' will be automatically added into
> /etc/cups/cups-browsed.conf and cups-browsed service will be restarted, so
> user will choose 'printer1' to have "installed" (in this case, no ppd is
> needed - this is pro of it), so 'BrowseFilter name printer1' will be added
> and cups-browsed service will be restarted. This creates local printers from
> hostname and then it leaves only printer1 as local print queue.

What would be procedure for installing another printer? Remove the filter, wait for cups-browsed to find all the printers again and then choose the new one? How can I restart cups-browsed as a user? Do we have some tools for this already (or API)?

Anyway, this is not a bug but misconfiguration, I'm closing this bug.

Comment 7 Zdenek Dohnal 2017-10-11 15:00:50 UTC
(In reply to Marek Kašík from comment #6)
> This would need a way to configure the /etc/cups/cups-browsed.conf from
> control-center. Also, we still need to support network CUPS servers which
> are quite old (1.4, sometimes even 1.2).
cups-browsed still provides support for remote cups queues, but they are showed as one (because cups-browsed sorts it by dns-sd id, which remote cups queues on same server has same) by default for client. It can be set to previous settings by 'LocalQueueNamingRemoteCUPS RemoteName'.
> Where can I find more info about the deprecated feature of getting of remote
> cups queues?
> 
AFAIK there is no official statement from CUPS or cups-filters, but it was mentioned in several conversation, which I have with upstreams:

https://github.com/apple/cups/issues/5135 (IMO usage of non-local servers means usage of remote cups queues)
https://bugs.linuxfoundation.org/show_bug.cgi?id=1407

Upstream will be still support it for some time, but new features won't be created with remote cups queues in mind, so IMHO there will be more errors like cups issue 5135.

> What would be procedure for installing another printer? Remove the filter,
> wait for cups-browsed to find all the printers again and then choose the new
> one? How can I restart cups-browsed as a user? Do we have some tools for
> this already (or API)?
> 
That idea was just guess how it should work. Installing other printer would need to have two BrowseFilter directives, but it is not supported by upstream now. And I do not know how to restart cups-browsed as user and I do not know of any tools for it unfortunately - not even cups-filters provides API of cups-browsed.


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