Date: Thursday, February 25, 2016 @ 00:14:59 Author: seblu Revision: 163346
db-move: moved dkms from [community-testing] to [community] (any) Added: dkms/repos/community-any/02-no-kernel-hook.patch (from rev 163345, dkms/repos/community-testing-any/02-no-kernel-hook.patch) dkms/repos/community-any/PKGBUILD (from rev 163345, dkms/repos/community-testing-any/PKGBUILD) dkms/repos/community-any/dkms.install (from rev 163345, dkms/repos/community-testing-any/dkms.install) dkms/repos/community-any/hook.install (from rev 163345, dkms/repos/community-testing-any/hook.install) dkms/repos/community-any/hook.remove (from rev 163345, dkms/repos/community-testing-any/hook.remove) dkms/repos/community-any/hook.sh (from rev 163345, dkms/repos/community-testing-any/hook.sh) Deleted: dkms/repos/community-any/02-no-kernel-hook.patch dkms/repos/community-any/PKGBUILD dkms/repos/community-any/dkms.default dkms/repos/community-any/dkms.install dkms/repos/community-any/dkms.service dkms/repos/community-any/dkms.systemd dkms/repos/community-testing-any/ ---------------------------------------+ /02-no-kernel-hook.patch | 13 ++++++ /PKGBUILD | 60 +++++++++++++++++++++++++++++++ /dkms.install | 13 ++++++ community-any/02-no-kernel-hook.patch | 13 ------ community-any/PKGBUILD | 60 ------------------------------- community-any/dkms.default | 9 ---- community-any/dkms.install | 13 ------ community-any/dkms.service | 11 ----- community-any/dkms.systemd | 61 -------------------------------- community-any/hook.install | 13 ++++++ community-any/hook.remove | 13 ++++++ community-any/hook.sh | 60 +++++++++++++++++++++++++++++++ 12 files changed, 172 insertions(+), 167 deletions(-) Deleted: community-any/02-no-kernel-hook.patch =================================================================== --- community-any/02-no-kernel-hook.patch 2016-02-24 22:11:37 UTC (rev 163345) +++ community-any/02-no-kernel-hook.patch 2016-02-24 23:14:59 UTC (rev 163346) @@ -1,13 +0,0 @@ -# Author: Sébastien Luttringer <se...@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-any/02-no-kernel-hook.patch (from rev 163345, dkms/repos/community-testing-any/02-no-kernel-hook.patch) =================================================================== --- community-any/02-no-kernel-hook.patch (rev 0) +++ community-any/02-no-kernel-hook.patch 2016-02-24 23:14:59 UTC (rev 163346) @@ -0,0 +1,13 @@ +# Author: Sébastien Luttringer <se...@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 + Deleted: community-any/PKGBUILD =================================================================== --- community-any/PKGBUILD 2016-02-24 22:11:37 UTC (rev 163345) +++ community-any/PKGBUILD 2016-02-24 23:14:59 UTC (rev 163346) @@ -1,60 +0,0 @@ -# $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-any/PKGBUILD (from rev 163345, dkms/repos/community-testing-any/PKGBUILD) =================================================================== --- community-any/PKGBUILD (rev 0) +++ community-any/PKGBUILD 2016-02-24 23:14:59 UTC (rev 163346) @@ -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=5 +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') +install=$pkgname.install +source=('git+git://linux.dell.com/dkms.git#commit=7b6e78f' + '02-no-kernel-hook.patch' + 'hook.install' + 'hook.remove' + 'hook.sh') +md5sums=('SKIP' + '82d520c39c99c34977e48b313a189c6c' + '8fe2064106958bcfd386e83494c8959a' + '41fcecb1c2dfc59a4b648fddcd8b462f' + '7fdc44f8ecdd0ac0dc5e6bcf02901681') + +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() { + # 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 + make \ + DESTDIR="$pkgdir" \ + SBIN="$pkgdir/usr/bin" \ + BASHDIR="$pkgdir/usr/share/bash-completion/completions" \ + install +} + +# vim:set ts=2 sw=2 et: Deleted: community-any/dkms.default =================================================================== --- community-any/dkms.default 2016-02-24 22:11:37 UTC (rev 163345) +++ community-any/dkms.default 2016-02-24 23:14:59 UTC (rev 163346) @@ -1,9 +0,0 @@ -# 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 Deleted: community-any/dkms.install =================================================================== --- community-any/dkms.install 2016-02-24 22:11:37 UTC (rev 163345) +++ community-any/dkms.install 2016-02-24 23:14:59 UTC (rev 163346) @@ -1,13 +0,0 @@ -#!/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-any/dkms.install (from rev 163345, dkms/repos/community-testing-any/dkms.install) =================================================================== --- community-any/dkms.install (rev 0) +++ community-any/dkms.install 2016-02-24 23:14:59 UTC (rev 163346) @@ -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: community-any/dkms.service =================================================================== --- community-any/dkms.service 2016-02-24 22:11:37 UTC (rev 163345) +++ community-any/dkms.service 2016-02-24 23:14:59 UTC (rev 163346) @@ -1,11 +0,0 @@ -[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 Deleted: community-any/dkms.systemd =================================================================== --- community-any/dkms.systemd 2016-02-24 22:11:37 UTC (rev 163345) +++ community-any/dkms.systemd 2016-02-24 23:14:59 UTC (rev 163346) @@ -1,61 +0,0 @@ -#!/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: Copied: dkms/repos/community-any/hook.install (from rev 163345, dkms/repos/community-testing-any/hook.install) =================================================================== --- community-any/hook.install (rev 0) +++ community-any/hook.install 2016-02-24 23:14:59 UTC (rev 163346) @@ -0,0 +1,13 @@ +[Trigger] +Operation = Install +Operation = Upgrade +Type = File +Target = usr/src/*/dkms.conf +Target = usr/lib/modules/*/build/include/ + +[Action] +Description = Install DKMS modules +Depends = dkms +When = PostTransaction +Exec = /usr/lib/dkms/alpm-hook install +NeedsTargets Copied: dkms/repos/community-any/hook.remove (from rev 163345, dkms/repos/community-testing-any/hook.remove) =================================================================== --- community-any/hook.remove (rev 0) +++ community-any/hook.remove 2016-02-24 23:14:59 UTC (rev 163346) @@ -0,0 +1,13 @@ +[Trigger] +Operation = Upgrade +Operation = Remove +Type = File +Target = usr/src/*/dkms.conf +Target = usr/lib/modules/*/build/include/ + +[Action] +Description = Remove DKMS modules +Depends = dkms +When = PreTransaction +Exec = /usr/lib/dkms/alpm-hook remove -q +NeedsTargets Copied: dkms/repos/community-any/hook.sh (from rev 163345, dkms/repos/community-testing-any/hook.sh) =================================================================== --- community-any/hook.sh (rev 0) +++ community-any/hook.sh 2016-02-24 23:14:59 UTC (rev 163346) @@ -0,0 +1,60 @@ +#!/bin/bash + +# +# Copyright © 2016 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. + +# prevent to have all each dkms call to fail +if (( EUID )); then + echo 'You must be root to use this hook' >&2 + exit 1 +fi + +# check args count +if (( $# < 1 )); then + echo "usage: ${0##*/} dkms-arguments" >&2 + exit 1 +fi + +# dkms path from framework config +# note: the alpm hooks which trigger this script use static path +source_tree='/usr/src' +dkms_tree='/var/lib/dkms' +install_tree='/usr/lib/modules' +source /etc/dkms/framework.conf + +shopt -s nullglob + +# parse stdin path to guess what do do +while read -r path; do + if [[ "/$path" =~ ^$source_tree/([^/]+)-([^/]+)/dkms\.conf$ ]]; then + # do $@ for each kernel with headers + pushd "$install_tree" >/dev/null + for incpath in */build/include; do + dkms "$@" -m "${BASH_REMATCH[1]}" -v "${BASH_REMATCH[2]}" -k "${incpath%%/*}" + done + popd >/dev/null + elif [[ "/$path" =~ ^$install_tree/([^/]+)/ ]]; then + # do $@ once for each registered dkms module + pushd "$dkms_tree" >/dev/null + for mod in */*/source; do + dkms "$@" -m "${mod%/source}" -k "${BASH_REMATCH[1]}" + done + popd >/dev/null + else + echo "Skipping invalid path: $path" >&2 + fi +done