diff --git a/hardware/misc/dkms/actions.py b/hardware/misc/dkms/actions.py
index 23d77c9eb5..079026d10c 100644
--- a/hardware/misc/dkms/actions.py
+++ b/hardware/misc/dkms/actions.py
@@ -4,14 +4,13 @@
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/copyleft/gpl.txt
-from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
-from pisi.actionsapi import get
-
-def build():
- autotools.make()
def install():
- autotools.rawInstall("DESTDIR=%s" % get.installDIR())
+ pisitools.dosbin("dkms")
+ pisitools.doman("dkms.8")
+ pisitools.insinto("/usr/share/bash-completion/completions", "dkms.bash-completion", "dkms")
+ pisitools.insinto("/etc/dkms", "dkms_framework.conf", "framework.conf")
+ pisitools.insinto("/var/lib/dkms", "dkms_dbversion")
pisitools.dodoc("AUTHORS", "COPYING", "README*", "TODO")
diff --git a/hardware/misc/dkms/comar/pakhandler.py b/hardware/misc/dkms/comar/pakhandler.py
new file mode 100644
index 0000000000..e2d4a059ca
--- /dev/null
+++ b/hardware/misc/dkms/comar/pakhandler.py
@@ -0,0 +1,52 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+import os
+import piksemel
+import subprocess
+
+def generate_initrd(kver):
+ subprocess.call(["/usr/bin/mkinitcpio","-k","%s"% kver ,"-g","/boot/initramfs-%s-fallback.img"% kver,"-S","autodetect"])
+ subprocess.call(["/usr/bin/mkinitcpio","-k","%s"% kver ,"-c","/etc/mkinitcpio.conf","-g","/boot/initramfs-%s.img"% kver])
+
+def get_kver():
+ with open("/etc/kernel/kernel") as f:
+ return f.readline().strip()
+
+def run_dkms(name, version, kver, arch):
+ os.system("dkms build -m %s -v %s -k %s -a %s" % (name, version, kver, arch))
+ os.system("dkms install -m %s -v %s -k %s -a %s" % (name, version, kver, arch))
+
+def buildModules(metapath, filepath):
+ if piksemel.parse(metapath).getTag("Package").getTagData("Name") == "kernel-module-headers":
+ kver = get_kver()
+ arch = piksemel.parse(metapath).getTag("Package").getTagData("Architecture").replace("_", "-")
+ # rebuild if /usr/src/*/dkms.conf exists
+ for d in os.walk("/usr/src").next()[1]:
+ if os.path.isfile("/usr/src/%s/dkms.conf" % d):
+ name, version = d.split("-")
+ run_dkms(name, version, kver, arch)
+ generate_initrd(kver)
+ return
+
+ parse = piksemel.parse(filepath)
+ for fp in parse.tags("File"):
+ path = fp.getTagData("Path")
+ # build if package has /usr/src/*/dkms.conf
+ if path.endswith("/dkms.conf") and path.startswith("usr/src/"):
+ name = path.split("/")[-2].split("-")[0]
+ version = path.split("/")[-2].split("-")[1]
+ kver = get_kver()
+ arch = piksemel.parse(metapath).getTag("Package").getTagData("Architecture").replace("_", "-")
+ run_dkms(name, version, kver, arch)
+ generate_initrd(kver)
+ return
+
+def setupPackage(metapath, filepath):
+ buildModules(metapath, filepath)
+
+def cleanupPackage(metapath, filepath):
+ pass
+
+def postCleanupPackage(metapath, filepath):
+ pass
diff --git a/hardware/misc/dkms/pspec.xml b/hardware/misc/dkms/pspec.xml
index 2f41528700..9c69da4ce1 100644
--- a/hardware/misc/dkms/pspec.xml
+++ b/hardware/misc/dkms/pspec.xml
@@ -3,34 +3,45 @@
dkms
http://linux.dell.com/dkms
- Ertan Güven
- ertan@pisilinux.org
+ Marcin Bojara
+ marcin.bojara@gmail.com
GPLv2
hardware.misc
kernel
Dynamic Kernel Module Support
DKMS is a dynamic kernel module support framework.
-
- kernel-headers
-
- https://github.com/dell/dkms/archive/v2.6.1.tar.gz
+ https://github.com/dell/dkms/archive/v2.8.1.tar.gz
dkms
- kernel-headers
+ gcc
+ bash
+ kmod
+ make
+ coreutils
/etc
- /usr/lib
/usr/sbin
/usr/share/doc
/usr/share/man
/var/lib
+ /usr/share/bash-completion
+
+ System.PackageHandler
+
+
+ 2020-01-06
+ 2.8.1
+ Version bump. Add pakhandler.py
+ Marcin Bojara
+ marcin.bojara@gmail.com
+
2018-09-01
2.6.1