Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 193987 - Cups upgrade for x86_64 is broken
Summary: Cups upgrade for x86_64 is broken
Alias: None
Product: Fedora
Classification: Fedora
Component: cups
Version: 5
Hardware: x86_64
OS: Linux
Target Milestone: ---
Assignee: Tim Waugh
QA Contact:
Depends On:
Blocks: FC6Target
TreeView+ depends on / blocked
Reported: 2006-06-03 23:10 UTC by Nicola
Modified: 2007-11-30 22:11 UTC (History)
1 user (show)

Fixed In Version: 1.2.1-1.7
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2006-06-20 09:54:10 UTC

Attachments (Terms of Use)

Description Nicola 2006-06-03 23:10:45 UTC
Description of problem:
Latest upgrade for cups x86_64 is broken

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. upgrade FC5 x86_64 to cups-1.2.1-1.2

2. /usr/lib64/cups/ is upgraded to /usr/lib/cups/
3. Executables seem to be x86_64 but they are located in the wrong place.
Actual results:
Some custom modifications, like drivers for Canon printers with provided source
won't work anymore as cups now is located in the wrong place.

Expected results:
Printing should work as usual. Previous version did.

Additional info:

Comment 1 Tim Waugh 2006-06-04 11:30:04 UTC
No, this is the correct place.  They are executables, not libraries, and so do
not need to be in lib64.

In point of fact, I asked the upstream maintainer, Michael Sweet from,
about this issue, and whether /usr/libexec would be a better place -- his
response was that it would, if the various standards actually agreed on whether
it should exist.  Mike requested that our packages use the same locations as the
unpatched cups software: /usr/lib/cups/*.

Comment 2 Nicola 2006-06-04 13:24:41 UTC
All the executables were in the same /usr/lib64/cups place, including
the former cups-1.1.23-30.2.x86_64.
Now with the latest version someone decided to put cups instead in /usr/lib/cups
thus breaking some functionality, as I've written.
In /usr/lib/cups/filter there are several filters compiled for x86_64, its
location is illogical at least.

Breaking functionality is always a bad thing. The "corrected" package should
always issue a warning after such a drastic change, and should copy the existing
filters to the new location. 
What will happen to non experienced users when they discover their printer won't
work anymore?

Comment 3 Tim Waugh 2006-06-08 10:56:16 UTC
Please try this test update:

You should be able to fetch it using this command, as root:

  yum --enablerepo=updates-testing update 'cups*'

Comment 4 Paul Wayper 2006-06-14 06:21:19 UTC
There are two other problems with this change:

Firstly, cups still (AFAICT) looks in /usr/lib64/cups/backend for the drivers,
despite them being in /usr/lib/cups/backend.  I can symlink the latter into the
former and get printing working, but this is still broken as designed.

Secondly, shouldn't 'executables' be in something like '/usr/share/cups/backend'
rather than '/usr/lib' at all?  Isn't this patch just a very hasty, badly-made
decision overall?

Comment 5 Tim Waugh 2006-06-14 08:48:28 UTC
1. No, it only looks in /usr/lib64/cups/backend if the sought backend is not
present in the correct directory, /usr/lib/cups/backend.  At least, that's the
idea -- are you seeing different behaviour than I am?

2. Executables should certainly not be in /usr/share, which might be shared
across different architectures!  No, /usr/lib is perfectly fine for executables
(libraries would be a different matter!).  My first choice would be /usr/libexec
(which is probably what you mean rather than /usr/share?), but in the interests
of compatibility with other distributions -- and the availability of future 3rd
party drivers to all distributions -- we will follow the upstream decision here.

Comment 6 Paul Wayper 2006-06-15 02:14:39 UTC
1) It was in 1.2.1-1.2, but in 1.2.1-1.7 (which I upgraded to today) it's fixed

2) OK, /usr/bin/cups/backend then.  I'm no distro lawyer, but /usr/lib is for
libraries IMNSHO :-)

3) I need to submit a bug on bugzilla to stop it wrapping lines so stupidly!

Comment 7 Tim Waugh 2006-06-20 09:54:10 UTC
Regarding (2): really, /usr/lib is the best place to fit within the upstream
constraints.  The point really is to make sure we are compatible with other
distributions for 3rd party drivers, and we do that by following the upstream
behaviour.  By all means talk to the upstream CUPS developers to get them to use
/usr/libexec instead; as I mentioned earlier, I already tried this myself.

Thanks for testing.

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