[arch-commits] Commit in dkms/repos/extra-any (14 files)

Sébastien Luttringer seblu at gemini.archlinux.org
Fri Dec 17 12:40:39 UTC 2021


    Date: Friday, December 17, 2021 @ 12:40:38
  Author: seblu
Revision: 432694

archrelease: copy trunk to extra-any

Added:
  dkms/repos/extra-any/PKGBUILD
    (from rev 432693, dkms/trunk/PKGBUILD)
  dkms/repos/extra-any/PKGBUILD.26
    (from rev 432693, dkms/trunk/PKGBUILD.26)
  dkms/repos/extra-any/dkms.install
    (from rev 432693, dkms/trunk/dkms.install)
  dkms/repos/extra-any/hook.install
    (from rev 432693, dkms/trunk/hook.install)
  dkms/repos/extra-any/hook.remove
    (from rev 432693, dkms/trunk/hook.remove)
  dkms/repos/extra-any/hook.sh
    (from rev 432693, dkms/trunk/hook.sh)
  dkms/repos/extra-any/hook.upgrade
    (from rev 432693, dkms/trunk/hook.upgrade)
Deleted:
  dkms/repos/extra-any/PKGBUILD
  dkms/repos/extra-any/PKGBUILD.26
  dkms/repos/extra-any/dkms.install
  dkms/repos/extra-any/hook.install
  dkms/repos/extra-any/hook.remove
  dkms/repos/extra-any/hook.sh
  dkms/repos/extra-any/hook.upgrade

--------------+
 PKGBUILD     |  146 ++++++-------
 PKGBUILD.26  |  138 ++++++------
 dkms.install |   26 +-
 hook.install |   28 +-
 hook.remove  |   26 +-
 hook.sh      |  606 ++++++++++++++++++++++++++++-----------------------------
 hook.upgrade |   26 +-
 7 files changed, 498 insertions(+), 498 deletions(-)

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2021-12-17 12:40:31 UTC (rev 432693)
+++ PKGBUILD	2021-12-17 12:40:38 UTC (rev 432694)
@@ -1,73 +0,0 @@
-# Maintainer: Sébastien Luttringer
-# Contributor: Balwinder S "bsd" Dheeman (bdheeman AT gmail.com)
-
-pkgname=dkms
-pkgver=3.0.2
-pkgrel=1
-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')
-sha256sums=('SKIP'
-            'acdc5b45cc018cea04ee1aec56fd8fc3a2de62cf7bc41acf53b3790872120998'
-            '326515cc7d00f93760beb844434ca7442caf7a9424614aa95a8f6d1ab79e15df'
-            '4f8dff7716e73a8bba885638f12e3cdc9e87daec1896f75e700b981527e43870'
-            'c1b4a4e2e4e0e0e59ee0887403e79d60b209f3878dbbec6612573f13b90cce01')
-
-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} sign_helper.sh; 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/extra-any/PKGBUILD (from rev 432693, dkms/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2021-12-17 12:40:38 UTC (rev 432694)
@@ -0,0 +1,73 @@
+# Maintainer: Sébastien Luttringer
+# Contributor: Balwinder S "bsd" Dheeman (bdheeman AT gmail.com)
+
+pkgname=dkms
+pkgver=3.0.3
+pkgrel=1
+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')
+sha256sums=('SKIP'
+            'acdc5b45cc018cea04ee1aec56fd8fc3a2de62cf7bc41acf53b3790872120998'
+            '326515cc7d00f93760beb844434ca7442caf7a9424614aa95a8f6d1ab79e15df'
+            '4f8dff7716e73a8bba885638f12e3cdc9e87daec1896f75e700b981527e43870'
+            'c1b4a4e2e4e0e0e59ee0887403e79d60b209f3878dbbec6612573f13b90cce01')
+
+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} sign_helper.sh; 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:

Deleted: PKGBUILD.26
===================================================================
--- PKGBUILD.26	2021-12-17 12:40:31 UTC (rev 432693)
+++ PKGBUILD.26	2021-12-17 12:40:38 UTC (rev 432694)
@@ -1,69 +0,0 @@
-# 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/extra-any/PKGBUILD.26 (from rev 432693, dkms/trunk/PKGBUILD.26)
===================================================================
--- PKGBUILD.26	                        (rev 0)
+++ PKGBUILD.26	2021-12-17 12:40:38 UTC (rev 432694)
@@ -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:

Deleted: dkms.install
===================================================================
--- dkms.install	2021-12-17 12:40:31 UTC (rev 432693)
+++ dkms.install	2021-12-17 12:40:38 UTC (rev 432694)
@@ -1,13 +0,0 @@
-#!/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/extra-any/dkms.install (from rev 432693, dkms/trunk/dkms.install)
===================================================================
--- dkms.install	                        (rev 0)
+++ dkms.install	2021-12-17 12:40:38 UTC (rev 432694)
@@ -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:

Deleted: hook.install
===================================================================
--- hook.install	2021-12-17 12:40:31 UTC (rev 432693)
+++ hook.install	2021-12-17 12:40:38 UTC (rev 432694)
@@ -1,14 +0,0 @@
-[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/extra-any/hook.install (from rev 432693, dkms/trunk/hook.install)
===================================================================
--- hook.install	                        (rev 0)
+++ hook.install	2021-12-17 12:40:38 UTC (rev 432694)
@@ -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

Deleted: hook.remove
===================================================================
--- hook.remove	2021-12-17 12:40:31 UTC (rev 432693)
+++ hook.remove	2021-12-17 12:40:38 UTC (rev 432694)
@@ -1,13 +0,0 @@
-[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/extra-any/hook.remove (from rev 432693, dkms/trunk/hook.remove)
===================================================================
--- hook.remove	                        (rev 0)
+++ hook.remove	2021-12-17 12:40:38 UTC (rev 432694)
@@ -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

Deleted: hook.sh
===================================================================
--- hook.sh	2021-12-17 12:40:31 UTC (rev 432693)
+++ hook.sh	2021-12-17 12:40:38 UTC (rev 432694)
@@ -1,303 +0,0 @@
-#!/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/extra-any/hook.sh (from rev 432693, dkms/trunk/hook.sh)
===================================================================
--- hook.sh	                        (rev 0)
+++ hook.sh	2021-12-17 12:40:38 UTC (rev 432694)
@@ -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 "$@"

Deleted: hook.upgrade
===================================================================
--- hook.upgrade	2021-12-17 12:40:31 UTC (rev 432693)
+++ hook.upgrade	2021-12-17 12:40:38 UTC (rev 432694)
@@ -1,13 +0,0 @@
-[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

Copied: dkms/repos/extra-any/hook.upgrade (from rev 432693, dkms/trunk/hook.upgrade)
===================================================================
--- hook.upgrade	                        (rev 0)
+++ hook.upgrade	2021-12-17 12:40:38 UTC (rev 432694)
@@ -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