X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=org.handhelds.familiar%2Fclasses%2Fmodule.bbclass;fp=org.handhelds.familiar%2Fclasses%2Fmodule.bbclass;h=531bdbce745908fbcdaffe7f99e6c6abaa087287;hb=f28609d4aff92f6b4c762c7ed5e56569dccaee3c;hp=8a13f1f85861e4c2742ce59b7a6d8d0992ba9710;hpb=e3664e48fdc985c5db1c6781613a4f801c4f12af;p=familiar-h63xx-build.git diff --git a/org.handhelds.familiar/classes/module.bbclass b/org.handhelds.familiar/classes/module.bbclass index 8a13f1f..531bdbc 100644 --- a/org.handhelds.familiar/classes/module.bbclass +++ b/org.handhelds.familiar/classes/module.bbclass @@ -3,11 +3,14 @@ DEPENDS += "virtual/kernel" inherit module-base +KERNEL_MAJOR_VERSION = "${@'.'.join(bb.data.getVar('KERNEL_VERSION', d, 1).split('.')[:2])}" + python populate_packages_prepend() { v = bb.data.getVar("PARALLEL_INSTALL_MODULES", d, 1) or "0" if v == "1": - kv = bb.data.getVar("KERNEL_VERSION", d, 1) + kv = bb.data.getVar("KERNEL_MAJOR_VERSION", d, 1) packages = bb.data.getVar("PACKAGES", d, 1) + repl_vers = bb.data.getVar("PARALLEL_INSTALL_REPLACE_VERSIONS", d, 1) for p in packages.split(): pkg = bb.data.getVar("PKG_%s" % p, d, 1) or p newpkg = "%s-%s" % (pkg, kv) @@ -18,6 +21,25 @@ python populate_packages_prepend() { else: rprovides = pkg bb.data.setVar("RPROVIDES_%s" % p, rprovides, d) + + # kv was changed from KERNEL_VERSION to KERNEL_MAJOR_VERSION. + # now fix the upgrade path... + if repl_vers: + repl_pkgs = [] + for v in repl_vers.split(): + repl_pkgs.append("%s-%s" % (pkg, v)) + for i in ["PROVIDES", "CONFLICTS", "REPLACES"]: + val = bb.data.getVar("R%s_%s" % (i, p), d, 1) + if val: + old = val.split() + add = [] + for k in repl_pkgs: + if not k in old: + add.append(k) + val = "%s %s" % (val, " ".join(add)) + else: + val = "%s" % " ".join(repl_pkgs) + bb.data.setVar("R%s_%s" % (i, p), val, d) } module_do_compile() {