Compare commits

...
Sign in to create a new pull request.

4 commits

Author SHA1 Message Date
Simon de Vlieger
482a2825c4
spec: own /etc/sysconfig/kernel
`grubby` reads the `/etc/sysconfig/kernel` file which isn't owned by the
package, nor created by it. This leads to all image build tooling having
to take special care to write this file [1] [2] so produced deliverables
automatically update their kernels.

This commit moves the creation of this file to the `grubby` package so
things work 'out of the box' instead of needing to do out-of-package
configuration by third parties.

[1]: https://pagure.io/fedora-kiwi-descriptions/blob/f43/f/root/etc/sysconfig
[2]: a8fafe8d9b/data/distrodefs/fedora/imagetypes.yaml (L1027-L1028)

Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
2025-12-10 07:59:31 +01:00
Leo Sandoval
6095bc576b Update cfg when setting a default kernel
Signed-off-by: Raju Cheerla <rcheerla@redhat.com>
Signed-off-by: Leo Sandoval <lsandova@redhat.com>
2025-07-30 12:16:29 -06:00
Fedora Release Engineering
0eb1bed0a5 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-24 16:39:20 +00:00
Leo Sandoval
7d63bffff9 grubby-bls: in s390* systems, run zipl on grub cfg update event
Change takes into account s390* systems as target for zipl execution. Reformat
better archs/scenarios when either zipl or grub2-mkconfig must be run.

Signed-off-by: Leo Sandoval <lsandova@redhat.com>
2025-03-20 11:28:33 -06:00
3 changed files with 37 additions and 11 deletions

View file

@ -567,7 +567,7 @@ set_default_bls() {
echo "default=${default}" >> "${zipl_config}"
fi
fi
update_grubcfg
print_info "The default is ${bls_file[$index]} with index $index and kernel $(get_prefix)${bls_linux[$index]}"
}
@ -599,17 +599,19 @@ remove_var_prefix() {
update_grubcfg()
{
# Older ppc64le OPAL firmware don't have BLS support so grub2-mkconfig has to be run
# to generate a config with menuentry commands.
if [ "${arch}" = "ppc64le" ] && [ -d /sys/firmware/opal ]; then
# Turn on RUN_MKCONFIG on different archs/scenarios
if [[ "${arch}" = 's390' ]] || [[ "${arch}" = 's390x' ]]; then
# On s390/s390x systems, run mkconfig/zipl
RUN_MKCONFIG="true"
fi
# PV and PVH Xen DomU guests boot with pygrub that doesn't have BLS support,
# also Xen Dom0 use the menuentries from 20_linux_xen and not the ones from
# 10_linux. So grub2-mkconfig has to run for both Xen Dom0 and DomU.
if [[ -e /sys/hypervisor/type ]] && grep -q "^xen$" /sys/hypervisor/type; then
elif [[ "${arch}" = "ppc64le" ]] && [[ -d /sys/firmware/opal ]]; then
# Older ppc64le OPAL firmware don't have BLS support so grub2-mkconfig has to be run
# to generate a config with menuentry commands.
RUN_MKCONFIG="true"
elif [[ -e /sys/hypervisor/type ]] && grep -q "^xen$" /sys/hypervisor/type; then
if [ ! -e /sys/hypervisor/guest_type ] || ! grep -q "^HVM$" /sys/hypervisor/guest_type; then
# PV and PVH Xen DomU guests boot with pygrub that doesn't have BLS support,
# also Xen Dom0 use the menuentries from 20_linux_xen and not the ones from
# 10_linux. So grub2-mkconfig has to run for both Xen Dom0 and DomU.
RUN_MKCONFIG=true
fi
fi

View file

@ -3,7 +3,7 @@
Name: grubby
Version: 8.40
Release: 82%{?dist}
Release: 86%{?dist}
Summary: Command line tool for updating bootloader configs
License: GPL-2.0-or-later
Source1: grubby-bls
@ -12,6 +12,7 @@ Source3: COPYING
Source5: 95-kernel-hooks.install
Source6: 10-devicetree.install
Source7: grubby.8
Source8: kernel.sysconfig
BuildRequires: gcc
BuildRequires: glib2-devel
@ -59,6 +60,9 @@ install -D -m 0755 -t %{buildroot}%{_prefix}/lib/kernel/install.d/ %{SOURCE6}
mkdir -p %{buildroot}%{_mandir}/man8
install -m 0644 %{SOURCE7} %{buildroot}%{_mandir}/man8/
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
install -m 0644 %{SOURCE8} %{buildroot}%{_sysconfdir}/sysconfig/kernel
%post
if [ "$1" = 2 ]; then
arch=$(uname -m)
@ -72,8 +76,22 @@ fi
%attr(0755,root,root) %{_prefix}/lib/kernel/install.d/10-devicetree.install
%attr(0755,root,root) %{_prefix}/lib/kernel/install.d/95-kernel-hooks.install
%{_mandir}/man8/grubby.8*
%config(noreplace) %{_sysconfdir}/sysconfig/kernel
%changelog
* Wed Dec 10 2025 Simon de Vlieger <cmdr@supakeen.com> - 8.40-86
- Own `/etc/sysconfig/kernel` which is used for `grubby` configuration
* Wed Jul 30 2025 Leo Sandoval <lsandova@redhat.com> - 8.40-85
- Update cfg when setting a default kernel
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-84
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Thu Mar 20 2025 Leo Sandoval <lsandova@redhat.com> - 8.40-83
- grubby-bls: in s390* systems, run zipl on grub cfg update event
Fixes previous commit and formats better the conditions that trigger grub cfg updates
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 8.40-82
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild

6
kernel.sysconfig Normal file
View file

@ -0,0 +1,6 @@
# UPDATEDEFAULT specifies if kernel-install should make
# new kernels the default
UPDATEDEFAULT=yes
# DEFAULTKERNEL specifies the default kernel package type
DEFAULTKERNEL=kernel-core