__version__ = "1.9.0"
-if sys.hexversion < 0x020600F0:
- print "Sorry, python 2.6 or later is required for this version of bitbake"
+if sys.hexversion < 0x020500F0:
+ print "Sorry, python 2.5 or later is required for this version of bitbake"
sys.exit(1)
#============================================================================#
Rename the variable key to newkey
"""
val = self.getVar(key, 0)
- if val is None:
- return
-
- self.setVar(newkey, val)
+ if val is not None:
+ self.setVar(newkey, val)
for i in ('_append', '_prepend'):
+ src = self.getVarFlag(key, i)
+ if src is None:
+ continue
+
dest = self.getVarFlag(newkey, i) or []
- src = self.getVarFlag(key, i) or []
dest.extend(src)
self.setVarFlag(newkey, i, dest)
after = m.group("after")
if func is None:
return
- var = "do_" + func
+ if func[:3] != "do_":
+ var = "do_" + func
data.setVarFlag(var, "task", 1, d)
return tmp_pn
+def preferredVersionMatch(pe, pv, pr, preferred_e, preferred_v, preferred_r):
+ """
+ Check if the version pe,pv,pr is the preferred one.
+ If there is preferred version defined and ends with '%', then pv has to start with that version after removing the '%'
+ """
+ if (pr == preferred_r or preferred_r == None):
+ if (pe == preferred_e or preferred_e == None):
+ if preferred_v == pv:
+ return True
+ if preferred_v != None and preferred_v.endswith('%') and pv.startswith(preferred_v[:len(preferred_v)-1]):
+ return True
+ return False
def findPreferredProvider(pn, cfgData, dataCache, pkg_pn = None, item = None):
"""
for file_set in pkg_pn:
for f in file_set:
pe,pv,pr = dataCache.pkg_pepvpr[f]
- if preferred_v == pv and (preferred_r == pr or preferred_r == None) and (preferred_e == pe or preferred_e == None):
+ if preferredVersionMatch(pe, pv, pr, preferred_e, preferred_v, preferred_r):
preferred_file = f
preferred_ver = (pe, pv, pr)
break
"""
import bb
-import xmlrpclib
+import xmlrpclib, sys
from bb import daemonize
from bb.ui import uievent
from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
import inspect, select
+if sys.hexversion < 0x020600F0:
+ print "Sorry, python 2.6 or later is required for bitbake's XMLRPC mode"
+ sys.exit(1)
+
class BitBakeServerCommands():
def __init__(self, server, cooker):
self.cooker = cooker
ids = []
for dep in task_deps['depends'][task].split():
if dep:
+ if ":" not in dep:
+ bb.msg.fatal(bb.msg.domain.TaskData, "Error, dependency %s does not contain ':' character\n. Task 'depends' should be specified in the form 'packagename:task'" % (depend, fn))
ids.append(((self.getbuild_id(dep.split(":")[0])), dep.split(":")[1]))
self.tasks_idepends[taskid].extend(ids)
def empty_environment():
"""
- Remove all variable from the environment.
+ Remove all variables from the environment.
"""
for s in os.environ.keys():
os.unsetenv(s)