Hi *,
concurrent access to the rpm database seems to be handled in two
different ways by the rpm versions on the systems we target with desktop
integration:
a) the concurrent access is blocked until the lock can be acquired -
this seems to be the case for the 3.x rpm versions
b) the concurrent access is rejected and rpm stops with an error message
This affects the symlink generation script in the desktop integration
packages. The current solution to this is a loop, which I don't consider
to be a clean approach:
while [ "\$TARGET" == "" ]
do
sleep 2
TARGET=\`rpm -q --qf '%{INSTALLPREFIX}' openofficeorg-core01 2>&1\` &&
ln -snf \$TARGET /etc/%PREFIX
# some rpm versions do not wait for the shared lock
echo \$TARGET | grep '/var/lib/rpm' && TARGET=""
done
The chosen approach to create a scriptlet in /tmp from the postinstall
script does also have the disadvantage to break when using the --root
parameter during install.
Since I have noticed that at least the rpm version which does not block
the concurrent access for me does have the following feature build in:
/bin/rpm --showrc
[..]
rpmlib(ConcurrentAccess) = 4.1-1
package scriptlets may access the rpm database while installing.
I wonder
a) if the observed behavior is directly related to this feature and
b) if an rpm feature can be queried from a postinstall scriptlet, so
that we could stop writing a scriptlet in /tmp on systems where this is
not necessary.
Any help on this greatly appreciated.
Thanks,
Oliver
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]