Bug 241290 - RPM Upgrade Removes Symbolic Links
Summary: RPM Upgrade Removes Symbolic Links
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: rpm
Version: 3
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Panu Matilainen
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-05-24 21:05 UTC by Ben Lentz
Modified: 2007-11-30 22:12 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-09-12 12:46:55 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Ben Lentz 2007-05-24 21:05:42 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

Description of problem:
I have user-created openssl RPM based on the openssl spec file contained in the vendor's tarball. Everything works as expected, except that when the package is set to upgrade RPM removes the symbolic link for /lib/libssl.so.4 and /lib/libcrypto.so.4 instead of leaving it alone. If the existing openssl RPM is removed and the new one installed fresh, the symbolic links are installed correctly.

The spec file is configured to include the symbolic links:
/lib/libssl.so.4 -> /lib/libssl.so.0.9.8e
/lib/libcrypto.so.4 -> /lib/libcrypto.so.0.9.8e

Using the glob:
%attr(0755,root,root) /%{_lib}/*.so.{soversion}

But when an upgrade is performed, these files go missing.

Ironically, the symbolic links:
/usr/lib/libssl.so -> /lib/libssl.so.0.9.8e
/usr/lib/libcrypto.so -> /lib/libcrypto.so.0.9.8e

Using the glob:
%attr(0755,root,root) %{_libdir}/*.so*

Work perfectly when an upgrade is performed.

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

How reproducible:
Always


Steps to Reproduce:
Upgrade scenario (fails):
1. rpm -e openssl openssl-devel --nodeps
2. rpm -ivh openssl-0.9.7a-42.2.i686.rpm openssl-devel-0.9.7a-42.2.i386.rpm
3. rpm -Uvh openssl-0.9.8e-1.i386.rpm openssl-devel-0.9.8e-1.i386.rpm
4. rpm -V openssl
Output:
missing /lib/libcrypto.so.4
missing /lib/libssl.so.4
<exit status 1>

Reinstallation scenario (successful):
1. rpm -e openssl openssl-devel --nodeps
2. rpm -ivh openssl-0.9.8e-1.i386.rpm openssl-devel-0.9.8e-1.i386.rpm
3. rpm -V openssl
Output:
<nothing, exit status 0>

Actual Results:
missing /lib/libcrypto.so.4
missing /lib/libssl.so.4
<exit status 1>

Expected Results:
<nothing, exit status 0>

Additional info:
I realize that supporting a user-created RPM for an old version of Fedora Core probably isn't top priority, but I can't seem to figure out from the available documentation why RPM would be swallowing these files during an upgrade.

Comment 1 Red Hat Bugzilla 2007-08-21 05:34:26 UTC
User pnasrat's account has been closed

Comment 2 Panu Matilainen 2007-08-22 06:31:40 UTC
Reassigning to owner after bugzilla made a mess, sorry about the noise...

Comment 3 Panu Matilainen 2007-09-12 12:46:55 UTC
Most likely it's ldconfig that's removing your symlinks, possibly because you're
hitting a bug in rpm's ldconfig optimisation (there are some cases where it
fails to execute one final ldconfig while needed). If that's the case then
manual 'ldconfig' after the upgrade should fix it, from the spec you can work
around by moving the ldconfig calls to %post etc body instead of using it as
"interpreter", ie

%post
/sbin/ldconfig

..instead of the typical

%post -p /sbin/ldconfig

In any case, WONTFIX for long since EOL'ed FC3.

Comment 4 Ben Lentz 2007-09-12 13:43:49 UTC
Wow, thanks for the great information, I'll give this a shot.


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