[arch-commits] Commit in dkms/repos (7 files)
Sébastien Luttringer
seblu at archlinux.org
Fri Oct 23 16:50:22 UTC 2015
Date: Friday, October 23, 2015 @ 18:50:21
Author: seblu
Revision: 144801
archrelease: copy trunk to community-testing-any
Added:
dkms/repos/community-testing-any/
dkms/repos/community-testing-any/02-no-kernel-hook.patch
(from rev 144800, dkms/trunk/02-no-kernel-hook.patch)
dkms/repos/community-testing-any/PKGBUILD
(from rev 144800, dkms/trunk/PKGBUILD)
dkms/repos/community-testing-any/dkms.default
(from rev 144800, dkms/trunk/dkms.default)
dkms/repos/community-testing-any/dkms.install
(from rev 144800, dkms/trunk/dkms.install)
dkms/repos/community-testing-any/dkms.service
(from rev 144800, dkms/trunk/dkms.service)
dkms/repos/community-testing-any/dkms.systemd
(from rev 144800, dkms/trunk/dkms.systemd)
-------------------------+
02-no-kernel-hook.patch | 13 +++++++++
PKGBUILD | 60 +++++++++++++++++++++++++++++++++++++++++++++
dkms.default | 9 ++++++
dkms.install | 13 +++++++++
dkms.service | 11 ++++++++
dkms.systemd | 61 ++++++++++++++++++++++++++++++++++++++++++++++
6 files changed, 167 insertions(+)
Copied: dkms/repos/community-testing-any/02-no-kernel-hook.patch (from rev 144800, dkms/trunk/02-no-kernel-hook.patch)
===================================================================
--- community-testing-any/02-no-kernel-hook.patch (rev 0)
+++ community-testing-any/02-no-kernel-hook.patch 2015-10-23 16:50:21 UTC (rev 144801)
@@ -0,0 +1,13 @@
+# Author: Sébastien Luttringer <seblu at seblu.net>
+--- a/Makefile 2011-12-07 19:23:51.000000000 +0100
++++ b/Makefile 2013-05-13 00:48:19.620000000 +0200
+@@ -46,9 +46,6 @@
+ gzip -c -9 dkms.8 > $(MAN)/dkms.8.gz
+ chmod 0644 $(MAN)/dkms.8.gz
+ touch --reference=dkms.8 $(MAN)/dkms.8.gz
+- mkdir -p -m 0755 $(KCONF)/prerm.d $(KCONF)/postinst.d
+- install -p -m 0755 kernel_prerm.d_dkms $(KCONF)/prerm.d/dkms
+- install -p -m 0755 kernel_postinst.d_dkms $(KCONF)/postinst.d/dkms
+
+ DOCFILES=sample.spec sample.conf AUTHORS COPYING README.dkms sample-suse-9-mkkmp.spec sample-suse-10-mkkmp.spec
+
Copied: dkms/repos/community-testing-any/PKGBUILD (from rev 144800, dkms/trunk/PKGBUILD)
===================================================================
--- community-testing-any/PKGBUILD (rev 0)
+++ community-testing-any/PKGBUILD 2015-10-23 16:50:21 UTC (rev 144801)
@@ -0,0 +1,60 @@
+# $Id$
+# Maintainer: Sébastien Luttringer
+# Contributor: Balwinder S "bsd" Dheeman (bdheeman AT gmail.com)
+
+pkgname=dkms
+pkgver=2.2.0.3+git151023
+pkgrel=1
+pkgdesc='Dynamic Kernel Modules System'
+arch=('any')
+url='http://linux.dell.com/dkms/'
+license=('GPL2')
+depends=('bash' 'kmod' 'gcc' 'make' 'patch')
+makedepends=('git')
+optdepends=('linux-headers: build modules against Arch kernel'
+ 'linux-lts-headers: build modules against LTS Arch kernel')
+backup=('etc/dkms/framework.conf' 'etc/default/dkms')
+install=$pkgname.install
+source=('git+git://linux.dell.com/dkms.git#commit=7b6e78f'
+ '02-no-kernel-hook.patch'
+ "$pkgname.default"
+ "$pkgname.service"
+ "$pkgname.systemd")
+md5sums=('SKIP'
+ '82d520c39c99c34977e48b313a189c6c'
+ '33be2fbf1bcc1b3fb2f38d9e7eaa809d'
+ '02e9744e3fdc3d2f68e46966fb32e260'
+ '0158265dace30b6cdd06244e844b3e5f')
+
+prepare() {
+ cd dkms
+ # patching
+ patches=("$srcdir"/*.patch)
+ if (( ${#patches[*]} > 0 )); then
+ for p in "${patches[@]}"; do
+ msg2 "Apply patch: ${p##*/}"
+ patch -p1 -i "$p"
+ done
+ fi
+ # /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() {
+ # systemd
+ install -D -m 644 $pkgname.service "$pkgdir/usr/lib/systemd/system/$pkgname.service"
+ install -D -m 755 $pkgname.systemd "$pkgdir/usr/lib/systemd/scripts/$pkgname"
+ install -D -m 644 $pkgname.default "$pkgdir/etc/default/$pkgname"
+ # upstream installer
+ cd dkms
+ make \
+ DESTDIR="$pkgdir" \
+ SBIN="$pkgdir/usr/bin" \
+ BASHDIR="$pkgdir/usr/share/bash-completion/completions" \
+ install
+}
+
+# vim:set ts=2 sw=2 et:
Copied: dkms/repos/community-testing-any/dkms.default (from rev 144800, dkms/trunk/dkms.default)
===================================================================
--- community-testing-any/dkms.default (rev 0)
+++ community-testing-any/dkms.default 2015-10-23 16:50:21 UTC (rev 144801)
@@ -0,0 +1,9 @@
+# vim:set ts=2 sw=2 ft=sh noet:
+
+# With LOAD set to yes, modules listed as installed will be loaded with
+# systemctl start dkms.service. Default is yes.
+LOAD=yes
+
+# With UNLOAD set to yes, modules listed as installed will be unloaded with
+# systemctl stop dkms.service. Default is no.
+UNLOAD=no
Copied: dkms/repos/community-testing-any/dkms.install (from rev 144800, dkms/trunk/dkms.install)
===================================================================
--- community-testing-any/dkms.install (rev 0)
+++ community-testing-any/dkms.install 2015-10-23 16:50:21 UTC (rev 144801)
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ if [ "$(vercmp $2 2.2.0.3-12)" -le 0 ]; then
+ cat << EOF
+===> dkms startup config file moved to /etc/default/dkms
+EOF
+ fi
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
Copied: dkms/repos/community-testing-any/dkms.service (from rev 144800, dkms/trunk/dkms.service)
===================================================================
--- community-testing-any/dkms.service (rev 0)
+++ community-testing-any/dkms.service 2015-10-23 16:50:21 UTC (rev 144801)
@@ -0,0 +1,11 @@
+[Unit]
+Description=Dynamic Kernel Modules System
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/lib/systemd/scripts/dkms start
+ExecStop=/usr/lib/systemd/scripts/dkms stop
+
+[Install]
+WantedBy=multi-user.target
Copied: dkms/repos/community-testing-any/dkms.systemd (from rev 144800, dkms/trunk/dkms.systemd)
===================================================================
--- community-testing-any/dkms.systemd (rev 0)
+++ community-testing-any/dkms.systemd 2015-10-23 16:50:21 UTC (rev 144801)
@@ -0,0 +1,61 @@
+#!/bin/bash
+
+. /etc/default/dkms
+
+# list dkms modules for the current running kernel
+list_dkms_modules() {
+ shopt -s nullglob
+ declare -a DKMS_MOULES
+ # dkms status needs uname -r to list correctly intalled version for current kernel
+ local modules_path=($(dkms status -k "$(uname -r)"|sed -rn 's#(.*), (.*), (.*), (.*): installed#\1/\2/\3/\4#p'))
+ for p in "${modules_path[@]}"; do
+ for m in /var/lib/dkms/"$p"/module/*.ko{,gz}; do
+ m=${m##*/}
+ m=${m%.gz}
+ m=${m%.ko}
+ DKMS_MODULES+=("$m")
+ done
+ done
+}
+
+# load installed kernel modules for the current kernel version
+load_dkms_modules() {
+ local ret=0
+ list_dkms_modules
+ for m in "${DKMS_MODULES[@]}"; do
+ modprobe -b "$m"
+ ret+=$?
+ done
+ return $ret
+}
+
+# unload installed kernel modules for the current kernel version
+unload_dkms_modules() {
+ list_dkms_modules
+ # ask for removal
+ for m in "${DKMS_MODULES[@]}"; do
+ modprobe --remove --quiet "$m"
+ done
+ # check modules are unloaded
+ # sometimes modprobe -r fail but modules are removed
+ for m in "${DKMS_MODULES[@]}"; do
+ [[ -e /sys/modules/$m ]] && return 1
+ done
+ return 0
+}
+
+case "$1" in
+ start)
+ dkms autoinstall -k "$(uname -r)"
+ [[ $LOAD =~ [Yy][Ee][Ss] ]] && load_dkms_modules
+ ;;
+ stop)
+ [[ $UNLOAD =~ [Yy][Ee][Ss] ]] && unload_dkms_modules
+ ;;
+ *)
+ echo "usage: $0 {start|stop}" >&2
+ ;;
+esac
+
+:
+# vim:set ts=2 sw=2 ft=sh et:
More information about the arch-commits
mailing list