RE: Replacing Vendor rpms.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks Frank.

I should probably rewind a bit more.

I was in the process of creating a some new LDAP servers to replace our
rather ancient ones.  As an experiement ( and a learning experience ), I
figured I'd grab the latest OpenLDAP source and try to build/package it
for deployment through our WebJob ( http://webjob.sourceforge.net )
servers.  But, I needed a bunch of other prereq's ( openssl, berkleydb,
etc ).  The only reason I picked OpenSSL for my example is that it was
the first one I've tried to build. ( For sake of discussion, the OpenSSL
package we currently have is from RH 4.0 EL Update 3 )

When doing the 'rpm -U', it only complained about libcrypto.so.4 and
libssl.so.4

As in:
libssl.so.4 is needed by (installed) nmap-3.70-1.i386

So, upon investigation and finding it was ( and now have been told it
isn't that simple ) a simple symlink, I figured the package dependencies
where designed around the symlink as the dependency so that upgrades to
the actual .so's were easy enough to implement.  I checked against it
with that I thought would verify that:

ldd /usr/bin/nmap
    libssl.so.4 => /lib/libssl.so.4 (0x006ea000)
    libcrypto.so.4 => /lib/libcrypto.so.4 (0x06cf2000)

Again, it looked like ( to me and my limited knowledge ), that simply
changing the .so behind the curtain ( so to speak ) would allow nmap and
the various other programs to link in the newer SSL libraries upon
runtime.  Unfortunately, I guess that isn't the case and I apologize for
not exactly understanding when you state "The soname of the libraries
match the symlink name".

And yeah, I totally agree with you that nothing about my RPM of
openssl-0.9.8c is any better than RH's RPM of openssl-0.9.7k or any
other packaged openssl version > 0.9.7, but I was using it more as a
learning experience than anything and when I couldn't understand the
semantics behind why the upgrade wouldn't take place ( after all, I WAS
providing the file RPM was complaining about :D Gosh! ), I figured that
in the future when I do have to create RPM's for applications (
proprietary and otherwise ) and if I ever run into this same issue, I
would know what to do. :)

--
sh

-----Original Message-----
From: rpm-list-bounces@xxxxxxxxxx [mailto:rpm-list-bounces@xxxxxxxxxx]
On Behalf Of Frank Cusack
Sent: Thursday, September 14, 2006 6:26 PM
To: RPM Package Manager
Subject: Re: Replacing Vendor rpms.

On September 14, 2006 5:50:12 PM -0700 Steven Hajducko
<steven.hajducko@xxxxxxxxxxxxxxxxxx> wrote:
> Hi,
>
> In an effort to clean up some of our software installs and upgrade 
> applications in the same stroke, I'm trying to compile and build some 
> RPMs for various applications.
>
> At this point, I've gotten the build process down where I can actually

> compile/install my RPM, however, I want to get rid of the vendor's RPM

> in the process.
>
> So, for example, we are installing our own compiled openssl-0.9.8c to 
> replace the RedHat openssl-0.9.7a rpm on some our systems.  However, 
> quite a few of RedHat's other RPM's require 'libcrypto.so.4' and 
> 'libssl.so.4', which are just links to the actual shared ssl libs (
> libcrypto.so.0.9.7 and libssl.so.0.9.8 ).

They are not just symlinks.  Well they are, but there's more to it.
The soname of the libraries match the symlink name.  If you just build
0.9.8c without setting the soname like RH, you'll break all apps which
were built against the RH libs.

> In my %install section, I create the links necessary and I have them 
> specified in my %files section.  If I do a 'rpm -qpl' on my RPM file, 
> I see the libcrypto.so.4 and libssl.so.4 files listed, however, I'm 
> not sure how I'm supposed to be able to get my package to actually
'upgrade'
> the current package on the system.  I could just --force, but I want 
> to try and keep this as clean as possible.

I assume the problem is that you tried to do 'rpm -U' and it failed.
This is because your new rpm doesn't provide the same libs (sonames)
that the old one did, and some apps depend on it.  To fix it, fix the
soname problem.

But I'd take a step back and ask why you feel you need to change out the
RH rpms.  Your 0.9.8c is almost certainly not "better" than the RH
0.9.7a in any meaningful way.  RH frequently (and horribly
unfortunately) patches packages to include fixes from newer versions
without updating the version number. As best as I can figure out, they
do this because
1) they pull patches from CVS (gotta be on the bleeding edge all the
time, you know, nothing else will do) before packages actually get a
version bump, and/or 2) they generate fixes themselves which later make
it upstream.  In both cases they then fail to keep pace when the
upstream version is bumped, probably to "save" maintenance effort.

Of course if you ARE doing something special (like including IDEA for
use outside the US) then ignore my criticism. :-)

-frank

_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/rpm-list

_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/rpm-list

[Index of Archives]     [RPM Ecosystem]     [Linux Kernel]     [Red Hat Install]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Red Hat]     [Gimp]     [Yosemite News]     [IETF Discussion]

  Powered by Linux