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))
In order to allow changing some defaults while staying backwards compatible I suggest adding a directive
DKMS_CONF_VERSIONDKMS_COMPAT_VERSIONDKMS_COMPAT_LEVELDKMS_COMPATor 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:
AUTOINSTALL="yes"DEST_MODULE_LOCATION="/updates/dkms", making it no longer a mandatory directive as it is usually overridden by the distribution specific location anywayVARIABLE[INDEX]=VALUEandVARIABLE=VALUElines where scalar/array are enforced, i.e. bothBUILT_MODULE_NAME=modandAUTOINSTALL[0]=yeswould be errors)PS: This idea is inspired by Debian's debhelper package and its compat level. (In the past it used a file
debian/compatfor settings the value and the environment variableDH_COMPATfor overrides. Nowadays it is usually expressed indebian/controlasBuild-Depends: debhelper-compat (= 13))