dkms: add cleanupPackage

This commit is contained in:
Marcin Bojara
2020-01-08 10:22:33 +01:00
parent 54f762e14b
commit bc2664f9d7
+10 -8
View File
@@ -13,11 +13,13 @@ def get_kver():
with open("/etc/kernel/kernel") as f: with open("/etc/kernel/kernel") as f:
return f.readline().strip() return f.readline().strip()
def run_dkms(name, version, kver, arch): def run_dkms(action, name, version, kver, arch):
os.system("dkms build -m %s -v %s -k %s -a %s" % (name, version, kver, arch)) actions = {"build": ["build", "install"],
os.system("dkms install -m %s -v %s -k %s -a %s" % (name, version, kver, arch)) "remove": ["uninstall", "remove"]}
for action in actions[action]:
os.system("dkms %s -m %s -v %s -k %s -a %s" % (action, name, version, kver, arch))
def buildModules(metapath, filepath): def check_dkms(metapath, filepath, action):
if piksemel.parse(metapath).getTag("Package").getTagData("Name") == "kernel-module-headers": if piksemel.parse(metapath).getTag("Package").getTagData("Name") == "kernel-module-headers":
kver = get_kver() kver = get_kver()
arch = piksemel.parse(metapath).getTag("Package").getTagData("Architecture").replace("_", "-") arch = piksemel.parse(metapath).getTag("Package").getTagData("Architecture").replace("_", "-")
@@ -25,7 +27,7 @@ def buildModules(metapath, filepath):
for d in os.walk("/usr/src").next()[1]: for d in os.walk("/usr/src").next()[1]:
if os.path.isfile("/usr/src/%s/dkms.conf" % d): if os.path.isfile("/usr/src/%s/dkms.conf" % d):
name, version = d.split("-") name, version = d.split("-")
run_dkms(name, version, kver, arch) run_dkms(action, name, version, kver, arch)
generate_initrd(kver) generate_initrd(kver)
return return
@@ -38,15 +40,15 @@ def buildModules(metapath, filepath):
version = path.split("/")[-2].split("-")[1] version = path.split("/")[-2].split("-")[1]
kver = get_kver() kver = get_kver()
arch = piksemel.parse(metapath).getTag("Package").getTagData("Architecture").replace("_", "-") arch = piksemel.parse(metapath).getTag("Package").getTagData("Architecture").replace("_", "-")
run_dkms(name, version, kver, arch) run_dkms(action, name, version, kver, arch)
generate_initrd(kver) generate_initrd(kver)
return return
def setupPackage(metapath, filepath): def setupPackage(metapath, filepath):
buildModules(metapath, filepath) check_dkms(metapath, filepath, action="build")
def cleanupPackage(metapath, filepath): def cleanupPackage(metapath, filepath):
pass check_dkms(metapath, filepath, action="remove")
def postCleanupPackage(metapath, filepath): def postCleanupPackage(metapath, filepath):
pass pass