On Thu, Apr 04, 2013 at 07:48:14AM +0200, Harald Hoyer wrote:
Hi Josh,
as mentioned on IRC, here is the patch for the rawhide kernel.spec.
I'm on PTO the rest of the week, but I wanted to ask a few quick
questions.
This patch is part of an upstream coordination, intended to unify the
various
ways distributions handle:
Has the change to the kernel makefiles to use this been sent upstream
yet? I've been keeping an eye out for it and haven't seen it.
- installation of kernels in the system
- create the matching initrds; hooking up the various implementations of
initramfs generators into the kernel package installation process
- optionally/automatically create bootable rescue images to be able to recover
from failures:
https://fedoraproject.org/wiki/Features/DracutHostOnly
DracutHostOnly is targeted at F19, but the switch to kernel-install is
something we're discussing for F20, correct?
All the above functionality is provided by the “kernel-install”
tool:
http://www.freedesktop.org/software/systemd/man/kernel-install.html
It features:
- flexible hookup/plugin directories to manage kernel installation and
uninstallation. initrd, bootloader, rescue image management, all plug into
that facility.
- strict separation of distribution-supplied logic and local customization
logic; system administrators are able to overwrite and replace/extend any part
of the default logic if needed
- hide distribution-specific logic behind a standardized command line interface
- unify the custom kernel installation from the source tree with the usual
kernel package installation; like the current /sbin/installkernel
We had briefly discussed systemd providing /sbin/installkernel to
facilitate the transition from grubby to kernel-install. Is that
something that's being done for now?
diff --git a/kernel.spec b/kernel.spec
index a2f1f25..09aef02 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -456,7 +456,7 @@ Summary: The Linux kernel
# Packages that need to be installed before the kernel is, because the %%post
# scripts use them.
#
-%define kernel_prereq fileutils, module-init-tools >= 3.16-4, initscripts >=
8.11.1-1, grubby >= 8.3-1
+%define kernel_prereq fileutils, module-init-tools >= 3.16-4, initscripts >=
8.11.1-1, systemd >= 200
%define initrd_prereq dracut >= 001-7
I'm curious if kernel-install depends on anything in dracut in a version
newer than 001-7. That's pretty old at this point.
#
@@ -479,8 +479,7 @@ Provides: kernel-omap-uname-r = %{KVERREL}%{?1:.%{1}}\
Requires(pre): %{kernel_prereq}\
Requires(pre): %{initrd_prereq}\
Requires(pre): linux-firmware >= 20120206-0.1.git06c8f81\
-Requires(post): /sbin/new-kernel-pkg\
-Requires(preun): /sbin/new-kernel-pkg\
+Requires(preun): systemd >= 200\
We still need the Requires(post) here, don't we? We're using
kernel-install in posttrans.
Conflicts: %{kernel_dot_org_conflicts}\
Conflicts: %{package_conflicts}\
%{expand:%%{?kernel%{?1:_%{1}}_conflicts:Conflicts: %%{kernel%{?1:_%{1}}_conflicts}}}\
@@ -2064,8 +2063,8 @@ fi\
#
%define kernel_variant_posttrans() \
%{expand:%%posttrans %{?1}}\
-/sbin/new-kernel-pkg --package kernel%{?-v:-%{-v*}} --mkinitrd --dracut --depmod
--update %{KVERREL}%{?-v:.%{-v*}} || exit $?\
-/sbin/new-kernel-pkg --package kernel%{?1:-%{1}} --rpmposttrans %{KVERREL}%{?1:.%{1}} ||
exit $?\
+/sbin/depmod -a %{KVERREL}%{?1:.%{1}} || exit $?;\
+/bin/kernel-install add %{KVERREL}%{?1:.%{1}}
/%{image_install_path}/vmlinuz-%{KVERREL}%{?1:.%{1}} || exit $?\
%{nil}
Is there a reason kernel-install doesn't run depmod itself?
josh