Bug 542857

Summary: Incorrect SNMP detection
Product: [Fedora] Fedora Reporter: Steevithak <steevithak>
Component: cupsAssignee: Tim Waugh <twaugh>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 11CC: jpopelka, twaugh
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 1.4.2-20.fc11 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-12-27 20:32:22 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
print dialog 1 of 4
none
print dialog 2 of 4
none
print dialog 3 of 4
none
print dialog 4 of 4
none
CUPS_DEBUG_LEVEL=2 /usr/lib/cups/backend/snmp 192.168.1.99 2>&1 | tee output.txt
none
cups 1.4.2-11 snmp backend output with firewall disabled
none
cups 1.4.2-11 snmp backend output with firewall enabled none

Description Steevithak 2009-11-30 23:56:46 UTC
Description of problem: Installed Fedora 12, wanted to add our network printer. Selected System -> Administration -> Printing -> New and navigated the dialog. Under Lexmark, only a handful of printers are listed and our Lexmark E360dn is not one of them. 

According to the OpenPrinting database, the Lexmark E360dn is supported under GNU/Linux and is listed as working "perfectly" so it seems like I should be able to install it. 

I tried using the other available Lexmark drivers as a work around and found one for a Lexmark Optra E220 that works tolerably well. But it would be nice if the E360dn driver could be added.

Version-Release number of selected component (if applicable):
cups-1.4.1-13.fc12.x86_64
foomatic.x86_64 4.0.3-1.fc12

How reproducible:
Always

Steps to Reproduce:
1. System -> Administration -> Printing -> New
2. Select Lexmark drivers
3. Look for E360dn
  
Actual results:
There is no Lexmark E360dn printer driver

Expected results:
Seeing a Lexmark E360dn printer driver



Additional info:
Here's the info claiming the printer should be support under Linux:
http://www.linuxprinting.org/test/show_printer.cgi?recnum=Lexmark-E360dn

I'm not sure if this is problem in CUPS or the foomatic database or what.

Comment 1 Tim Waugh 2009-12-01 13:14:21 UTC
Please try installing the 'foomatic-db-ppds' package.

Out of interest, what does 'rpm -q system-config-printer' say?  There was an update released when Fedora 12 came out to get it to prompt to install that package.

Comment 2 Steevithak 2009-12-01 16:52:08 UTC
yum list foomatic-db-ppds
Installed Packages
foomatic-db-ppds.noarch               4.0-6.20090819.fc12                @fedora

rpm -q system-config-printer
system-config-printer-1.1.13-10.fc12.x86_64

It actually did prompt me to install an update to the foomatic package during the printer set up. But it still doesn't offer a matching driver for the E360dn printer after foomatic updated. Do I need to manually do something to get it to include the foomatic drivers in the add new printer dialog?

What's frustrating is the add new printer dialog gives me a box to enter an IP and then it checks to find out what sort of printer is there. It correctly identifies the E360dn but then in the next step dumps me into a generic printer driver list where I have to search for Lexmark drivers myself (and, as mentioned above, there is no E360dn driver available). It seems like if it knows I've got a Lexmark printer, it should just pick the driver itself, or maybe I'm missing something?

Would a screen shot of the printer selection dialogs I'm seeing help?

Comment 3 Tim Waugh 2009-12-01 17:04:36 UTC
(In reply to comment #2)
> Do I need to manually do something to get it to
> include the foomatic drivers in the add new printer dialog?

Unfortunately you have to restart system-config-printer for now. :-(

> What's frustrating is the add new printer dialog gives me a box to enter an IP
> and then it checks to find out what sort of printer is there. It correctly
> identifies the E360dn but then in the next step dumps me into a generic printer
> driver list where I have to search for Lexmark drivers myself (and, as
> mentioned above, there is no E360dn driver available). It seems like if it
> knows I've got a Lexmark printer, it should just pick the driver itself, or
> maybe I'm missing something?
> 
> Would a screen shot of the printer selection dialogs I'm seeing help?  

Yes please.

Comment 4 Steevithak 2009-12-01 18:59:48 UTC
Created attachment 375159 [details]
print dialog 1 of 4

Comment 5 Steevithak 2009-12-01 19:00:17 UTC
Created attachment 375160 [details]
print dialog 2 of 4

Comment 6 Steevithak 2009-12-01 19:00:47 UTC
Created attachment 375161 [details]
print dialog 3 of 4

Comment 7 Steevithak 2009-12-01 19:01:13 UTC
Created attachment 375162 [details]
print dialog 4 of 4

Comment 8 Steevithak 2009-12-01 19:06:18 UTC
I've uploaded four images of the process I went through trying to install a driver for my Lexmark E360dn printer. Also, I wrote a much more detail step-by-step of what I did that goes along with the images. This should be enough info to reproduce my results. Let me know what else is needed.

1. From menu: System -> Administration -> Printing

2. In "Printer Configuration" dialog click New

3. Enter root password

4. In "New Printer" dialog: Network Printer -> Find Network Printer

5. In "Host:" field type printer IP address and click "Find"

6. Devices pane now includes a highlighted, very long line that says: "MANUFACTURER:Lexmark International;COMMAND SET:PCL 6 Emulation, PostScript Level 3 Emulation, NPAP, PJL; MODEL:Lexmark E360dn;CLS:PRINTER;DES:Lexmark E360dn;CID:Lexmark_InternationaD536, Lexmark_Internationa5197,Lexmark_InternationaD1CD,Lexmark_InternationaCDD2, Lexmark_Internationa5C93,COMMENT:ECP1.0, LV_043D, LP_0125, LF_0056;"

7. Also now in the Devices pane is a new (non-highlighted) line that shows the IP address I entered in step 5.

[see image 1 to see what I'm seeing at this point]

8. The "Enter device URI" now shows "Lexmark Lexmark E360dn"

9. The "Forward" button is still greyed out at this point, but there are no instructions on what the next step is, so it's unclear what more the user is expected to do.

10. Making a guess as to what I'm supposed to do next, I single click the IP address that has shown up in the devices pane. This apparently works as the right side of the dialog now changes to say "Location of the LDP network Printer" and lists the correct IP. The "Forward" button is now highlighted, allowing me to proceed.

[see image 2 to see what I'm seeing at this point]

11. Click the "Forward" button. I now get a generic "Choose Driver" dialog that lists all possible printer drivers. The Lexmark E360dn info has apparently been lost or is being ignored.

[see image 3 to see what I'm seeing at this point]

12. Scroll down to Lexmark and click "Forward". At this point I'm asked to choose an Lexmark driver from a list of only 12 options, none of which are the Lexmark E360dn.

[see image 4 to see what I'm seeing at this point]

13. Pick a random Lexmark printer and hope for the best

14. Enter root password again

Comment 9 Steevithak 2009-12-01 19:22:49 UTC
>> Do I need to manually do something to get it to
>> include the foomatic drivers in the add new printer dialog?
>
> Unfortunately you have to restart system-config-printer for now. :-(

Oops, I only just noticed this - how do restart system-config-printer?

I tried "service system-config-printer restart" but got "system-config-printer: unrecognized service". 

I can't find any reference to "system-config-printer" on any of the system menus. 

I do actually have it though:

rpm -q system-config-printer
system-config-printer-1.1.13-10.fc12.x86_64

I tried "man system-config-printer" but couldn't find a restart option listed.

I tried "system-config-printer --help" but still nothing about how to restart it. 

Finally, out of desperations, I tried:
ps ax | grep system
3074 ?        S      0:00 python /usr/share/system-config-printer/applet.py

So I did a kill -HUP 3074

However, this appears to have killed the process completely rather than restarting it. So I'm probably screwed.

Any suggestions?

I'm guessing that a) the average user won't know that they need to do this and b) if I can't figure out HOW to do it, the average user won't be able to either! :(

Comment 10 Tim Waugh 2009-12-02 12:10:58 UTC
Thanks for the screenshots, they have described the problem quite well.  Actually there are three problems that I can see:

1. The first successful protocol probe (SNMP) has confused some of the data fields.  I would very much like to see the output of running this command from a terminal as a non-root user:

/usr/lib/cups/backend/snmp 192.168.1.99

2. When more than one protocol probe is successful they ought to pool their information instead of reporting it separately per-protocol.  In other words, when the LPD probe finds a queue (LPD cannot detect make and model), if a previous SNMP probe has discovered the make and model then it ought to use that information.

3. Having taken a closer look, the package you need to install is 'foomatic'.  See https://fedoraproject.org/wiki/Common_F12_bugs#foomatic-not-installed.  I am working on code to automatically install printer driver packages on demand (bug #456906).

(All I meant by 'restart system-config-printer' was close the window and start it again from System->Administration->Printing.)

Comment 11 Steevithak 2009-12-02 16:32:40 UTC
1. Sure, here ya go:

/usr/lib/cups/backend/snmp 192.168.1.99
network  "Lexmark  Lexmark E360dn" "Lexmark E360dn 72M1KD3 LA.LBM.P067j" "MANUFACTURER:Lexmark International;COMMAND SET:PCL 6 Emulation, PostScript Level 3 Emulation, NPAP, PJL;MODEL:Lexmark E360dn;CLS:PRINTER;DES:Lexmark E360dn;CID:Lexmark_InternationaD536, Lexmark_Internationa5197, Lexmark_InternationaD1CD, Lexmark_InternationaCDD2, Lexmark_Internationa5C93;COMMENT:ECP1.0, LV_043D, LP_0125, LF_0056;" ""

2. That makes sense I guess. I think you're saying the software probes two different ways and while the SNMP probe discovered the printer correctly, a second probe couldn't figure it out and the bad probe got used to select the driver. So that means this bug is really more related to the system-config-printer program itself than CUPS, right?

3. yum list foomatic*
Installed Packages
foomatic-db-filesystem.noarch            4.0-6.20090819.fc12             @fedora
foomatic-db-ppds.noarch                  4.0-6.20090819.fc12             @fedora
Available Packages
foomatic.x86_64                          4.0.3-1.fc12                    fedora 
foomatic-db.noarch                       4.0-6.20090819.fc12             fedora 

Looks like you're right, foomatic is not installed. I would have thought foomatic should be a dependency for the foomatic-db-ppds that got installed automatically? I installed it and repeated the process in comment 9 to add a printer. Same results with one exception, now when I manually select Lexmark I get a whole lot more options, which is very good. Sadly, there's still no E360dn but there are some similar models such as the E350d and E350dn which should work. 

Should I file a secondary bug against foomatic asking for the E360dn to be added to the database?

4. Haha, sorry, my bad. I've run into that confusion before when filing bugs. The end user often never sees the program names or has any real idea of how a package called system-config-printer is connected to a series of menu options like System -> Admin -> Printing. 

Thanks for your help sorting this out! :)

Comment 12 Tim Waugh 2009-12-02 17:09:02 UTC
(In reply to comment #11)
> 1. Sure, here ya go:
> 
> /usr/lib/cups/backend/snmp 192.168.1.99
> network  "Lexmark  Lexmark E360dn" "Lexmark E360dn 72M1KD3 LA.LBM.P067j"
> "MANUFACTURER:Lexmark International;COMMAND SET:PCL 6 Emulation, PostScript
> Level 3 Emulation, NPAP, PJL;MODEL:Lexmark E360dn;CLS:PRINTER;DES:Lexmark
> E360dn;CID:Lexmark_InternationaD536, Lexmark_Internationa5197,
> Lexmark_InternationaD1CD, Lexmark_InternationaCDD2,
> Lexmark_Internationa5C93;COMMENT:ECP1.0, LV_043D, LP_0125, LF_0056;" ""

Oh, that's really strange.  The 'device URI' field is entirely missing.  Can you please run this command and attach the output.txt file?:

CUPS_DEBUG_LEVEL=2 /usr/lib/cups/backend/snmp 192.168.1.99 2>&1 | tee output.txt

> 2. That makes sense I guess. I think you're saying the software probes two
> different ways and while the SNMP probe discovered the printer correctly, a
> second probe couldn't figure it out and the bad probe got used to select the
> driver. So that means this bug is really more related to the
> system-config-printer program itself than CUPS, right?

Yes, exactly.  Well, the main problem you're seeing is 1, above, and that seems to be a cups problem.  The next most serious problem you're seeing is this system-config-printer problem, but I'm wondering now if it's caused by the original cups problem.  CUPS doesn't report the device ID in the correct field, so system-config-printer never thinks it's *seen* a device ID.

There is code in system-config-printer to cache information about manufacturer and model between protocol probes, so it ought to work already once CUPS is reporting the device correctly.

> Looks like you're right, foomatic is not installed. I would have thought
> foomatic should be a dependency for the foomatic-db-ppds that got installed
> automatically?

Actually no.  The foomatic-db-ppds package contains just plain PPDs, but foomatic itself contains XML files and scripts to glue together the old ghostscript drivers to the newer CUPS architecture.  Conceptually, there is no difference between foomatic and the various other random printer driver packages; whereas foomatic-db-ppds is more like an extension to the collection of PPDs already shipped with CUPS.

> I installed it and repeated the process in comment 9 to add a
> printer. Same results with one exception, now when I manually select Lexmark I
> get a whole lot more options, which is very good. Sadly, there's still no
> E360dn but there are some similar models such as the E350d and E350dn which
> should work. 

Oh, this is why I was confused about which package was required -- actually it's the updates-testing version of foomatic-db-ppds that contains it.  I've seen your other bug report; thanks.  I'll add comments there about that.

Comment 13 Steevithak 2009-12-02 17:33:05 UTC
Created attachment 375507 [details]
CUPS_DEBUG_LEVEL=2 /usr/lib/cups/backend/snmp 192.168.1.99 2>&1 | tee output.txt

Results attached for: CUPS_DEBUG_LEVEL=2 /usr/lib/cups/backend/snmp 192.168.1.99 2>&1 | tee output.txt

Comment 14 Tim Waugh 2009-12-03 10:18:57 UTC
Would you be able to try out a possible fix?  Here is the package build to try:

http://koji.fedoraproject.org/koji/buildinfo?buildID=144212

Comment 15 Michael Ploujnikov 2009-12-03 20:09:26 UTC
Created attachment 375896 [details]
cups 1.4.2-11 snmp backend output with firewall disabled

Comment 16 Michael Ploujnikov 2009-12-03 20:11:20 UTC
Created attachment 375897 [details]
cups 1.4.2-11 snmp backend output with firewall enabled

I'm attaching my results with cups 1.4.2-11 as requested in bug #538675 comment #10.

Comment 17 Tim Waugh 2009-12-03 23:04:02 UTC
(In reply to comment #15)
> Created an attachment (id=375896) [details]
> cups 1.4.2-11 snmp backend output with firewall disabled  

Brilliant, this particular bug looks fixed then.  Thanks!

Comment 18 Tim Waugh 2009-12-03 23:08:38 UTC
Also affects Fedora 11.

Comment 19 Fedora Update System 2009-12-08 14:36:54 UTC
cups-1.4.2-14.fc11 has been submitted as an update for Fedora 11.
http://admin.fedoraproject.org/updates/cups-1.4.2-14.fc11

Comment 20 Fedora Update System 2009-12-08 14:39:11 UTC
cups-1.4.2-14.fc12 has been submitted as an update for Fedora 12.
http://admin.fedoraproject.org/updates/cups-1.4.2-14.fc12

Comment 21 Fedora Update System 2009-12-10 04:06:07 UTC
cups-1.4.2-14.fc11 has been pushed to the Fedora 11 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update cups'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F11/FEDORA-2009-12942

Comment 22 Fedora Update System 2009-12-10 04:15:31 UTC
cups-1.4.2-14.fc12 has been pushed to the Fedora 12 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update cups'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F12/FEDORA-2009-12971

Comment 23 Fedora Update System 2009-12-11 18:35:22 UTC
cups-1.4.2-16.fc11 has been pushed to the Fedora 11 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update cups'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F11/FEDORA-2009-12942

Comment 24 Fedora Update System 2009-12-11 18:37:47 UTC
cups-1.4.2-16.fc12 has been pushed to the Fedora 12 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update cups'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F12/FEDORA-2009-12971

Comment 25 Fedora Update System 2009-12-27 20:31:30 UTC
cups-1.4.2-20.fc12 has been pushed to the Fedora 12 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 26 Fedora Update System 2010-01-04 21:17:38 UTC
cups-1.4.2-20.fc11 has been pushed to the Fedora 11 stable repository.  If problems still persist, please make note of it in this bug report.