kernel.spec kernel-install integration

Josh Boyer jwboyer at redhat.com
Thu Apr 4 13:12:25 UTC 2013


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


More information about the kernel mailing list