Bug 680202

Summary: wrong acroread requires
Product: Red Hat Enterprise Linux 6 Reporter: Ondrej Moriš <omoris>
Component: acroreadAssignee: Marek Kašík <mkasik>
Status: CLOSED ERRATA QA Contact: desktop-bugs <desktop-bugs>
Severity: medium Docs Contact:
Priority: high    
Version: 6.0CC: borgan, mclasen, pmatilai, syeghiay, tpelka, vbenes
Target Milestone: rcKeywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: acroread-9.4.2-5.el6 Doc Type: Bug Fix
Doc Text:
With a recent update, the OpenLDAP libraries have been moved to different directory. This update changes the way Adobe Reader links to these libraries.
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-05-19 14:31:03 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 693716    

Description Ondrej Moriš 2011-02-24 16:33:24 UTC
Description of problem:

Acroread requires some libs to be placed in specific directory:

# repoquery --requires acroread
...
/usr/lib/libcups.so.2 (BAD)
/usr/lib/liblber-2.4.so.2 (BAD)
/usr/lib/libldap-2.4.so.2 (BAD)
libGL.so.1 (OK)
libGLU.so.1 (OK)
...

This is a problem when libraries are moved from /usr/lib to /lib. This is happening in openldap in 6.1, where both liblber-2.4.so.2 and libldap-2.4.so.2 are being moved from /usr/lib into /lib (see BZ#548475). 

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

acroread-9.4.2-3.el6_0

How reproducible:

Always.

Steps to Reproduce:

1. Install openldap-2.4.19-15.el6 (version from 6.0).
2. Install acroread.
3. Try to upgrade openldap to openldap-2.4.23-10.el6 (version from 6.1).
  
Actual results:

error: Failed dependencies:
	/usr/lib/liblber-2.4.so.2 is needed by (installed) acroread-9.4.2-3.el6_0.i686
	/usr/lib/libldap-2.4.so.2 is needed by (installed) acroread-9.4.2-3.el6_0.i686

Additional info:

Notice that no other packages rely on full path:

# repoquery --whatrequires /usr/lib/liblber-2.4.so.2
acroread-0:9.4.2-3.el6_0.i686
# repoquery --whatrequires /usr/lib/libldap-2.4.so.2
acroread-0:9.4.2-3.el6_0.i686

Comment 1 Marek Kašík 2011-02-25 14:09:14 UTC
Hi,

this will be solved by fix of the bug #680139. Therefore I'm closing this as duplicate of the bug.

Regards

Marek

*** This bug has been marked as a duplicate of bug 680139 ***

Comment 2 Ondrej Moriš 2011-02-27 11:43:13 UTC
Marek, fix of BZ#680139 will not solve aforementioned _upgrade_ issue and one has to remove acroread before upgrading openldap. I am wondering why specfile contains these lines:

BuildRequires: %{_libdir}/%{libldap_library}
BuildRequires: %{_libdir}/%{liblber_library}
BuildRequires: %{_libdir}/libcups.so.2

Isn't this a "bad practice"? Why it does not contain the following?

BuildRequires: openldap
BuildRequires: cups-libs

Removing these subtle BuildRequires would solve upgrading issue better.

Comment 3 Marek Kašík 2011-03-01 09:16:10 UTC
Hi Ondrej,

the problem with requiring openldap and cups-libs is that even 64bit versions satisfy the requirement. It is probably not a problem with "BuildRequires" (since it is exclusive arch and it should built on a pure 32bit system) but it can be problem with "Requires".
I found out that it is not really needed to have there the directory in the requires so I will remove it when the next quarterly security update will be released. But the name of the library has to stay there (so that we require 32bit version of those libraries).
The issue with upgrading should be solved by new version of openldap which places symlinks into /usr/lib/ (this version will be in Red Hat Enterprise Linux 6.1).

Regards

Marek

Comment 4 Panu Matilainen 2011-04-08 07:38:51 UTC
Placing extra symlinks to libraries is rather suspect from ldconfig POV - I'm not sure whether it's "legal" at all and in any case the current ldconfig does not like it at all, see bug 693716.

There are other, better ways of ensuring the 32bit library dependency: either just depend on the 32bit soname provides, "liblber-2.4.so.2" etc instead of the path (64bit library provides are different so there's no mixup), or alternatively in RHEL 6 you can use %{_isa} requires (see http://rpm.org/wiki/PackagerDocs/ArchDependencies): you could use hardwired "openldap(x86-32)" and "cups-libs(x86-32)" as dependencies, or since it's ExclusiveArch i686 anyway, "openldap%{_isa}" and cups-libs%{_isa} would achieve the same.

Comment 11 Martin Prpič 2011-04-18 13:04:38 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
With a recent update, the OpenLDAP libraries have been moved to different directory. This update changes the way Adobe Reader links to these libraries.

Comment 12 errata-xmlrpc 2011-05-19 14:31:03 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2011-0813.html