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 2aec3e6bd9..510617c3de 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -392,28 +392,52 @@ def runtime_mapping_rename (varname, pkg, d):
392# 392#
393 393
394python package_get_auto_pr() { 394python package_get_auto_pr() {
395 # per recipe PRSERV_HOST 395 import oe.prservice
396 import re
397
398 # Support per recipe PRSERV_HOST
396 pn = d.getVar('PN', True) 399 pn = d.getVar('PN', True)
397 host = d.getVar("PRSERV_HOST_" + pn, True) 400 host = d.getVar("PRSERV_HOST_" + pn, True)
398 if not (host is None): 401 if not (host is None):
399 d.setVar("PRSERV_HOST", host) 402 d.setVar("PRSERV_HOST", host)
400 403
401 if d.getVar('PRSERV_HOST', True): 404 # PR Server not active, handle AUTOINC
402 try: 405 if not d.getVar('PRSERV_HOST', True):
403 auto_pr=prserv_get_pr_auto(d)
404 except Exception as e:
405 bb.fatal("Can NOT get PRAUTO, exception %s" % str(e))
406 if auto_pr is None:
407 if d.getVar('PRSERV_LOCKDOWN', True):
408 bb.fatal("Can NOT get PRAUTO from lockdown exported file")
409 else:
410 bb.fatal("Can NOT get PRAUTO from remote PR service")
411 return
412 d.setVar('PRAUTO',str(auto_pr))
413 else:
414 pkgv = d.getVar("PKGV", True) 406 pkgv = d.getVar("PKGV", True)
415 if 'AUTOINC' in pkgv: 407 if 'AUTOINC' in pkgv:
416 d.setVar("PKGV", pkgv.replace("AUTOINC", "0")) 408 d.setVar("PKGV", pkgv.replace("AUTOINC", "0"))
409 return
410
411 auto_pr = None
412 pv = d.getVar("PV", True)
413 version = d.getVar("PRAUTOINX", True)
414 pkgarch = d.getVar("PACKAGE_ARCH", True)
415 checksum = d.getVar("BB_TASKHASH", True)
416
417 if d.getVar('PRSERV_LOCKDOWN', True):
418 auto_pr = d.getVar('PRAUTO_' + version + '_' + pkgarch, True) or d.getVar('PRAUTO_' + version, True) or None
419 if auto_pr is None:
420 bb.fatal("Can NOT get PRAUTO from lockdown exported file")
421 d.setVar('PRAUTO',str(auto_pr))
422 return
423
424 try:
425 conn = d.getVar("__PRSERV_CONN", True)
426 if conn is None:
427 conn = oe.prservice.prserv_make_conn(d)
428 if conn is not None:
429 if "AUTOINC" in pv:
430 srcpv = bb.fetch2.get_srcrev(d)
431 base_ver = "AUTOINC-%s" % version[:version.find(srcpv)]
432 value = conn.getPR(base_ver, pkgarch, srcpv)
433 d.setVar("PKGV", pv.replace("AUTOINC", str(value)))
434
435 auto_pr = conn.getPR(version, pkgarch, checksum)
436 except Exception as e:
437 bb.fatal("Can NOT get PRAUTO, exception %s" % str(e))
438 if auto_pr is None:
439 bb.fatal("Can NOT get PRAUTO from remote PR service")
440 d.setVar('PRAUTO',str(auto_pr))
417} 441}
418 442
419LOCALEBASEPN ??= "${PN}" 443LOCALEBASEPN ??= "${PN}"