Date: Monday, July 18, 2016 @ 22:47:12 Author: seblu Revision: 271992
archrelease: copy trunk to extra-any Added: dkms/repos/extra-any/02-no-kernel-hook.patch (from rev 271991, dkms/trunk/02-no-kernel-hook.patch) dkms/repos/extra-any/PKGBUILD (from rev 271991, dkms/trunk/PKGBUILD) dkms/repos/extra-any/dkms.install (from rev 271991, dkms/trunk/dkms.install) dkms/repos/extra-any/hook.install (from rev 271991, dkms/trunk/hook.install) dkms/repos/extra-any/hook.remove (from rev 271991, dkms/trunk/hook.remove) dkms/repos/extra-any/hook.sh (from rev 271991, dkms/trunk/hook.sh) Deleted: dkms/repos/extra-any/02-no-kernel-hook.patch dkms/repos/extra-any/PKGBUILD dkms/repos/extra-any/dkms.install dkms/repos/extra-any/hook.install dkms/repos/extra-any/hook.remove dkms/repos/extra-any/hook.sh -------------------------+ 02-no-kernel-hook.patch | 26 ++--- PKGBUILD | 128 ++++++++++++------------- dkms.install | 26 ++--- hook.install | 30 +++--- hook.remove | 32 +++--- hook.sh | 230 +++++++++++++++++++++++----------------------- 6 files changed, 237 insertions(+), 235 deletions(-) Deleted: 02-no-kernel-hook.patch =================================================================== --- 02-no-kernel-hook.patch 2016-07-18 22:46:58 UTC (rev 271991) +++ 02-no-kernel-hook.patch 2016-07-18 22:47:12 UTC (rev 271992) @@ -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/extra-any/02-no-kernel-hook.patch (from rev 271991, dkms/trunk/02-no-kernel-hook.patch) =================================================================== --- 02-no-kernel-hook.patch (rev 0) +++ 02-no-kernel-hook.patch 2016-07-18 22:47:12 UTC (rev 271992) @@ -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: PKGBUILD =================================================================== --- PKGBUILD 2016-07-18 22:46:58 UTC (rev 271991) +++ PKGBUILD 2016-07-18 22:47:12 UTC (rev 271992) @@ -1,64 +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=11 -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 the Arch kernel' - 'linux-lts-headers: build modules against the LTS kernel' - 'linux-zen-headers: build modules against the ZEN kernel' - 'linux-grsec-headers: build modules against the GRSEC 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' - 'e6eada07fc3a56a491e14dfeafec746f' - 'e5954138fe309c446a9efb24edf8b267' - 'f2a86ab70daba2e8623156f5221152a9') - -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 - 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/extra-any/PKGBUILD (from rev 271991, dkms/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2016-07-18 22:47:12 UTC (rev 271992) @@ -0,0 +1,64 @@ +# $Id$ +# Maintainer: Sébastien Luttringer +# Contributor: Balwinder S "bsd" Dheeman (bdheeman AT gmail.com) + +pkgname=dkms +pkgver=2.2.0.3+git151023 +pkgrel=12 +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 the Arch kernel' + 'linux-lts-headers: build modules against the LTS kernel' + 'linux-zen-headers: build modules against the ZEN kernel' + 'linux-grsec-headers: build modules against the GRSEC 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' + 'e6eada07fc3a56a491e14dfeafec746f' + '094e692184902a7ee584c84f3a9e375d' + 'f2a86ab70daba2e8623156f5221152a9') + +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 + make \ + DESTDIR="$pkgdir" \ + SBIN="$pkgdir/usr/bin" \ + BASHDIR="$pkgdir/usr/share/bash-completion/completions" \ + install +} + +# vim:set ts=2 sw=2 et: Deleted: dkms.install =================================================================== --- dkms.install 2016-07-18 22:46:58 UTC (rev 271991) +++ dkms.install 2016-07-18 22:47:12 UTC (rev 271992) @@ -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 271991, dkms/trunk/dkms.install) =================================================================== --- dkms.install (rev 0) +++ dkms.install 2016-07-18 22:47:12 UTC (rev 271992) @@ -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 2016-07-18 22:46:58 UTC (rev 271991) +++ hook.install 2016-07-18 22:47:12 UTC (rev 271992) @@ -1,15 +0,0 @@ -[Trigger] -Operation = Install -Operation = Upgrade -Type = File -Target = usr/src/*/dkms.conf -Target = usr/lib/modules/*/ -Target = !usr/lib/modules/extramodules-* -Target = !usr/lib/modules/*/?* - -[Action] -Description = Install DKMS modules -Depends = dkms -When = PostTransaction -Exec = /usr/lib/dkms/alpm-hook install -NeedsTargets Copied: dkms/repos/extra-any/hook.install (from rev 271991, dkms/trunk/hook.install) =================================================================== --- hook.install (rev 0) +++ hook.install 2016-07-18 22:47:12 UTC (rev 271992) @@ -0,0 +1,15 @@ +[Trigger] +Operation = Install +Operation = Upgrade +Type = File +Target = usr/src/*/dkms.conf +Target = usr/lib/modules/*/ +Target = !usr/lib/modules/extramodules-* +Target = !usr/lib/modules/*/?* + +[Action] +Description = Install DKMS modules +Depends = dkms +When = PostTransaction +Exec = /usr/lib/dkms/alpm-hook install +NeedsTargets Deleted: hook.remove =================================================================== --- hook.remove 2016-07-18 22:46:58 UTC (rev 271991) +++ hook.remove 2016-07-18 22:47:12 UTC (rev 271992) @@ -1,15 +0,0 @@ -[Trigger] -Operation = Upgrade -Operation = Remove -Type = File -Target = usr/src/*/dkms.conf -Target = usr/lib/modules/*/ -Target = !usr/lib/modules/extramodules-* -Target = !usr/lib/modules/*/?* - -[Action] -Description = Remove DKMS modules -Depends = dkms -When = PreTransaction -Exec = /usr/lib/dkms/alpm-hook remove -NeedsTargets Copied: dkms/repos/extra-any/hook.remove (from rev 271991, dkms/trunk/hook.remove) =================================================================== --- hook.remove (rev 0) +++ hook.remove 2016-07-18 22:47:12 UTC (rev 271992) @@ -0,0 +1,17 @@ +[Trigger] +Operation = Upgrade +Operation = Remove +Type = File +Target = usr/src/*/dkms.conf +Target = usr/lib/modules/*/ +Target = !usr/lib/modules/extramodules-* +Target = !usr/lib/modules/*/?* + +[Action] +Description = Remove DKMS modules +Depends = dkms +When = PreTransaction +# SIGPIPE workaround. See FS#49816 +#Exec = /usr/lib/dkms/alpm-hook remove +Exec = /usr/bin/perl -e "$SIG{PIPE}='DEFAULT'; exec('/usr/lib/dkms/alpm-hook', 'remove');" +NeedsTargets Deleted: hook.sh =================================================================== --- hook.sh 2016-07-18 22:46:58 UTC (rev 271991) +++ hook.sh 2016-07-18 22:47:12 UTC (rev 271992) @@ -1,115 +0,0 @@ -#!/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. - -# display what to run and run it quietly -run() { - echo "==> $*" - "$@" > /dev/null -} - -# check kernel is valid for action -# it means kernel and its headers are installed -# $1: kernel version -check_kernel() { - local kver="$1"; shift - if [[ ! -d "$install_tree/$kver/kernel" ]]; then - echo "==> No kernel $kver modules. You must install them to use DKMS!" - return 1 - elif [[ ! -d "$install_tree/$kver/build/include" ]]; then - echo "==> No kernel $kver headers. You must install them to use DKMS!" - return 1 - fi - return 0 -} - -# handle actions on module addition/upgrade/removal -# $1: module name -# $2: module version -# $*: dkms args -do_module() { - local modname="$1"; shift - local modver="$1"; shift - pushd "$install_tree" >/dev/null - # do $@ for each kernel with headers for $modname v$modver - local path - for path in */build/; do - local kver="${path%%/*}" - check_kernel "$kver" || continue - run dkms "$@" -m "$modname" -v "$modver" -k "$kver" - done - popd >/dev/null -} - -# handle actions on kernel addition/upgrade/removal -# $1: kernel version -# $*: dkms args -do_kernel() { - local kver="$1"; shift - check_kernel "$kver" || return - # do $@ once for each dkms module in $source_tree - local path - for path in "$source_tree"/*-*/dkms.conf; do - if [[ "$path" =~ ^$source_tree/([^/]+)-([^/]+)/dkms\.conf$ ]]; then - run dkms "$@" -m "${BASH_REMATCH[1]}" -v "${BASH_REMATCH[2]}" -k "$kver" - fi - done -} - -# emulated program entry point -main() { - # 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' - 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!" - return 1 - fi - done - - # parse stdin paths to guess what do do - while read -r path; do - if [[ "/$path" =~ ^$source_tree/([^/]+)-([^/]+)/dkms\.conf$ ]]; then - do_module "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}" "$@" - elif [[ "/$path" =~ ^$install_tree/([^/]+)/ ]]; then - do_kernel "${BASH_REMATCH[1]}" "$@" - fi - done - - return 0 -} - -main "$@" Copied: dkms/repos/extra-any/hook.sh (from rev 271991, dkms/trunk/hook.sh) =================================================================== --- hook.sh (rev 0) +++ hook.sh 2016-07-18 22:47:12 UTC (rev 271992) @@ -0,0 +1,115 @@ +#!/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. + +# display what to run and run it quietly +run() { + echo "==> $*" + "$@" > /dev/null +} + +# check kernel is valid for action +# it means kernel and its headers are installed +# $1: kernel version +check_kernel() { + local kver="$1"; shift + if [[ ! -d "$install_tree/$kver/kernel" ]]; then + echo "==> No kernel $kver modules. You must install them to use DKMS!" + return 1 + elif [[ ! -d "$install_tree/$kver/build/include" ]]; then + echo "==> No kernel $kver headers. You must install them to use DKMS!" + return 1 + fi + return 0 +} + +# handle actions on module addition/upgrade/removal +# $1: module name +# $2: module version +# $*: dkms args +do_module() { + local modname="$1"; shift + local modver="$1"; shift + pushd "$install_tree" >/dev/null + # do $@ for each kernel with headers for $modname v$modver + local path + for path in */build/; do + local kver="${path%%/*}" + check_kernel "$kver" || continue + run dkms "$@" -m "$modname" -v "$modver" -k "$kver" + done + popd >/dev/null +} + +# handle actions on kernel addition/upgrade/removal +# $1: kernel version +# $*: dkms args +do_kernel() { + local kver="$1"; shift + check_kernel "$kver" || return + # do $@ once for each dkms module in $source_tree + local path + for path in "$source_tree"/*-*/dkms.conf; do + if [[ "$path" =~ ^$source_tree/([^/]+)-([^/]+)/dkms\.conf$ ]]; then + run dkms "$@" -m "${BASH_REMATCH[1]}" -v "${BASH_REMATCH[2]}" -k "$kver" + fi + done +} + +# emulated program entry point +main() { + # 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' + 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!" + return 1 + fi + done + + # parse stdin paths to guess what do do + while read -r path; do + if [[ "/$path" =~ ^$source_tree/([^/]+)-([^/]+)/dkms\.conf$ ]]; then + do_module "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}" "$@" + elif [[ "/$path" =~ ^$install_tree/([^/]+)/ ]]; then + do_kernel "${BASH_REMATCH[1]}" "$@" + fi + done + + return 0 +} + +main "$@"