[arch-commits] Commit in dkms/repos (9 files)
Sébastien Luttringer
seblu at gemini.archlinux.org
Thu Jul 14 13:02:15 UTC 2022
Date: Thursday, July 14, 2022 @ 13:02:15
Author: seblu
Revision: 451052
archrelease: copy trunk to community-any
Added:
dkms/repos/community-any/
dkms/repos/community-any/01-fix-sign-file-path.patch
(from rev 451051, dkms/trunk/01-fix-sign-file-path.patch)
dkms/repos/community-any/PKGBUILD
(from rev 451051, dkms/trunk/PKGBUILD)
dkms/repos/community-any/PKGBUILD.26
(from rev 451051, dkms/trunk/PKGBUILD.26)
dkms/repos/community-any/dkms.install
(from rev 451051, dkms/trunk/dkms.install)
dkms/repos/community-any/hook.install
(from rev 451051, dkms/trunk/hook.install)
dkms/repos/community-any/hook.remove
(from rev 451051, dkms/trunk/hook.remove)
dkms/repos/community-any/hook.sh
(from rev 451051, dkms/trunk/hook.sh)
dkms/repos/community-any/hook.upgrade
(from rev 451051, dkms/trunk/hook.upgrade)
-----------------------------+
01-fix-sign-file-path.patch | 85 +++++++++++
PKGBUILD | 75 ++++++++++
PKGBUILD.26 | 69 +++++++++
dkms.install | 13 +
hook.install | 14 +
hook.remove | 13 +
hook.sh | 303 ++++++++++++++++++++++++++++++++++++++++++
hook.upgrade | 13 +
8 files changed, 585 insertions(+)
Copied: dkms/repos/community-any/01-fix-sign-file-path.patch (from rev 451051, dkms/trunk/01-fix-sign-file-path.patch)
===================================================================
--- community-any/01-fix-sign-file-path.patch (rev 0)
+++ community-any/01-fix-sign-file-path.patch 2022-07-14 13:02:15 UTC (rev 451052)
@@ -0,0 +1,85 @@
+From 40a9472eeae0d00f6fb33b5339abc2fc21db0368 Mon Sep 17 00:00:00 2001
+From: Maximiliano Curia <maxy at gnuservers.com.ar>
+Date: Sat, 2 Jul 2022 12:33:53 +0200
+Subject: [PATCH 1/2] Look for sign-file regardless
+
+Fix #229
+---
+ dkms.in | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/dkms.in b/dkms.in
+index ba312c3..d47c343 100644
+--- a/dkms.in
++++ b/dkms.in
+@@ -866,11 +866,12 @@ prepare_signing()
+ ubuntu* )
+ sign_file="/usr/src/linux-headers-$kernelver/scripts/sign-file"
+ ;;
+- fedora* | rhel* | ovm*)
+- sign_file="/lib/modules/$kernelver/build/scripts/sign-file"
+- ;;
+ * )
+- echo "Binary sign-file not found, module won't be signed"
++ if [ -f "/lib/modules/$kernelver/build/scripts/sign-file" ]; then
++ sign_file="/lib/modules/$kernelver/build/scripts/sign-file"
++ else
++ echo "Binary sign-file not found, module won't be signed"
++ fi
+ ;;
+ esac
+ fi
+@@ -912,6 +913,11 @@ prepare_signing()
+ ;;
+ *)
+
++ if [ ! "${sign_file}" ]; then
++ do_signing=0
++ return
++ fi
++
+ if [ ! -f $mok_signing_key ] || [ ! -f $mok_certificate ]; then
+ echo "Certificate or key are missing, generating self signed certificate for MOK..."
+ openssl req -new -x509 -nodes -days 36500 -subj "/CN=DKMS module signing key" \
+
+From 34bd2326082e44d2cbb6a81a363d4c676540bc72 Mon Sep 17 00:00:00 2001
+From: Maximiliano Curia <maxy at gnuservers.com.ar>
+Date: Sun, 3 Jul 2022 23:26:43 +0200
+Subject: [PATCH 2/2] Delay the file existance check
+
+Use bash internal test to avoid a fork, and replace the string check for
+a executable check.
+
+We also don't need to set do_signing to 0
+---
+ dkms.in | 10 +++-------
+ 1 file changed, 3 insertions(+), 7 deletions(-)
+
+diff --git a/dkms.in b/dkms.in
+index d47c343..be2f717 100644
+--- a/dkms.in
++++ b/dkms.in
+@@ -867,11 +867,7 @@ prepare_signing()
+ sign_file="/usr/src/linux-headers-$kernelver/scripts/sign-file"
+ ;;
+ * )
+- if [ -f "/lib/modules/$kernelver/build/scripts/sign-file" ]; then
+- sign_file="/lib/modules/$kernelver/build/scripts/sign-file"
+- else
+- echo "Binary sign-file not found, module won't be signed"
+- fi
++ sign_file="/lib/modules/$kernelver/build/scripts/sign-file"
+ ;;
+ esac
+ fi
+@@ -913,8 +909,8 @@ prepare_signing()
+ ;;
+ *)
+
+- if [ ! "${sign_file}" ]; then
+- do_signing=0
++ if [[ ! -f "${sign_file}" || ! -x "${sign_file}" ]]; then
++ echo "Binary sign-file not found, module won't be signed"
+ return
+ fi
+
Copied: dkms/repos/community-any/PKGBUILD (from rev 451051, dkms/trunk/PKGBUILD)
===================================================================
--- community-any/PKGBUILD (rev 0)
+++ community-any/PKGBUILD 2022-07-14 13:02:15 UTC (rev 451052)
@@ -0,0 +1,75 @@
+# Maintainer: Sébastien Luttringer
+# Contributor: Balwinder S "bsd" Dheeman (bdheeman AT gmail.com)
+
+pkgname=dkms
+pkgver=3.0.5
+pkgrel=2
+pkgdesc='Dynamic Kernel Modules System'
+arch=('any')
+url='https://github.com/dell/dkms'
+license=('GPL2')
+depends=('coreutils' 'bash' 'gawk' 'sed' 'kmod' 'gcc' 'make' 'patch')
+makedepends=('git')
+optdepends=('linux-headers: build modules against the Arch kernel'
+ 'linux-lts-headers: build modules against the LTS kernel'
+ 'linux-zen-headers: build modules against the ZEN kernel'
+ 'linux-hardened-headers: build modules against the HARDENED kernel')
+backup=('etc/dkms/framework.conf')
+install=$pkgname.install
+source=("git+https://github.com/dell/dkms.git#tag=v$pkgver"
+ 'hook.install'
+ 'hook.remove'
+ 'hook.upgrade'
+ 'hook.sh'
+ '01-fix-sign-file-path.patch')
+sha256sums=('SKIP'
+ 'acdc5b45cc018cea04ee1aec56fd8fc3a2de62cf7bc41acf53b3790872120998'
+ '326515cc7d00f93760beb844434ca7442caf7a9424614aa95a8f6d1ab79e15df'
+ '4f8dff7716e73a8bba885638f12e3cdc9e87daec1896f75e700b981527e43870'
+ 'c1b4a4e2e4e0e0e59ee0887403e79d60b209f3878dbbec6612573f13b90cce01'
+ 'ce83bb1aac6d83dbd3ef73266913e38aa0e55740dc06075d4a40b8eff1079405')
+
+prepare() {
+ cd dkms
+
+ # apply patch from the source array (should be a pacman feature)
+ local filename
+ for filename in "${source[@]}"; do
+ if [[ "$filename" =~ \.patch$ ]]; then
+ msg2 "Applying patch ${filename##*/}"
+ patch -p1 -N -i "$srcdir/${filename##*/}"
+ fi
+ done
+
+ # /usr move
+ msg2 '/usr move patching'
+ for i in dkms{.in,.8.in,_framework.conf,.bash-completion,_common.postinst}; do
+ sed -ri 's,/lib/modules,/usr/lib/modules,g' "$i"
+ done
+}
+
+package() {
+ # alpm hooks
+ install -D -m 644 hook.install "$pkgdir/usr/share/libalpm/hooks/70-dkms-install.hook"
+ # both upgrade and remove hooks are removing dkms modules.
+ # remove always call depmod while upgrade never, as install will later.
+ # upgrade is run before remove in order to have the cleanest depmod file,
+ # if something goes wrong before the depmod call in install hook.
+ install -D -m 644 hook.upgrade "$pkgdir/usr/share/libalpm/hooks/70-dkms-upgrade.hook"
+ install -D -m 644 hook.remove "$pkgdir/usr/share/libalpm/hooks/71-dkms-remove.hook"
+ # hook helper
+ install -D -m 755 hook.sh "$pkgdir/usr/share/libalpm/scripts/dkms"
+ # upstream installer
+ cd dkms
+ # we don't need kconf files and libdir is only for debian stuff, so
+ # we install them outside of $pkgdir
+ make \
+ DESTDIR="$pkgdir" \
+ SBIN="$pkgdir/usr/bin" \
+ BASHDIR="$pkgdir/usr/share/bash-completion/completions" \
+ KCONF="$srcdir"/trash \
+ LIBDIR="$srcdir"/trash \
+ install
+}
+
+# vim:set ts=2 sw=2 et:
Copied: dkms/repos/community-any/PKGBUILD.26 (from rev 451051, dkms/trunk/PKGBUILD.26)
===================================================================
--- community-any/PKGBUILD.26 (rev 0)
+++ community-any/PKGBUILD.26 2022-07-14 13:02:15 UTC (rev 451052)
@@ -0,0 +1,69 @@
+# Maintainer: Sébastien Luttringer
+# Contributor: Balwinder S "bsd" Dheeman (bdheeman AT gmail.com)
+
+pkgname=dkms
+pkgver=2.6.1
+pkgrel=1
+pkgdesc='Dynamic Kernel Modules System'
+arch=('any')
+url='https://github.com/dell/dkms'
+license=('GPL2')
+depends=('bash' 'kmod' 'gcc' 'make' 'patch')
+makedepends=('git')
+optdepends=('linux-headers: build modules against the Arch kernel'
+ 'linux-lts-headers: build modules against the LTS kernel'
+ 'linux-zen-headers: build modules against the ZEN kernel'
+ 'linux-hardened-headers: build modules against the HARDENED kernel')
+backup=('etc/dkms/framework.conf')
+install=$pkgname.install
+source=("git+https://github.com/dell/dkms.git#tag=v$pkgver"
+ 'hook.install'
+ 'hook.remove'
+ 'hook.sh'
+ '0001-Revert-Make-newly-installed-modules-available-immedi.patch'
+ '0002-Revert-Fix-to-run-under-BusyBox-shell.patch'
+ '0003-Fix-version-check-when-installing-modules.patch')
+md5sums=('SKIP'
+ '90f1486e0af9aab85e8c60d456802c63'
+ '2e8ffd0c2ddec02872d0234befd129fd'
+ '80632f6a454b35bcade2bed287f13c7b'
+ 'd3b91ef709f567a375f4bbdbd3291d2b'
+ '4342b5e9020a52a73a63e7897ead5405'
+ '00813655321b8fc256eda737ca0622ef')
+
+prepare() {
+ cd dkms
+
+ # apply patch from the source array (should be a pacman feature)
+ local filename
+ for filename in "${source[@]}"; do
+ if [[ "$filename" =~ \.patch$ ]]; then
+ msg2 "Applying patch ${filename##*/}"
+ patch -p1 -N -i "$srcdir/${filename##*/}"
+ fi
+ done
+
+ # /usr move
+ msg2 '/usr move patching'
+ for i in dkms{,_framework.conf,.bash-completion,.8,_common.postinst}; do
+ sed -ri 's,/lib/modules,/usr/lib/modules,g' "$i"
+ done
+}
+
+package() {
+ # alpm hook
+ install -D -m 644 hook.install "$pkgdir/usr/share/libalpm/hooks/70-dkms-install.hook"
+ install -D -m 644 hook.remove "$pkgdir/usr/share/libalpm/hooks/70-dkms-remove.hook"
+ install -D -m 755 hook.sh "$pkgdir/usr/lib/dkms/alpm-hook"
+ # upstream installer
+ cd dkms
+ # we don't need kconf files, so we install them outside $pkgdir
+ make \
+ DESTDIR="$pkgdir" \
+ SBIN="$pkgdir/usr/bin" \
+ BASHDIR="$pkgdir/usr/share/bash-completion/completions" \
+ KCONF="$srcdir"/kconf \
+ install
+}
+
+# vim:set ts=2 sw=2 et:
Copied: dkms/repos/community-any/dkms.install (from rev 451051, dkms/trunk/dkms.install)
===================================================================
--- community-any/dkms.install (rev 0)
+++ community-any/dkms.install 2022-07-14 13:02:15 UTC (rev 451052)
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ if (( "$(vercmp $2 '2.2.0.3+git151023-2')" < 0 )); then
+ echo '===> dkms systemd startup service has been removed'
+ echo '===> modules building is now handled by alpm hooks at install time'
+ echo '===> startup modules loading must be done via modules-load.d'
+ fi
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
Copied: dkms/repos/community-any/hook.install (from rev 451051, dkms/trunk/hook.install)
===================================================================
--- community-any/hook.install (rev 0)
+++ community-any/hook.install 2022-07-14 13:02:15 UTC (rev 451052)
@@ -0,0 +1,14 @@
+[Trigger]
+Operation = Install
+Operation = Upgrade
+Type = Path
+Target = usr/src/*/dkms.conf
+Target = usr/lib/modules/*/build/include/
+Target = usr/lib/modules/*/modules.alias
+
+[Action]
+Description = Install DKMS modules
+Depends = dkms
+When = PostTransaction
+Exec = /usr/share/libalpm/scripts/dkms install
+NeedsTargets
Copied: dkms/repos/community-any/hook.remove (from rev 451051, dkms/trunk/hook.remove)
===================================================================
--- community-any/hook.remove (rev 0)
+++ community-any/hook.remove 2022-07-14 13:02:15 UTC (rev 451052)
@@ -0,0 +1,13 @@
+[Trigger]
+Operation = Remove
+Type = Path
+Target = usr/src/*/dkms.conf
+Target = usr/lib/modules/*/build/include/
+Target = usr/lib/modules/*/modules.alias
+
+[Action]
+Description = Remove DKMS modules
+Depends = dkms
+When = PreTransaction
+Exec = /usr/share/libalpm/scripts/dkms remove
+NeedsTargets
Copied: dkms/repos/community-any/hook.sh (from rev 451051, dkms/trunk/hook.sh)
===================================================================
--- community-any/hook.sh (rev 0)
+++ community-any/hook.sh 2022-07-14 13:02:15 UTC (rev 451052)
@@ -0,0 +1,303 @@
+#!/bin/bash
+
+#
+# Copyright © 2018-2021, Sébastien Luttringer
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# display what to run and run it quietly
+run() {
+ echo "==> $*"
+ "$@" > /dev/null
+ local ret=$?
+ (( $ret )) && echo "==> WARNING: \`$*' exited $ret"
+ return $ret
+}
+
+# check whether the dependencies of a module are installed
+# $1: module name
+# $2: module version
+# $3: kernel version
+check_dependency() { (
+ source "$source_tree/$1-$2/dkms.conf"
+ local mod lines line
+ for mod in "${BUILD_DEPENDS[@]}"; do
+ mapfile lines < <(dkms status -m "$mod" -k "$3")
+ for line in "${lines[@]}"; do
+ [[ "$line" =~ "$mod/"[^,]+", $3, "[^:]+': installed' ]] && break 2
+ done
+ exit 1
+ done
+ exit 0
+) }
+
+# check whether the modules should be built with this kernel version
+# $1: module name
+# $2: module version
+# $3: kernel version
+check_buildexclusive() {
+ local BUILD_EXCLUSIVE_KERNEL=$(source "$source_tree/$1-$2/dkms.conf"; printf '%s\n' "$BUILD_EXCLUSIVE_KERNEL")
+ [[ "$3" =~ $BUILD_EXCLUSIVE_KERNEL ]]
+}
+
+# list all kernel versions
+all_kver() {
+ pushd "$install_tree" >/dev/null
+ local path
+ for path in */build/; do
+ echo "${path%%/*}"
+ done
+ popd >/dev/null
+}
+
+# list all module name/version for a specific kernel version
+# $1: kernel version
+all_nv_from_kver() {
+ local path
+ for path in "$source_tree"/*-*/dkms.conf; do
+ if [[ -f "$path" && "$path" =~ ^$source_tree/([^/]+)-([^/]+)/dkms\.conf$ ]]; then
+ echo "${BASH_REMATCH[1]}/${BASH_REMATCH[2]}"
+ fi
+ done
+}
+
+# list of modules/version for installed/built kernel version
+# $1: kernel version
+built_nv_from_kver() {
+ local line
+ dkms status -k "$1" | while read -r line; do
+ if [[ "$line" =~ ^([^/]+/[^,]+)", $1, "[^:]+": "(built|installed) ]]; then
+ echo "${BASH_REMATCH[1]}"
+ fi
+ done
+}
+
+# list installed or built kernel version for a specific module version
+# $1 : module name/module version
+built_kver_from_nv() {
+ local line
+ dkms status "$1" | while read -r line; do
+ if [[ "$line" =~ ^"$1, "([^,]+)", "[^:]+": "(built|installed) ]]; then
+ echo "${BASH_REMATCH[1]}"
+ fi
+ done
+}
+
+# install registered modules
+dkms_install() {
+ # list of modules to build for a specific kernel
+ local -A tobuild=()
+
+ # add new/updated modules for all kernels to the build list
+ local nv kver
+ for nv in "${!DKMS_MODULES[@]}"; do
+ for kver in $(all_kver); do
+ tobuild["$nv/$kver"]=''
+ done
+ done
+ # add modules for new/updated kernels to the build list
+ for kver in "${!KERNEL_VERSIONS[@]}"; do
+ for nv in $(all_nv_from_kver "$kver"); do
+ tobuild["$nv/$kver"]=''
+ done
+ done
+
+ # list of kver which requires depmod refresh
+ local -A depmods=()
+
+ # let's build and install
+ local nvk mod mver
+ local -i retry=1
+ while (( $retry > 0 )); do
+ retry=0
+ for nvk in "${!tobuild[@]}"; do
+ [[ "$nvk" =~ ([^/]+)/([^/]+)/(.+) ]] || continue
+ mod="${BASH_REMATCH[1]}"
+ mver="${BASH_REMATCH[2]}"
+ kver="${BASH_REMATCH[3]}"
+ # do not build excluded modules
+ if ! check_buildexclusive "$mod" "$mver" "$kver"; then
+ unset tobuild[$nvk]
+ continue
+ # skip modules with missing kernel headers
+ elif [[ ! -d "$install_tree/$kver/build/include" ]]; then
+ ERROR_MESSAGES+=("Missing $kver kernel headers for module $mod/$mver.")
+ unset tobuild[$nvk]
+ continue
+ # skip modules with missing kernel package
+ elif [[ ! -d "$install_tree/$kver/kernel" ]]; then
+ ERROR_MESSAGES+=("Missing $kver kernel modules tree for module $mod/$mver.")
+ unset tobuild[$nvk]
+ continue
+ # postpone modules with missing dependencies
+ elif ! check_dependency "$mod" "$mver" "$kver"; then
+ continue
+ fi
+ # give it a try dkms
+ run dkms install --no-depmod "$mod/$mver" -k "$kver"
+ if (( $? == 0 )); then
+ # register kernel version for later depmod
+ depmods[$kver]=''
+ fi
+ unset tobuild[$nvk]
+ # maybe this module was a dep of another, so we retry
+ retry=1
+ done
+ done
+ # run depmod later for performance improvments
+ if (( $DKMS_DEPMOD )); then
+ for kver in "${!depmods[@]}"; do
+ run depmod "$kver"
+ done
+ fi
+ # add errors messages for missing dependencies modules
+ for nvk in "${!tobuild[@]}"; do
+ [[ "$nvk" =~ ([^/]+/[^/]+)/(.+) ]] || continue
+ nv="${BASH_REMATCH[1]}"
+ kver="${BASH_REMATCH[2]}"
+ ERROR_MESSAGES+=("Missing dependencies to install module $nv for kernel $kver.")
+ done
+}
+
+# remove registered modules
+# run depmod once per kernel for performance improvments
+dkms_remove() {
+ local nv kver
+ local -A depmods=()
+ # remove full modules first
+ for nv in "${!DKMS_MODULES[@]}"; do
+ # try to remove modules one by one to keep the depmod optimization
+ for kver in $(built_kver_from_nv "$nv"); do
+ run dkms remove --no-depmod "$nv" -k "$kver"
+ if (( $? == 0 )); then
+ # register kernel version for later depmod
+ depmods[$kver]=''
+ else
+ ERROR_MESSAGES+=("Failed to remove module $nv for kernel $kver.")
+ fi
+ done
+ # ensure module removal (even if only added)
+ if [[ $(dkms status "$nv") ]]; then
+ run dkms remove "$nv"
+ (( $? == 0 )) || ERROR_MESSAGES+=("Failed to remove module $nv.")
+ fi
+ done
+ # remove modules for a specific kernel version
+ for kver in "${!KERNEL_VERSIONS[@]}"; do
+ for nv in $(built_nv_from_kver "$kver"); do
+ run dkms remove --no-depmod "$nv" -k "$kver"
+ if (( $? == 0 )); then
+ # register kernel version for later depmod
+ depmods[$kver]=''
+ else
+ ERROR_MESSAGES+=("Failed to remove module $nv for kernel $kver.")
+ fi
+ done
+ done
+ # run depmod later for performance improvments
+ if (( $DKMS_DEPMOD )); then
+ for kver in "${!depmods[@]}"; do
+ run depmod "$kver"
+ done
+ fi
+}
+
+# display hook usage and exit $1 (default 1)
+usage() {
+ cat << EOF >&2
+usage: ${0##*/} <options> install|remove
+options: -D Do not run depmod
+EOF
+ exit ${1:-1}
+}
+
+# emulated program entry point
+main() {
+ [[ "$DKMS_ALPM_HOOK_DEBUG" ]] && set -x
+
+ # prevent each dkms call from failing with authorization errors
+ if (( EUID )); then
+ echo 'You must be root to use this hook' >&2
+ return 1
+ fi
+
+ # parse command line options
+ declare -i DKMS_DEPMOD=1
+ local opt
+ while getopts 'hD' opt; do
+ case $opt in
+ D) DKMS_DEPMOD=0;;
+ *) usage;;
+ esac
+ done
+ shift $((OPTIND - 1))
+ (( $# != 1 )) && usage
+
+ # parse command action to early exit
+ case "$1" in
+ install|remove) declare -r DKMS_ACTION="$1";;
+ *) usage;;
+ esac
+
+ # dkms path from framework config
+ # note: the alpm hooks which trigger this script use static path
+ source_tree='/usr/src'
+ install_tree='/usr/lib/modules'
+ source /etc/dkms/framework.conf
+
+ # check source_tree and install_tree exists
+ local path
+ for path in "$source_tree" "$install_tree"; do
+ if [[ ! -d "$path" ]]; then
+ echo "==> Missing mandatory directory: $path. Exiting!" >&2
+ return 1
+ fi
+ done
+
+ # global storage for changed DKMS modules
+ # we use associate arrays to prevent duplication
+ # the key is <module name>/<module version>/<kernel version>
+ declare -A DKMS_MODULES
+
+ # global storage for changed linux kernels
+ # we use associate arrays to prevent duplication
+ declare -A KERNEL_VERSIONS
+
+ # global storage for error messages
+ declare -a ERROR_MESSAGES
+
+ # parse stdin paths to guess what we should install/remove
+ while read -r path; do
+ if [[ "/$path" =~ ^$source_tree/([^/]+)-([^/]+)/dkms\.conf$ ]]; then
+ # we match file updates on dkms modules sources
+ DKMS_MODULES["${BASH_REMATCH[1]}/${BASH_REMATCH[2]}"]=''
+ elif [[ "/$path" =~ ^$install_tree/([^/]+)/ ]]; then
+ # we match file updates on kernels install/removal
+ KERNEL_VERSIONS["${BASH_REMATCH[1]}"]=''
+ fi
+ done
+
+ dkms_$DKMS_ACTION
+
+ # display errors at the end, to maximize readers
+ local msg
+ for msg in "${ERROR_MESSAGES[@]}"; do
+ echo "==> ERROR: $msg" >&2
+ done
+
+ return 0
+}
+
+main "$@"
Copied: dkms/repos/community-any/hook.upgrade (from rev 451051, dkms/trunk/hook.upgrade)
===================================================================
--- community-any/hook.upgrade (rev 0)
+++ community-any/hook.upgrade 2022-07-14 13:02:15 UTC (rev 451052)
@@ -0,0 +1,13 @@
+[Trigger]
+Operation = Upgrade
+Type = Path
+Target = usr/src/*/dkms.conf
+Target = usr/lib/modules/*/build/include/
+Target = usr/lib/modules/*/modules.alias
+
+[Action]
+Description = Remove upgraded DKMS modules
+Depends = dkms
+When = PreTransaction
+Exec = /usr/share/libalpm/scripts/dkms -D remove
+NeedsTargets
More information about the arch-commits
mailing list