On Thu, 2025-11-27 at 14:58 +0100, Andras Korn wrote:
> On Thu, Nov 27, 2025 at 12:23:39PM +0100, Ben Hutchings wrote:
>
> Hi,
>
> > On Thu, 2025-11-27 at 00:56 +0100, Andreas Beckmann wrote:
> > > On 11/25/25 11:38, Andras Korn wrote:
> > > > Package: dkms
> > > > Version: 3.2.2-1
> > >
> > > > dkms ships a /etc/kernel/header_postinst.d/dkms file, which I suppose is expected to run when the linux-headers postinst scripts call:
> > > >
> > > > linux-run-hooks headers postinst $version -- "$@"
> > > >
> > > > However, linux-run-hooks doesn't use /etc/kernel/header_postinst.d, only /etc/kernel/headers_postinst.d, so the shipped /etc/kernel/header_postinst.d/dkms is never run.
> > > >
> > > > (I verified this by adding --verbose --debug to the run-parts invocation in linux-run-hooks.)
> > >
> > > This is an uncommunicated (maybe even unintended) path change on the
> > > src:linux side. Older kernels had this in linux-headers-*.postinst:
> > [...]
> >
> > This was an unintended change when I reimplemented hook handling in
> > linux-run-hooks (in linux-base). I just didn't notice that the
> > directory prefix was previously "header_" and not "headers_" (like the
> > package names).
> >
> > Since nothing appears to install a hook in the new directories
> > (/{etc,usr/share}/kernel/headers_postinst.d) yet, I will change this
> > back rather than trying to support both.
>
> I also found no package other than dkms install anything there, and dkms's
> script hasn't actually run all this time with apparently nobody noticing
> (because the same script is shipped in install.d as well).
>
> I think it would be better to keep the name of
> /etc/kernel/headers_postinst.d consistent with the -headers in the package
> names, rather than modify linux-run-hooks to use the previous,
> inconsistently-named directory.
>
> Rationale: principle of least surprise. You don't know how many custom
> setups that created /etc/kernel/headers_postinst.d/ (because people found
> out that's what linux-run-hooks used) you'd be breaking by changing it.
> Probably not many (I know of a total of 3 :), but I don't think there is a
> compelling reason to do it.
My rationale:
- The old directory name was supported for 15 years and in 7 stable
releases, so many local packages and scripts may depend on it. We must
not stop supporting it without a transition plan.
- The new directory name has been supported for 6 months, and it has
been in a stable release for 3.5 months. Reverting to the old name
post-release is not great, but it will cause less breakage.
> If the dkms script shipped in /etc/kernel/header_postinst.d is not needed,
> the dkms package can just drop it.
Currently linux-headers-* packages depend on the corresponding linux-
image-* packages, but in future that will stop being the case. So in
some use cases that hook script will be important again.
> Summary: making a change risks breaking existing systems that depend on the
> existing behaviour without any obvious benefit; not changing linux-run-hooks
> carries no such risk.
I think you have it backwards.
Ben.
--
Ben Hutchings - Debian developer, member of kernel, installer and LTS
teams
Attachment:
signature.asc
Description: This is a digitally signed message part