fun with obsoletes in a weird way

Greg_Swift at aotx.uscourts.gov Greg_Swift at aotx.uscourts.gov
Wed Aug 4 20:09:32 UTC 2010


We are moving away from using a custom rolled java package (yay!), but with
the java package from RH there is no /usr/java/jdk1.6.0 path.  My
developers have a pending ticket to stop referencing this in favor of using
the /etc/alternatives/java_sdk symlink instead, but its not going to happen
right this second since references to the path are so prolific.  Thats the
background, here's the issue.

In the package (custom local, not the RH package) that is being configured
to 'obsolete' the old custom java package, we are trying to place
the /usr/java/jdk1.6.0 symlink [to the /etc/alternatives path].  Initially,
this was getting done in the %post section, but now we are trying to do it
via %install.  Either way we run into ordering issues.  With it in %install
we get a cpio error because it can't place the symlink because the path
still exists since the old package hasn't been removed yet (but rpm doesn't
conflict for some reason?).

Error unpacking rpm package our-package-6.0.26-5.x86_64
error: unpacking of archive failed on file /usr/java/jdk1.6.0: cpio: rename

Previously, using a set of commands in the %post section it did what we
wanted, up until it erased the obsoleted package.   Once that occurred
the /usr/java/jdk1.6.0 went with it.  This is why we tried the slightly
more proper method of having the package properly own the symlink, which
obviously didn't help.

I'm thinking we aren't gonna get anywhere with this, but I'm looking to see
if anyone has any suggestions?

For the record at http://rpm.org/wiki/Problems/Upgrade there is a section
called "Compatibility symlinks and replacement of directory by file" that
seems to be related to this.

thanks

greg



More information about the Rpm-list mailing list