Fix upgrades from grub2 < 1.99-4 (#735259)
grub2 versions older than 1.99-4 had the following in %preun:
# XXX Ugly
rm -f /boot/%{name}/*.mod
rm -f /boot/%{name}/*.img
rm -f /boot/%{name}/*.lst
rm -f /boot/%{name}/device.map
This change tries to work around the damage caused on upgrades, by first
backuping the files and later restoring them after the old packages's
%preun has been run.
Complements the change in 5c9195d
.
https://bugzilla.redhat.com/show_bug.cgi?id=735259
This commit is contained in:
parent
6098d129ab
commit
eb5089f407
29
grub2.spec
29
grub2.spec
@ -18,7 +18,7 @@
|
|||||||
Name: grub2
|
Name: grub2
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 1.99
|
Version: 1.99
|
||||||
Release: 4%{?dist}
|
Release: 5%{?dist}
|
||||||
Summary: Bootloader with support for Linux, Multiboot and more
|
Summary: Bootloader with support for Linux, Multiboot and more
|
||||||
|
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
@ -222,6 +222,30 @@ if [ "$1" = 1 ]; then
|
|||||||
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/grub2-dev.info.gz || :
|
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/grub2-dev.info.gz || :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# grub2 < 1.99-4 removed a number of essential files in postun. To fix upgrades
|
||||||
|
# from the affected grub2 packages, we first back up the files in triggerun and
|
||||||
|
# later restore them in triggerpostun.
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=735259
|
||||||
|
%triggerun -- grub2 < 1:1.99-4
|
||||||
|
# Back up the files before uninstalling old grub2
|
||||||
|
mkdir -p /boot/grub2.tmp &&
|
||||||
|
cp -a /boot/grub2/*.mod \
|
||||||
|
/boot/grub2/*.img \
|
||||||
|
/boot/grub2/*.lst \
|
||||||
|
/boot/grub2/device.map \
|
||||||
|
/boot/grub2.tmp/ || :
|
||||||
|
|
||||||
|
%triggerpostun -- grub2 < 1:1.99-4
|
||||||
|
# ... and restore the files.
|
||||||
|
test ! -f /boot/grub2/device.map &&
|
||||||
|
test -d /boot/grub2.tmp &&
|
||||||
|
mv -f /boot/grub2.tmp/*.mod \
|
||||||
|
/boot/grub2.tmp/*.img \
|
||||||
|
/boot/grub2.tmp/*.lst \
|
||||||
|
/boot/grub2.tmp/device.map \
|
||||||
|
/boot/grub2/ &&
|
||||||
|
rm -r /boot/grub2.tmp/ || :
|
||||||
|
|
||||||
%preun
|
%preun
|
||||||
if [ "$1" = 0 ]; then
|
if [ "$1" = 0 ]; then
|
||||||
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/grub2.info.gz || :
|
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/grub2.info.gz || :
|
||||||
@ -328,6 +352,9 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Sep 03 2011 Kalev Lember <kalevlember@gmail.com> - 1.99-5
|
||||||
|
- Fix upgrades from grub2 < 1.99-4 (#735259)
|
||||||
|
|
||||||
* Fri Sep 02 2011 Peter Jones <pjones@redhat.com> - 1.99-4
|
* Fri Sep 02 2011 Peter Jones <pjones@redhat.com> - 1.99-4
|
||||||
- Don't do sysadminny things in %preun or %post ever. (#735259)
|
- Don't do sysadminny things in %preun or %post ever. (#735259)
|
||||||
- Actually include the changelog in this build (sorry about -3)
|
- Actually include the changelog in this build (sorry about -3)
|
||||||
|
Loading…
Reference in New Issue
Block a user