Compare commits
5 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aa4ddbd63f |
||
|
|
fd37fff732 |
||
|
|
37f094c099 |
||
|
|
6fadbea615 |
||
|
|
f399c55bb7 |
3 changed files with 87 additions and 16 deletions
33
95-kernel-hooks.install
Executable file
33
95-kernel-hooks.install
Executable file
|
|
@ -0,0 +1,33 @@
|
|||
#!/usr/bin/bash
|
||||
|
||||
if ! [[ $KERNEL_INSTALL_MACHINE_ID ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
COMMAND="$1"
|
||||
KERNEL_VERSION="$2"
|
||||
BOOT_DIR_ABS="$3"
|
||||
|
||||
# If $BOOT_DIR_ABS exists, some other boot loader is active.
|
||||
[[ -d "$BOOT_DIR_ABS" ]] && exit 0
|
||||
|
||||
run_hooks()
|
||||
{
|
||||
local f
|
||||
local files="$1"
|
||||
for f in $files ; do
|
||||
[ -x "$f" ] || continue
|
||||
"$f" "$KERNEL_VERSION" "/boot/vmlinuz-$KERNEL_VERSION"
|
||||
done
|
||||
}
|
||||
|
||||
case "$COMMAND" in
|
||||
add)
|
||||
run_hooks "/etc/kernel/postinst.d/*[^~] /etc/kernel/postinst.d/$KERNEL_VERSION/*[^~]"
|
||||
;;
|
||||
remove)
|
||||
run_hooks "/etc/kernel/prerm.d/*[^~] /etc/kernel/prerm.d/$KERNEL_VERSION/*[^~]"
|
||||
;;
|
||||
*)
|
||||
exit 0
|
||||
esac
|
||||
34
grubby-bls
34
grubby-bls
|
|
@ -218,8 +218,20 @@ expand_var() {
|
|||
echo $var
|
||||
}
|
||||
|
||||
has_kernelopts()
|
||||
{
|
||||
local args=${bls_options[$1]}
|
||||
local opts=(${args})
|
||||
|
||||
for opt in ${opts[*]}; do
|
||||
[[ $opt = "\$kernelopts" ]] && return 0
|
||||
done
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
get_bls_args() {
|
||||
local args=${bls_options[$i]}
|
||||
local args=${bls_options[$1]}
|
||||
local opts=(${args})
|
||||
|
||||
for opt in ${opts[*]}; do
|
||||
|
|
@ -473,16 +485,32 @@ update_bls_fragment() {
|
|||
local remove_args=$1 && shift
|
||||
local add_args=$1 && shift
|
||||
local initrd=$1 && shift
|
||||
local opts
|
||||
|
||||
if [[ $indexes = "-1" ]]; then
|
||||
print_error "The param $(get_prefix)${param} is incorrect"
|
||||
fi
|
||||
|
||||
if [[ $param = "ALL" && $bootloader = grub2 ]] && [[ -n $remove_args || -n $add_args ]]; then
|
||||
local old_args="$(grub2-editenv "${env}" list | grep kernelopts | sed -e "s/kernelopts=//")"
|
||||
opts="$(update_args "${old_args}" "${remove_args}" "${add_args}")"
|
||||
grub2-editenv "${env}" set kernelopts="${opts}"
|
||||
elif [[ $bootloader = grub2 ]]; then
|
||||
opts="$(grub2-editenv "${env}" list | grep kernelopts | sed -e "s/kernelopts=//")"
|
||||
fi
|
||||
|
||||
for i in ${indexes[*]}; do
|
||||
if [[ -n $remove_args || -n $add_args ]]; then
|
||||
local old_args="$(get_bls_args "$i")"
|
||||
local new_args="$(update_args "${old_args}" "${remove_args}" "${add_args}")"
|
||||
set_bls_value "${bls_file[$i]}" "options" "${new_args}"
|
||||
|
||||
if [[ $param != "ALL" || ! "$(has_kernelopts "$i")" ]]; then
|
||||
set_bls_value "${bls_file[$i]}" "options" "${new_args}"
|
||||
fi
|
||||
|
||||
if [[ $bootloader = grub2 && ! "$(has_kernelopts "$i")" && $opts = $new_args ]]; then
|
||||
set_bls_value "${bls_file[$i]}" "options" "\$kernelopts"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n $initrd ]]; then
|
||||
|
|
@ -706,7 +734,7 @@ while [ ${#} -gt 0 ]; do
|
|||
shift
|
||||
done
|
||||
|
||||
if [[ -z $update_kernel ]] && [[ -n $args || -n $remove_args ]]; then
|
||||
if [[ -z $update_kernel && -z $kernel ]] && [[ -n $args || -n $remove_args ]]; then
|
||||
print_error "no action specified"
|
||||
fi
|
||||
|
||||
|
|
|
|||
36
grubby.spec
36
grubby.spec
|
|
@ -1,6 +1,6 @@
|
|||
Name: grubby
|
||||
Version: 8.40
|
||||
Release: 27%{?dist}
|
||||
Release: 32%{?dist}
|
||||
Summary: Command line tool for updating bootloader configs
|
||||
License: GPLv2+
|
||||
URL: https://github.com/rhinstaller/grubby
|
||||
|
|
@ -13,6 +13,7 @@ Source1: grubby-bls
|
|||
Source2: grubby.in
|
||||
Source3: installkernel.in
|
||||
Source4: installkernel-bls
|
||||
Source5: 95-kernel-hooks.install
|
||||
Patch0001: 0001-remove-the-old-crufty-u-boot-support.patch
|
||||
Patch0002: 0002-Change-return-type-in-getRootSpecifier.patch
|
||||
Patch0003: 0003-Add-btrfs-subvolume-support-for-grub2.patch
|
||||
|
|
@ -80,18 +81,7 @@ sed -e "s,@@LIBEXECDIR@@,%{_libexecdir}/grubby,g" %{SOURCE2} \
|
|||
> %{buildroot}%{_sbindir}/grubby
|
||||
sed -e "s,@@LIBEXECDIR@@,%{_libexecdir}/installkernel,g" %{SOURCE3} \
|
||||
> %{buildroot}%{_sbindir}/installkernel
|
||||
|
||||
%post
|
||||
if [ "$1" = 2 ]; then
|
||||
arch=$(uname -m)
|
||||
if [[ $arch == "s390x" ]]; then
|
||||
command=zipl-switch-to-blscfg
|
||||
else
|
||||
command=grub2-switch-to-blscfg
|
||||
fi
|
||||
|
||||
$command --backup-suffix=.rpmsave &>/dev/null || :
|
||||
fi
|
||||
install -D -m 0755 -t %{buildroot}%{_prefix}/lib/kernel/install.d/ %{SOURCE5}
|
||||
|
||||
%package deprecated
|
||||
Summary: Legacy command line tool for updating bootloader configs
|
||||
|
|
@ -117,6 +107,7 @@ current boot environment.
|
|||
%attr(0755,root,root) %{_sbindir}/grubby
|
||||
%attr(0755,root,root) %{_libexecdir}/installkernel/installkernel-bls
|
||||
%attr(0755,root,root) %{_sbindir}/installkernel
|
||||
%attr(0755,root,root) %{_prefix}/lib/kernel/install.d/95-kernel-hooks.install
|
||||
%{_mandir}/man8/[gi]*.8*
|
||||
|
||||
%files deprecated
|
||||
|
|
@ -132,6 +123,25 @@ current boot environment.
|
|||
%{_mandir}/man8/*.8*
|
||||
|
||||
%changelog
|
||||
* Fri Sep 13 2019 Javier Martinez Canillas <javierm@redhat.com> - 8.40-32
|
||||
- Don't execute the zipl-switch-to-blscfg script in %%post scriptlet
|
||||
Related: rhbz#1748348
|
||||
|
||||
* Fri Jun 21 2019 Javier Martinez Canillas <javierm@redhat.com> - 8.40-31
|
||||
- Add a kernel-install plugin to execute hook scripts in /etc/kernel/
|
||||
Resolves: rhbz#1696202
|
||||
|
||||
* Thu Mar 21 2019 Javier Martinez Canillas <javierm@redhat.com> - 8.40-30
|
||||
- grubby-bls: fix --add-kernel not working when using the --args option
|
||||
Resolves: rhbz#1691004
|
||||
|
||||
* Mon Mar 11 2019 Javier Martinez Canillas <javierm@redhat.com> - 8.40-29
|
||||
- Only switch to BLS config for s390x / zipl
|
||||
Related: rhbz#1652806
|
||||
|
||||
* Fri Mar 01 2019 Javier Martinez Canillas <javierm@redhat.com> - 8.40-28
|
||||
- grubby-bls: make --update-kernel ALL to update kernelopts var in grubenv
|
||||
|
||||
* Thu Feb 14 2019 Javier Martinez Canillas <javierm@redhat.com> - 8.40-27
|
||||
- grubby-bls: error if args or remove-args is used without update-kernel
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue