Skip to content

dkms.conf: add DKMS compatibility level definition #542

@anbe42

Description

@anbe42

In order to allow changing some defaults while staying backwards compatible I suggest adding a directive DKMS_CONF_VERSION DKMS_COMPAT_VERSION DKMS_COMPAT_LEVEL DKMS_COMPAT or any other better name, suggestions welcome.

This directive should (must?) be in the first non-empty non-comment line to be recognized. Leading whitespace should be OK.
Specifically it must not be nested in some shell construct like if false;\nthen DKMS_COMPAT=2;\nfi (neither with nor without the indicated newlines)

An absent directive would imply a dkms compatibility level of 1 (with no intention to deprecate this).

For compatibility level 2 I'd suggest these changes:

  • default to AUTOINSTALL="yes"
  • default to DEST_MODULE_LOCATION="/updates/dkms", making it no longer a mandatory directive as it is usually overridden by the distribution specific location anyway
  • stop warning on directives that were deprecated before the introduction of this compat level
  • maybe stop parsing dkms.conf as a bash script (and instead write a parser that extracts selected VARIABLE[INDEX]=VALUE and VARIABLE=VALUE lines where scalar/array are enforced, i.e. both BUILT_MODULE_NAME=mod and AUTOINSTALL[0]=yes would be errors)

PS: This idea is inspired by Debian's debhelper package and its compat level. (In the past it used a file debian/compat for settings the value and the environment variable DH_COMPAT for overrides. Nowadays it is usually expressed in debian/control as Build-Depends: debhelper-compat (= 13))

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions