openSUSE:Update Bootloader RPM Macros

Jump to: navigation, search
This article describes rpm macros used for updating bootloader in %post and %posttrans scripts

The update-bootloader-rpm-macros package is used to provide macros for rpm scripts in order to improve the efficiency by leveraging the %posttrans to perform the update at end of transaction instead in each and every package that accumulates time doing the same thing. Also the macros help in making the life easier by hiding the complexity and the result is also less error prone.

Build Requirement

You should add :

BuildRequires: update-bootloader-rpm-macros

as Build Requires.

Requires

Add

%{?update_bootloader_requires}

to ensure the needed dependencies are added to your package

Install Bootloader

Add following macros to your rpm scripts if you want to (re)install any bootloader, that is it will not check currently installed loader type before running update-bootloader or similar agents to update it.

%post
%update_bootloader_reinit_post
%posttrans
%update_bootloader_posttrans

Add following macros to your rpm scripts if you want to (re)install only specified bootloaders, that is it will check currently installed loader type against the specified one, and will only update if they matches.

For example, this will make sure only to update grub2 boot loader

%post
%update_bootloader_check_type_reinit_post grub2
%posttrans
%update_bootloader_posttrans

You could also specify more than one bootloader type

%post
%update_bootloader_check_type_reinit_post grub2 grub2-efi
%posttrans
%update_bootloader_posttrans

Note, you don't have to bother with updating bootloader config to line up with updated bootloader image, the macro will do that for you to ensure compatibility between version of config and binary.

Update Bootloader Config

Similar to install bootloader, you could also update bootloader config in your rpm script. Add following macro if you want to update any bootloader config.

%post
%update_bootloader_refresh_post
%posttrans
%update_bootloader_posttrans

The following rpm script will update grub2 and grub2-efi config

%post
%update_bootloader_check_type_refresh_post grub2 grub2-efi
%posttrans
%update_bootloader_posttrans