From 9e6896952873856f3f025a7e05f9c1c1525892ec Mon Sep 17 00:00:00 2001 From: Marcin Bojara Date: Mon, 6 Jan 2020 23:01:25 +0100 Subject: [PATCH] version bump, add pakhandler.py --- hardware/misc/dkms/actions.py | 11 +++--- hardware/misc/dkms/comar/pakhandler.py | 52 ++++++++++++++++++++++++++ hardware/misc/dkms/pspec.xml | 27 +++++++++---- 3 files changed, 76 insertions(+), 14 deletions(-) create mode 100644 hardware/misc/dkms/comar/pakhandler.py 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