Quoting Panu Matilainen (2012-09-21 10:17:27)
A directory (empty or not) can't be automatically replaced by
anything
else (symlink or otherwise) in the existing rpm versions. If absolutely
necessary, it can be accomplished by doing the necessary renames and
symlinks in "%pretrans -p <lua>" scriptlet, but that should be only seen
as the last resort as its not exactly a safe operation.
This used to work in %pre scriptlet as well. It seems like RPM is now doing some
additional checks and it will not even get to the point of %pre scriptlet. As
far as I can see for F17/F18 %pre scriptlet will work, but F19+ %pretrans has to
be used, correct?
Since I *knew* we used %pre for this exact problem before, I have used it and
it broke upgrade paths[1]. I assume just rewriting %pre[2] into following
%pretrans will work:
for key, dir in pairs({"boot", "conf"}) do
path = "%{_datadir}/%{name}/" .. dir
if posix.readlink(path) then
os.remove(path)
end
end:
It certainly seemed to work now, but I wonder if I am just missing something else.
[1]
https://admin.fedoraproject.org/updates/FEDORA-2013-9207/xmvn-0.5.0-2.fc19
[2]
http://pkgs.fedoraproject.org/cgit/xmvn.git/tree/xmvn.spec#n117
--
Stanislav Ochotnicky <sochotnicky(a)redhat.com>
Software Engineer - Developer Experience
PGP: 7B087241
Red Hat Inc.
http://cz.redhat.com