Bug 900993

Summary: Cups 1.5 too old, can't see printer via DNS-SD
Product: [openSUSE] openSUSE Tumbleweed Reporter: Forgotten User dH2Y-YXEfD <forgotten_dH2Y-YXEfD>
Component: PrintingAssignee: Johannes Meixner <jsmeix>
Status: RESOLVED FIXED QA Contact: Johannes Meixner <jsmeix>
Severity: Enhancement    
Priority: P5 - None CC: mpluskal, sb56637
Version: 201410*   
Target Milestone: ---   
Hardware: All   
OS: SUSE Other   
URL: http://cups.org/software.php
Whiteboard:
Found By: Community User Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: http://software.opensuse.org/package/cups

Description Forgotten User dH2Y-YXEfD 2014-10-13 18:54:37 UTC
Hi,

I've been fighting for hours with openSUSE Factory, trying to install a Brother MFC-J625DW wireless printer via Avahi and DNS-SD. The printer was visible via Avahi's discovery tool, but the CUPS system absolutely refused to see it. This printer normally works perfectly on my Arch Linux installation, and I even tried copying over the configuration file from Arch to openSUSE, but to no avail. I finally realized that Arch uses CUPS 1.7 and openSUSE Factory uses 1.5. I found this repo for CUPS 1.7:
https://build.opensuse.org/package/show?project=home%3Ajsmeix&package=cups175
Basically, it worked perfectly.

Is there a reason why CUPS hasn't been upgraded for openSUSE?

And if it isn't possible to offer CUPS 1.7 by default with openSUSE, could an official openSUSE Printing repository be created to offer the newer version?

Thanks very much.
Comment 1 Johannes Meixner 2014-10-14 07:23:34 UTC
FYI:

The current up-to-date version is CUPS 2.0.0

*** This bug has been marked as a duplicate of bug 735404 ***
Comment 2 Johannes Meixner 2014-10-16 08:53:47 UTC
Rahim Barbamas,
very many thanks for testing CUPS 1.7.5 with openSUSE!

You are the first openSUSE user who provided feedback.

Without more feedback whether or not CUPS 1.7 works with openSUSE
and without more reports what is missing or bad in CUPS 1.5.4
I will not upgrade from a version that is known to work o.k.
(except a few missing things like no DNS-SD support in CUPS 1.5.4)
to a version that is known to have issues (see bug#735404).

FYI:
The systemd issues regarding CUPS are unrelated to the CUPS version.
See bug#857372 for the full sad story - but at least I learned a lot
how to deal with newest fancy features in the future ;-)
CUPS in the openSUSE build service projects "Printing" and "home:jsmeix"
and in openSUSE:Factory should be (hopefully) safe against systemd issues
cf. https://bugzilla.opensuse.org/show_bug.cgi?id=857372#c133
and https://bugzilla.opensuse.org/show_bug.cgi?id=857372#c140
and https://bugzilla.opensuse.org/show_bug.cgi?id=857372#c148
Comment 3 Forgotten User dH2Y-YXEfD 2014-10-16 12:47:50 UTC
Thanks to you Johannes for packaging CUPS 1.7! I'm sure that different users have different needs, depending on the type of printer and its age some people probably will need to stay with 1.5, whereas others will need a recent 1.7.x release, and others will want to use the very latest 2.0 release. When it comes to something as important as a printer, it's literally mission-critical for many users, which is why OBS packages are so important. I wouldn't be able to use openSUSE without yours!

Would it be possible to promote your CUPS 1.7.5 repo to an official openSUSE Printing:CUPS:175 repository so that more users find it if they need it?

Thanks again!
Comment 4 Johannes Meixner 2014-10-16 14:03:16 UTC
Rahim Barbamas,
I fully agree with what you like to have.
I also would like to provide CUPS exactly in this way.

For SUSE Linux Enterprise 12 (SLE12) I already provide CUPS in this way.

See the SUSE Linux Enterprise Server 12 Release Notes at
https://www.suse.com/releasenotes/x86_64/SUSE-SLES/12/
excerpt:
-----------------------------------------------------------------------
CUPS Version Upgrade to 1.7

CUPS >= 1.6 has major incompatible changes compared to CUPS
up to version 1.5.4

[explanation of the incompatible changes]
.
.
.
Traditional CUPS version 1.5.4 Provided in the Legacy Module

We provide the last traditional CUPS version 1.5.4 as "cups154"
RPMs in the "legacy" module. If CUPS version 1.7 does not support
particular needs, you can still use CUPS 1.5.4
...
[explanation of possible issues when using CUPS 1.5.4]
-----------------------------------------------------------------------

I would like to do in in the same way for openSUSE
but - as far as I know - for openSUSE we do not have something
like the concept of "modules" that we have for SLE12
so that currently I have no good idea how to officially provide
several (mutually exclusive) versions of CUPS for openSUSE.

The "officially provide" is the important part for me.

Of course I can provide CUPS 1.7.5 and CUPS 1.5.4 as in SLE12
in an openSUSE build service project like "home:jsmeix"
but this way only experienced users have a chance to find it.
Even the "Printing" project is not an official repository
for openSUSE because it is a development project, see
https://build.opensuse.org/project/show/Printing

In contrast to SLE12 that is intended for experienced users
(a.k.a. system administrators) who do read information like
our Release Notes, I assume that for usual openSUSE users
we would need a much more end-user friendly way how to provide
several (mutually exclusive) versions of a software.
Comment 5 Forgotten User dH2Y-YXEfD 2014-10-16 15:09:51 UTC
Hello again Johannes,

I see. Thanks for the explanation. As long as you continue your excellent work for openSUSE to offer a few different versions of CUPS, that is the important part. :)

Would it be possible to request that your home:jsmeix repository be accepted as an official Printing:CUPS:<MajorVersion> repository? That way when users search on software.opensuse.org, they will see what you offer with a nice Printing:CUPS:1.7 or Printing:CUPS:2.0 label, so it looks more official. :)

Thanks again!
Comment 6 Johannes Meixner 2014-10-16 15:49:48 UTC
My openSUSE build service (OBS) home project "home:jsmeix"
cannot become an official repository for openSUSE, see
https://build.opensuse.org/project/show/home:jsmeix
(excerpt)
----------------------------------------------------------------------
This is my personal playground where
packages could be severely incompatible
with official openSUSE packages.
...
Using the whole "home:jsmeix" repository
could be a perfect way to mess up your
system.
...
If you are unexperienced with manual
installation, do not install any package
from "home:jsmeix".
----------------------------------------------------------------------

I think we need a real official repository for openSUSE.

For example for some non-free software we have the "NonFree"
repositories (e.g. openSUSE:13.1:NonFree) that are well known
and used by many openSUSE users to get our non-free software.


I will send a mail on the opensuse-factory mailing list regarding
how to provide several (mutually exclusive) versions of a software
for normal openSUSE end-users.
Comment 7 Forgotten User dH2Y-YXEfD 2014-10-16 15:56:59 UTC
Excellent, thanks again Johannes!
Comment 8 S. B. 2015-01-20 03:47:32 UTC
Hello Johannes,

I also run a Tumbleweed system. I noticed that the official "Printing" repo for 13.2 now has Cups 1.7.5, which is great, thanks very much! However, for Tumbleweed, the "Printing" repo has the same version of CUPS as the "official" Tumbleweed version, both at 1.5.4 still. If possible, could the "Printing" repo for Tumbleweed offer something newer?

Thanks for your time and help!
Comment 9 Johannes Meixner 2015-01-20 09:04:21 UTC
CUPS 1.7.5 in the openSUSE build sevice development project "Printing"
is also built for Tumbleweed and public available, see
http://download.opensuse.org/repositories/Printing/openSUSE_Tumbleweed/i586/
http://download.opensuse.org/repositories/Printing/openSUSE_Tumbleweed/x86_64/

S. B.
can you describe what in CUPS 1.5.4 does not work for you
so that in your particular case CUPS 1.7.5 is required?
Comment 10 S. B. 2015-01-20 13:37:53 UTC
(In reply to Johannes Meixner from comment #9)
> CUPS 1.7.5 in the openSUSE build sevice development project "Printing"
> is also built for Tumbleweed and public available, see
> http://download.opensuse.org/repositories/Printing/openSUSE_Tumbleweed/i586/
> http://download.opensuse.org/repositories/Printing/openSUSE_Tumbleweed/
> x86_64/

Ah, interesting, you're right. I assumed that it still contained the older version because the openSUSE Software search page still shows that the "Printing" repo for Tumbleweed still contains the 1.5.4 version. (I'm attaching a screenshot.) I imagine that this is due to the fact that it actually contains multiple versions of the same packages, for example cups-1.5.4-167.5.x86_64.rpm and cups-1.7.5-2.9.x86_64.rpm.

 
> S. B.
> can you describe what in CUPS 1.5.4 does not work for you
> so that in your particular case CUPS 1.7.5 is required?

Sure, I have a Brother MFC-J625DW printer with WiFI connectivity. It's connected to my LAN with a static IP of 192.168.1.5. It seems to be designed to work with the Bonjour/Zeroconf protocol, which is handled by Avahi in Linux. Even after installing the Brother drivers for Linux, it can't discover the printer on the network using CUPS 1.5. (I don't know exactly which sub-component or package of CUPS is actually responsible for this.) Even if I manually adjust the address for the printer (dnssd://Brother%20MFC-J625DW._pdl-datastream._tcp.local/) CUPS 1.5 still can't seem to communicate with it, because it doesn't print. As soon as I add the Printing repo with CUPS 1.7.5 and switch installed packages to that repo, I restart the CUPS daemon, and everything works perfectly. The printer can be discovered automatically using system-config-printer, and it prints with no manual tweaking.

Thanks again for your help with this issue.
Comment 12 Johannes Meixner 2015-01-20 15:09:32 UTC
S. B.
many thanks for your descriptive feedback.

If a network printer can be only accessed via DNS-SD/Bonjour/Zeroconf
(whatever it is called), then CUPS 1.5.4 cannot work because
CUPS 1.5.4 does not provide a dnssd backend that is required
in this case and that is provided by CUPS 1.7.5.

Regarding how network printers can be usually accessed, see
https://en.opensuse.org/SDB:Printing_via_TCP/IP_network

For background information see
"What is a CUPS backend and how does it work?" at
https://en.opensuse.org/SDB:CUPS_in_a_Nutshell
Comment 13 Johannes Meixner 2015-01-20 15:20:06 UTC
On
http://www.brother-usa.com/MFC/ModelDetail/4/MFCJ625DW/spec#.VL5wb0qdo_1
the specifications for the Brother MFC-J625DW read
--------------------------------------------------------------------------
Supported Network Protocols (IPv4)

ARP, RARP, BOOTP, DHCP, APIPA (Auto IP), NetBIOS/WINS, LLMNR,
LPR/LPD, Custom Raw Port/Port9100, DNS Resolver, mDNS,
FTP Server, SNMPv1/v2c, TFTP, Web Services (Print/Scan)
--------------------------------------------------------------------------

Therein "LPR/LPD" and "Custom Raw Port/Port9100" indicate
that the Brother MFC-J625DW is also accessible via the
usual/traditional protocols for network printers
which would mean that this printer could be also used
with the traditional CUPS 1.5.4 (provided one knows how).

In particular "Custom Raw Port/Port9100" indicate that
the following CUPS DeviceURI should also work for you:
  socket://192.168.1.5:9100

Perhaps this information is hidden in Brother's user manual.
Comment 14 S. B. 2015-01-20 16:03:59 UTC
(In reply to Johannes Meixner from comment #13)
> On
> http://www.brother-usa.com/MFC/ModelDetail/4/MFCJ625DW/spec#.VL5wb0qdo_1
> the specifications for the Brother MFC-J625DW 
[...]
> 
> In particular "Custom Raw Port/Port9100" indicate that
> the following CUPS DeviceURI should also work for you:
>   socket://192.168.1.5:9100

Interesting, thanks Johannes for the additional research! I can't remember if I tried port 9100 or the socket:// protocol, although I sure did try a LOT of different protocols and ports. At any rate, I try to think like a regular user, who basically just expects his printer to be automatically detected, which is why I prefer CUPS 1.7.5. I'm glad it's available in the official "Printing" repo now.
Comment 15 Johannes Meixner 2015-03-12 09:02:38 UTC
Meanwhile we have CUPS 2.0.2 in openSUSE Factory.

See also the "Testers needed for new cups" mails on
the opensuse-factory mailing list in particular see
http://lists.opensuse.org/opensuse-factory/2015-02/msg00122.html

FYI:
Currently the only know issue is bug#920937
Comment 16 S. B. 2015-03-12 13:13:33 UTC
Hi Johannes, thanks for staying on top of this. My printer still works well with CUPS 2.0 from the Printing repo, but system-config-printer doesn't. I suspect it's incompatible with CUPS 2.0. Please see bug #921996 and bug #922000