please tag emacs-22_0_990-1_fc7 to fc7-final

Chip Coldwell coldwell at redhat.com
Tue May 22 20:28:50 UTC 2007


On Tue, 22 May 2007, Chuck Anderson wrote:

> 3. Fix the scriptlets in emacs-22.0.99 to that a /usr/bin/emacs will 
> exist after upgrades.

This is more complicated that it seems.  Repeating what I just posted
to rel-eng:

The old package claims to own /usr/bin/emacs:

$ rpm -qlp emacs-22.0.95-1.fc7.x86_64.rpm 
/usr/bin/emacs
/usr/bin/emacs
/usr/bin/emacs-22.0.95
/usr/bin/emacs-22.0.95-x
/usr/bin/emacs-x
/usr/libexec/emacs
/usr/libexec/emacs/22.0.95
/usr/libexec/emacs/22.0.95/x86_64-redhat-linux-gnu
/usr/share/applications/gnu-emacs.desktop
/usr/share/pixmaps/emacs.png

the new package does not (it is a side effect of running alternatives
in the %post script):

$ rpm -qlp emacs-22.0.990-1.fc7.x86_64.rpm 
/usr/bin/emacs-22.0.990
/usr/share/applications/gnu-emacs.desktop

The scriptlets are run in the following order:

%pre of new package
(package install)
%post of new package
%preun of old package
(removal of old package)
%postun of old package

So ... the new package in its %post scriptlet could remove the old
symlink in /usr/bin (emacs -> emacs-22.0.95) and run alternatives to
install a new one, but removal of the old package happens afterwards
and always removes the symlink.

The only hope would be to put something in the %posttrans scriptlet to
check for this possibility and fix it up.

Note that if you remove the old emacs package first, then install the
new one in two separate rpm transactions, you will get the symlink as
expected.

Chip

-- 
Charles M. "Chip" Coldwell
Senior Software Engineer
Red Hat, Inc
978-392-2426




More information about the Fedora-maintainers mailing list