From d861de291867fe663a4169a40aec394ac4f8839a Mon Sep 17 00:00:00 2001
From: MichaIng <micha@dietpi.com>
Date: Fri, 10 Jun 2022 15:15:25 +0200
Subject: [PATCH] Add support for builtin WireGuard module

in which case there is no dedicated file in /lib/modules. A rare case but possible.

Additionally the recursive globbing has been replaced by dpkg-query's internal recursive asterisk matching, which performs better/faster. This does now also match on "wireguard.kosomething", but I think "wireguard" is specific enough and dots in kernel modules names uncommon, to no be an issue.

Signed-off-by: MichaIng <micha@dietpi.com>
---
 auto_install/install.sh | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/auto_install/install.sh b/auto_install/install.sh
index cb567bd..5c086b4 100755
--- a/auto_install/install.sh
+++ b/auto_install/install.sh
@@ -93,9 +93,6 @@ c=$(( c < 70 ? 70 : c ))
 # Override localization settings so the output is in English language.
 export LC_ALL=C
 
-# Enable recursive globbing to find wireguard.ko in /lib/modules.
-shopt -s globstar
-
 main(){
 	# Pre install checks and configs
 	rootCheck
@@ -492,12 +489,9 @@ preconfigurePackages(){
 	# and not part of the .deb).
 	# Source: https://github.com/MichaIng/DietPi/blob/7bf5e1041f3b2972d7827c48215069d1c90eee07/dietpi/dietpi-software#L1807-L1815
 	WIREGUARD_BUILTIN=0
-	for i in /lib/modules/**/wireguard.ko{,.xz}; do
-		[[ -f $i ]] || continue
-		dpkg-query -S "$i" &> /dev/null || continue
+	if dpkg-query -S '/lib/modules/*/wireguard.ko*' &> /dev/null || modinfo wireguard 2> /dev/null | grep -q '^filename:[[:blank:]]*(builtin)$'; then
 		WIREGUARD_BUILTIN=1
-		break
-	done
+	fi
 
 	if
 		# If the module is builtin and the package available, we only need to install wireguard-tools.