----- Original Message ----- > From: Jeff Johnson <n3npq@xxxxxxx> > To: John H <uothrawn@xxxxxxxxx> > Cc: > Sent: Tuesday, September 27, 2011 11:31 AM > Subject: Re: symlinks deleted on upgrade, but not during reinstall > Good, you've diagnosed most of what is happening already. > > Try strace -f (to follow into all the helpers) and look for unlink calls from > /sbin/ldconfig removing the symlink(s). > > Expect a huge amount of spewage from strace. You can try adding "-e > unlink", but > then you will lose the other context thyat is often useful from starching > through > a hugely complex operation involving multiple processes. Heres what it looks like is happening: the install of my openldap-2.4 is creating this symlink properly: /usr/lib/libldap-2.3.so.0 -> libldap-2.4.so.2 In the %post install of my openldap-2.4, ldconfig is reassigning this symlink to point to "libldap-2.3.so.2.31". Then, in the uninstall of openldap-2.3, libldap-2.3.so.2.31 is removed, but in its %post section ldconfig is removing my symlink (/usr/lib/libldap-2.3.so.0) because it no longer has a valid target. How can I get ldconfig to not mess with my files ? > What's likely happening is that running /sbin/ldconfig is removing the > symlinks. > > And the like (just guessing) reason is that the soname within the library > executable > disagrees with the symlinks you are attempting to package. > > Use readelf -a to display the internal SONAME. readelf -a gives an SONAME of libldap-2.4.so.2 for my libldap-2.3.so.0 symlink (as expected, given its a symlink). For the openldap-2.3.43 package, the SONAME is libldap-2.3.so.0. As one would expect... Is this a concern? LDAP-based login functionality works if I have a symlink even though the SONAME is wrong. Thanks. > > > On Sep 27, 2011, at 10:34 AM, John H wrote: > >> I'm using CentOS 5.6 32bit with the stock OpenLDAP 2.3.43 and >> attempting to build an RPM for OpenLDAP 2.4.23. A lot of things in CentOS 5.6 >> depend on libldap-2.3.so.0 (among other 2.3 libs), so in my 2.4 specfile, I am >> creating a symlink in my %install section: >> >> ln -s libldap-2.4.so.3 $RPM_BUILD_ROOT/usr/lib/libldap-2.3.so.0 >> >> >> And adding a Provides tag of "libldap-2.3.so.0". >> >> However, whenever I upgrade the package (rpm -Uvh), the symlink isn't >> installed. I can then reinstall it, and have the symlink be available. My %files >> section has these definitions, so the symlink is definitely getting into the >> RPM: _______________________________________________ Rpm-list mailing list Rpm-list@xxxxxxxxxxxxx http://lists.rpm.org/mailman/listinfo/rpm-list