summaryrefslogtreecommitdiffstats
path: root/meta/classes/package.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/package.bbclass')
-rw-r--r--meta/classes/package.bbclass52
1 files changed, 38 insertions, 14 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 4685cd2bc0..320ec0ee01 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -394,28 +394,52 @@ def runtime_mapping_rename (varname, pkg, d):
394# 394#
395 395
396python package_get_auto_pr() { 396python package_get_auto_pr() {
397 # per recipe PRSERV_HOST 397 import oe.prservice
398 import re
399
400 # Support per recipe PRSERV_HOST
398 pn = d.getVar('PN', True) 401 pn = d.getVar('PN', True)
399 host = d.getVar("PRSERV_HOST_" + pn, True) 402 host = d.getVar("PRSERV_HOST_" + pn, True)
400 if not (host is None): 403 if not (host is None):
401 d.setVar("PRSERV_HOST", host) 404 d.setVar("PRSERV_HOST", host)
402 405
403 if d.getVar('PRSERV_HOST', True): 406 # PR Server not active, handle AUTOINC
404 try: 407 if not d.getVar('PRSERV_HOST', True):
405 auto_pr=prserv_get_pr_auto(d)
406 except Exception as e:
407 bb.fatal("Can NOT get PRAUTO, exception %s" % str(e))
408 if auto_pr is None:
409 if d.getVar('PRSERV_LOCKDOWN', True):
410 bb.fatal("Can NOT get PRAUTO from lockdown exported file")
411 else:
412 bb.fatal("Can NOT get PRAUTO from remote PR service")
413 return
414 d.setVar('PRAUTO',str(auto_pr))
415 else:
416 pkgv = d.getVar("PKGV", True) 408 pkgv = d.getVar("PKGV", True)
417 if 'AUTOINC' in pkgv: 409 if 'AUTOINC' in pkgv:
418 d.setVar("PKGV", pkgv.replace("AUTOINC", "0")) 410 d.setVar("PKGV", pkgv.replace("AUTOINC", "0"))
411 return
412
413 auto_pr = None
414 pv = d.getVar("PV", True)
415 version = d.getVar("PRAUTOINX", True)
416 pkgarch = d.getVar("PACKAGE_ARCH", True)
417 checksum = d.getVar("BB_TASKHASH", True)
418
419 if d.getVar('PRSERV_LOCKDOWN', True):
420 auto_pr = d.getVar('PRAUTO_' + version + '_' + pkgarch, True) or d.getVar('PRAUTO_' + version, True) or None
421 if auto_pr is None:
422 bb.fatal("Can NOT get PRAUTO from lockdown exported file")
423 d.setVar('PRAUTO',str(auto_pr))
424 return
425
426 try:
427 conn = d.getVar("__PRSERV_CONN", True)
428 if conn is None:
429 conn = oe.prservice.prserv_make_conn(d)
430 if conn is not None:
431 if "AUTOINC" in pv:
432 srcpv = bb.fetch2.get_srcrev(d)
433 base_ver = "AUTOINC-%s" % version[:version.find(srcpv)]
434 value = conn.getPR(base_ver, pkgarch, srcpv)
435 d.setVar("PKGV", pv.replace("AUTOINC", str(value)))
436
437 auto_pr = conn.getPR(version, pkgarch, checksum)
438 except Exception as e:
439 bb.fatal("Can NOT get PRAUTO, exception %s" % str(e))
440 if auto_pr is None:
441 bb.fatal("Can NOT get PRAUTO from remote PR service")
442 d.setVar('PRAUTO',str(auto_pr))
419} 443}
420 444
421LOCALEBASEPN ??= "${PN}" 445LOCALEBASEPN ??= "${PN}"