Skip to content

Stop handling dkms.conf as a bash/shell script #414

@evelikov

Description

@evelikov

Today dkms sources the dkms.conf, effectively treating it as a shell script instead of data/configuration file.

That in itself isn't great since:

  • it can have code flow relying on dkms internals or altering code flow
  • in some cases dkms needs to be run as root
  • dkms.conf recipes are not always thoroughly reviewed by maintainers/users

Combining the above, we end up with a substantial surface for misuse/abuse and co.

One rather benign example is #413 where dos<>unix line endings result in fatal breakage.

@xuzhen has already done a ton of great work here - see #265.

IMHO to unwrap/finish this completely we should:

  • standardize dkms.conf - flesh out a separate man page, version(?) and add some unit tests
  • select a set of linux distributions and briefly audit for dkms.conf shell abuse - off the top of my head zfs and Kernel match for BUILT_MODULE_NAME #392
    • evaluate if there's an alternative - reach out to respective parties
  • detect and warn when shell abuse is detected in dkms.conf
  • define transitionary period - reach out to affected distros/projects
  • once period is over, release dkms 4 making it a hard error
    • aside: should probably check and promote other warnings to fatal errors

@xuzhen @scaronni @anbe42 what do you think of this idea? If you know of any projects/packages where this will be a problem, can you share some details - name, distro/upstream URL, etc.

Thanks o/

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions