Re: File conflict when upgrading package

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/18/2013 10:27 AM, Florian Weimer wrote:
On 11/18/2013 12:44 AM, 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

Wow.  Shouldn't RPM support this out of the box?

Should? Sure, it seems like an obvious thing on the surface, but replacing directories within a transaction is very complicated due to removals happening after installs (and rpm's file fingerprinting semantics).

The new thing here is that rpm >= 4.11 detects and reports the (unsupported) attempt to replace a directory with something else as a conflict, previously it just barfed up with "cpio: rename failed - Is a directory" error in middle of transaction.

An easier-than-pretrans-hack workaround is to just use a different filename for the file replacing the directory.

	- Panu -
--
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux