[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#523735: /etc/kernel/postinst.d/initramfs-tools: please consider supporting the experimental kernel-package out of the box



Hi all,

I've CC'd Manoj on this, since I am proposing a change in kernel-package to
solve this bug.

> [Summary: Kernel package stopped running update-initramfs, but the
> initramfs-tools postinst hook specifically doesn't run for kernel-package
> built kernels]

> > 7c7,10
> > < [ -z "$2" ] || exit 0
> > ---
> > > [ -z "$2" ] ||
> > > echo "warning: not running update-initramfs, see make-kpkg(1) and
> > > /usr/share/doc/kernel-package/README.gz for details" &&
> > > exit  0
> 
> please use unifiedd diffs, aboves is unreadable.
Actually, I think the above is quit readable, if you look at the
/etc/kernel/postinst.d/initramfs-tools script. Some extra context would have
been useful, though.

> also aboves is wrong as it would also be called by *official* linux-2.6
> produced images.

I don't think this is true, since the comment in the script says:

  # kernel-package passes an extra arg; hack to not run under kernel-package
  [ -z "$2" ] || exit 0

So it seems that this line should really only apply to kernel-package
generated kernels (official kernels are no longer generated by kernel-package,
according to /usr/share/doc/kernel-package/NEWS.Debian.gz).

However, just adding a warning line really won't solve anything. It seems the
problem is that the initramfs hook script ignores kernel-package (which it
should for older versions), which it shouldn't do for the latest version of
kernel-package. However, the script really has no way to tell that the kernel
currently installing was built by kernel-package >= 12.001.

Apparently it can only tell that it was called by kernel-package due to a
second argument, which official kernels presumably don't pass? If this is so,
what use is the argument anyway, if it's not always passed in? From a
kernel-package kernel's postinst script:

  run-parts --verbose --exit-on-error --arg=$version
            --arg=$realimageloc$kimage-$version
            /etc/kernel/postinst.d

so it seems it passes some location and version as a second argument, but I
can't really tell what. I don't know if the interface for scripts in
/etc/kernel/postinst.d is documented anywhere?


One obvious solution here, would be to let kernel-package no longer pass in
the second argument. This makes it compliant with official kernels, the
initramfs-tools can no longer distinguish them, and all should be well.
Perhaps Manoj can comment on this?

Gr.

Matthijs

Attachment: signature.asc
Description: Digital signature


Reply to: