Skip to content

Commit

Permalink
xbps-triggers: adapt to new dkms status format
Browse files Browse the repository at this point in the history
The output format of `dkms status` has changed.
old -	zfs, 2.1.4, 5.15.39_1, x86_64: installed
new -	zfs/2.1.4, 5.15.39_1, x86_64: installed
So, I've re-worked the _modver and _kver detection logic.
  • Loading branch information
subnut committed May 16, 2022
1 parent c7436c5 commit 91e9b48
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 12 deletions.
31 changes: 20 additions & 11 deletions srcpkgs/xbps-triggers/files/dkms
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#
# DKMS trigger. Used to add/build/install or remove the specified modules
# from all kernels.
#
#
# Modules can be specified like:
# dkms_modules="<modulename> <version> ..."
#
Expand All @@ -21,23 +21,32 @@ UPDATE="$5"
export PATH="usr/bin:usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin"

remove_modules() {
local _modver _kver
local _modver _kver _line

# Remove the specified modules from all kernels.
set -- ${dkms_modules}
while [ $# -gt 0 ]; do
$DKMS status -m "$1" | while read line; do
if $(echo "$line" | egrep -vq '(added|built|installed)'); then
$DKMS status -m "$1" | while IFS=' ' read _modver _kver _line; do
if echo "$_modver $_kver $_line" | grep -Evq '(added|built|installed)'; then
shift 2; continue
fi
_modver=$(echo "$line"|sed "s/$1,[[:blank:]]\([^,]*\)[,:].*/\1/;t;d")
_kver=$(echo "$line"|awk '{print $3}'|sed "s/\(.*\),$/\1/")
echo -n "Removing DKMS module '${1}-${_modver}' for kernel-${_kver}... "
$DKMS remove -m "$1" -v "${_modver}" -k "${_kver}" >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "done."
_modver=${_modver##*/}; _modver=${_modver%?}; _kver=${_kver%,}
if [ "$_kver" = added ] && [ -d "/var/lib/dkms/${1}/${_modver}/build" ]; then
echo -n "Cleaning up unbuilt DKMS module '${1}-${_modver}'... "
rm -rf "/var/lib/dkms/${1}/${_modver}"
if [ $? -eq 0 ]; then
echo "done."
else
echo "FAILED!"
fi
else
echo "FAILED!"
echo -n "Removing DKMS module '${1}-${_modver}' for kernel-${_kver}... "
$DKMS remove -m "$1" -v "${_modver}" -k "${_kver}" >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "done."
else
echo "FAILED!"
fi
fi
done
shift 2
Expand Down
2 changes: 1 addition & 1 deletion srcpkgs/xbps-triggers/template
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Template file for 'xbps-triggers'
pkgname=xbps-triggers
version=0.122
version=0.123
revision=1
bootstrap=yes
short_desc="XBPS triggers for Void Linux"
Expand Down

0 comments on commit 91e9b48

Please sign in to comment.