File conflict when upgrading package

Adam Williamson awilliam at
Mon Nov 18 21:31:32 UTC 2013

On Mon, 2013-11-18 at 00:44 +0100, Mattias Ellert wrote:
> sön 2013-11-17 klockan 22:12 +0100 skrev Sandro Mani:
> > Upgrading from xflr5-6.09.05-4.fc21.x86_64 to xflr5-6.09.05-5.fc21.x86_64 however fails with
> > Transaction check error:
> >     file /usr/share/applications/xflr5.desktop from install of xflr5-6.09.05-5.fc21.x86_64 conflicts with file from
> > package xflr5-6.09.05-4.fc21.x86_64
> You are replacing a directory with an ordinary file. The requires a
> %pretrans script. %pretrans scripts must be written in lua:
> %pretrans -p <lua>
> st = posix.stat("%{_datadir}/applications/%{name}.desktop")
> if st and st.type == "directory" then
>   os.execute("rm -rf %{_datadir}/applications/%{name}.desktop")
> end

We had more or less this conversation a couple of months back in the
context of unbundling webapps. At the time it became clear we really
don't have any best practice for lua snippets for these cases (file ->
directory, directory -> file). I was hoping someone was gonna come up
with something, but no-one has. I've seen different snippets of vastly
different complexity suggested by different people...
Adam Williamson
Fedora QA Community Monkey
IRC: adamw | Twitter: AdamW_Fedora | XMPP: adamw AT happyassassin . net

More information about the devel mailing list