1
From 008683c31b25dc93cf98187a88db897f86e28d43 Mon Sep 17 00:00:00 2001
2
From: Alex Tu <alex.tu@canonical.com>
3
Date: Thu, 3 Oct 2019 17:22:22 +0800
4
Subject: [PATCH] add --force-version-override and {dkms}_version-override
6
when --force-version-override or {dkms}_version-override content be
7
found under /usr/share/dkms/modules_to_force_install/{file}, then it
8
will skip the code block of version comparing with existed module.
10
dkms | 26 ++++++++++++++++++++++----
11
1 file changed, 22 insertions(+), 4 deletions(-)
13
diff --git a/dkms b/dkms
14
index 10bfef6..53a224b 100644
17
@@ -135,7 +135,7 @@ show_usage()
18
echo $" [action] = { add | remove | build | install | uninstall | match | autoinstall"
19
echo $" | mkdriverdisk | mktarball | ldtarball | mkrpm | mkkmp | mkdeb | mkbmdeb | status }"
20
echo $" [options] = [-m module] [-v module-version] [-k kernel-version] [-a arch]"
21
- echo $" [-d distro] [-c dkms.conf-location] [-q] [--force] [--all]"
22
+ echo $" [-d distro] [-c dkms.conf-location] [-q] [--force] [--force-version-override] [--all]"
23
echo $" [--templatekernel=kernel] [--directive='cli-directive=cli-value']"
24
echo $" [--config=kernel-.config-location] [--archive=tarball-location]"
25
echo $" [--kernelsourcedir=source-location] [--no-prepare-kernel] [--no-initrd]"
26
@@ -811,6 +811,11 @@ check_version_sanity()
27
read -a kernels_module < <(find_module "$lib_tree" "${4}")
28
[ -z $kernels_module ] || return 0
30
+ if [[ "$force_version_override" == "true" ]]; then
31
+ # Skip the following version checking code.
35
if [[ ${kernels_module[1]} ]]; then
36
warn $"Warning! Cannot do version sanity checking because multiple ${4}$module_suffix" \
37
$"modules were found in kernel $1."
38
@@ -1427,6 +1432,10 @@ force_installation()
40
for elem in $to_force; do
41
if [ "${1}" = "${elem}" ]; then
44
+ elif [ "${1}_version-override" = "${elem}" ]; then
45
+ echo "version-override"
49
@@ -1448,9 +1457,14 @@ install_module()
52
# If the module is set to be force-installed
53
- force_installation $module && echo "Forcing installation of $module" \
56
+ local ret=$(force_installation $module)
57
+ if [[ "$ret" == "force" ]];then
59
+ echo "Forcing installation of $module"
60
+ elif [[ "$ret" == "version-override" ]];then
61
+ force_version_override="true"
62
+ echo "Forcing version override of $module"
64
# Make sure that kernel exists to install into
65
[[ -e $install_tree/$kernelver ]] || die 6 \
66
$"The directory $install_tree/$kernelver doesn't exist." \
67
@@ -3582,6 +3596,7 @@ kernel_source_dir=""
71
+force_version_override=""
75
@@ -3665,6 +3680,9 @@ while (($# > 0)); do
79
+ --force-version-override)
80
+ force_version_override="true"