Bug 735404 - CUPS >= 1.6 has major incompatible changes. Do not blindly upgrade to CUPS >= 1.6 on production systems!
Summary: CUPS >= 1.6 has major incompatible changes. Do not blindly upgrade to CUPS >=...
Status: RESOLVED FIXED
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Printing (show other bugs)
Version: 13.1 Milestone 0
Hardware: All SUSE Other
: P5 - None : Major (vote)
Target Milestone: ---
Assignee: Johannes Meixner
QA Contact: Johannes Meixner
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-12-07 16:51 UTC by Johannes Meixner
Modified: 2015-08-31 15:27 UTC (History)
14 users (show)

See Also:
Found By: Development
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Johannes Meixner 2011-12-07 16:51:28 UTC
CUPS 1.6 will have major incompatible changes:


"Transition all non-Mac filters to OpenPrinting"
http://www.cups.org/str.php?L3930
"Deprecate and stub out image file support"
http://www.cups.org/str.php?L3931


"Drop serial and parallel backends"
http://www.cups.org/str.php?L3935


"Drop support for CUPS Browsing and Polling"
http://www.cups.org/str.php?L3922
"CUPS browsing is deprecated and scheduled for removal ... after 1.5.x"
http://www.cups.org/str.php?L3889
"Bonjour is the replacement"
http://www.cups.org/newsgroups.php?gcups.general+T+Q%22Why+is+CUPS+browsing+deprecated%22


"Deprecate PPD functions"
http://www.cups.org/str.php?L3926
"Deprecate the PPD compiler"
http://www.cups.org/str.php?L3927
"Support for PPDs is not going away in CUPS 1.6"
http://www.cups.org/newsgroups.php?gcups.general+T+Q%22CUPS+1.6+and+PPD%22


In general for changes in the upcomming CUPS version 1.6 see
http://www.cups.org/roadmap.php?VERSION=1.6
Comment 1 Johannes Meixner 2011-12-21 12:48:06 UTC
Related to this is "PDF as Standard Print Job Format", see

http://www.linuxfoundation.org/collaborate/workgroups/openprinting/pdf_as_standard_print_job_format
Comment 2 Johannes Meixner 2012-01-31 08:37:40 UTC
A beta version of the new OpenPrinting CUPS Filters package
is released. See
http://www.cups.org/str.php?L2897
and
http://www.cups.org/str.php?L3930
Comment 3 Johannes Meixner 2012-02-15 09:28:01 UTC
Not an incompatible change but a noteworthy change:
In CUPS 1.6 the libusb-based "usb" backend will be built by default, see
http://www.cups.org/str.php?L2890
--------------------------------------------------------------------------
till.kamppeter 15:20 Feb 13, 2012

Mike, can you also change the build system so that
the libusb-based "usb" backend will get built by default?

The libusb-based backend has once more functionality, especially bi-di
works with all printers, without any manufacturer-wise restrictions,
and second, it works also in systems with usblp module present, as it
detaches the module from the printer before communicating and reattaches
the module after finishing the communication. This means that it
always "just works". The usblp-based backend is now only a fallback
solution for systems without libusb.
--------------------------------------------------------------------------
Comment 4 Johannes Meixner 2012-02-16 09:53:46 UTC
Probably of interest related to Samba and printing in Windows environment:
http://www.cups.org/str.php?L2900
---------------------------------------------------------------------------
Given that the Windows drivers are now unsupported, we will no longer
be investing time in new features or documentation for cupsaddsmb.
---------------------------------------------------------------------------
Comment 6 Johannes Meixner 2012-02-16 10:38:47 UTC
Probably only of interest for exceptional use-cases
http://www.cups.org/str.php?L3999
---------------------------------------------------------------------------
... the PHP module has been removed from CUPS 1.6 and later.
---------------------------------------------------------------------------
Comment 7 Johannes Meixner 2012-03-01 11:23:16 UTC
Regarding "Drop support for CUPS Browsing and Polling" (see comment #0)
Ludwig Nussel suggested an interesting idea how to provide backward
compatibility in this case:

When a CUPS <= 1.5.x server should be replaced by a CUPS >= 1.6.x server
in a bigger network printing environment with arbitrary client systems,
the existing client systems expect to get CUPS Browsing information
as it had worked all the time up to CUPS <= 1.5.x.

Of course the admin could "just upgrade" all those arbitrary
client systems with CUPS >= 1.6.x - but perhaps he might not like it ;-)

To provide CUPS Browsing information to the clients
a separated CUPS-Browsing-daemon could be implemented
that gets print queue information from a CUPS >= 1.6.x server
and creates CUPS Browsing information.

The crucial point is that such a CUPS-Browsing-daemon is separated
software and not a SUSE-specific add-on-hack for CUPS 1.6.x
so that our CUPS 1.6.x is still in full compliance with upstream
and admins who don't need or want such a CUPS-Browsing-daemon
don't need to install its RPM package.
Comment 8 Johannes Meixner 2012-06-28 14:22:36 UTC
Related to "Drop support for CUPS Browsing and Polling"
the display of remote printers shared via LDAP, or SLP
will also be dropped in CUPS 1.6:

"Drop support for custom LDAP/SLP printer schemas"
http://www.cups.org/str.php?L3923
Comment 9 Johannes Meixner 2012-07-25 13:04:49 UTC
Regarding comment #9 "a separated CUPS-Browsing-daemon":

The CUPS Browse Protocol is described at
http://www.cups.org/documentation.php/doc-1.5/spec-browsing.html

What TYPE is can be found in the cups-1.5.3 sources in cups/cups.h
-----------------------------------------------------------------------------
typedef unsigned cups_ptype_t;          /**** Printer type/capability bits ****/
enum cups_ptype_e                       /**** Printer type/capability bit constants ****/
{                                       /* Not a typedef'd enum so we can OR */
  CUPS_PRINTER_LOCAL = 0x0000,          /* Local printer or class */
  CUPS_PRINTER_CLASS = 0x0001,          /* Printer class */
  CUPS_PRINTER_REMOTE = 0x0002,         /* Remote printer or class */
  CUPS_PRINTER_BW = 0x0004,             /* Can do B&W printing */
  CUPS_PRINTER_COLOR = 0x0008,          /* Can do color printing */
  CUPS_PRINTER_DUPLEX = 0x0010,         /* Can do duplexing */
  CUPS_PRINTER_STAPLE = 0x0020,         /* Can staple output */
  CUPS_PRINTER_COPIES = 0x0040,         /* Can do copies */
  CUPS_PRINTER_COLLATE = 0x0080,        /* Can collage copies */
  CUPS_PRINTER_PUNCH = 0x0100,          /* Can punch output */
  CUPS_PRINTER_COVER = 0x0200,          /* Can cover output */
  CUPS_PRINTER_BIND = 0x0400,           /* Can bind output */
  CUPS_PRINTER_SORT = 0x0800,           /* Can sort output */
  CUPS_PRINTER_SMALL = 0x1000,          /* Can do Letter/Legal/A4 */
  CUPS_PRINTER_MEDIUM = 0x2000,         /* Can do Tabloid/B/C/A3/A2 */
  CUPS_PRINTER_LARGE = 0x4000,          /* Can do D/E/A1/A0 */
  CUPS_PRINTER_VARIABLE = 0x8000,       /* Can do variable sizes */
  CUPS_PRINTER_IMPLICIT = 0x10000,      /* Implicit class */
  CUPS_PRINTER_DEFAULT = 0x20000,       /* Default printer on network */
  CUPS_PRINTER_FAX = 0x40000,           /* Fax queue */
  CUPS_PRINTER_REJECTING = 0x80000,     /* Printer is rejecting jobs */
  CUPS_PRINTER_DELETE = 0x100000,       /* Delete printer @since CUPS 1.2/Mac OS X 10.5@ */
  CUPS_PRINTER_NOT_SHARED = 0x200000,   /* Printer is not shared @since CUPS 1.2/Mac OS X 10.5@ */
  CUPS_PRINTER_AUTHENTICATED = 0x400000,/* Printer requires authentication @since CUPS 1.2/Mac OS X 10.5@ */
  CUPS_PRINTER_COMMANDS = 0x800000,     /* Printer supports maintenance commands @since CUPS 1.2/Mac OS X 10.5@ */
  CUPS_PRINTER_DISCOVERED = 0x1000000,  /* Printer was automatically discovered and added @since CUPS 1.3/Mac OS X 10
.5@ */
  CUPS_PRINTER_SCANNER = 0x2000000,     /* Scanner-only device @since CUPS 1.4/Mac OS X 10.6@ */
  CUPS_PRINTER_MFP = 0x4000000,         /* Printer with scanning capabilities @since CUPS 1.4/Mac OS X 10.6@ */
  CUPS_PRINTER_OPTIONS = 0x6fffc        /* ~(CLASS | REMOTE | IMPLICIT | DEFAULT | FAX | REJECTING | DELETE | NOT_SHA
RED | AUTHENTICATED | COMMANDS | DISCOVERED) @private@ */
};
-----------------------------------------------------------------------------

What STATE is can be found in the cups-1.5.3 sources in cups/ipp.h
-----------------------------------------------------------------------------
typedef enum ipp_pstate_e               /**** Printer states ****/
{
  IPP_PRINTER_IDLE = 3,                 /* Printer is idle */
  IPP_PRINTER_PROCESSING,               /* Printer is working */
  IPP_PRINTER_STOPPED                   /* Printer is stopped */
} ipp_pstate_t;
-----------------------------------------------------------------------------

Accordingly a simple proof-of-concept how to submit CUPS Browsing info
with hardcoded TYPE = CUPS_PRINTER_REMOTE = 0x0002
and hardcoded STATE = IPP_PRINTER_IDLE = 3
to a single remote host is the following bash command
(there is exactly one space between each field):
----------------------------------------------------------------------
echo '2 3 ipp://PRINT.SERVER.IP.ADDRESS:631/printers/QUEUE-NAME "Location" "Description" "Make and Model" lease-duration=300 job-sheets=none,none' >/dev/udp/REMOTE:HOST:IP:ADDRESS/631
----------------------------------------------------------------------
lease-duration=300 means that after 300 seconds the remote host
discards these Browsing info (i.e. it removes the matching entry from
/var/cache/cups/remote.cache (/etc/cups/yes/remote.cache for CUPS < 1.4).
Comment 10 Johannes Meixner 2012-07-25 15:11:17 UTC
There is a typo in comment #9:
"Regarding comment #9" should read "Regarding comment #7".


Regarding sending CUPS Browsing info as UDP broadcast:

Sending CUPS Browsing info as UDP broadcast via bash fails (even as root):
-------------------------------------------------------------------------------
echo '2 3 ipp://PRINT.SERVER.IP.ADDRESS:631/printers/QUEUE-NAME "Location"
"Description" "Make and Model" lease-duration=300 job-sheets=none,none'
>/dev/udp/HOST:BROADCAST:IP:ADDRESS/631

-bash: connect: Permission denied
-bash: /dev/udp/HOST:BROADCAST:IP:ADDRESS/631: Permission denied
-------------------------------------------------------------------------------

I don't know how to set SO_BROADCAST (see "man 7 socket") via bash
so that I use this perl script (the $data assignment is one line):
--------------------------------------------------------------------------------
#!/usr/bin/perl

use strict;
use IO::Socket;

my $bcaddr = 'HOST:BROADCAST:IP:ADDRESS';
my $port = 631;
my $data = '2 3 ipp://PRINT.SERVER.IP.ADDRESS:631/printers/QUEUE-NAME "Location"
"Description" "Make and Model" lease-duration=300 job-sheets=none,none';

socket(sock, PF_INET, SOCK_DGRAM, getprotobyname("udp")) or die "socket:$@";
setsockopt(sock, SOL_SOCKET, SO_BROADCAST, 1) or die "setsockopt:$@";
my $dest = sockaddr_in($port,inet_aton($bcaddr));

send(sock,$data,0,$dest) or die "send():$!";
--------------------------------------------------------------------------------
Comment 11 Johannes Meixner 2012-07-31 08:45:32 UTC
An overview regarding the changes:
http://www.cups.org/documentation.php/doc-1.6/whatsnew.html
Comment 12 Johannes Meixner 2012-09-28 10:16:50 UTC
It seems at least CUPS version 1.6.1 is not yet ready for normal
usage because it has major issues, see for example

http://www.cups.org/str.php?L4159
"For a raw queue pointing to a remote CUPS server
 via dnssd URI the options of the server's PPD
 are not shown by print dialogs"

http://www.cups.org/str.php?L4178
"CUPs 1.6.x server does not send PPD/option info to CUPS 1.6.x client"

http://www.cups.org/str.php?L4180
"CUPS 1.6.1 crashes on shutdown"

http://www.cups.org/str.php?L4183
"CUPS 1.6.1 crashes on startup when DNS-SD host name
 cannot get determined via Avahi"

http://www.cups.org/str.php?L4192
"CUPS daemon crashes on bad entry in cupsd.conf"
Comment 13 Johannes Meixner 2012-10-04 10:01:56 UTC
One more related to comment #12:

http://www.cups.org/str.php?L4200
"cupsd crashed with SIGABRT in __assert_fail_base()"
Comment 14 Johannes Meixner 2012-10-18 14:50:19 UTC
One more related to comment #12:

http://www.cups.org/str.php?L4213
"CUPS crashes on shutdown when taking down Avahi threaded poll"


Furthermore:

A general comment from the CUPS author regarding CUPS Browsing:
http://www.cups.org/str.php?L4206
---------------------------------------------------------------------
Sorry, CUPS browsing is gone for good.  There are too many problems
with the CUPS browsing protocol in modern network environments to
continue using/supporting it.

CUPS 1.6 supports DNS-SD for automatic client discovery of printers,
and future versions of CUPS will also support LDAP and SLP.
Unfortunately, it may take some time for desktop toolkits to support
dynamic printers, but the APIs are there in CUPS 1.6...
---------------------------------------------------------------------

One must take some time and wait until desktop toolkits adapted
to the CUPS 1.6 APIs and provide support for dynamic printers
before one can use CUPS > 1.5.x in "real-world environments".
Comment 15 Johannes Meixner 2012-10-18 15:57:08 UTC
It seems CUPS introduced a chicken and egg issue:

If desktop toolkits use CUPS 1.6 APIs to get dynamic printers support
they need CUPS 1.6 installed on end-users machines but CUPS 1.6 cannot
be used on end-users machines until desktop toolkits use CUPS 1.6 APIs.

It seems one needs to do a "big jump" and upgrade both CUPS and the
desktop toolkits at the same time.

To prepare for such a "big jump" experienced users must test it
in advance before usual end-users get it.

To let users test it, I think we should have a new OBS project
whereto CUPS 1.6 and other related packages can be submitted
e.g. something like a "Printing:Playground" project to make
the distinction obvious that "Printing" is meant for (relatively)
stable stuff that can be used without expecting major issues
in "real-world environments" (e.g. on SLE11) but in contrast
"Printing:Playground" is meant for venturous testers who expect
even unexpected issues.
Comment 16 Bruno Friedmann 2012-11-11 16:07:51 UTC
Printing:Factory if we try to respect what's done on obs.

My remark here is how debian like distribution have treated the problem? And thus are the only one distribution actually able to print correctly, compared especially to our 12.2 release?
Comment 17 Ludwig Nussel 2012-11-14 08:55:39 UTC
So if we still want to get cups 1.6 into 12.3 now would be a good time to submit it.
Comment 18 Johannes Meixner 2012-11-15 16:16:31 UTC
I do not want to get CUPS 1.6 in openSUSE 12.3
unless the openSUSE community agreed how to deal
with all those issues above.
Comment 19 Johannes Meixner 2012-11-15 16:29:06 UTC
Till Kamppeter who maintains CUPS in Ubuntu
re-introduced Browsing for CUPS 1.6, see
https://bugs.launchpad.net/ubuntu/+source/cups/+bug/1061063
and
https://bugs.launchpad.net/ubuntu/+source/cups/+bug/1061069

Basically this means CUPS 1.6 "as is" can really not be used
for convenient printing in existing Linux networks (perhaps except
very small networks with only a few clients and one or two printers).
Comment 20 Johannes Meixner 2012-11-15 16:52:23 UTC
It seems that even with CUPS Browsing re-introduced in Ubuntu,
a "client-only" config (i.e. ServerName set in client.conf)
does no longer work with CUPS "1.6+Browsing" in Ubuntu, see
https://bugs.launchpad.net/ubuntu/+source/cups/+bug/1069671

I don't know if a "client-only" config still works
with plain upstream CUPS 1.6 without any patch.
Comment 21 Ludwig Nussel 2012-11-16 08:27:32 UTC
(In reply to comment #18)
> I do not want to get CUPS 1.6 in openSUSE 12.3
> unless the openSUSE community agreed how to deal
> with all those issues above.

Ok. If it's not ready then it's not ready. Maybe the issue could also be brought up on the Factory list. I suppose many are not aware of the reasons why we can't upgrade cups yet.
Comment 22 Johannes Meixner 2012-11-16 08:42:18 UTC
I will post a notification on opensuse-factory@opensuse.org

If someone requests an upgrade to a new version of a package
but is not aware of such major changes, the request is unfounded
because the requester does not care what he gets by the new version.
Comment 23 Johannes Meixner 2012-11-16 09:05:46 UTC
Regarding comment#15 "Printing:Playground"
and comment#16 "Printing:Factory":

I think we do not need a new project only for CUPS 1.6.

I think it is simpler and sufficient to have CUPS 1.6 as separated
OBS source package "cups16" in the "Printing" project.

The cups16.spec file would build binary RPMs with same names
as the package "cups" does, i.e. cups16.spec would contain:
--------------------------------------------------------------------
Name:           cups
...
Version:        1.6.xxx
...
%package libs
...
%package client
...
%package devel
...
%package ddk
--------------------------------------------------------------------
plus appropriate RPM requirements and conflicts to make sure
that either CUPS <= 1.5 packages or CUPS >= 1.6 packages
can be installed on an end-user system.

This way the OBS source packages "cups" and "cups16" in "Printing"
would build binary RPMs with same names but with different versions
(name-1.5...rpm versus name-1.6...rpm).

Additionally CUPS >= 1.6 requires the filters of the cups-filters
software that is provided by OpenPrinting.org, see comment#2.
Comment 24 Johannes Meixner 2012-11-20 11:49:36 UTC
Regarding comment#22 "notification on opensuse-factory@opensuse.org":

See my "Opinion poll: CUPS 1.6 version upgrade"
http://lists.opensuse.org/opensuse-factory/2012-11/msg00468.html

Not much response up to now...
Comment 25 Johannes Meixner 2012-11-20 11:51:45 UTC
Regarding comment#20 "client-only config does no longer work with CUPS 1.6":

https://www.cups.org/str.php?L4231
"From CUPS 1.6.x on using a remote CUPS server via client.conf stopped working"
Comment 26 Johannes Meixner 2012-11-30 14:22:42 UTC
Only for venturous testers:

I made a first test version of CUPS 1.6.1
(without any fix of the issues in comment#12 and others)
as packages "cups161" and "cups" in "home:jsmeix"
for openSUSE 11.4/12.1/12.2 and SLE-11 SP1/SP2

See
https://build.opensuse.org/package/view_file?expand=1&file=cups.changes&package=cups161&project=home%3Ajsmeix

Read
https://build.opensuse.org/project/show?project=home%3Ajsmeix
in particular note
----------------------------------------------------------------
This is my personal playground where
packages could be severely incompatible
with official openSUSE packages.
...
If you are unexperienced with manual
installation, do not install any package
from "home:jsmeix".
...
The packages in the "home:jsmeix" project
are only for testing, without any guarantee
or warranty, and without any support.
As an extreme example, this means if your
complete computer center crashes because
of those packages, it is only your problem.
----------------------------------------------------------------

On my SLE-11 SP1 workstation I can print with it
to print queues on SLE-11 servers that run CUPS 1.3.9
and I can print PostScript files on my locally connected
(via USB) HP LaserJet 1220 PostScript printer
and I can print to my LaserJet 1220 from
an openSUSE 12.2 client that runs CUPS 1.5.3 and
from a SLED11-SP2 client that runs CUPS 1.3.9.

Printing other file types (e.g. PDF or plain text)
does not yet work because currently there
is no "cups-filters" package available,
see "CUPS 1.6 has major incompatible changes" at
http://en.opensuse.org/SDB:CUPS_in_a_Nutshell
Comment 27 Johannes Meixner 2012-12-18 10:06:59 UTC
Right now I picked up
https://www.cups.org/str.php?L4233
which contains
----------------------------------------------------------------------------
mike: 07:10 Dec 17, 2012
...
There will be more 1.6.x releases (1.6.2 will be coming out fairly soon).

CUPS 1.7 will likely not come out until next summer...
----------------------------------------------------------------------------
Comment 28 Johannes Meixner 2013-03-22 09:17:59 UTC
Most of the above issues in CUPS (comment#12 and subsequent comments)
are fixed in CUPS 1.6.2.

For venturous testers:
I made CUPS 1.6.2 as source package "cups162" in "home:jsmeix"
that results binary RPMs named cups[...]-1.6.2-[...].rpm at
http://download.opensuse.org/repositories/home:/jsmeix/
for openSUSE 12.1/12.2/12.3 and SLE-11/SP1/SP2
Carefully read
https://build.opensuse.org/project/show?project=home%3Ajsmeix
and the RPM changelog
https://build.opensuse.org/package/view_file?expand=1&file=cups.changes&package=cups162&project=home%3Ajsmeix

Since CUPS 1.6. you usually need the "cups-filters" package
(unless you only print PostScript files on PostScript printers)
which I provide currently only in a very unfinished way
only for venturous testers in the "Printing" project and also
in "home:jsmeix" (it does not build for older openSUSE versions).


FYI:
A minor issue in CUPS 1.6.2:
https://www.cups.org/str.php?L4300
"When restarting avahi-daemon while CUPS is running, CUPS looses connection"
Workaround: After restarting Avahi also restart CUPS.
Comment 29 Johannes Meixner 2013-04-18 11:47:13 UTC
Regarding comment#7
"a separated CUPS-Browsing-daemon could be implemented"
and comment#15
"desktop toolkits use CUPS 1.6 APIs to get dynamic printers support":

For background information and reasoning what could be done
until print dialogs natively support DNS-SD browsing, see
the "An idea how to provide CUPS Browsing for CUPS 1.6" thread:

https://www.cups.org/newsgroups.php?gcups.general+T+Q%22An+idea+how+to+provide+CUPS+Browsing+for+CUPS+1.6%22

In particular see Till Kamppeter's proposal for
an "universal cups-browsed" in this thread.

Initially Till had implemented some of the "universal cups-browsed"
functionality in the cups-filters software.

Tim Waugh recently added support for BrowsePoll, and CUPS Browsing
for sharing and discovery to the cups-browsed program in cups-filters.

For the current state and details of the cups-browsed
see the NEWS and README files in the cups-filters sources.

The dowload URL for the cups-filters package is
http://www.openprinting.org/download/cups-filters/
Comment 31 Tomáš Chvátal 2013-07-29 11:47:00 UTC
For anyone willing to work on it I finished the migration stuff in Gentoo so it should be quite easy to copy&compare the changes (I even can use our internal printing system with it :-)).

It should be fairly easy to package but I sadly don't have the time for it now.

http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-print/cups/cups-1.6.3-r2.ebuild?revision=1.1&view=markup
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-print/cups-filters/cups-filters-1.0.35.ebuild?revision=1.2&view=markup
Comment 32 Johannes Meixner 2013-07-30 09:32:41 UTC
FYI for venturous testers:

I made CUPS 1.7rc1 (see http://www.cups.org/)
as source package "cups17rc1" in "home:jsmeix".
Note what I wrote in comment#28 above:
https://bugzilla.novell.com/show_bug.cgi?id=735404#c28

Currently cups-filters fails to build for openSUSE_Factory.
I am afraid currently I do not have time to work on it.
Comment 33 Johannes Meixner 2013-08-01 07:57:27 UTC
Tomas Chvatal,
regarding cups-filters:

As far as I see it fails to build for openSUSE_Factory
because we have poppler 0.23 there and in that poppler
version there have been changes in some poppler API
(in particular in poppler/Error.h regarding Goffset
in setErrorCallback) that require adaption of cups-filters.

But I have not at all any internal knowledge about poppler
so that I could be totally wrong here.

You may have a look at my preliminary attempts to try to fix it
in OBS home:jsmeix:branches:Printing cups-filters
(my current fix is still incomplete).

As far as I see there are no incompatible changes in poppler API
mentioned in poppler's ChangeLog.
Therefore I wonder if what cups-filters uses from poppler
is actually meant as public stable API from poppler?
Perhaps cups-filters uses private internal poppler API
that can change at any time as poppler upstream likes.
In this case cups-filters would need to get a major clean up
so that it only uses well known stable APIs.

But again - I have not at all any internal knowledge
about poppler so that this all is only blind guess.

I think we should get in contact with cups-filters upstream
(see the cups-filters README file regarding "Report bugs to")
to get the issue fixed properly and thoroughly together
with upstream.
Comment 34 Tomáš Chvátal 2013-08-01 08:10:14 UTC
The cups changes external api with no documentation on each minor bump. With patch bumps they manage to often break abi compatibility so this is quite common in the library.

The problem is on poppler side and there is nothing to expect apart few tweaks, ike the Goffset thingy in error callbacks, then they changed few more places which need to be adjusted.

Easiest path to contact upstream is join irc channel #openprinting at freenode server and speak with tkamppeter who is the coordinating guy from canonical.

Anyway you probably noticed I am too listed in AUTHORS so don't worry I already told him about the api breakage and it will be fixed :)
Comment 35 Johannes Meixner 2013-08-01 08:19:24 UTC
Tomas Chvatal,
regarding your cups-filters submitrequest 185049:

There you wrote (excerpt):
---------------------------------------------------------------------------
I didn't fix the poppler-0.23 compatibility because Timm is already
on it and will simply release 1.0.36 at some near future point.
---------------------------------------------------------------------------
Great!

Then let's wait for cups-filters 1.0.36.

FYI:
I really want that cups-filters is built for as many
older openSUSE versions as possible with reasonable effort.
Currently it builds for 12.2 and 12.3. and I like to keep that
for cups-filters 1.0.36 (if possible with reasonable effort).
The reason is that testers who have older openSUSE versions
could switch to CUPS 1.7.x plus cups-filters >= 1.0.36
and switch back to traditional CUPS 1.5.4 if needed.
Such testing is mandatory for me to feel a bit more on the safe side.
Comment 36 Johannes Meixner 2013-08-01 08:39:51 UTC
Tomas Chvatal,

I made you maintainer of cups-filters in the Printing project
so that you can directly work on it there.


FYI:
Regarding CUPS API changes:
Talk to CUPS upstream to discuss issues where they belong.
We (i.e. openSUSE) never changed the CUPS API.
You may read my comment#15 above and you may read my postings
at CUPS upstream to get a basic understanding about my personal
opinion in general regarding incompatible changes.
As long as I am basically the only one from openSUSE who is "visible"
at CUPS upstream, you cannot excpect that CUPS upstream cares much
about what openSUSE may like to have.
Comment 37 Tomáš Chvátal 2013-08-01 10:46:09 UTC
No need for special privs on me. As a factory-maint group member I can access every single devel project, if I want. We just for obvious reasons don't do so unless really needed (long-time breakages and no maintainer activity, etc...)

Anyway the bug about it is on upstream https://bugs.linuxfoundation.org/show_bug.cgi?id=1144

And the plan is to have it in next version fixed, so lets just wait a bit for the .36.

Also if the release will be delayed we can track the upstream SCM to grab the patch http://bzr.linuxfoundation.org/loggerhead/openprinting/cups-filters/changes/.
Comment 38 Johannes Meixner 2013-08-01 12:02:19 UTC
Tomas Chvatal,

I would apprecitate it if you as one of the cups-filters authors
would accept "official" maintainership of cups-filters.

This does of course not mean that now it is only you who must do
all the work for cups-filters - I am also its maintainer.

I think it makes a difference if you act as factory-maint group member
on arbitrary packages or if you act as one of the "officially" specified
maintainers for a particular package.
Comment 39 Johannes Meixner 2013-08-02 09:57:08 UTC
FYI:

I tried to compile cups-filters-1.0-20130802
(i.e. the daily snapshot dated 2013 August 02)
that fixes in particular
https://bugs.linuxfoundation.org/show_bug.cgi?id=1144

But compile fails with a new issue, see
https://bugs.linuxfoundation.org/show_bug.cgi?id=1145

I will now try to go back to cups-filters-1.0.35
and add a patch that only fixes
https://bugs.linuxfoundation.org/show_bug.cgi?id=1144
Comment 40 Johannes Meixner 2013-08-02 11:40:37 UTC
In OBS home:jsmeix:branches:Printing cups-filters
I am now back to cups-filters-1.0.35
with BZR_revision_7085_7084.diff that should fix
https://bugs.linuxfoundation.org/show_bug.cgi?id=1144

But currently OBS does not build it for openSUSE_Factory
(it is currently blocked by some other packages)
so that I don't know if it actually builds now
for openSUSE_Factory


Tomas Chvatal,

In OBS home:jsmeix:branches:Printing cups-filters
I have added your support for systemd according
to what you did in home:scarabeus_iv cups-filters
Comment 42 Johannes Meixner 2013-08-02 13:40:37 UTC
With submitrequest 185617 I submitted cups-filters
from home:jsmeix:branches:Printing to Printing.

OBS still could not build it for openSUSE_Factory.
I can only hope that BZR_revision_7085_7084.diff actually works.
Comment 43 Johannes Meixner 2013-08-28 09:04:31 UTC
Tomas Chvatal,
many thanks for your cups-filters version upgrade to 1.0.36
in the OBS Printing project!
Comment 44 Johannes Meixner 2013-08-28 09:27:56 UTC
Mainly for my own information:

Regarding Ghostscript version upgrade and cups-filters:

http://www.ghostscript.com/doc/current/History9.htm#Version9.09
reads
------------------------------------------------------------------------------
Version 9.09 (2013-08-21)

This is the eighth full release in the stable 9.x series,
and is primarily a maintenance release.
.
.
.
2013-07-30 20:29:01 +0200
Till Kamppeter <till.kamppeter@gmail.com>
...
Moved CUPS filters gstoraster and gstopxl to cups-filters

As Ghostscript's CUPS filters gstoraster and gstopxl need changes to
allow PPD-less printing on IPP printers and these changes introduce
a new dependency on the libcupsfilters library of the cups-filters
project, we have moved these filters to cups-filters now.
------------------------------------------------------------------------------

Since Ghostscript 9.09 it may require (to some extent) cups-filters
but no hard RPM "Requires" but perhaps a RPM "Recommends", compare
https://bugzilla.novell.com/show_bug.cgi?id=776080#c39

Ghostscript 9.09 causes a regression for "gv" see
http://bugs.ghostscript.com/show_bug.cgi?id=694534
Comment 45 Johannes Meixner 2013-08-28 09:54:24 UTC
Regarding Ghostscript 9.09 regression in above comment#44:

It seems this will be fixed soon in Ghostscript 9.10, see the
"Ghostrscript/GhostPDL 9.10 Release Candidate 1"
announcement on gs-devel@ghostscript.com
http://ghostscript.com/pipermail/gs-devel/2013-August/009504.html
Comment 46 Tomáš Chvátal 2013-08-28 10:22:28 UTC
You are welcome.

All the patches are now upstreamed, the .unit file will be included in the tarball next time, so we can drop all the extra files we ship with it.

WRT ghostscript:
I would recommend just requiring >= 9.9 in the cups-filters because otherwise we are colliding and if users add cups-filters from printing they can also get new ghostscript.

13.1:
Do you think it would be possible to have this mergable before the beta1 freeze which happens on 2013-09-19. Gnome guys already introduce patches for cups-1.5 compat and this might ease things up, even if there are some triv regressions.
Comment 47 Johannes Meixner 2013-08-28 15:01:43 UTC
Currently I work on the Ghostscript 9.10 Release Candidate 1.

But I think we cannot do the "big jump" (see comment#15) for 13.1
because there is at least one more regression when upgrading CUPS:

The YaST printer module.
In particular its "printing via network" and "share printers" stuff
only works up to CUPS 1.5 because it needs CUPS Browsing.
I have to do major work for the YaST printer module to let it
use the cups-browsed from cups-filters for CUPS >= 1.6.

Furthermore there is Dominique Leuenberger's response
regarding "Cups >= 1.6" on opensuse-factory@opensuse.org
http://lists.opensuse.org/opensuse-factory/2013-08/msg00408.html
that reads (excerpt):
--------------------------------------------------------------------------
... incompatibility is now what we want at this stage; I already
looked at the issue from 'the other' side and it was rather trivial
to make it build with cups 1.5 without loosing functionality (the
cups 1.6 getter/setter functions were used; so I just added macros
to fall back to the old style direct access).

So, let's stay with 1.5 an let's see to get upgraded for 13.2.
--------------------------------------------------------------------------

I think "incompatibility is now what we want at this stage" is a typo
that should be "incompatibility is not what we want at this stage"
because otherwise "let's stay with 1.5" would not make sense.

Dominique Leuenberger,
is my understanding of what you wrote in that mail correct?
Comment 48 Dominique Leuenberger 2013-08-28 15:11:48 UTC
(In reply to comment #47)
> I think "incompatibility is now what we want at this stage" is a typo
> that should be "incompatibility is not what we want at this stage"
> because otherwise "let's stay with 1.5" would not make sense.
> 
> Dominique Leuenberger,
> is my understanding of what you wrote in that mail correct?


Correct.. to fat fingers, too small keyboard.
There is no need for CUPS 1.6 with GNOME 3.10;
Comment 49 Johannes Meixner 2013-08-30 13:12:05 UTC
FYI:

cups-filters OBS submitrequest 196881:
  Renamed cups/banners/* files and cups/data/testprint
  to avoid a file conflict with CUPS which also provides those files.

Ghostscript 9.10 Release Candidate 1
  is available from home:jsmeix:branches:Printing

CUPS 1.7 Release Candidate 1
  is available from home:jsmeix


On my openSUSE 12.3 virtual machine (i586)
with a HP LaserJet 1020 USB printer I run now:

cups-1.7rc1

ghostscript-9.pre10rc1
installing it requires "rpm -Uhv --force" because
"zypper vcmp 9.07 9.pre10rc1" tells "9.07 is newer than 9.pre10rc1"
which is o.k. for me because it avoids an unintended overwrite
of the latest officially released Ghostscript 9.07 by a
release candidate - on the other hand the release candidate can
later simply upgraded to 9.10 because "zypper vcmp 9.10 9.pre10rc1"
tells "9.10 is newer than 9.pre10rc1".

cups-filters-1.0.36
that requires additionally libqpdf13 (its source package is qpdf)


I did the following adjustments:

# cp -p /etc/cups/cupsd.conf /etc/cups/cupsd.conf.backup

# cp /etc/cups/cupsd.conf.rpmnew /etc/cups/cupsd.conf

I disabled all lines in /etc/cups/pstotiff.convs
(strange file from HPLIP - I need to ask upstream what the
 reason behind is - I guess it has something to do with faxing)
otherwise one gets weird filtering e.g. of PostScript input
via pstotiff and imagetopdf (printing works nevertheless).

# systemctl restart cups.service


Printing PostScript, plain text, PDF and PNG works for me
on my local HP LaserJet 1020 USB printer using:

# echo hello | a2ps -1 -o- | lp -d HP_LaserJet_1020

# echo hello | lp -d HP_LaserJet_1020

# lp -d HP_LaserJet_1020 \
 /usr/share/ghostscript/9.10/examples/text_graphic_image.pdf

# lp -d HP_LaserJet_1020 /usr/share/icons/hicolor/256x256/apps/HPmenu.png


Using "grep PID /var/log/cups/error_log" you can see what filters
are run by CUPS for each kind of print job data.
Comment 50 Johannes Meixner 2013-09-06 14:01:24 UTC
FYI:

Ghostscript release 9.10 is available for various SLE and
openSUSE versions via the openSUSE build service projects
"home:jsmeix" and "home:jsmeix:branches:Printing".

For now Ghostscript 9.10 is intentionally not in "Printing"
because it is not fully compatible with our current printing
system (CUPS 1.5.4 without cups-filters) because Ghostscript 9.10
does no longer provide the CUPS filters gstoraster and gstopxl
(see comment#44).

After the openSUSE 13.1 release I will upgrade our printing
system in the openSUSE build service project "Printing"
to CUPS 1.7 plus cups-filters and Ghostscript 9.10.
Comment 51 Johannes Meixner 2013-10-02 11:02:42 UTC
Mainly for my own information:

Since CUPS 1.6 the entries in cupsd.conf were split into two files
- cupsd.conf
- cups-files.conf

Accordingly our SUSE documentation must be updated.

In particular the AutoYaST documentation regarding "Printer"
must be updated again for openSUSE 13.2, see bnc#828859
Comment 52 Johannes Meixner 2013-10-02 11:20:14 UTC
An addendum for comment#49 above at
https://bugzilla.novell.com/show_bug.cgi?id=735404#c49

Regarding
"weird filtering e.g. of PostScript input via pstotiff and imagetopdf":

With HPLIP's default entries in its /etc/cups/pstotiff.convs
------------------------------------------------------------------------------
application/postscript  image/tiff      80       pstotiff
application/pdf image/tiff      80       pstotiff
application/vnd.cups-pdf image/tiff 80 pstotiff
application/vnd.cups-postscript image/tiff 80 pstotiff
------------------------------------------------------------------------------
one gets this weird filtering of PostScript input:
------------------------------------------------------------------------------
# echo hello1 | a2ps -1 -o- | lp -d HP_LaserJet_1020
[stdin (plain): 1 page on 1 sheet]
[Total: 1 page on 1 sheet] sent to the standard output
request id is HP_LaserJet_1020-58 (0 file(s))

# grep -o 'Job 58.*PID.*' /var/log/cups/error_log
Job 58] Started filter /usr/lib/cups/filter/pstotiff (PID 3949)
Job 58] Started filter /usr/lib/cups/filter/imagetopdf (PID 3950)
Job 58] Started filter /usr/lib/cups/filter/foomatic-rip (PID 3951)
Job 58] Started backend /usr/lib/cups/backend/hp (PID 3952)
Job 58] PID 3949 (/usr/lib/cups/filter/pstotiff) exited with no errors.
Job 58] PID 3950 (/usr/lib/cups/filter/imagetopdf) exited with no errors.
Job 58] PID 3951 (/usr/lib/cups/filter/foomatic-rip) exited with no errors.
Job 58] PID 3952 (/usr/lib/cups/backend/hp) exited with no errors.
------------------------------------------------------------------------------

When all entries in its /etc/cups/pstotiff.convs are disabled
------------------------------------------------------------------------------
#application/postscript  image/tiff      80       pstotiff
#application/pdf image/tiff      80       pstotiff
#application/vnd.cups-pdf image/tiff 80 pstotiff
#application/vnd.cups-postscript image/tiff 80 pstotiff
------------------------------------------------------------------------------
plus restart of the cupsd so that it re-reads its *.convs files
one gets back the normal CUPS upstream filtering:
------------------------------------------------------------------------------
# echo hello2 | a2ps -1 -o- | lp -d HP_LaserJet_1020
[stdin (plain): 1 page on 1 sheet]
[Total: 1 page on 1 sheet] sent to the standard output
request id is HP_LaserJet_1020-59 (0 file(s))

# grep -o 'Job 59.*PID.*' /var/log/cups/error_log
Job 59] Started filter /usr/lib/cups/filter/pstopdf (PID 3997)
Job 59] Started filter /usr/lib/cups/filter/pdftopdf (PID 3998)
Job 59] Started filter /usr/lib/cups/filter/foomatic-rip (PID 3999)
Job 59] Started backend /usr/lib/cups/backend/hp (PID 4000)
Job 59] PID 3997 (/usr/lib/cups/filter/pstopdf) exited with no errors.
Job 59] PID 3998 (/usr/lib/cups/filter/pdftopdf) exited with no errors.
Job 59] PID 3999 (/usr/lib/cups/filter/foomatic-rip) exited with no errors.
------------------------------------------------------------------------------

The reason why HPLIP's default entries in its /etc/cups/pstotiff.convs
mess up the normal CUPS upstream filtering is:

When HPLIP adds CUPS filtering rules via a *.convs file
for standard MIME types like application/postscript and
application/vnd.cups-postscript then those rules become part
of the standard CUPS filtering which means those rules
affect all print jobs with that standard MIME types.
In short:
What CUPS filtering happens depends on the MIME types so that
for same MIME types same CUPS filtering happens and
when HPLIP needs different CUPS filtering rules
then HPLIP must use different MIME types.
Comment 53 Till Kamppeter 2013-10-02 14:19:40 UTC
The problem with the pstotiff->imagetopdf filter chain is known and I have fixed the problem in cups-filters 1.0.37. Please update to the newest cups-filters (today I released 1.0.39).
Comment 54 Bernhard Wiedemann 2013-10-09 11:00:14 UTC
This is an autogenerated message for OBS integration:
This bug (735404) was mentioned in
https://build.opensuse.org/request/show/202685 Factory / ghostscript
Comment 55 Johannes Meixner 2013-10-30 14:21:30 UTC
FYI:

The CUPS 1.7.0 release is available from "home:jsmeix".

cups-filters version 1.0.40 is available from "Printing".

They are not yet tested by me.
Comment 56 Johannes Meixner 2013-11-22 14:34:34 UTC
FYI:

https://bugzilla.redhat.com/show_bug.cgi?id=1027317#c4
-------------------------------------------------------------------------
cups-browsed leaks a lot of memory
...
I figured out that cups-browsed from version 1.0.40 does not leak
but 1.0.41 does
-------------------------------------------------------------------------

Currently cups-filters-1.0.42 is not yet released at
http://www.openprinting.org/download/cups-filters/
but cups-filters-1.0-20131122 there contains in its NEWS file:
--------------------------------------------------------------------------
CHANGES IN V1.0.42
...
        - cups-browsed: Fixed several memory leaks by adding missing
          free() calls and removing an unneeded strdup(). Thanks to
          Jaromir Koncicky from Red Hat for the patch (Red Hat bug
          #1027317).
--------------------------------------------------------------------------
Comment 57 Johannes Meixner 2013-11-22 14:55:18 UTC
One more noteworthy change in cups-filters-1.0.42 NEWS file:
--------------------------------------------------------------------------
        - foomatic-rip: Moved foomatic-rip's upstream home from the
          foomatic-filters package to cups-filters, to make it easier
          for distributions to ship and maintain a complete printing
          stack and also to make upstream maintenance and development
          easier.
--------------------------------------------------------------------------

If I understand this correctly, it means that with cups-filters-1.0.42
I could remove our foomatic-filters package. I really appreciate
software package clean-ups!

The only thing that is currently in the foomatic-filters package
is /usr/lib/cups/backend/beh which seems to not have been moved
to cups-filters - but this does not really matter - I could easily
re-add http://www.openprinting.org/download/files/beh
back to our cups-backends package, cf. "rpm -q --changelog cups-backends"
--------------------------------------------------------------------------
* Thu May 28 2009 jsmeix@suse.de
- Removed the beh backend because it is now provided
  in the upgraded foomatic-filters version 4.0.1 package.
--------------------------------------------------------------------------


Till Kamppeter,

perhaps it makes sense to also add the Backend Error Handler
to cups-filters to have an even more complete printing stack?

And if you are intersted, in 2009 I made a "pipe" backend.
It is a wrapper backend for printing to any program.
It forwards the print job data like a pipe into another command.

It is not needed often but for special cases it could help.
Only a few SUSE customers use it.

If you like, feel free to also add it to cups-filters.
It is just a bash script (I like bash programming :-), see

https://build.opensuse.org/package/view_file/Printing/cups-backends/cups-pipe.sh?expand=1
Comment 58 Till Kamppeter 2013-11-22 18:38:24 UTC
Yes, the foomatic-filters package is now discontinued and cups-filters takes its role now with the new included foomatic-rip filter.

The foomatic-filters package contains also beh but my feeling was all the time that no one uses it, especially it does not work with filters which have to run as root, as itself does not run as root. Perhaps it works if one would set beh's permissions to run as root, but then it also runs filters as root which should not run as root. Or one lets beh run as root, but check the filter which it calls and run it unprivileged if its permissions tell it should not run as root. Patches welcome.

It is also written in Perl, but nothing else in the printing stack is written in Perl. It should perhaps be rewritten in C or shell. Also here patches welcome.

Your pipe filter is a good idea, but I see a little missing feature. All CUPS filters/backends get the IPP attributes/options via the 5th command line argument. There is no way in pipe to make use of these, so that you can control the command line being called by pipe by supplying options to your print job.

Also no program which is not explicitly written for the use with pipe uses the PIPE_BACKEND_ARGV[0-6] environment variables, and if you write a program especially for being called with pipe you can directly write a CUPS backend.

Also programs called by pipe run as lp if pipe is installed world-executable and run as root if pipe is installed root-only-executable. So one installed pipe cannot serve both use cases on the same machine.
Comment 60 Johannes Meixner 2014-04-09 16:08:04 UTC
FYI:

CUPS 1.7.1 is available from "home:jsmeix".

cups-filters 1.0.52 is available from "Printing".

They are not thoroughly tested by me.

Check the RPM changelog entries for basic information.
Comment 61 Johannes Meixner 2014-04-24 13:25:31 UTC
Regarding banners and test page:

CUPS banners and the CUPS test page are no longer supported since CUPS >= 1.6. 

The banners and the test page from cups-filters must be used instead.

The CUPS banner files in /usr/share/cups/banners/ and the CUPS testpage /usr/share/cups/data/testprint (which is also a CUPS banner file type)
are basically useless since CUPS >= 1.6 because there is no longer
a filter that can convert the CUPS banner files, see
http://www.cups.org str.php?L4120

Therefore those files will be no longer be provided in the cups RPM.

Since CUPS >= 1.6 only the banner files and testpage in the
cups-filters package work via the cups-filters PDF workflow
and the cups-filters package also provides the matching
bannertopdf filter.
Comment 62 Johannes Meixner 2014-06-26 09:29:50 UTC
FYI:

CUPS 1.7.3 is available from OBS home project "home:jsmeix".

cups-filters 1.0.54 is available from OBS devel project "Printing".

They are not thoroughly tested by me.

Check the RPM changelog entries for basic information.

Regarding packages from "home:jsmeix" and "Printing" read
https://build.opensuse.org/project/show?project=home%3Ajsmeix
and
https://build.opensuse.org/project/show/Printing
Comment 63 Johannes Meixner 2014-09-03 10:26:48 UTC
FYI:
CUPS 1.7.5 is available from OBS home project "home:jsmeix".
cups-filters 1.0.58 is available from OBS devel project "Printing".
See also comment#62 above.
Comment 64 Johannes Meixner 2014-10-14 07:23:34 UTC
*** Bug 900993 has been marked as a duplicate of this bug. ***
Comment 65 Johannes Meixner 2014-10-14 07:37:45 UTC
FYI:

CUPS 2.0.0 with upstream support for systemd socket activation
(cf. bug#857372) does not yet "just work", see for example
https://www.cups.org/str.php?L4497

Furthermore there is the open issue how the systemd unit files
should be named, see the "systemd unit files and service names"
mail thread on the CUPS developer list <cups-devel@cups.org>
http://cups.org/pipermail/cups-devel/2014-October/thread.html
in particular
http://cups.org/pipermail/cups-devel/2014-October/015368.html
http://cups.org/pipermail/cups-devel/2014-October/015369.html
http://cups.org/pipermail/cups-devel/2014-October/015372.html
Comment 66 Ludwig Nussel 2014-10-14 14:39:24 UTC
(In reply to Johannes Meixner from comment #65)
> FYI:
> 
> CUPS 2.0.0 with upstream support for systemd socket activation
> (cf. bug#857372) does not yet "just work", see for example
> https://www.cups.org/str.php?L4497

https://bugzilla.opensuse.org/show_bug.cgi?id=857372#c91

> Furthermore there is the open issue how the systemd unit files
> should be named, see the "systemd unit files and service names"
> mail thread on the CUPS developer list <cups-devel@cups.org>
> http://cups.org/pipermail/cups-devel/2014-October/thread.html
> in particular
> http://cups.org/pipermail/cups-devel/2014-October/015368.html
> http://cups.org/pipermail/cups-devel/2014-October/015369.html
> http://cups.org/pipermail/cups-devel/2014-October/015372.html

How about raising your voice and state that the names they
chose don't fit SUSE either?
Comment 67 Forgotten User dH2Y-YXEfD 2014-10-14 14:59:47 UTC
I just wanted to chime in and say that the "home:jsmeix" repository for Cups 1.75 is absolutely essential to connect to my wireless printer work with Avahi on openSUSE. Many thanks! I wouldn't be able to use openSUSE without this, and I'm probably not the only one. 

In view of different user requirements (some need legacy support in the CUPS 1.5 branch, others need modern but not bleeding-edge support in CUPS 1.75, others will probably need the newest CUPS 2.0), would it be possible to offer an official openSUSE Printing OBS repo with sub-repos for CUPS 1.75 and 2.0? Thanks for taking this into consideration.
Comment 68 Johannes Meixner 2014-10-16 08:25:52 UTC
FYI:
another issue in CUPS 2.0.0 with upstream support for systemd
http://www.cups.org/str.php?L4491
Comment 69 Johannes Meixner 2014-11-12 16:58:43 UTC
Regarding comment#52
"HPLIP's default entries in its /etc/cups/pstotiff.convs
 mess up the normal CUPS upstream filtering":

I submitted a bug report to HPLIP upstream:
https://bugs.launchpad.net/hplip/+bug/1391963
Comment 70 Johannes Meixner 2015-08-31 15:27:33 UTC
In SLES12 we have CUPS 1.7.5 and
in openSUSE Tumbleweed CUPS 2.x.

As of this writing there are no big issues
so that in general CUPS > 1.5.4 plus cups-filters
seems to "just work".