Re: replacing folders with symlinks (pre vs pretrans)

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

 



On 05/28/2013 06:50 PM, Stanislav Ochotnicky wrote:
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?

%pre was never correct for the task because it means rpm wont know about the change, which can cause side-effects like files from the new package removed on cleanup of the older package, junk left behind etc. What exactly happens depends on the details.

And yes, rpm >= 4.11 enforces use of %pretrans for the purpose as it detects the issue early on, whereas older versions just merrily go ahead and likely ends up making a mess during the transaction.

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.

Yup, something like that.

	- Panu -


[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


--
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel





[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