mirror of
https://git.yoctoproject.org/poky
synced 2026-01-31 22:08:42 +01:00
Compare commits
143 Commits
1.4_M1.fin
...
1.3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
27af23e65f | ||
|
|
f735e50c63 | ||
|
|
be3c73bc02 | ||
|
|
0526e01ddf | ||
|
|
a4266b454c | ||
|
|
b1c27ead60 | ||
|
|
504c22b9c9 | ||
|
|
767b28ea55 | ||
|
|
dfeea177d3 | ||
|
|
48363d5a00 | ||
|
|
15b49e25dc | ||
|
|
4cce3e4aba | ||
|
|
6c3cebfe6d | ||
|
|
c7812938cb | ||
|
|
3f377fcc45 | ||
|
|
e90d014a0a | ||
|
|
e7ecb7e61e | ||
|
|
94f0bd12cd | ||
|
|
965d189933 | ||
|
|
9235aec531 | ||
|
|
fb968f87a5 | ||
|
|
5e68ca2ea4 | ||
|
|
b7e951a842 | ||
|
|
cc345014ba | ||
|
|
ed96f96db0 | ||
|
|
26868e8050 | ||
|
|
dac3b30a2b | ||
|
|
fae3759ad7 | ||
|
|
c9b61655e0 | ||
|
|
0497b035a2 | ||
|
|
ba6aac3106 | ||
|
|
9b2c586aad | ||
|
|
abbe518683 | ||
|
|
4f6040ef2c | ||
|
|
a8c43670d9 | ||
|
|
d13dfa3b2d | ||
|
|
a1b04a126e | ||
|
|
96a00c1402 | ||
|
|
bdd3323254 | ||
|
|
e32d893c4c | ||
|
|
3df40af8d0 | ||
|
|
058a9ff749 | ||
|
|
5c8546cca0 | ||
|
|
5c5b56cffc | ||
|
|
1fc37b75cb | ||
|
|
e6bb30d96c | ||
|
|
dbd5778d74 | ||
|
|
eed0d8765e | ||
|
|
8dcc289ee4 | ||
|
|
4a847c8abd | ||
|
|
28b6628f41 | ||
|
|
4792499fa5 | ||
|
|
2e6a6f0598 | ||
|
|
fece3acfb9 | ||
|
|
a15b641c1c | ||
|
|
f10615345e | ||
|
|
425e00fb99 | ||
|
|
4a656cf222 | ||
|
|
8419bb799e | ||
|
|
985a13277d | ||
|
|
b771c50128 | ||
|
|
1a6bf6e4af | ||
|
|
1e4028c5d3 | ||
|
|
f851202b2f | ||
|
|
cc7d4783e7 | ||
|
|
c9de24d3f4 | ||
|
|
58a7160419 | ||
|
|
767ced9fa5 | ||
|
|
5ecc6d0d6f | ||
|
|
c030e463ab | ||
|
|
709f570c82 | ||
|
|
cfbf6fad48 | ||
|
|
650d20107d | ||
|
|
a8a5765fed | ||
|
|
e369448f32 | ||
|
|
d1fe084c03 | ||
|
|
486441be18 | ||
|
|
0eca2b4cb2 | ||
|
|
7c08b602e6 | ||
|
|
970d00de04 | ||
|
|
f058e96728 | ||
|
|
11fdbf2b27 | ||
|
|
bc02fb725b | ||
|
|
5d4b08853e | ||
|
|
c29e8cbb2f | ||
|
|
784f93baf3 | ||
|
|
755ca76f8e | ||
|
|
1e892fb5a0 | ||
|
|
af811fbc0b | ||
|
|
0dc25d42ef | ||
|
|
5a816edcf9 | ||
|
|
f4434bd16e | ||
|
|
e83c7d3056 | ||
|
|
571259cc48 | ||
|
|
ad41126681 | ||
|
|
f2533f35e8 | ||
|
|
dcd1428716 | ||
|
|
d81ab9f844 | ||
|
|
13bf7c1299 | ||
|
|
6d45c9f72d | ||
|
|
5ae465073f | ||
|
|
2de77b3c38 | ||
|
|
f6092be1de | ||
|
|
babe0fa137 | ||
|
|
5647682c2f | ||
|
|
77b92b01ce | ||
|
|
0a4f7521bb | ||
|
|
c1261f843e | ||
|
|
e3a3bdd81f | ||
|
|
a8def2777c | ||
|
|
9884bc2d48 | ||
|
|
2f1b47e416 | ||
|
|
016d00123a | ||
|
|
fdabda6345 | ||
|
|
99dabeb2e9 | ||
|
|
f56a4774a9 | ||
|
|
4a4cdae234 | ||
|
|
7396cef1b9 | ||
|
|
6676fb5e32 | ||
|
|
be11294d17 | ||
|
|
2d93461815 | ||
|
|
1e9d77c3b2 | ||
|
|
3634379cea | ||
|
|
43c4cdb0df | ||
|
|
28c39928d3 | ||
|
|
703eadc55f | ||
|
|
e7134d50f3 | ||
|
|
ddef53b962 | ||
|
|
c1392638ce | ||
|
|
fbd21995ae | ||
|
|
9e21f5b114 | ||
|
|
b5ad96f86b | ||
|
|
33dcf6960b | ||
|
|
5979f64829 | ||
|
|
b0ac293871 | ||
|
|
6915004b18 | ||
|
|
90d45f4264 | ||
|
|
eb1782f715 | ||
|
|
503023dd69 | ||
|
|
1164f70c34 | ||
|
|
31e19a34a5 | ||
|
|
86c9aa8081 | ||
|
|
ef5298eebd |
@@ -40,7 +40,7 @@ from bb import cooker
|
||||
from bb import ui
|
||||
from bb import server
|
||||
|
||||
__version__ = "1.17.0"
|
||||
__version__ = "1.16.0"
|
||||
logger = logging.getLogger("BitBake")
|
||||
|
||||
# Unbuffer stdout to avoid log truncation in the event
|
||||
@@ -214,6 +214,10 @@ Default BBFILES are the .bb files in the current directory.""")
|
||||
if configuration.bind and configuration.servertype != "xmlrpc":
|
||||
sys.exit("FATAL: If '-B' or '--bind' is defined, we must set the servertype as 'xmlrpc'.\n")
|
||||
|
||||
# Save a logfile for cooker into the current working directory. When the
|
||||
# server is daemonized this logfile will be truncated.
|
||||
cooker_logfile = os.path.join(os.getcwd(), "cooker.log")
|
||||
|
||||
bb.msg.init_msgconfig(configuration.verbose, configuration.debug,
|
||||
configuration.debug_domains)
|
||||
|
||||
@@ -242,7 +246,7 @@ Default BBFILES are the .bb files in the current directory.""")
|
||||
|
||||
server.addcooker(cooker)
|
||||
server.saveConnectionDetails()
|
||||
server.detach()
|
||||
server.detach(cooker_logfile)
|
||||
|
||||
# Should no longer need to ever reference cooker
|
||||
del cooker
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
__version__ = "1.17.0"
|
||||
__version__ = "1.16.0"
|
||||
|
||||
import sys
|
||||
if sys.version_info < (2, 6, 0):
|
||||
|
||||
@@ -491,11 +491,9 @@ def stamp_cleanmask_internal(taskname, d, file_name):
|
||||
extrainfo = d.getVarFlag(taskflagname, 'stamp-extra-info', True) or ""
|
||||
|
||||
if not stamp:
|
||||
return []
|
||||
return
|
||||
|
||||
cleanmask = bb.parse.siggen.stampcleanmask(stamp, file_name, taskname, extrainfo)
|
||||
|
||||
return [cleanmask, cleanmask.replace(taskflagname, taskflagname + "_setscene")]
|
||||
return bb.parse.siggen.stampcleanmask(stamp, file_name, taskname, extrainfo)
|
||||
|
||||
def make_stamp(task, d, file_name = None):
|
||||
"""
|
||||
@@ -503,8 +501,8 @@ def make_stamp(task, d, file_name = None):
|
||||
(d can be a data dict or dataCache)
|
||||
"""
|
||||
cleanmask = stamp_cleanmask_internal(task, d, file_name)
|
||||
for mask in cleanmask:
|
||||
bb.utils.remove(mask)
|
||||
if cleanmask:
|
||||
bb.utils.remove(cleanmask)
|
||||
|
||||
stamp = stamp_internal(task, d, file_name)
|
||||
# Remove the file and recreate to force timestamp
|
||||
|
||||
@@ -405,12 +405,12 @@ class Cache(object):
|
||||
"""Parse the specified filename, returning the recipe information"""
|
||||
infos = []
|
||||
datastores = cls.load_bbfile(filename, appends, configdata)
|
||||
depends = []
|
||||
depends = set()
|
||||
for variant, data in sorted(datastores.iteritems(),
|
||||
key=lambda i: i[0],
|
||||
reverse=True):
|
||||
virtualfn = cls.realfn2virtual(filename, variant)
|
||||
depends = depends + (data.getVar("__depends", False) or [])
|
||||
depends |= (data.getVar("__depends", False) or set())
|
||||
if depends and not variant:
|
||||
data.setVar("__depends", depends)
|
||||
|
||||
|
||||
@@ -44,9 +44,6 @@ class CommandFailed(CommandExit):
|
||||
self.error = message
|
||||
CommandExit.__init__(self, 1)
|
||||
|
||||
class CommandError(Exception):
|
||||
pass
|
||||
|
||||
class Command:
|
||||
"""
|
||||
A queue of asynchronous commands for bitbake
|
||||
@@ -60,25 +57,21 @@ class Command:
|
||||
self.currentAsyncCommand = None
|
||||
|
||||
def runCommand(self, commandline):
|
||||
command = commandline.pop(0)
|
||||
if hasattr(CommandsSync, command):
|
||||
# Can run synchronous commands straight away
|
||||
command_method = getattr(self.cmds_sync, command)
|
||||
try:
|
||||
result = command_method(self, commandline)
|
||||
except CommandError as exc:
|
||||
return None, exc.args[0]
|
||||
except Exception:
|
||||
return None, traceback.format_exc()
|
||||
else:
|
||||
return result, None
|
||||
if self.currentAsyncCommand is not None:
|
||||
return None, "Busy (%s in progress)" % self.currentAsyncCommand[0]
|
||||
if command not in CommandsAsync.__dict__:
|
||||
return None, "No such command"
|
||||
self.currentAsyncCommand = (command, commandline)
|
||||
self.cooker.server_registration_cb(self.cooker.runCommands, self.cooker)
|
||||
return True, None
|
||||
try:
|
||||
command = commandline.pop(0)
|
||||
if command in CommandsSync.__dict__:
|
||||
# Can run synchronous commands straight away
|
||||
return getattr(CommandsSync, command)(self.cmds_sync, self, commandline)
|
||||
if self.currentAsyncCommand is not None:
|
||||
return "Busy (%s in progress)" % self.currentAsyncCommand[0]
|
||||
if command not in CommandsAsync.__dict__:
|
||||
return "No such command"
|
||||
self.currentAsyncCommand = (command, commandline)
|
||||
self.cooker.server_registration_cb(self.cooker.runCommands, self.cooker)
|
||||
return True
|
||||
except:
|
||||
import traceback
|
||||
return traceback.format_exc()
|
||||
|
||||
def runAsyncCommand(self):
|
||||
try:
|
||||
@@ -146,11 +139,7 @@ class CommandsSync:
|
||||
"""
|
||||
Get any command parsed from the commandline
|
||||
"""
|
||||
cmd_action = command.cooker.commandlineAction
|
||||
if cmd_action['msg']:
|
||||
raise CommandError(msg)
|
||||
else:
|
||||
return cmd_action['action']
|
||||
return command.cooker.commandlineAction
|
||||
|
||||
def getVariable(self, command, params):
|
||||
"""
|
||||
|
||||
@@ -239,10 +239,8 @@ class BBCooker:
|
||||
self.commandlineAction['msg'] = "No target should be used with the --environment and --buildfile options."
|
||||
elif len(self.configuration.pkgs_to_build) > 0:
|
||||
self.commandlineAction['action'] = ["showEnvironmentTarget", self.configuration.pkgs_to_build]
|
||||
self.configuration.data.setVar("BB_CONSOLELOG", None)
|
||||
else:
|
||||
self.commandlineAction['action'] = ["showEnvironment", self.configuration.buildfile]
|
||||
self.configuration.data.setVar("BB_CONSOLELOG", None)
|
||||
elif self.configuration.buildfile is not None:
|
||||
self.commandlineAction['action'] = ["buildFile", self.configuration.buildfile, self.configuration.cmd]
|
||||
elif self.configuration.revisions_changed:
|
||||
@@ -313,10 +311,6 @@ class BBCooker:
|
||||
elif len(pkgs_to_build) == 1:
|
||||
self.updateCache()
|
||||
|
||||
ignore = self.configuration.data.getVar("ASSUME_PROVIDED", True) or ""
|
||||
if pkgs_to_build[0] in set(ignore.split()):
|
||||
bb.fatal("%s is in ASSUME_PROVIDED" % pkgs_to_build[0])
|
||||
|
||||
localdata = data.createCopy(self.configuration.data)
|
||||
bb.data.update_data(localdata)
|
||||
bb.data.expandKeys(localdata)
|
||||
@@ -696,8 +690,8 @@ class BBCooker:
|
||||
# Generate a list of parsed configuration files by searching the files
|
||||
# listed in the __depends and __base_depends variables with a .conf suffix.
|
||||
conffiles = []
|
||||
dep_files = self.configuration.data.getVar('__base_depends') or []
|
||||
dep_files = dep_files + (self.configuration.data.getVar('__depends') or [])
|
||||
dep_files = self.configuration.data.getVar('__depends') or set()
|
||||
dep_files.union(self.configuration.data.getVar('__base_depends') or set())
|
||||
|
||||
for f in dep_files:
|
||||
if f[0].endswith(".conf"):
|
||||
|
||||
@@ -566,19 +566,3 @@ class SanityCheckFailed(Event):
|
||||
Event.__init__(self)
|
||||
self._msg = msg
|
||||
self._network_error = network_error
|
||||
|
||||
class NetworkTest(Event):
|
||||
"""
|
||||
Event to start network test
|
||||
"""
|
||||
|
||||
class NetworkTestPassed(Event):
|
||||
"""
|
||||
Event to indicate network test has passed
|
||||
"""
|
||||
|
||||
class NetworkTestFailed(Event):
|
||||
"""
|
||||
Event to indicate network test has failed
|
||||
"""
|
||||
|
||||
|
||||
@@ -963,18 +963,15 @@ class FetchMethod(object):
|
||||
dest = os.path.join(rootdir, os.path.basename(file))
|
||||
if (file != dest) and not (os.path.exists(dest) and os.path.samefile(file, dest)):
|
||||
if os.path.isdir(file):
|
||||
# If for example we're asked to copy file://foo/bar, we need to unpack the result into foo/bar
|
||||
basepath = getattr(urldata, "basepath", None)
|
||||
filesdir = os.path.realpath(data.getVar("FILESDIR", True))
|
||||
destdir = "."
|
||||
if basepath and basepath.endswith("/"):
|
||||
basepath = basepath.rstrip("/")
|
||||
elif basepath:
|
||||
basepath = os.path.dirname(basepath)
|
||||
if basepath and basepath.find("/") != -1:
|
||||
destdir = basepath[:basepath.rfind('/')]
|
||||
if file[0:len(filesdir)] == filesdir:
|
||||
destdir = file[len(filesdir):file.rfind('/')]
|
||||
destdir = destdir.strip('/')
|
||||
if destdir != "." and not os.access("%s/%s" % (rootdir, destdir), os.F_OK):
|
||||
os.makedirs("%s/%s" % (rootdir, destdir))
|
||||
if len(destdir) < 1:
|
||||
destdir = "."
|
||||
elif not os.access("%s/%s" % (rootdir, destdir), os.F_OK):
|
||||
os.makedirs("%s/%s" % (rootdir, destdir))
|
||||
cmd = 'cp -pPR %s %s/%s/' % (file, rootdir, destdir)
|
||||
#cmd = 'tar -cf - -C "%d" -ps . | tar -xf - -C "%s/%s/"' % (file, rootdir, destdir)
|
||||
else:
|
||||
|
||||
@@ -44,7 +44,6 @@ class Local(FetchMethod):
|
||||
# We don't set localfile as for this fetcher the file is already local!
|
||||
ud.decodedurl = urllib.unquote(ud.url.split("://")[1].split(";")[0])
|
||||
ud.basename = os.path.basename(ud.decodedurl)
|
||||
ud.basepath = ud.decodedurl
|
||||
return
|
||||
|
||||
def localpath(self, url, urldata, d):
|
||||
@@ -63,12 +62,7 @@ class Local(FetchMethod):
|
||||
if filesdir:
|
||||
logger.debug(2, "Searching for %s in path: %s" % (path, filesdir))
|
||||
newpath = os.path.join(filesdir, path)
|
||||
if (not newpath or not os.path.exists(newpath)) and path.find("*") != -1:
|
||||
# For expressions using '*', best we can do is take the first directory in FILESPATH that exists
|
||||
newpath = bb.utils.which(filespath, ".")
|
||||
logger.debug(2, "Searching for %s in path: %s" % (path, newpath))
|
||||
return newpath
|
||||
if not os.path.exists(newpath):
|
||||
if not os.path.exists(newpath) and path.find("*") == -1:
|
||||
dldirfile = os.path.join(d.getVar("DL_DIR", True), path)
|
||||
logger.debug(2, "Defaulting to %s for %s" % (dldirfile, path))
|
||||
bb.utils.mkdirhier(os.path.dirname(dldirfile))
|
||||
|
||||
@@ -69,10 +69,10 @@ class Wget(FetchMethod):
|
||||
basecmd += " -O ${DL_DIR}/" + ud.localfile
|
||||
|
||||
if checkonly:
|
||||
fetchcmd = d.getVar("CHECKCOMMAND_wget", True) or d.expand(basecmd + " --spider '${URI}'")
|
||||
fetchcmd = d.getVar("CHECKCOMMAND_wget", True) or d.expand(basecmd + " -c -P ${DL_DIR} '${URI}'")
|
||||
elif os.path.exists(ud.localpath):
|
||||
# file exists, but we didnt complete it.. trying again..
|
||||
fetchcmd = d.getVar("RESUMECOMMAND_wget", True) or d.expand(basecmd + " -c -P ${DL_DIR} '${URI}'")
|
||||
fetchcmd = d.getVar("RESUMECOMMAND_wget", True) or d.expand(basecmd + " --spider -P ${DL_DIR} '${URI}'")
|
||||
else:
|
||||
fetchcmd = d.getVar("FETCHCOMMAND_wget", True) or d.expand(basecmd + " -P ${DL_DIR} '${URI}'")
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@ Message handling infrastructure for bitbake
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
import sys
|
||||
import copy
|
||||
import logging
|
||||
import collections
|
||||
from itertools import groupby
|
||||
@@ -56,25 +55,6 @@ class BBLogFormatter(logging.Formatter):
|
||||
CRITICAL: 'ERROR',
|
||||
}
|
||||
|
||||
color_enabled = False
|
||||
BASECOLOR, BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = range(29,38)
|
||||
|
||||
COLORS = {
|
||||
DEBUG3 : CYAN,
|
||||
DEBUG2 : CYAN,
|
||||
DEBUG : CYAN,
|
||||
VERBOSE : BASECOLOR,
|
||||
NOTE : BASECOLOR,
|
||||
PLAIN : BASECOLOR,
|
||||
WARNING : YELLOW,
|
||||
ERROR : RED,
|
||||
CRITICAL: RED,
|
||||
}
|
||||
|
||||
BLD = '\033[1;%dm'
|
||||
STD = '\033[%dm'
|
||||
RST = '\033[0m'
|
||||
|
||||
def getLevelName(self, levelno):
|
||||
try:
|
||||
return self.levelnames[levelno]
|
||||
@@ -87,8 +67,6 @@ class BBLogFormatter(logging.Formatter):
|
||||
if record.levelno == self.PLAIN:
|
||||
msg = record.getMessage()
|
||||
else:
|
||||
if self.color_enabled:
|
||||
record = self.colorize(record)
|
||||
msg = logging.Formatter.format(self, record)
|
||||
|
||||
if hasattr(record, 'bb_exc_info'):
|
||||
@@ -97,17 +75,6 @@ class BBLogFormatter(logging.Formatter):
|
||||
msg += '\n' + ''.join(formatted)
|
||||
return msg
|
||||
|
||||
def colorize(self, record):
|
||||
color = self.COLORS[record.levelno]
|
||||
if self.color_enabled and color is not None:
|
||||
record = copy.copy(record)
|
||||
record.levelname = "".join([self.BLD % color, record.levelname, self.RST])
|
||||
record.msg = "".join([self.STD % color, record.msg, self.RST])
|
||||
return record
|
||||
|
||||
def enable_color(self):
|
||||
self.color_enabled = True
|
||||
|
||||
class BBLogFilter(object):
|
||||
def __init__(self, handler, level, debug_domains):
|
||||
self.stdlevel = level
|
||||
|
||||
@@ -73,7 +73,8 @@ def update_mtime(f):
|
||||
def mark_dependency(d, f):
|
||||
if f.startswith('./'):
|
||||
f = "%s/%s" % (os.getcwd(), f[2:])
|
||||
deps = (d.getVar('__depends') or []) + [(f, cached_mtime(f))]
|
||||
deps = d.getVar('__depends') or set()
|
||||
deps.update([(f, cached_mtime(f))])
|
||||
d.setVar('__depends', deps)
|
||||
|
||||
def supports(fn, data):
|
||||
@@ -133,8 +134,8 @@ def vars_from_file(mypkg, d):
|
||||
def get_file_depends(d):
|
||||
'''Return the dependent files'''
|
||||
dep_files = []
|
||||
depends = d.getVar('__base_depends', True) or []
|
||||
depends = depends + (d.getVar('__depends', True) or [])
|
||||
depends = d.getVar('__depends', True) or set()
|
||||
depends = depends.union(d.getVar('__base_depends', True) or set())
|
||||
for (fn, _) in depends:
|
||||
dep_files.append(os.path.abspath(fn))
|
||||
return " ".join(dep_files)
|
||||
|
||||
@@ -785,7 +785,6 @@ class RunQueue:
|
||||
self.stamppolicy = cfgData.getVar("BB_STAMP_POLICY", True) or "perfile"
|
||||
self.hashvalidate = cfgData.getVar("BB_HASHCHECK_FUNCTION", True) or None
|
||||
self.setsceneverify = cfgData.getVar("BB_SETSCENE_VERIFY_FUNCTION", True) or None
|
||||
self.depvalidate = cfgData.getVar("BB_SETSCENE_DEPVALID", True) or None
|
||||
|
||||
self.state = runQueuePrepare
|
||||
|
||||
@@ -1162,26 +1161,6 @@ class RunQueueExecute:
|
||||
|
||||
return pid, pipein, pipeout
|
||||
|
||||
def check_dependencies(self, task, taskdeps, setscene = False):
|
||||
if not self.rq.depvalidate:
|
||||
return False
|
||||
|
||||
taskdata = {}
|
||||
taskdeps.add(task)
|
||||
for dep in taskdeps:
|
||||
if setscene:
|
||||
depid = self.rqdata.runq_setscene[dep]
|
||||
else:
|
||||
depid = dep
|
||||
fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[depid]]
|
||||
pn = self.rqdata.dataCache.pkg_fn[fn]
|
||||
taskname = self.rqdata.runq_task[depid]
|
||||
taskdata[dep] = [pn, taskname, fn]
|
||||
call = self.rq.depvalidate + "(task, taskdata, notneeded, d)"
|
||||
locs = { "task" : task, "taskdata" : taskdata, "notneeded" : self.scenequeue_notneeded, "d" : self.cooker.configuration.data }
|
||||
valid = bb.utils.better_eval(call, locs)
|
||||
return valid
|
||||
|
||||
class RunQueueExecuteDummy(RunQueueExecute):
|
||||
def __init__(self, rq):
|
||||
self.rq = rq
|
||||
@@ -1219,8 +1198,16 @@ class RunQueueExecuteTasks(RunQueueExecute):
|
||||
logger.debug(1, 'Considering %s (%s): %s' % (task, self.rqdata.get_user_idstring(task), str(self.rqdata.runq_revdeps[task])))
|
||||
|
||||
if len(self.rqdata.runq_revdeps[task]) > 0 and self.rqdata.runq_revdeps[task].issubset(self.rq.scenequeue_covered) and task not in self.rq.scenequeue_notcovered:
|
||||
found = True
|
||||
self.rq.scenequeue_covered.add(task)
|
||||
ok = True
|
||||
for revdep in self.rqdata.runq_revdeps[task]:
|
||||
if self.rqdata.runq_fnid[task] != self.rqdata.runq_fnid[revdep]:
|
||||
logger.debug(1, 'Found "bad" dep %s (%s) for %s (%s)' % (revdep, self.rqdata.get_user_idstring(revdep), task, self.rqdata.get_user_idstring(task)))
|
||||
|
||||
ok = False
|
||||
break
|
||||
if ok:
|
||||
found = True
|
||||
self.rq.scenequeue_covered.add(task)
|
||||
|
||||
logger.debug(1, 'Skip list (pre setsceneverify) %s', sorted(self.rq.scenequeue_covered))
|
||||
|
||||
@@ -1421,7 +1408,6 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
|
||||
|
||||
self.scenequeue_covered = set()
|
||||
self.scenequeue_notcovered = set()
|
||||
self.scenequeue_notneeded = set()
|
||||
|
||||
# If we don't have any setscene functions, skip this step
|
||||
if len(self.rqdata.runq_setscene) == 0:
|
||||
@@ -1431,6 +1417,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
|
||||
|
||||
self.stats = RunQueueStats(len(self.rqdata.runq_setscene))
|
||||
|
||||
endpoints = {}
|
||||
sq_revdeps = []
|
||||
sq_revdeps_new = []
|
||||
sq_revdeps_squash = []
|
||||
@@ -1445,15 +1432,12 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
|
||||
self.runq_complete.append(0)
|
||||
self.runq_buildable.append(0)
|
||||
|
||||
# First process the chains up to the first setscene task.
|
||||
endpoints = {}
|
||||
for task in xrange(len(self.rqdata.runq_fnid)):
|
||||
sq_revdeps.append(copy.copy(self.rqdata.runq_revdeps[task]))
|
||||
sq_revdeps_new.append(set())
|
||||
if (len(self.rqdata.runq_revdeps[task]) == 0) and task not in self.rqdata.runq_setscene:
|
||||
endpoints[task] = set()
|
||||
|
||||
# Secondly process the chains between setscene tasks.
|
||||
for task in self.rqdata.runq_setscene:
|
||||
for dep in self.rqdata.runq_depends[task]:
|
||||
if dep not in endpoints:
|
||||
@@ -1469,8 +1453,6 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
|
||||
if sq_revdeps_new[point]:
|
||||
tasks |= sq_revdeps_new[point]
|
||||
sq_revdeps_new[point] = set()
|
||||
if point in self.rqdata.runq_setscene:
|
||||
sq_revdeps_new[point] = tasks
|
||||
for dep in self.rqdata.runq_depends[point]:
|
||||
if point in sq_revdeps[dep]:
|
||||
sq_revdeps[dep].remove(point)
|
||||
@@ -1483,42 +1465,6 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
|
||||
|
||||
process_endpoints(endpoints)
|
||||
|
||||
# Build a list of setscene tasks which as "unskippable"
|
||||
# These are direct endpoints referenced by the build
|
||||
endpoints2 = {}
|
||||
sq_revdeps2 = []
|
||||
sq_revdeps_new2 = []
|
||||
def process_endpoints2(endpoints):
|
||||
newendpoints = {}
|
||||
for point, task in endpoints.items():
|
||||
tasks = set([point])
|
||||
if task:
|
||||
tasks |= task
|
||||
if sq_revdeps_new2[point]:
|
||||
tasks |= sq_revdeps_new2[point]
|
||||
sq_revdeps_new2[point] = set()
|
||||
if point in self.rqdata.runq_setscene:
|
||||
sq_revdeps_new2[point] = tasks
|
||||
for dep in self.rqdata.runq_depends[point]:
|
||||
if point in sq_revdeps2[dep]:
|
||||
sq_revdeps2[dep].remove(point)
|
||||
if tasks:
|
||||
sq_revdeps_new2[dep] |= tasks
|
||||
if (len(sq_revdeps2[dep]) == 0 or len(sq_revdeps_new2[dep]) != 0) and dep not in self.rqdata.runq_setscene:
|
||||
newendpoints[dep] = tasks
|
||||
if len(newendpoints) != 0:
|
||||
process_endpoints2(newendpoints)
|
||||
for task in xrange(len(self.rqdata.runq_fnid)):
|
||||
sq_revdeps2.append(copy.copy(self.rqdata.runq_revdeps[task]))
|
||||
sq_revdeps_new2.append(set())
|
||||
if (len(self.rqdata.runq_revdeps[task]) == 0) and task not in self.rqdata.runq_setscene:
|
||||
endpoints2[task] = set()
|
||||
process_endpoints2(endpoints2)
|
||||
self.unskippable = []
|
||||
for task in self.rqdata.runq_setscene:
|
||||
if sq_revdeps_new2[task]:
|
||||
self.unskippable.append(self.rqdata.runq_setscene.index(task))
|
||||
|
||||
for task in xrange(len(self.rqdata.runq_fnid)):
|
||||
if task in self.rqdata.runq_setscene:
|
||||
deps = set()
|
||||
@@ -1679,13 +1625,6 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
|
||||
# Find the next setscene to run
|
||||
for nexttask in xrange(self.stats.total):
|
||||
if self.runq_buildable[nexttask] == 1 and self.runq_running[nexttask] != 1:
|
||||
if nexttask in self.unskippable:
|
||||
logger.debug(2, "Setscene task %s is unskippable" % self.rqdata.get_user_idstring(self.rqdata.runq_setscene[nexttask]))
|
||||
if nexttask not in self.unskippable and len(self.sq_revdeps[nexttask]) > 0 and self.sq_revdeps[nexttask].issubset(self.scenequeue_covered) and self.check_dependencies(nexttask, self.sq_revdeps[nexttask], True):
|
||||
logger.debug(2, "Skipping setscene for task %s" % self.rqdata.get_user_idstring(self.rqdata.runq_setscene[nexttask]))
|
||||
self.task_skip(nexttask)
|
||||
self.scenequeue_notneeded.add(nexttask)
|
||||
return True
|
||||
task = nexttask
|
||||
break
|
||||
if task is not None:
|
||||
|
||||
@@ -191,8 +191,8 @@ class BitBakeServer(object):
|
||||
def saveConnectionDetails(self):
|
||||
return
|
||||
|
||||
def detach(self):
|
||||
return
|
||||
def detach(self, cooker_logfile):
|
||||
self.logfile = cooker_logfile
|
||||
|
||||
def establishConnection(self):
|
||||
self.connection = BitBakeServerConnection(self)
|
||||
|
||||
@@ -45,10 +45,10 @@ class ServerCommunicator():
|
||||
while True:
|
||||
# don't let the user ctrl-c while we're waiting for a response
|
||||
try:
|
||||
if self.connection.poll(20):
|
||||
if self.connection.poll(.5):
|
||||
return self.connection.recv()
|
||||
else:
|
||||
bb.fatal("Timeout while attempting to communicate with bitbake server")
|
||||
return None
|
||||
except KeyboardInterrupt:
|
||||
pass
|
||||
|
||||
@@ -256,7 +256,7 @@ class BitBakeServer(object):
|
||||
def saveConnectionDetails(self):
|
||||
return
|
||||
|
||||
def detach(self):
|
||||
def detach(self, cooker_logfile):
|
||||
self.server.start()
|
||||
return
|
||||
|
||||
|
||||
@@ -280,8 +280,8 @@ class BitBakeServer(object):
|
||||
def saveConnectionDetails(self):
|
||||
self.serverinfo = BitbakeServerInfo(self.server.host, self.server.port)
|
||||
|
||||
def detach(self):
|
||||
daemonize.createDaemon(self.server.serve_forever)
|
||||
def detach(self, cooker_logfile):
|
||||
daemonize.createDaemon(self.server.serve_forever, cooker_logfile)
|
||||
del self.cooker
|
||||
del self.server
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ class SignatureGenerator(object):
|
||||
return ("%s.%s.%s" % (stampbase, taskname, extrainfo)).rstrip('.')
|
||||
|
||||
def stampcleanmask(self, stampbase, file_name, taskname, extrainfo):
|
||||
return ("%s.%s.%s" % (stampbase, taskname, extrainfo)).rstrip('.')
|
||||
return ("%s.%s*.%s" % (stampbase, taskname, extrainfo)).rstrip('.')
|
||||
|
||||
def dump_sigtask(self, fn, task, stampbase, runtime):
|
||||
return
|
||||
@@ -276,6 +276,7 @@ class SignatureGeneratorBasicHash(SignatureGeneratorBasic):
|
||||
k = fn + "." + taskname
|
||||
if clean:
|
||||
h = "*"
|
||||
taskname = taskname + "*"
|
||||
elif k in self.taskhash:
|
||||
h = self.taskhash[k]
|
||||
else:
|
||||
|
||||
@@ -30,8 +30,6 @@ from bb.ui.crumbs.runningbuild import RunningBuildTreeView
|
||||
from bb.ui.crumbs.runningbuild import BuildFailureTreeView
|
||||
from bb.ui.crumbs.hobpages import HobPage
|
||||
from bb.ui.crumbs.hobcolor import HobColors
|
||||
from bb.ui.crumbs.hobthreads import OpeningLogThread
|
||||
from bb.ui.crumbs.hig import OpeningLogDialog
|
||||
|
||||
class BuildConfigurationTreeView(gtk.TreeView):
|
||||
def __init__ (self):
|
||||
@@ -206,6 +204,8 @@ class BuildDetailsPage (HobPage):
|
||||
def add_build_fail_top_bar(self, actions, log_file=None):
|
||||
primary_action = "Edit %s" % actions
|
||||
|
||||
self.notebook.set_page("Issues")
|
||||
|
||||
color = HobColors.ERROR
|
||||
build_fail_top = gtk.EventBox()
|
||||
#build_fail_top.set_size_request(-1, 200)
|
||||
@@ -226,17 +226,7 @@ class BuildDetailsPage (HobPage):
|
||||
|
||||
label = gtk.Label()
|
||||
label.set_alignment(0.0, 0.5)
|
||||
# Ensure variable disk_full is defined
|
||||
try:
|
||||
self.builder.disk_full
|
||||
except NameError:
|
||||
self.builder.disk_full = False
|
||||
if self.builder.disk_full:
|
||||
markup = "<span size='medium'>There is no disk space left, so Hob cannot finish building your image. Free up some disk space\n"
|
||||
markup += "and restart the build. Check the \"Issues\" tab for more details</span>"
|
||||
label.set_markup(markup)
|
||||
else:
|
||||
label.set_markup("<span size='medium'>Check the \"Issues\" information for more details</span>")
|
||||
label.set_markup("<span size='medium'>Check the \"Issues\" information for more details</span>")
|
||||
build_fail_tab.attach(label, 4, 40, 4, 9)
|
||||
|
||||
# create button 'Edit packages'
|
||||
@@ -244,36 +234,22 @@ class BuildDetailsPage (HobPage):
|
||||
#action_button.set_size_request(-1, 40)
|
||||
action_button.set_tooltip_text("Edit the %s parameters" % actions)
|
||||
action_button.connect('clicked', self.failure_primary_action_button_clicked_cb, primary_action)
|
||||
build_fail_tab.attach(action_button, 4, 13, 9, 12)
|
||||
|
||||
if log_file:
|
||||
open_log_button = HobAltButton("Open log")
|
||||
open_log_button.set_relief(gtk.RELIEF_HALF)
|
||||
open_log_button.set_tooltip_text("Open the build's log file")
|
||||
open_log_button.connect('clicked', self.open_log_button_clicked_cb, log_file)
|
||||
build_fail_tab.attach(open_log_button, 14, 23, 9, 12)
|
||||
|
||||
attach_pos = (24 if log_file else 14)
|
||||
file_bug_button = HobAltButton('File a bug')
|
||||
file_bug_button.set_relief(gtk.RELIEF_HALF)
|
||||
file_bug_button.set_tooltip_text("Open the Yocto Project bug tracking website")
|
||||
file_bug_button.connect('clicked', self.failure_activate_file_bug_link_cb)
|
||||
build_fail_tab.attach(file_bug_button, attach_pos, attach_pos + 9, 9, 12)
|
||||
|
||||
if not self.builder.disk_full:
|
||||
build_fail_tab.attach(action_button, 4, 13, 9, 12)
|
||||
if log_file:
|
||||
build_fail_tab.attach(open_log_button, 14, 23, 9, 12)
|
||||
build_fail_tab.attach(file_bug_button, attach_pos, attach_pos + 9, 9, 12)
|
||||
|
||||
else:
|
||||
restart_build = HobButton("Restart the build")
|
||||
restart_build.set_tooltip_text("Restart the build")
|
||||
restart_build.connect('clicked', self.restart_build_button_clicked_cb)
|
||||
|
||||
build_fail_tab.attach(restart_build, 4, 13, 9, 12)
|
||||
build_fail_tab.attach(action_button, 14, 23, 9, 12)
|
||||
if log_file:
|
||||
build_fail_tab.attach(open_log_button, attach_pos, attach_pos + 9, 9, 12)
|
||||
|
||||
self.builder.disk_full = False
|
||||
return build_fail_top
|
||||
|
||||
def show_fail_page(self, title):
|
||||
@@ -288,7 +264,6 @@ class BuildDetailsPage (HobPage):
|
||||
|
||||
self.vbox.pack_start(self.notebook, expand=True, fill=True)
|
||||
self.show_all()
|
||||
self.notebook.set_page("Issues")
|
||||
self.back_button.hide()
|
||||
|
||||
def add_build_stop_top_bar(self, action, log_file=None):
|
||||
@@ -373,7 +348,6 @@ class BuildDetailsPage (HobPage):
|
||||
|
||||
self.box_group_area.pack_end(self.button_box, expand=False, fill=False)
|
||||
self.show_all()
|
||||
self.notebook.set_page("Log")
|
||||
self.back_button.hide()
|
||||
|
||||
self.reset_build_status()
|
||||
@@ -419,9 +393,6 @@ class BuildDetailsPage (HobPage):
|
||||
elif "Edit image" in action:
|
||||
self.builder.show_configuration()
|
||||
|
||||
def restart_build_button_clicked_cb(self, button):
|
||||
self.builder.just_bake()
|
||||
|
||||
def stop_primary_action_button_clicked_cb(self, button, action):
|
||||
if "recipes" in action:
|
||||
self.builder.show_recipes()
|
||||
@@ -432,18 +403,7 @@ class BuildDetailsPage (HobPage):
|
||||
|
||||
def open_log_button_clicked_cb(self, button, log_file):
|
||||
if log_file:
|
||||
self.stop = False
|
||||
dialog = OpeningLogDialog(title = "Opening Log",
|
||||
parent = None,
|
||||
flags = gtk.DIALOG_MODAL
|
||||
| gtk.DIALOG_DESTROY_WITH_PARENT
|
||||
| gtk.DIALOG_NO_SEPARATOR)
|
||||
#create a thread to open log file
|
||||
background = OpeningLogThread(dialog, log_file, self)
|
||||
background.start()
|
||||
response = dialog.run()
|
||||
self.stop = True
|
||||
background.join()
|
||||
os.system("xdg-open /%s" % log_file)
|
||||
|
||||
def failure_activate_file_bug_link_cb(self, button):
|
||||
button.child.emit('activate-link', "http://bugzilla.yoctoproject.org")
|
||||
|
||||
@@ -51,10 +51,10 @@ class Configuration:
|
||||
|
||||
@classmethod
|
||||
def parse_proxy_string(cls, proxy):
|
||||
pattern = "^\s*((http|https|ftp|git|cvs)://)?((\S+):(\S+)@)?([^\s:]+)(:(\d+))?/?"
|
||||
pattern = "^\s*((http|https|ftp|git|cvs)://)?((\S+):(\S+)@)?(\S+):(\d+)/?"
|
||||
match = re.search(pattern, proxy)
|
||||
if match:
|
||||
return match.group(2), match.group(4), match.group(5), match.group(6), match.group(8)
|
||||
return match.group(2), match.group(4), match.group(5), match.group(6), match.group(7)
|
||||
else:
|
||||
return None, None, None, "", ""
|
||||
|
||||
@@ -82,14 +82,13 @@ class Configuration:
|
||||
|
||||
@classmethod
|
||||
def make_proxy_string(cls, prot, user, passwd, host, port, default_prot=""):
|
||||
if host == None or host == "":# or port == None or port == "":
|
||||
if host == None or host == "" or port == None or port == "":
|
||||
return ""
|
||||
|
||||
return Configuration.make_host_string(prot, user, passwd, host, default_prot) + (":" + Configuration.make_port_string(port) if port else "")
|
||||
return Configuration.make_host_string(prot, user, passwd, host, default_prot) + ":" + Configuration.make_port_string(port)
|
||||
|
||||
def __init__(self):
|
||||
self.curr_mach = ""
|
||||
self.selected_image = None
|
||||
# settings
|
||||
self.curr_distro = ""
|
||||
self.dldir = self.sstatedir = self.sstatemirror = ""
|
||||
@@ -124,9 +123,9 @@ class Configuration:
|
||||
}
|
||||
|
||||
def clear_selection(self):
|
||||
self.selected_image = None
|
||||
self.selected_recipes = []
|
||||
self.selected_packages = []
|
||||
self.initial_selected_image = None
|
||||
self.initial_selected_packages = []
|
||||
self.initial_user_selected_packages = []
|
||||
|
||||
@@ -172,7 +171,6 @@ class Configuration:
|
||||
# self.extra_setting/self.toolchain_build
|
||||
# bblayers.conf
|
||||
self.layers = params["layer"].split()
|
||||
self.layers_non_removable = params["layers_non_removable"].split()
|
||||
self.default_task = params["default_task"]
|
||||
|
||||
# proxy settings
|
||||
@@ -440,9 +438,6 @@ class Builder(gtk.Window):
|
||||
# Indicate whether the UI is working
|
||||
self.sensitive = True
|
||||
|
||||
# Indicate whether the sanity check ran
|
||||
self.sanity_checked = False
|
||||
|
||||
# create visual elements
|
||||
self.create_visual_elements()
|
||||
|
||||
@@ -460,9 +455,7 @@ class Builder(gtk.Window):
|
||||
self.handler.build.connect("build-failed", self.handler_build_failed_cb)
|
||||
self.handler.build.connect("build-aborted", self.handler_build_aborted_cb)
|
||||
self.handler.build.connect("task-started", self.handler_task_started_cb)
|
||||
self.handler.build.connect("disk-full", self.handler_disk_full_cb)
|
||||
self.handler.build.connect("log-error", self.handler_build_failure_cb)
|
||||
self.handler.build.connect("log-warning", self.handler_build_failure_cb)
|
||||
self.handler.build.connect("log", self.handler_build_log_cb)
|
||||
self.handler.build.connect("no-provider", self.handler_no_provider_cb)
|
||||
self.handler.connect("generating-data", self.handler_generating_data_cb)
|
||||
@@ -547,8 +540,7 @@ class Builder(gtk.Window):
|
||||
sanity_check_post_func = func
|
||||
|
||||
def generate_configuration(self):
|
||||
if not self.sanity_checked:
|
||||
self.show_sanity_check_page()
|
||||
self.show_sanity_check_page()
|
||||
self.handler.generate_configuration()
|
||||
|
||||
def initiate_new_build_async(self):
|
||||
@@ -754,20 +746,6 @@ class Builder(gtk.Window):
|
||||
self.previous_step = self.current_step
|
||||
self.current_step = next_step
|
||||
|
||||
def set_user_config_proxies(self):
|
||||
if self.configuration.enable_proxy == True:
|
||||
self.handler.set_http_proxy(self.configuration.combine_proxy("http"))
|
||||
self.handler.set_https_proxy(self.configuration.combine_proxy("https"))
|
||||
self.handler.set_ftp_proxy(self.configuration.combine_proxy("ftp"))
|
||||
self.handler.set_git_proxy(self.configuration.combine_host_only("git"), self.configuration.combine_port_only("git"))
|
||||
self.handler.set_cvs_proxy(self.configuration.combine_host_only("cvs"), self.configuration.combine_port_only("cvs"))
|
||||
elif self.configuration.enable_proxy == False:
|
||||
self.handler.set_http_proxy("")
|
||||
self.handler.set_https_proxy("")
|
||||
self.handler.set_ftp_proxy("")
|
||||
self.handler.set_git_proxy("", "")
|
||||
self.handler.set_cvs_proxy("", "")
|
||||
|
||||
def set_user_config(self):
|
||||
self.handler.init_cooker()
|
||||
# set bb layers
|
||||
@@ -789,7 +767,19 @@ class Builder(gtk.Window):
|
||||
self.handler.set_extra_config(self.configuration.extra_setting)
|
||||
self.handler.set_extra_inherit("packageinfo")
|
||||
self.handler.set_extra_inherit("image_types")
|
||||
self.set_user_config_proxies()
|
||||
# set proxies
|
||||
if self.configuration.enable_proxy == True:
|
||||
self.handler.set_http_proxy(self.configuration.combine_proxy("http"))
|
||||
self.handler.set_https_proxy(self.configuration.combine_proxy("https"))
|
||||
self.handler.set_ftp_proxy(self.configuration.combine_proxy("ftp"))
|
||||
self.handler.set_git_proxy(self.configuration.combine_host_only("git"), self.configuration.combine_port_only("git"))
|
||||
self.handler.set_cvs_proxy(self.configuration.combine_host_only("cvs"), self.configuration.combine_port_only("cvs"))
|
||||
elif self.configuration.enable_proxy == False:
|
||||
self.handler.set_http_proxy("")
|
||||
self.handler.set_https_proxy("")
|
||||
self.handler.set_ftp_proxy("")
|
||||
self.handler.set_git_proxy("", "")
|
||||
self.handler.set_cvs_proxy("", "")
|
||||
|
||||
def update_recipe_model(self, selected_image, selected_recipes):
|
||||
self.recipe_model.set_selected_image(selected_image)
|
||||
@@ -840,9 +830,7 @@ class Builder(gtk.Window):
|
||||
if not self.configuration.curr_mach:
|
||||
self.configuration.curr_mach = self.handler.runCommand(["getVariable", "HOB_MACHINE"]) or ""
|
||||
self.update_configuration_parameters(self.get_parameters_sync())
|
||||
if not self.sanity_checked:
|
||||
self.sanity_check()
|
||||
self.sanity_checked = True
|
||||
self.sanity_check()
|
||||
elif initcmd == self.handler.SANITY_CHECK:
|
||||
if self.had_network_error:
|
||||
self.had_network_error = False
|
||||
@@ -956,10 +944,10 @@ class Builder(gtk.Window):
|
||||
self.package_details_page.refresh_selection()
|
||||
|
||||
def handler_recipe_populated_cb(self, handler):
|
||||
self.image_configuration_page.update_progress_bar("Populating recipes", 0.99)
|
||||
self.image_configuration_page.update_progress_bar("Populated recipes", 0.99)
|
||||
|
||||
def handler_package_populated_cb(self, handler):
|
||||
self.image_configuration_page.update_progress_bar("Populating packages", 1.0)
|
||||
self.image_configuration_page.update_progress_bar("Populated packages", 1.0)
|
||||
|
||||
def handler_parsing_started_cb(self, handler, message):
|
||||
if self.current_step != self.RCPPKGINFO_POPULATING:
|
||||
@@ -969,10 +957,10 @@ class Builder(gtk.Window):
|
||||
if message["eventname"] == "TreeDataPreparationStarted":
|
||||
fraction = 0.6 + fraction
|
||||
self.image_configuration_page.stop_button.set_sensitive(False)
|
||||
self.image_configuration_page.update_progress_bar("Generating dependency tree", fraction)
|
||||
else:
|
||||
self.image_configuration_page.stop_button.set_sensitive(True)
|
||||
self.image_configuration_page.update_progress_bar(message["title"], fraction)
|
||||
|
||||
self.image_configuration_page.update_progress_bar(message["title"], fraction)
|
||||
|
||||
def handler_parsing_cb(self, handler, message):
|
||||
if self.current_step != self.RCPPKGINFO_POPULATING:
|
||||
@@ -981,10 +969,9 @@ class Builder(gtk.Window):
|
||||
fraction = message["current"] * 1.0/message["total"]
|
||||
if message["eventname"] == "TreeDataPreparationProgress":
|
||||
fraction = 0.6 + 0.38 * fraction
|
||||
self.image_configuration_page.update_progress_bar("Generating dependency tree", fraction)
|
||||
else:
|
||||
fraction = 0.6 * fraction
|
||||
self.image_configuration_page.update_progress_bar(message["title"], fraction)
|
||||
self.image_configuration_page.update_progress_bar(message["title"], fraction)
|
||||
|
||||
def handler_parsing_completed_cb(self, handler, message):
|
||||
if self.current_step != self.RCPPKGINFO_POPULATING:
|
||||
@@ -994,7 +981,7 @@ class Builder(gtk.Window):
|
||||
fraction = 0.98
|
||||
else:
|
||||
fraction = 0.6
|
||||
self.image_configuration_page.update_progress_bar("Generating dependency tree", fraction)
|
||||
self.image_configuration_page.update_progress_bar(message["title"], fraction)
|
||||
|
||||
def handler_build_started_cb(self, running_build):
|
||||
if self.current_step == self.FAST_IMAGE_GENERATING:
|
||||
@@ -1130,9 +1117,6 @@ class Builder(gtk.Window):
|
||||
self.build_details_page.update_progress_bar(title + ": ", fraction)
|
||||
self.build_details_page.update_build_status(message["current"], message["total"], message["task"])
|
||||
|
||||
def handler_disk_full_cb(self, running_build):
|
||||
self.disk_full = True
|
||||
|
||||
def handler_build_failure_cb(self, running_build):
|
||||
self.build_details_page.show_issues()
|
||||
|
||||
@@ -1201,7 +1185,6 @@ class Builder(gtk.Window):
|
||||
def show_layer_selection_dialog(self):
|
||||
dialog = LayerSelectionDialog(title = "Layers",
|
||||
layers = copy.deepcopy(self.configuration.layers),
|
||||
layers_non_removable = copy.deepcopy(self.configuration.layers_non_removable),
|
||||
all_layers = self.parameters.all_layers,
|
||||
parent = self,
|
||||
flags = gtk.DIALOG_MODAL
|
||||
@@ -1327,8 +1310,7 @@ class Builder(gtk.Window):
|
||||
parent = self,
|
||||
flags = gtk.DIALOG_MODAL
|
||||
| gtk.DIALOG_DESTROY_WITH_PARENT
|
||||
| gtk.DIALOG_NO_SEPARATOR,
|
||||
handler = self.handler)
|
||||
| gtk.DIALOG_NO_SEPARATOR)
|
||||
button = dialog.add_button("Cancel", gtk.RESPONSE_NO)
|
||||
HobAltButton.style_button(button)
|
||||
button = dialog.add_button("Save", gtk.RESPONSE_YES)
|
||||
@@ -1341,14 +1323,6 @@ class Builder(gtk.Window):
|
||||
self.configuration = dialog.configuration
|
||||
self.save_defaults() # remember settings
|
||||
settings_changed = dialog.settings_changed
|
||||
if dialog.proxy_settings_changed:
|
||||
self.set_user_config_proxies()
|
||||
elif dialog.proxy_test_ran:
|
||||
# The user might have modified the proxies in the "Proxy"
|
||||
# tab, which in turn made the proxy settings modify in bb.
|
||||
# If "Cancel" was pressed, restore the previous proxy
|
||||
# settings inside bb.
|
||||
self.set_user_config_proxies()
|
||||
dialog.destroy()
|
||||
return response == gtk.RESPONSE_YES, settings_changed
|
||||
|
||||
@@ -1506,7 +1480,7 @@ class Builder(gtk.Window):
|
||||
if response != gtk.RESPONSE_CANCEL:
|
||||
self.stopping = True
|
||||
if response == gtk.RESPONSE_OK:
|
||||
self.build_details_page.progress_bar.set_stop_title("Stopping the build....")
|
||||
self.build_details_page.progress_bar.set_title("Stopping the build...")
|
||||
self.build_details_page.progress_bar.set_rcstyle("stop")
|
||||
self.cancel_build_sync()
|
||||
elif response == gtk.RESPONSE_YES:
|
||||
|
||||
@@ -319,16 +319,9 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
|
||||
PROXIES_PAGE_ID,
|
||||
OTHERS_PAGE_ID) = range(4)
|
||||
|
||||
(TEST_NETWORK_NONE,
|
||||
TEST_NETWORK_INITIAL,
|
||||
TEST_NETWORK_RUNNING,
|
||||
TEST_NETWORK_PASSED,
|
||||
TEST_NETWORK_FAILED,
|
||||
TEST_NETWORK_CANCELED) = range(6)
|
||||
|
||||
def __init__(self, title, configuration, all_image_types,
|
||||
all_package_formats, all_distros, all_sdk_machines,
|
||||
max_threads, parent, flags, handler, buttons=None):
|
||||
max_threads, parent, flags, buttons=None):
|
||||
super(SimpleSettingsDialog, self).__init__(title, parent, flags, buttons)
|
||||
|
||||
# class members from other objects
|
||||
@@ -355,11 +348,7 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
|
||||
self.image_types_checkbuttons = {}
|
||||
|
||||
self.md5 = self.config_md5()
|
||||
self.proxy_md5 = self.config_proxy_md5()
|
||||
self.settings_changed = False
|
||||
self.proxy_settings_changed = False
|
||||
self.handler = handler
|
||||
self.proxy_test_ran = False
|
||||
|
||||
# create visual elements on the dialog
|
||||
self.create_visual_elements()
|
||||
@@ -368,38 +357,54 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
|
||||
def _get_sorted_value(self, var):
|
||||
return " ".join(sorted(str(var).split())) + "\n"
|
||||
|
||||
def config_proxy_md5(self):
|
||||
data = ("ENABLE_PROXY: " + self._get_sorted_value(self.configuration.enable_proxy))
|
||||
def config_md5(self):
|
||||
data = ""
|
||||
data += ("ENABLE_PROXY: " + self._get_sorted_value(self.configuration.enable_proxy))
|
||||
if self.configuration.enable_proxy:
|
||||
for protocol in self.configuration.proxies.keys():
|
||||
data += (protocol + ": " + self._get_sorted_value(self.configuration.combine_proxy(protocol)))
|
||||
return hashlib.md5(data).hexdigest()
|
||||
|
||||
def config_md5(self):
|
||||
data = ""
|
||||
for key in self.configuration.extra_setting.keys():
|
||||
data += (key + ": " + self._get_sorted_value(self.configuration.extra_setting[key]))
|
||||
return hashlib.md5(data).hexdigest()
|
||||
|
||||
def gen_proxy_entry_widget(self, protocol, parent, need_button=True, line=0):
|
||||
def details_cb(self, button, parent, protocol):
|
||||
dialog = ProxyDetailsDialog(title = protocol.upper() + " Proxy Details",
|
||||
user = self.configuration.proxies[protocol][1],
|
||||
passwd = self.configuration.proxies[protocol][2],
|
||||
parent = parent,
|
||||
flags = gtk.DIALOG_MODAL
|
||||
| gtk.DIALOG_DESTROY_WITH_PARENT
|
||||
| gtk.DIALOG_NO_SEPARATOR)
|
||||
dialog.add_button(gtk.STOCK_CLOSE, gtk.RESPONSE_OK)
|
||||
response = dialog.run()
|
||||
if response == gtk.RESPONSE_OK:
|
||||
self.configuration.proxies[protocol][1] = dialog.user
|
||||
self.configuration.proxies[protocol][2] = dialog.passwd
|
||||
self.refresh_proxy_components()
|
||||
dialog.destroy()
|
||||
|
||||
def gen_proxy_entry_widget(self, protocol, parent, need_button=True):
|
||||
hbox = gtk.HBox(False, 12)
|
||||
|
||||
label = gtk.Label(protocol.upper() + " proxy")
|
||||
self.proxy_table.attach(label, 0, 1, line, line+1, xpadding=24)
|
||||
hbox.pack_start(label, expand=True, fill=False, padding=24)
|
||||
|
||||
proxy_entry = gtk.Entry()
|
||||
proxy_entry.set_size_request(300, -1)
|
||||
self.proxy_table.attach(proxy_entry, 1, 2, line, line+1, ypadding=4)
|
||||
hbox.pack_start(proxy_entry, expand=False, fill=False)
|
||||
|
||||
self.proxy_table.attach(gtk.Label(":"), 2, 3, line, line+1, xpadding=12, ypadding=4)
|
||||
hbox.pack_start(gtk.Label(":"), expand=False, fill=False)
|
||||
|
||||
port_entry = gtk.Entry()
|
||||
port_entry.set_size_request(60, -1)
|
||||
self.proxy_table.attach(port_entry, 3, 4, line, line+1, ypadding=4)
|
||||
hbox.pack_start(port_entry, expand=False, fill=False)
|
||||
|
||||
details_button = HobAltButton("Details")
|
||||
details_button.connect("clicked", self.details_cb, parent, protocol)
|
||||
self.proxy_table.attach(details_button, 4, 5, line, line+1, xpadding=4, yoptions=gtk.EXPAND)
|
||||
hbox.pack_start(details_button, expand=False, fill=False)
|
||||
|
||||
return proxy_entry, port_entry, details_button
|
||||
hbox.show_all()
|
||||
return hbox, proxy_entry, port_entry, details_button
|
||||
|
||||
def refresh_proxy_components(self):
|
||||
self.same_checkbox.set_sensitive(self.configuration.enable_proxy)
|
||||
@@ -444,53 +449,18 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
|
||||
self.cvs_proxy_port.set_sensitive(self.configuration.enable_proxy and (not self.configuration.same_proxy))
|
||||
self.cvs_proxy_details.set_sensitive(self.configuration.enable_proxy and (not self.configuration.same_proxy))
|
||||
|
||||
if self.configuration.same_proxy:
|
||||
if self.http_proxy.get_text():
|
||||
[w.set_text(self.http_proxy.get_text()) for w in self.same_proxy_addresses]
|
||||
if self.http_proxy_port.get_text():
|
||||
[w.set_text(self.http_proxy_port.get_text()) for w in self.same_proxy_ports]
|
||||
|
||||
def proxy_checkbox_toggled_cb(self, button):
|
||||
self.configuration.enable_proxy = self.proxy_checkbox.get_active()
|
||||
if not self.configuration.enable_proxy:
|
||||
self.configuration.same_proxy = False
|
||||
self.same_checkbox.set_active(self.configuration.same_proxy)
|
||||
self.save_proxy_data()
|
||||
self.refresh_proxy_components()
|
||||
|
||||
def same_checkbox_toggled_cb(self, button):
|
||||
self.configuration.same_proxy = self.same_checkbox.get_active()
|
||||
self.save_proxy_data()
|
||||
self.refresh_proxy_components()
|
||||
|
||||
def save_proxy_data(self):
|
||||
self.configuration.split_proxy("http", self.http_proxy.get_text() + ":" + self.http_proxy_port.get_text())
|
||||
if self.configuration.same_proxy:
|
||||
self.configuration.split_proxy("https", self.http_proxy.get_text() + ":" + self.http_proxy_port.get_text())
|
||||
self.configuration.split_proxy("ftp", self.http_proxy.get_text() + ":" + self.http_proxy_port.get_text())
|
||||
self.configuration.split_proxy("git", self.http_proxy.get_text() + ":" + self.http_proxy_port.get_text())
|
||||
self.configuration.split_proxy("cvs", self.http_proxy.get_text() + ":" + self.http_proxy_port.get_text())
|
||||
else:
|
||||
self.configuration.split_proxy("https", self.https_proxy.get_text() + ":" + self.https_proxy_port.get_text())
|
||||
self.configuration.split_proxy("ftp", self.ftp_proxy.get_text() + ":" + self.ftp_proxy_port.get_text())
|
||||
self.configuration.split_proxy("git", self.git_proxy.get_text() + ":" + self.git_proxy_port.get_text())
|
||||
self.configuration.split_proxy("cvs", self.cvs_proxy.get_text() + ":" + self.cvs_proxy_port.get_text())
|
||||
|
||||
def response_cb(self, dialog, response_id):
|
||||
if response_id == gtk.RESPONSE_YES:
|
||||
# Check that all proxy entries have a corresponding port
|
||||
for proxy, port in zip(self.all_proxy_addresses, self.all_proxy_ports):
|
||||
if proxy.get_text() and not port.get_text():
|
||||
lbl = "<b>Enter all port numbers</b>\n\n"
|
||||
msg = "Proxy servers require a port number. Please make sure you have entered a port number for each proxy server."
|
||||
dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_WARNING, msg)
|
||||
button = dialog.add_button("Close", gtk.RESPONSE_OK)
|
||||
HobButton.style_button(button)
|
||||
response = dialog.run()
|
||||
dialog.destroy()
|
||||
self.emit_stop_by_name("response")
|
||||
return
|
||||
|
||||
def response_cb(self, dialog, response_id):
|
||||
self.configuration.dldir = self.dldir_text.get_text()
|
||||
self.configuration.sstatedir = self.sstatedir_text.get_text()
|
||||
self.configuration.sstatemirror = ""
|
||||
@@ -503,7 +473,19 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
|
||||
self.configuration.sstatemirror += smirror
|
||||
self.configuration.bbthread = self.bb_spinner.get_value_as_int()
|
||||
self.configuration.pmake = self.pmake_spinner.get_value_as_int()
|
||||
self.save_proxy_data()
|
||||
|
||||
self.configuration.split_proxy("http", self.http_proxy.get_text() + ":" + self.http_proxy_port.get_text())
|
||||
if self.configuration.same_proxy:
|
||||
self.configuration.split_proxy("https", self.http_proxy.get_text() + ":" + self.http_proxy_port.get_text())
|
||||
self.configuration.split_proxy("ftp", self.http_proxy.get_text() + ":" + self.http_proxy_port.get_text())
|
||||
self.configuration.split_proxy("git", self.http_proxy.get_text() + ":" + self.http_proxy_port.get_text())
|
||||
self.configuration.split_proxy("cvs", self.http_proxy.get_text() + ":" + self.http_proxy_port.get_text())
|
||||
else:
|
||||
self.configuration.split_proxy("https", self.https_proxy.get_text() + ":" + self.https_proxy_port.get_text())
|
||||
self.configuration.split_proxy("ftp", self.ftp_proxy.get_text() + ":" + self.ftp_proxy_port.get_text())
|
||||
self.configuration.split_proxy("git", self.git_proxy.get_text() + ":" + self.git_proxy_port.get_text())
|
||||
self.configuration.split_proxy("cvs", self.cvs_proxy.get_text() + ":" + self.cvs_proxy_port.get_text())
|
||||
|
||||
self.configuration.extra_setting = {}
|
||||
it = self.setting_store.get_iter_first()
|
||||
while it:
|
||||
@@ -514,7 +496,6 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
|
||||
|
||||
md5 = self.config_md5()
|
||||
self.settings_changed = (self.md5 != md5)
|
||||
self.proxy_settings_changed = (self.proxy_md5 != self.config_proxy_md5())
|
||||
|
||||
def create_build_environment_page(self):
|
||||
advanced_vbox = gtk.VBox(False, 6)
|
||||
@@ -565,6 +546,8 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
|
||||
sub_vbox.pack_start(label, expand=False, fill=False)
|
||||
sub_vbox.pack_start(sstatedir_widget, expand=False, fill=False, padding=12)
|
||||
|
||||
sub_vbox = gtk.VBox(False)
|
||||
advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
|
||||
content = "<span weight=\"bold\">Shared state mirrors</span>"
|
||||
tooltip = "URLs pointing to pre-built mirrors that will speed your build. "
|
||||
tooltip += "Select the \'Standard\' configuration if the structure of your "
|
||||
@@ -573,14 +556,8 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
|
||||
tooltip += "http://www.yoctoproject.org/docs/current/poky-ref-manual/"
|
||||
tooltip += "poky-ref-manual.html#shared-state\">Yocto Project Reference Manual</a>."
|
||||
table = self.gen_label_info_widget(content, tooltip)
|
||||
advanced_vbox.pack_start(table, expand=False, fill=False)
|
||||
sub_vbox.pack_start(table, expand=False, fill=False)
|
||||
|
||||
sub_vbox = gtk.VBox(False)
|
||||
scroll = gtk.ScrolledWindow()
|
||||
scroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
|
||||
scroll.add_with_viewport(sub_vbox)
|
||||
scroll.connect('size-allocate', self.scroll_changed)
|
||||
advanced_vbox.pack_start(scroll, gtk.TRUE, gtk.TRUE, 0)
|
||||
searched_string = "file://"
|
||||
|
||||
if self.sstatemirrors_changed == 0:
|
||||
@@ -631,91 +608,10 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
|
||||
self.show_all()
|
||||
self.nb.set_current_page(page_num)
|
||||
|
||||
def test_proxy_ended(self, passed):
|
||||
self.proxy_test_running = False
|
||||
self.set_test_proxy_state(self.TEST_NETWORK_PASSED if passed else self.TEST_NETWORK_FAILED)
|
||||
self.set_sensitive(True)
|
||||
self.refresh_proxy_components()
|
||||
|
||||
def timer_func(self):
|
||||
self.test_proxy_progress.pulse()
|
||||
return self.proxy_test_running
|
||||
|
||||
def test_network_button_cb(self, b):
|
||||
self.set_test_proxy_state(self.TEST_NETWORK_RUNNING)
|
||||
self.set_sensitive(False)
|
||||
self.save_proxy_data()
|
||||
if self.configuration.enable_proxy == True:
|
||||
self.handler.set_http_proxy(self.configuration.combine_proxy("http"))
|
||||
self.handler.set_https_proxy(self.configuration.combine_proxy("https"))
|
||||
self.handler.set_ftp_proxy(self.configuration.combine_proxy("ftp"))
|
||||
self.handler.set_git_proxy(self.configuration.combine_host_only("git"), self.configuration.combine_port_only("git"))
|
||||
self.handler.set_cvs_proxy(self.configuration.combine_host_only("cvs"), self.configuration.combine_port_only("cvs"))
|
||||
elif self.configuration.enable_proxy == False:
|
||||
self.handler.set_http_proxy("")
|
||||
self.handler.set_https_proxy("")
|
||||
self.handler.set_ftp_proxy("")
|
||||
self.handler.set_git_proxy("", "")
|
||||
self.handler.set_cvs_proxy("", "")
|
||||
self.proxy_test_ran = True
|
||||
self.proxy_test_running = True
|
||||
gobject.timeout_add(100, self.timer_func)
|
||||
self.handler.trigger_network_test()
|
||||
|
||||
def test_proxy_focus_event(self, w, direction):
|
||||
if self.test_proxy_state in [self.TEST_NETWORK_PASSED, self.TEST_NETWORK_FAILED]:
|
||||
self.set_test_proxy_state(self.TEST_NETWORK_INITIAL)
|
||||
return False
|
||||
|
||||
def http_proxy_changed(self, e):
|
||||
if not self.configuration.same_proxy:
|
||||
return
|
||||
if e == self.http_proxy:
|
||||
[w.set_text(self.http_proxy.get_text()) for w in self.same_proxy_addresses]
|
||||
else:
|
||||
[w.set_text(self.http_proxy_port.get_text()) for w in self.same_proxy_ports]
|
||||
|
||||
def proxy_address_focus_out_event(self, w, direction):
|
||||
text = w.get_text()
|
||||
if not text:
|
||||
return False
|
||||
if text.find("//") == -1:
|
||||
w.set_text("http://" + text)
|
||||
return False
|
||||
|
||||
def set_test_proxy_state(self, state):
|
||||
if self.test_proxy_state == state:
|
||||
return
|
||||
[self.proxy_table.remove(w) for w in self.test_gui_elements]
|
||||
if state == self.TEST_NETWORK_INITIAL:
|
||||
self.proxy_table.attach(self.test_network_button, 1, 2, 5, 6)
|
||||
self.test_network_button.show()
|
||||
elif state == self.TEST_NETWORK_RUNNING:
|
||||
self.test_proxy_progress.set_rcstyle("running")
|
||||
self.test_proxy_progress.set_text("Testing network configuration")
|
||||
self.proxy_table.attach(self.test_proxy_progress, 0, 5, 5, 6, xpadding=4)
|
||||
self.test_proxy_progress.show()
|
||||
else: # passed or failed
|
||||
self.dummy_progress.update(1.0)
|
||||
if state == self.TEST_NETWORK_PASSED:
|
||||
self.dummy_progress.set_text("Your network is properly configured")
|
||||
self.dummy_progress.set_rcstyle("running")
|
||||
else:
|
||||
self.dummy_progress.set_text("Network test failed")
|
||||
self.dummy_progress.set_rcstyle("fail")
|
||||
self.proxy_table.attach(self.dummy_progress, 0, 4, 5, 6)
|
||||
self.proxy_table.attach(self.retest_network_button, 4, 5, 5, 6, xpadding=4)
|
||||
self.dummy_progress.show()
|
||||
self.retest_network_button.show()
|
||||
self.test_proxy_state = state
|
||||
|
||||
def create_network_page(self):
|
||||
def create_proxy_page(self):
|
||||
advanced_vbox = gtk.VBox(False, 6)
|
||||
advanced_vbox.set_border_width(6)
|
||||
self.same_proxy_addresses = []
|
||||
self.same_proxy_ports = []
|
||||
self.all_proxy_ports = []
|
||||
self.all_proxy_addresses = []
|
||||
|
||||
sub_vbox = gtk.VBox(False, 6)
|
||||
advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
|
||||
@@ -727,77 +623,42 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
|
||||
hbox.pack_start(info, expand=False, fill=False)
|
||||
sub_vbox.pack_start(hbox, expand=False, fill=False)
|
||||
|
||||
proxy_test_focus = []
|
||||
self.direct_checkbox = gtk.RadioButton(None, "Direct network connection")
|
||||
proxy_test_focus.append(self.direct_checkbox)
|
||||
self.direct_checkbox = gtk.RadioButton(None, "Direct internet connection")
|
||||
self.direct_checkbox.set_tooltip_text("Check this box to use a direct internet connection with no proxy")
|
||||
self.direct_checkbox.set_active(not self.configuration.enable_proxy)
|
||||
sub_vbox.pack_start(self.direct_checkbox, expand=False, fill=False)
|
||||
|
||||
self.proxy_checkbox = gtk.RadioButton(self.direct_checkbox, "Manual proxy configuration")
|
||||
proxy_test_focus.append(self.proxy_checkbox)
|
||||
self.proxy_checkbox.set_tooltip_text("Check this box to manually set up a specific proxy")
|
||||
self.proxy_checkbox.set_active(self.configuration.enable_proxy)
|
||||
sub_vbox.pack_start(self.proxy_checkbox, expand=False, fill=False)
|
||||
|
||||
self.same_checkbox = gtk.CheckButton("Use the HTTP proxy for all protocols")
|
||||
proxy_test_focus.append(self.same_checkbox)
|
||||
self.same_checkbox = gtk.CheckButton("Use the same proxy for all protocols")
|
||||
self.same_checkbox.set_tooltip_text("Check this box to use the HTTP proxy for all five proxies")
|
||||
self.same_checkbox.set_active(self.configuration.same_proxy)
|
||||
hbox = gtk.HBox(False, 12)
|
||||
hbox.pack_start(self.same_checkbox, expand=False, fill=False, padding=24)
|
||||
sub_vbox.pack_start(hbox, expand=False, fill=False)
|
||||
|
||||
self.proxy_table = gtk.Table(6, 5, False)
|
||||
self.http_proxy, self.http_proxy_port, self.http_proxy_details = self.gen_proxy_entry_widget(
|
||||
"http", self, True, 0)
|
||||
proxy_test_focus +=[self.http_proxy, self.http_proxy_port]
|
||||
self.http_proxy.connect("changed", self.http_proxy_changed)
|
||||
self.http_proxy_port.connect("changed", self.http_proxy_changed)
|
||||
proxy_widget, self.http_proxy, self.http_proxy_port, self.http_proxy_details = self.gen_proxy_entry_widget(
|
||||
"http", self, True)
|
||||
sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
|
||||
|
||||
self.https_proxy, self.https_proxy_port, self.https_proxy_details = self.gen_proxy_entry_widget(
|
||||
"https", self, True, 1)
|
||||
proxy_test_focus += [self.https_proxy, self.https_proxy_port]
|
||||
self.same_proxy_addresses.append(self.https_proxy)
|
||||
self.same_proxy_ports.append(self.https_proxy_port)
|
||||
proxy_widget, self.https_proxy, self.https_proxy_port, self.https_proxy_details = self.gen_proxy_entry_widget(
|
||||
"https", self, True)
|
||||
sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
|
||||
|
||||
self.ftp_proxy, self.ftp_proxy_port, self.ftp_proxy_details = self.gen_proxy_entry_widget(
|
||||
"ftp", self, True, 2)
|
||||
proxy_test_focus += [self.ftp_proxy, self.ftp_proxy_port]
|
||||
self.same_proxy_addresses.append(self.ftp_proxy)
|
||||
self.same_proxy_ports.append(self.ftp_proxy_port)
|
||||
proxy_widget, self.ftp_proxy, self.ftp_proxy_port, self.ftp_proxy_details = self.gen_proxy_entry_widget(
|
||||
"ftp", self, True)
|
||||
sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
|
||||
|
||||
self.git_proxy, self.git_proxy_port, self.git_proxy_details = self.gen_proxy_entry_widget(
|
||||
"git", self, True, 3)
|
||||
proxy_test_focus += [self.git_proxy, self.git_proxy_port]
|
||||
self.same_proxy_addresses.append(self.git_proxy)
|
||||
self.same_proxy_ports.append(self.git_proxy_port)
|
||||
proxy_widget, self.git_proxy, self.git_proxy_port, self.git_proxy_details = self.gen_proxy_entry_widget(
|
||||
"git", self, True)
|
||||
sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
|
||||
|
||||
self.cvs_proxy, self.cvs_proxy_port, self.cvs_proxy_details = self.gen_proxy_entry_widget(
|
||||
"cvs", self, True, 4)
|
||||
proxy_test_focus += [self.cvs_proxy, self.cvs_proxy_port]
|
||||
self.same_proxy_addresses.append(self.cvs_proxy)
|
||||
self.same_proxy_ports.append(self.cvs_proxy_port)
|
||||
self.all_proxy_ports = self.same_proxy_ports + [self.http_proxy_port]
|
||||
self.all_proxy_addresses = self.same_proxy_addresses + [self.http_proxy]
|
||||
sub_vbox.pack_start(self.proxy_table, expand=False, fill=False)
|
||||
self.proxy_table.show_all()
|
||||
|
||||
# Create the graphical elements for the network test feature, but don't display them yet
|
||||
self.test_network_button = HobAltButton("Test network configuration")
|
||||
self.test_network_button.connect("clicked", self.test_network_button_cb)
|
||||
self.test_proxy_progress = HobProgressBar()
|
||||
self.dummy_progress = HobProgressBar()
|
||||
self.retest_network_button = HobAltButton("Retest")
|
||||
self.retest_network_button.connect("clicked", self.test_network_button_cb)
|
||||
self.test_gui_elements = [self.test_network_button, self.test_proxy_progress, self.dummy_progress, self.retest_network_button]
|
||||
# Initialize the network tester
|
||||
self.test_proxy_state = self.TEST_NETWORK_NONE
|
||||
self.set_test_proxy_state(self.TEST_NETWORK_INITIAL)
|
||||
self.proxy_test_passed_id = self.handler.connect("network-passed", lambda h:self.test_proxy_ended(True))
|
||||
self.proxy_test_failed_id = self.handler.connect("network-failed", lambda h:self.test_proxy_ended(False))
|
||||
[w.connect("focus-in-event", self.test_proxy_focus_event) for w in proxy_test_focus]
|
||||
[w.connect("focus-out-event", self.proxy_address_focus_out_event) for w in self.all_proxy_addresses]
|
||||
proxy_widget, self.cvs_proxy, self.cvs_proxy_port, self.cvs_proxy_details = self.gen_proxy_entry_widget(
|
||||
"cvs", self, True)
|
||||
sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
|
||||
|
||||
self.direct_checkbox.connect("toggled", self.proxy_checkbox_toggled_cb)
|
||||
self.proxy_checkbox.connect("toggled", self.proxy_checkbox_toggled_cb)
|
||||
@@ -810,7 +671,6 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
|
||||
self.nb.set_current_page(page_id)
|
||||
|
||||
def details_cb(self, button, parent, protocol):
|
||||
self.save_proxy_data()
|
||||
dialog = ProxyDetailsDialog(title = protocol.upper() + " Proxy Details",
|
||||
user = self.configuration.proxies[protocol][1],
|
||||
passwd = self.configuration.proxies[protocol][2],
|
||||
@@ -980,7 +840,7 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
|
||||
self.nb.set_show_tabs(True)
|
||||
self.nb.append_page(self.create_build_environment_page(), gtk.Label("Build environment"))
|
||||
self.nb.append_page(self.create_shared_state_page(), gtk.Label("Shared state"))
|
||||
self.nb.append_page(self.create_network_page(), gtk.Label("Network"))
|
||||
self.nb.append_page(self.create_proxy_page(), gtk.Label("Proxies"))
|
||||
self.nb.append_page(self.create_others_page(), gtk.Label("Others"))
|
||||
self.nb.set_current_page(0)
|
||||
self.vbox.pack_start(self.nb, expand=True, fill=True)
|
||||
@@ -988,14 +848,6 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
|
||||
|
||||
self.show_all()
|
||||
|
||||
def destroy(self):
|
||||
self.handler.disconnect(self.proxy_test_passed_id)
|
||||
self.handler.disconnect(self.proxy_test_failed_id)
|
||||
super(SimpleSettingsDialog, self).destroy()
|
||||
|
||||
def scroll_changed(self, widget, event, data=None):
|
||||
adj = widget.get_vadjustment()
|
||||
adj.set_value(adj.upper - adj.page_size)
|
||||
|
||||
#
|
||||
# AdvancedSettings Dialog
|
||||
@@ -1501,13 +1353,6 @@ class CellRendererPixbufActivatable(gtk.CellRendererPixbuf):
|
||||
#
|
||||
class LayerSelectionDialog (CrumbsDialog):
|
||||
|
||||
TARGETS = [
|
||||
("MY_TREE_MODEL_ROW", gtk.TARGET_SAME_WIDGET, 0),
|
||||
("text/plain", 0, 1),
|
||||
("TEXT", 0, 2),
|
||||
("STRING", 0, 3),
|
||||
]
|
||||
|
||||
def gen_label_widget(self, content):
|
||||
label = gtk.Label()
|
||||
label.set_alignment(0, 0)
|
||||
@@ -1571,17 +1416,7 @@ class LayerSelectionDialog (CrumbsDialog):
|
||||
layer_tv.set_rules_hint(True)
|
||||
layer_tv.set_headers_visible(False)
|
||||
tree_selection = layer_tv.get_selection()
|
||||
tree_selection.set_mode(gtk.SELECTION_SINGLE)
|
||||
|
||||
# Allow enable drag and drop of rows including row move
|
||||
layer_tv.enable_model_drag_source( gtk.gdk.BUTTON1_MASK,
|
||||
self.TARGETS,
|
||||
gtk.gdk.ACTION_DEFAULT|
|
||||
gtk.gdk.ACTION_MOVE)
|
||||
layer_tv.enable_model_drag_dest(self.TARGETS,
|
||||
gtk.gdk.ACTION_DEFAULT)
|
||||
layer_tv.connect("drag_data_get", self.drag_data_get_cb)
|
||||
layer_tv.connect("drag_data_received", self.drag_data_received_cb)
|
||||
tree_selection.set_mode(gtk.SELECTION_NONE)
|
||||
|
||||
col0= gtk.TreeViewColumn('Path')
|
||||
cell0 = gtk.CellRendererText()
|
||||
@@ -1636,41 +1471,17 @@ class LayerSelectionDialog (CrumbsDialog):
|
||||
|
||||
return hbox, layer_store
|
||||
|
||||
def drag_data_get_cb(self, treeview, context, selection, target_id, etime):
|
||||
treeselection = treeview.get_selection()
|
||||
model, iter = treeselection.get_selected()
|
||||
data = model.get_value(iter, 0)
|
||||
selection.set(selection.target, 8, data)
|
||||
|
||||
def drag_data_received_cb(self, treeview, context, x, y, selection, info, etime):
|
||||
model = treeview.get_model()
|
||||
data = selection.data
|
||||
drop_info = treeview.get_dest_row_at_pos(x, y)
|
||||
if drop_info:
|
||||
path, position = drop_info
|
||||
iter = model.get_iter(path)
|
||||
if (position == gtk.TREE_VIEW_DROP_BEFORE or position == gtk.TREE_VIEW_DROP_INTO_OR_BEFORE):
|
||||
model.insert_before(iter, [data])
|
||||
else:
|
||||
model.insert_after(iter, [data])
|
||||
else:
|
||||
model.append([data])
|
||||
if context.action == gtk.gdk.ACTION_MOVE:
|
||||
context.finish(True, True, etime)
|
||||
return
|
||||
|
||||
def add_hover_cb(self, button, event):
|
||||
self.im.set_from_file(hic.ICON_INDI_ADD_HOVER_FILE)
|
||||
|
||||
def add_leave_cb(self, button, event):
|
||||
self.im.set_from_file(hic.ICON_INDI_ADD_FILE)
|
||||
|
||||
def __init__(self, title, layers, layers_non_removable, all_layers, parent, flags, buttons=None):
|
||||
def __init__(self, title, layers, all_layers, parent, flags, buttons=None):
|
||||
super(LayerSelectionDialog, self).__init__(title, parent, flags, buttons)
|
||||
|
||||
# class members from other objects
|
||||
self.layers = layers
|
||||
self.layers_non_removable = layers_non_removable
|
||||
self.all_layers = all_layers
|
||||
self.layers_changed = False
|
||||
|
||||
@@ -1710,7 +1521,10 @@ class LayerSelectionDialog (CrumbsDialog):
|
||||
"""
|
||||
def draw_delete_button_cb(self, col, cell, model, it, tv):
|
||||
path = model.get_value(it, 0)
|
||||
if path in self.layers_non_removable:
|
||||
# Trailing slashes are uncommon in bblayers.conf but confuse os.path.basename
|
||||
path.rstrip('/')
|
||||
name = os.path.basename(path)
|
||||
if name == "meta" or name == "meta-hob":
|
||||
cell.set_sensitive(False)
|
||||
cell.set_property('pixbuf', None)
|
||||
cell.set_property('mode', gtk.CELL_RENDERER_MODE_INERT)
|
||||
@@ -1728,8 +1542,11 @@ class LayerSelectionDialog (CrumbsDialog):
|
||||
"""
|
||||
def draw_layer_path_cb(self, col, cell, model, it):
|
||||
path = model.get_value(it, 0)
|
||||
if path in self.layers_non_removable:
|
||||
cell.set_property('markup', "<b>It cannot be removed</b>\n%s" % path)
|
||||
name = os.path.basename(path)
|
||||
if name == "meta":
|
||||
cell.set_property('markup', "<b>Core layer for images: it cannot be removed</b>\n%s" % path)
|
||||
elif name == "meta-hob":
|
||||
cell.set_property('markup', "<b>Core layer for Hob: it cannot be removed</b>\n%s" % path)
|
||||
else:
|
||||
cell.set_property('text', path)
|
||||
|
||||
@@ -1875,9 +1692,6 @@ class ImageSelectionDialog (CrumbsDialog):
|
||||
break
|
||||
iter = self.image_store.iter_next(iter)
|
||||
|
||||
#
|
||||
# ProxyDetailsDialog
|
||||
#
|
||||
class ProxyDetailsDialog (CrumbsDialog):
|
||||
|
||||
def __init__(self, title, user, passwd, parent, flags, buttons=None):
|
||||
@@ -1937,42 +1751,3 @@ class ProxyDetailsDialog (CrumbsDialog):
|
||||
else:
|
||||
self.user = None
|
||||
self.passwd = None
|
||||
|
||||
|
||||
#
|
||||
# OpeningLogDialog
|
||||
#
|
||||
class OpeningLogDialog (CrumbsDialog):
|
||||
|
||||
def __init__(self, title, parent, flags, buttons=None):
|
||||
super(OpeningLogDialog, self).__init__(title, parent, flags, buttons)
|
||||
|
||||
self.running = False
|
||||
# create visual elements on the dialog
|
||||
self.create_visual_elements()
|
||||
|
||||
def start(self):
|
||||
if not self.running:
|
||||
self.running = True
|
||||
gobject.timeout_add(100, self.pulse)
|
||||
|
||||
def pulse(self):
|
||||
self.progress_bar.pulse()
|
||||
return self.running
|
||||
|
||||
def create_visual_elements(self):
|
||||
hbox = gtk.HBox(False, 12)
|
||||
self.user_label = gtk.Label("The log will open in a text editor")
|
||||
hbox.pack_start(self.user_label, expand=False, fill=False)
|
||||
self.vbox.pack_start(hbox, expand=False, fill=False)
|
||||
|
||||
hbox = gtk.HBox(False, 12)
|
||||
# Progress bar
|
||||
self.progress_bar = HobProgressBar()
|
||||
hbox.pack_start(self.progress_bar)
|
||||
self.start()
|
||||
self.vbox.pack_start(hbox, expand=False, fill=False)
|
||||
|
||||
button = self.add_button("Cancel", gtk.RESPONSE_CANCEL)
|
||||
HobAltButton.style_button(button)
|
||||
self.show_all()
|
||||
|
||||
@@ -65,17 +65,10 @@ class HobHandler(gobject.GObject):
|
||||
"package-populated" : (gobject.SIGNAL_RUN_LAST,
|
||||
gobject.TYPE_NONE,
|
||||
()),
|
||||
"network-passed" : (gobject.SIGNAL_RUN_LAST,
|
||||
gobject.TYPE_NONE,
|
||||
()),
|
||||
"network-failed" : (gobject.SIGNAL_RUN_LAST,
|
||||
gobject.TYPE_NONE,
|
||||
()),
|
||||
}
|
||||
|
||||
(GENERATE_CONFIGURATION, GENERATE_RECIPES, GENERATE_PACKAGES, GENERATE_IMAGE, POPULATE_PACKAGEINFO, SANITY_CHECK, NETWORK_TEST) = range(7)
|
||||
(SUB_PATH_LAYERS, SUB_FILES_DISTRO, SUB_FILES_MACH, SUB_FILES_SDKMACH, SUB_MATCH_CLASS, SUB_PARSE_CONFIG, SUB_SANITY_CHECK,
|
||||
SUB_GNERATE_TGTS, SUB_GENERATE_PKGINFO, SUB_BUILD_RECIPES, SUB_BUILD_IMAGE, SUB_NETWORK_TEST) = range(12)
|
||||
(GENERATE_CONFIGURATION, GENERATE_RECIPES, GENERATE_PACKAGES, GENERATE_IMAGE, POPULATE_PACKAGEINFO, SANITY_CHECK) = range(6)
|
||||
(SUB_PATH_LAYERS, SUB_FILES_DISTRO, SUB_FILES_MACH, SUB_FILES_SDKMACH, SUB_MATCH_CLASS, SUB_PARSE_CONFIG, SUB_SANITY_CHECK, SUB_GNERATE_TGTS, SUB_GENERATE_PKGINFO, SUB_BUILD_RECIPES, SUB_BUILD_IMAGE) = range(11)
|
||||
|
||||
def __init__(self, server, recipe_model, package_model):
|
||||
super(HobHandler, self).__init__()
|
||||
@@ -108,9 +101,13 @@ class HobHandler(gobject.GObject):
|
||||
|
||||
def runCommand(self, commandline):
|
||||
try:
|
||||
result, error = self.server.runCommand(commandline)
|
||||
if error:
|
||||
raise Exception("Error running command '%s': %s" % (commandline, error))
|
||||
result = self.server.runCommand(commandline)
|
||||
result_str = str(result)
|
||||
if (result_str.startswith("Busy (") or
|
||||
result_str == "No such command"):
|
||||
raise Exception('%s has failed with output "%s". ' %
|
||||
(str(commandline), result_str) +
|
||||
"We recommend that you restart Hob.")
|
||||
return result
|
||||
except Exception as e:
|
||||
self.commands_async = []
|
||||
@@ -149,8 +146,6 @@ class HobHandler(gobject.GObject):
|
||||
self.runCommand(["triggerEvent", "bb.event.RequestPackageInfo()"])
|
||||
elif next_command == self.SUB_SANITY_CHECK:
|
||||
self.runCommand(["triggerEvent", "bb.event.SanityCheck()"])
|
||||
elif next_command == self.SUB_NETWORK_TEST:
|
||||
self.runCommand(["triggerEvent", "bb.event.NetworkTest()"])
|
||||
elif next_command == self.SUB_BUILD_RECIPES:
|
||||
self.clear_busy()
|
||||
self.building = True
|
||||
@@ -239,7 +234,7 @@ class HobHandler(gobject.GObject):
|
||||
message["eventname"] = bb.event.getName(event)
|
||||
message["current"] = 0
|
||||
message["total"] = None
|
||||
message["title"] = "Parsing recipes"
|
||||
message["title"] = "Parsing recipes: "
|
||||
self.emit("parsing-started", message)
|
||||
elif isinstance(event, (bb.event.ParseProgress,
|
||||
bb.event.CacheLoadProgress,
|
||||
@@ -248,7 +243,7 @@ class HobHandler(gobject.GObject):
|
||||
message["eventname"] = bb.event.getName(event)
|
||||
message["current"] = event.current
|
||||
message["total"] = event.total
|
||||
message["title"] = "Parsing recipes"
|
||||
message["title"] = "Parsing recipes: "
|
||||
self.emit("parsing", message)
|
||||
elif isinstance(event, (bb.event.ParseCompleted,
|
||||
bb.event.CacheLoadCompleted,
|
||||
@@ -257,14 +252,8 @@ class HobHandler(gobject.GObject):
|
||||
message["eventname"] = bb.event.getName(event)
|
||||
message["current"] = event.total
|
||||
message["total"] = event.total
|
||||
message["title"] = "Parsing recipes"
|
||||
message["title"] = "Parsing recipes: "
|
||||
self.emit("parsing-completed", message)
|
||||
elif isinstance(event, bb.event.NetworkTestFailed):
|
||||
self.emit("network-failed")
|
||||
self.run_next_command()
|
||||
elif isinstance(event, bb.event.NetworkTestPassed):
|
||||
self.emit("network-passed")
|
||||
self.run_next_command()
|
||||
|
||||
if self.error_msg and not self.commands_async:
|
||||
self.display_error()
|
||||
@@ -359,10 +348,6 @@ class HobHandler(gobject.GObject):
|
||||
self.commands_async.append(self.SUB_SANITY_CHECK)
|
||||
self.run_next_command(self.SANITY_CHECK)
|
||||
|
||||
def trigger_network_test(self):
|
||||
self.commands_async.append(self.SUB_NETWORK_TEST)
|
||||
self.run_next_command(self.NETWORK_TEST)
|
||||
|
||||
def generate_configuration(self):
|
||||
self.commands_async.append(self.SUB_PARSE_CONFIG)
|
||||
self.commands_async.append(self.SUB_PATH_LAYERS)
|
||||
@@ -420,7 +405,7 @@ class HobHandler(gobject.GObject):
|
||||
self.build.reset()
|
||||
|
||||
def get_logfile(self):
|
||||
return self.server.runCommand(["getVariable", "BB_CONSOLELOG"])[0]
|
||||
return self.server.runCommand(["getVariable", "BB_CONSOLELOG"])
|
||||
|
||||
def _remove_redundant(self, string):
|
||||
ret = []
|
||||
@@ -435,11 +420,8 @@ class HobHandler(gobject.GObject):
|
||||
params["core_base"] = self.runCommand(["getVariable", "COREBASE"]) or ""
|
||||
hob_layer = params["core_base"] + "/meta-hob"
|
||||
params["layer"] = self.runCommand(["getVariable", "BBLAYERS"]) or ""
|
||||
params["layers_non_removable"] = self.runCommand(["getVariable", "BBLAYERS_NON_REMOVABLE"]) or ""
|
||||
if hob_layer not in params["layer"].split():
|
||||
params["layer"] += (" " + hob_layer)
|
||||
if hob_layer not in params["layers_non_removable"].split():
|
||||
params["layers_non_removable"] += (" " + hob_layer)
|
||||
params["dldir"] = self.runCommand(["getVariable", "DL_DIR"]) or ""
|
||||
params["machine"] = self.runCommand(["getVariable", "MACHINE"]) or ""
|
||||
params["distro"] = self.runCommand(["getVariable", "DISTRO"]) or "defaultsetup"
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
#
|
||||
# BitBake Graphical GTK User Interface
|
||||
#
|
||||
# Copyright (C) 2012 Intel Corporation
|
||||
#
|
||||
# Authored by Cristiana Voicu <cristiana.voicu@intel.com>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License version 2 as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
import threading
|
||||
import gtk
|
||||
import subprocess
|
||||
|
||||
#
|
||||
# OpeningLogThread
|
||||
#
|
||||
class OpeningLogThread(threading.Thread):
|
||||
def __init__(self, dialog, log_file, parent):
|
||||
threading.Thread.__init__(self)
|
||||
self.dialog =dialog
|
||||
self.log_file = log_file
|
||||
self.parent = parent
|
||||
|
||||
def run(self):
|
||||
p = subprocess.Popen(['xdg-open',self.log_file])
|
||||
retcode = p.poll()
|
||||
while (retcode == None):
|
||||
if self.parent.stop:
|
||||
try:
|
||||
p.terminate()
|
||||
except OSError, e:
|
||||
if e.errno == 3:
|
||||
pass # no such process
|
||||
else:
|
||||
raise
|
||||
retcode = p.poll()
|
||||
|
||||
self.dialog.destroy()
|
||||
|
||||
@@ -155,15 +155,9 @@ class HobViewTable (gtk.VBox):
|
||||
bin = binb.split(', ')
|
||||
total_no = len(bin)
|
||||
if total_no > 1 and bin[0] == "User Selected":
|
||||
if total_no > 2:
|
||||
present_binb = bin[1] + ' (+' + str(total_no - 1) + ')'
|
||||
else:
|
||||
present_binb = bin[1]
|
||||
present_binb = bin[1] + ' (+' + str(total_no) + ')'
|
||||
else:
|
||||
if total_no > 1:
|
||||
present_binb = bin[0] + ' (+' + str(total_no - 1) + ')'
|
||||
else:
|
||||
present_binb = bin[0]
|
||||
present_binb = bin[0] + ' (+' + str(total_no) + ')'
|
||||
cell.set_property('text', present_binb)
|
||||
else:
|
||||
cell.set_property('text', "")
|
||||
@@ -521,8 +515,7 @@ class HobNotebook(gtk.Notebook):
|
||||
for child in self.pages:
|
||||
if child.lbl.get_label() == title:
|
||||
child.grab_focus()
|
||||
self.set_current_page(self.pages.index(child))
|
||||
return
|
||||
self.set_current_page(self.page_num(child))
|
||||
|
||||
class HobWarpCellRendererText(gtk.CellRendererText):
|
||||
def __init__(self, col_number):
|
||||
|
||||
@@ -45,7 +45,6 @@ class ImageConfigurationPage (HobPage):
|
||||
# or by manual. If by manual, all user's recipe selection and package selection are
|
||||
# cleared.
|
||||
self.machine_combo_changed_by_manual = True
|
||||
self.stopping = False
|
||||
self.create_visual_elements()
|
||||
|
||||
def create_visual_elements(self):
|
||||
@@ -115,10 +114,9 @@ class ImageConfigurationPage (HobPage):
|
||||
self.show_all()
|
||||
|
||||
def update_progress_bar(self, title, fraction, status=None):
|
||||
if self.stopping == False:
|
||||
self.progress_bar.update(fraction)
|
||||
self.progress_bar.set_text(title)
|
||||
self.progress_bar.set_rcstyle(status)
|
||||
self.progress_bar.update(fraction)
|
||||
self.progress_bar.set_title(title)
|
||||
self.progress_bar.set_rcstyle(status)
|
||||
|
||||
def show_info_populating(self):
|
||||
self._pack_components(pack_config_build_button = False)
|
||||
@@ -250,13 +248,9 @@ class ImageConfigurationPage (HobPage):
|
||||
return button_box
|
||||
|
||||
def stop_button_clicked_cb(self, button):
|
||||
self.stopping = True
|
||||
self.progress_bar.set_text("Stopping recipe parsing")
|
||||
self.progress_bar.set_rcstyle("stop")
|
||||
self.builder.cancel_parse_sync()
|
||||
|
||||
def machine_combo_changed_cb(self, machine_combo):
|
||||
self.stopping = False
|
||||
combo_item = machine_combo.get_active_text()
|
||||
if not combo_item or combo_item == self.__dummy_machine__:
|
||||
return
|
||||
@@ -438,7 +432,6 @@ class ImageConfigurationPage (HobPage):
|
||||
self.builder.just_bake()
|
||||
|
||||
def edit_image_button_clicked_cb(self, button):
|
||||
self.builder.configuration.initial_selected_image = self.builder.configuration.selected_image
|
||||
self.builder.show_recipes()
|
||||
|
||||
def template_button_clicked_cb(self, button):
|
||||
|
||||
@@ -27,9 +27,6 @@ from bb.ui.crumbs.hobwidget import hic, HobViewTable, HobAltButton, HobButton
|
||||
from bb.ui.crumbs.hobpages import HobPage
|
||||
import subprocess
|
||||
from bb.ui.crumbs.hig import CrumbsDialog
|
||||
from bb.ui.crumbs.hobthreads import OpeningLogThread
|
||||
from bb.ui.crumbs.hig import OpeningLogDialog
|
||||
|
||||
#
|
||||
# ImageDetailsPage
|
||||
#
|
||||
@@ -407,18 +404,7 @@ class ImageDetailsPage (HobPage):
|
||||
|
||||
def open_log_clicked_cb(self, button, log_file):
|
||||
if log_file:
|
||||
self.stop = False
|
||||
dialog = OpeningLogDialog(title = "Opening Log",
|
||||
parent = None,
|
||||
flags = gtk.DIALOG_MODAL
|
||||
| gtk.DIALOG_DESTROY_WITH_PARENT
|
||||
| gtk.DIALOG_NO_SEPARATOR)
|
||||
#create a thread to open log file
|
||||
background = OpeningLogThread(dialog, log_file, self)
|
||||
background.start()
|
||||
response = dialog.run()
|
||||
self.stop = True
|
||||
background.join()
|
||||
os.system("xdg-open /%s" % log_file)
|
||||
|
||||
def refresh_package_detail_box(self, image_size):
|
||||
self.package_detail.update_line_widgets("Total image size: ", image_size)
|
||||
|
||||
@@ -26,8 +26,6 @@ from bb.ui.crumbs.hobcolor import HobColors
|
||||
from bb.ui.crumbs.hobwidget import HobViewTable, HobNotebook, HobAltButton, HobButton
|
||||
from bb.ui.crumbs.hoblistmodel import PackageListModel
|
||||
from bb.ui.crumbs.hobpages import HobPage
|
||||
from bb.ui.crumbs.hobthreads import OpeningLogThread
|
||||
from bb.ui.crumbs.hig import OpeningLogDialog
|
||||
|
||||
#
|
||||
# PackageSelectionPage
|
||||
@@ -54,7 +52,7 @@ class PackageSelectionPage (HobPage):
|
||||
'col_max' : 300,
|
||||
'expand' : 'True'
|
||||
}, {
|
||||
'col_name' : 'Brought in by (+others)',
|
||||
'col_name' : 'Brought in by',
|
||||
'col_id' : PackageListModel.COL_BINB,
|
||||
'col_style': 'binb',
|
||||
'col_min' : 100,
|
||||
@@ -169,18 +167,7 @@ class PackageSelectionPage (HobPage):
|
||||
|
||||
def open_log_clicked_cb(self, button, log_file):
|
||||
if log_file:
|
||||
self.stop = False
|
||||
dialog = OpeningLogDialog(title = "Opening Log",
|
||||
parent = None,
|
||||
flags = gtk.DIALOG_MODAL
|
||||
| gtk.DIALOG_DESTROY_WITH_PARENT
|
||||
| gtk.DIALOG_NO_SEPARATOR)
|
||||
#create a thread to open log file
|
||||
background = OpeningLogThread(dialog, log_file, self)
|
||||
background.start()
|
||||
response = dialog.run()
|
||||
self.stop = True
|
||||
background.join()
|
||||
os.system("xdg-open /%s" % log_file)
|
||||
|
||||
def show_page(self, log_file):
|
||||
children = self.button_box.get_children() or []
|
||||
@@ -221,8 +208,8 @@ class PackageSelectionPage (HobPage):
|
||||
selected_packages_size_str = HobPage._size_to_string(selected_packages_size)
|
||||
|
||||
image_overhead_factor = self.builder.configuration.image_overhead_factor
|
||||
image_rootfs_size = self.builder.configuration.image_rootfs_size / 1024 # image_rootfs_size is KB
|
||||
image_extra_size = self.builder.configuration.image_extra_size / 1024 # image_extra_size is KB
|
||||
image_rootfs_size = self.builder.configuration.image_rootfs_size * 1024 # image_rootfs_size is KB
|
||||
image_extra_size = self.builder.configuration.image_extra_size * 1024 # image_extra_size is KB
|
||||
base_size = image_overhead_factor * selected_packages_size
|
||||
image_total_size = max(base_size, image_rootfs_size) + image_extra_size
|
||||
if "zypper" in self.builder.configuration.selected_packages:
|
||||
|
||||
@@ -43,11 +43,6 @@ class HobProgressBar (gtk.ProgressBar):
|
||||
text += " %.0f%%" % self.percentage
|
||||
self.set_text(text)
|
||||
|
||||
def set_stop_title(self, text=None):
|
||||
if not text:
|
||||
text = ""
|
||||
self.set_text(text)
|
||||
|
||||
def reset(self):
|
||||
self.set_fraction(0)
|
||||
self.set_text("")
|
||||
|
||||
@@ -52,7 +52,7 @@ class RecipeSelectionPage (HobPage):
|
||||
'col_max' : 300,
|
||||
'expand' : 'True'
|
||||
}, {
|
||||
'col_name' : 'Brought in by (+others)',
|
||||
'col_name' : 'Brought in by',
|
||||
'col_id' : RecipeListModel.COL_BINB,
|
||||
'col_style': 'binb',
|
||||
'col_min' : 100,
|
||||
@@ -193,9 +193,6 @@ class RecipeSelectionPage (HobPage):
|
||||
self.builder.build_packages()
|
||||
|
||||
def back_button_clicked_cb(self, button):
|
||||
self.builder.recipe_model.set_selected_image(self.builder.configuration.initial_selected_image)
|
||||
self.builder.image_configuration_page.update_image_combo(self.builder.recipe_model, self.builder.configuration.initial_selected_image)
|
||||
self.builder.image_configuration_page.update_image_desc()
|
||||
self.builder.show_configuration()
|
||||
|
||||
def refresh_selection(self):
|
||||
|
||||
@@ -46,7 +46,7 @@ class RunningBuildModel (gtk.TreeStore):
|
||||
color = model.get(it, self.COL_COLOR)[0]
|
||||
if not color:
|
||||
return False
|
||||
if color == HobColors.ERROR or color == HobColors.WARNING:
|
||||
if color == HobColors.ERROR:
|
||||
return True
|
||||
return False
|
||||
|
||||
@@ -76,7 +76,7 @@ class RunningBuild (gobject.GObject):
|
||||
'build-complete' : (gobject.SIGNAL_RUN_LAST,
|
||||
gobject.TYPE_NONE,
|
||||
()),
|
||||
'build-aborted' : (gobject.SIGNAL_RUN_LAST,
|
||||
'build-aborted' : (gobject.SIGNAL_RUN_LAST,
|
||||
gobject.TYPE_NONE,
|
||||
()),
|
||||
'task-started' : (gobject.SIGNAL_RUN_LAST,
|
||||
@@ -85,12 +85,6 @@ class RunningBuild (gobject.GObject):
|
||||
'log-error' : (gobject.SIGNAL_RUN_LAST,
|
||||
gobject.TYPE_NONE,
|
||||
()),
|
||||
'log-warning' : (gobject.SIGNAL_RUN_LAST,
|
||||
gobject.TYPE_NONE,
|
||||
()),
|
||||
'disk-full' : (gobject.SIGNAL_RUN_LAST,
|
||||
gobject.TYPE_NONE,
|
||||
()),
|
||||
'no-provider' : (gobject.SIGNAL_RUN_LAST,
|
||||
gobject.TYPE_NONE,
|
||||
(gobject.TYPE_PYOBJECT,)),
|
||||
@@ -154,7 +148,6 @@ class RunningBuild (gobject.GObject):
|
||||
elif event.levelno >= logging.WARNING:
|
||||
icon = "dialog-warning"
|
||||
color = HobColors.WARNING
|
||||
self.emit("log-warning")
|
||||
else:
|
||||
icon = None
|
||||
color = HobColors.OK
|
||||
@@ -293,7 +286,6 @@ class RunningBuild (gobject.GObject):
|
||||
# Emit the appropriate signal depending on the number of failures
|
||||
if self.buildaborted:
|
||||
self.emit ("build-aborted")
|
||||
self.buildaborted = False
|
||||
elif (failures >= 1):
|
||||
self.emit ("build-failed")
|
||||
else:
|
||||
@@ -308,7 +300,6 @@ class RunningBuild (gobject.GObject):
|
||||
|
||||
elif isinstance(event, bb.event.DiskFull):
|
||||
self.buildaborted = True
|
||||
self.emit("disk-full")
|
||||
|
||||
elif isinstance(event, bb.command.CommandFailed):
|
||||
self.emit("log", "error", "Command execution failed: %s" % (event.error))
|
||||
|
||||
@@ -198,23 +198,17 @@ class gtkthread(threading.Thread):
|
||||
|
||||
def main(server, eventHandler):
|
||||
try:
|
||||
cmdline, error = server.runCommand(["getCmdLineAction"])
|
||||
if error:
|
||||
print("Error getting bitbake commandline: %s" % error)
|
||||
return 1
|
||||
elif not cmdline:
|
||||
print("Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.")
|
||||
return 1
|
||||
elif not cmdline or cmdline[0] != "generateDotGraph":
|
||||
cmdline = server.runCommand(["getCmdLineAction"])
|
||||
if cmdline and not cmdline['action']:
|
||||
print(cmdline['msg'])
|
||||
return
|
||||
elif not cmdline or (cmdline['action'] and cmdline['action'][0] != "generateDotGraph"):
|
||||
print("This UI is only compatible with the -g option")
|
||||
return 1
|
||||
ret, error = server.runCommand(["generateDepTreeEvent", cmdline[1], cmdline[2]])
|
||||
if error:
|
||||
print("Error running command '%s': %s" % (cmdline, error))
|
||||
return 1
|
||||
elif ret != True:
|
||||
print("Error running command '%s': returned %s" % (cmdline, ret))
|
||||
return 1
|
||||
return
|
||||
ret = server.runCommand(["generateDepTreeEvent", cmdline['action'][1], cmdline['action'][2]])
|
||||
if ret != True:
|
||||
print("Couldn't run command! %s" % ret)
|
||||
return
|
||||
except xmlrpclib.Fault as x:
|
||||
print("XMLRPC Fault getting commandline:\n %s" % x)
|
||||
return
|
||||
@@ -240,9 +234,7 @@ def main(server, eventHandler):
|
||||
try:
|
||||
event = eventHandler.waitEvent(0.25)
|
||||
if gtkthread.quit.isSet():
|
||||
_, error = server.runCommand(["stateStop"])
|
||||
if error:
|
||||
print('Unable to cleanly stop: %s' % error)
|
||||
server.runCommand(["stateStop"])
|
||||
break
|
||||
|
||||
if event is None:
|
||||
@@ -318,13 +310,9 @@ def main(server, eventHandler):
|
||||
break
|
||||
if shutdown == 1:
|
||||
print("\nSecond Keyboard Interrupt, stopping...\n")
|
||||
_, error = server.runCommand(["stateStop"])
|
||||
if error:
|
||||
print('Unable to cleanly stop: %s' % error)
|
||||
server.runCommand(["stateStop"])
|
||||
if shutdown == 0:
|
||||
print("\nKeyboard Interrupt, closing down...\n")
|
||||
_, error = server.runCommand(["stateShutdown"])
|
||||
if error:
|
||||
print('Unable to cleanly shutdown: %s' % error)
|
||||
server.runCommand(["stateShutdown"])
|
||||
shutdown = shutdown + 1
|
||||
pass
|
||||
|
||||
@@ -80,19 +80,16 @@ def main (server, eventHandler):
|
||||
running_build.connect ("build-failed", running_build_failed_cb)
|
||||
|
||||
try:
|
||||
cmdline, error = server.runCommand(["getCmdLineAction"])
|
||||
if err:
|
||||
print("Error getting bitbake commandline: %s" % error)
|
||||
return 1
|
||||
elif not cmdline:
|
||||
cmdline = server.runCommand(["getCmdLineAction"])
|
||||
if not cmdline:
|
||||
print("Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.")
|
||||
return 1
|
||||
ret, error = server.runCommand(cmdline)
|
||||
if error:
|
||||
print("Error running command '%s': %s" % (cmdline, error))
|
||||
elif not cmdline['action']:
|
||||
print(cmdline['msg'])
|
||||
return 1
|
||||
elif ret != True:
|
||||
print("Error running command '%s': returned %s" % (cmdline, ret))
|
||||
ret = server.runCommand(cmdline['action'])
|
||||
if ret != True:
|
||||
print("Couldn't get default commandline! %s" % ret)
|
||||
return 1
|
||||
except xmlrpclib.Fault as x:
|
||||
print("XMLRPC Fault getting commandline:\n %s" % x)
|
||||
|
||||
@@ -157,8 +157,6 @@ class TerminalFilter(object):
|
||||
new[3] = new[3] & ~termios.ECHO
|
||||
termios.tcsetattr(fd, termios.TCSADRAIN, new)
|
||||
curses.setupterm()
|
||||
if curses.tigetnum("colors") > 2:
|
||||
format.enable_color()
|
||||
self.ed = curses.tigetstr("ed")
|
||||
if self.ed:
|
||||
self.cuu = curses.tigetstr("cuu")
|
||||
@@ -189,7 +187,7 @@ class TerminalFilter(object):
|
||||
return
|
||||
if self.footer_present:
|
||||
self.clearFooter()
|
||||
if (not self.helper.tasknumber_total or self.helper.tasknumber_current == self.helper.tasknumber_total) and not len(activetasks):
|
||||
if not self.helper.tasknumber_total or self.helper.tasknumber_current == self.helper.tasknumber_total:
|
||||
return
|
||||
tasks = []
|
||||
for t in runningpids:
|
||||
@@ -219,19 +217,9 @@ class TerminalFilter(object):
|
||||
def main(server, eventHandler, tf = TerminalFilter):
|
||||
|
||||
# Get values of variables which control our output
|
||||
includelogs, error = server.runCommand(["getVariable", "BBINCLUDELOGS"])
|
||||
if error:
|
||||
logger.error("Unable to get the value of BBINCLUDELOGS variable: %s" % error)
|
||||
return 1
|
||||
loglines, error = server.runCommand(["getVariable", "BBINCLUDELOGS_LINES"])
|
||||
if error:
|
||||
logger.error("Unable to get the value of BBINCLUDELOGS_LINES variable: %s" % error)
|
||||
return 1
|
||||
consolelogfile, error = server.runCommand(["getVariable", "BB_CONSOLELOG"])
|
||||
if error:
|
||||
logger.error("Unable to get the value of BB_CONSOLELOG variable: %s" % error)
|
||||
return 1
|
||||
|
||||
includelogs = server.runCommand(["getVariable", "BBINCLUDELOGS"])
|
||||
loglines = server.runCommand(["getVariable", "BBINCLUDELOGS_LINES"])
|
||||
consolelogfile = server.runCommand(["getVariable", "BB_CONSOLELOG"])
|
||||
if sys.stdin.isatty() and sys.stdout.isatty():
|
||||
log_exec_tty = True
|
||||
else:
|
||||
@@ -240,36 +228,31 @@ def main(server, eventHandler, tf = TerminalFilter):
|
||||
helper = uihelper.BBUIHelper()
|
||||
|
||||
console = logging.StreamHandler(sys.stdout)
|
||||
format_str = "%(levelname)s: %(message)s"
|
||||
format = bb.msg.BBLogFormatter(format_str)
|
||||
format = bb.msg.BBLogFormatter("%(levelname)s: %(message)s")
|
||||
bb.msg.addDefaultlogFilter(console)
|
||||
console.setFormatter(format)
|
||||
logger.addHandler(console)
|
||||
if consolelogfile:
|
||||
bb.utils.mkdirhier(os.path.dirname(consolelogfile))
|
||||
conlogformat = bb.msg.BBLogFormatter(format_str)
|
||||
consolelog = logging.FileHandler(consolelogfile)
|
||||
bb.msg.addDefaultlogFilter(consolelog)
|
||||
consolelog.setFormatter(conlogformat)
|
||||
consolelog.setFormatter(format)
|
||||
logger.addHandler(consolelog)
|
||||
|
||||
try:
|
||||
cmdline, error = server.runCommand(["getCmdLineAction"])
|
||||
if error:
|
||||
logger.error("Unable to get bitbake commandline arguments: %s" % error)
|
||||
return 1
|
||||
elif not cmdline:
|
||||
cmdline = server.runCommand(["getCmdLineAction"])
|
||||
if not cmdline:
|
||||
print("Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.")
|
||||
return 1
|
||||
ret, error = server.runCommand(cmdline)
|
||||
if error:
|
||||
logger.error("Command '%s' failed: %s" % (cmdline, error))
|
||||
elif not cmdline['action']:
|
||||
print(cmdline['msg'])
|
||||
return 1
|
||||
elif ret != True:
|
||||
logger.error("Command '%s' failed: returned %s" % (cmdline, ret))
|
||||
ret = server.runCommand(cmdline['action'])
|
||||
if ret != True:
|
||||
print("Couldn't get default commandline! %s" % ret)
|
||||
return 1
|
||||
except xmlrpclib.Fault as x:
|
||||
logger.error("XMLRPC Fault getting commandline:\n %s" % x)
|
||||
print("XMLRPC Fault getting commandline:\n %s" % x)
|
||||
return 1
|
||||
|
||||
parseprogress = None
|
||||
@@ -467,15 +450,11 @@ def main(server, eventHandler, tf = TerminalFilter):
|
||||
termfilter.clearFooter()
|
||||
if main.shutdown == 1:
|
||||
print("\nSecond Keyboard Interrupt, stopping...\n")
|
||||
_, error = server.runCommand(["stateStop"])
|
||||
if error:
|
||||
logger.error("Unable to cleanly stop: %s" % error)
|
||||
server.runCommand(["stateStop"])
|
||||
if main.shutdown == 0:
|
||||
print("\nKeyboard Interrupt, closing down...\n")
|
||||
interrupted = True
|
||||
_, error = server.runCommand(["stateShutdown"])
|
||||
if error:
|
||||
logger.error("Unable to cleanly shutdown: %s" % error)
|
||||
print("\nKeyboard Interrupt, closing down...\n")
|
||||
server.runCommand(["stateShutdown"])
|
||||
main.shutdown = main.shutdown + 1
|
||||
pass
|
||||
|
||||
|
||||
@@ -236,18 +236,15 @@ class NCursesUI:
|
||||
shutdown = 0
|
||||
|
||||
try:
|
||||
cmdline, error = server.runCommand(["getCmdLineAction"])
|
||||
cmdline = server.runCommand(["getCmdLineAction"])
|
||||
if not cmdline:
|
||||
print("Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.")
|
||||
return
|
||||
elif error:
|
||||
print("Error getting bitbake commandline: %s" % error)
|
||||
elif not cmdline['action']:
|
||||
print(cmdline['msg'])
|
||||
return
|
||||
ret, error = server.runCommand(cmdline)
|
||||
if error:
|
||||
print("Error running command '%s': %s" % (cmdline, error))
|
||||
return
|
||||
elif ret != True:
|
||||
ret = server.runCommand(cmdline['action'])
|
||||
if ret != True:
|
||||
print("Couldn't get default commandlind! %s" % ret)
|
||||
return
|
||||
except xmlrpclib.Fault as x:
|
||||
@@ -348,14 +345,10 @@ class NCursesUI:
|
||||
exitflag = True
|
||||
if shutdown == 1:
|
||||
mw.appendText("Second Keyboard Interrupt, stopping...\n")
|
||||
_, error = server.runCommand(["stateStop"])
|
||||
if error:
|
||||
print("Unable to cleanly stop: %s" % error)
|
||||
server.runCommand(["stateStop"])
|
||||
if shutdown == 0:
|
||||
mw.appendText("Keyboard Interrupt, closing down...\n")
|
||||
_, error = server.runCommand(["stateShutdown"])
|
||||
if error:
|
||||
print("Unable to cleanly shutdown: %s" % error)
|
||||
server.runCommand(["stateShutdown"])
|
||||
shutdown = shutdown + 1
|
||||
pass
|
||||
|
||||
|
||||
@@ -51,7 +51,6 @@ class BBUIHelper:
|
||||
if isinstance(event, bb.runqueue.runQueueTaskStarted) or isinstance(event, bb.runqueue.sceneQueueTaskStarted):
|
||||
self.tasknumber_current = event.stats.completed + event.stats.active + event.stats.failed + 1
|
||||
self.tasknumber_total = event.stats.total
|
||||
self.needUpdate = True
|
||||
|
||||
def getTasks(self):
|
||||
self.needUpdate = False
|
||||
|
||||
@@ -13,7 +13,10 @@ PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
|
||||
PREFERRED_VERSION_linux-yocto ?= "3.0%"
|
||||
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
|
||||
XSERVER ?= "xserver-xorg \
|
||||
xserver-xorg-extension-dri2 \
|
||||
xserver-xorg-extension-glx \
|
||||
xserver-xorg-extension-extmod \
|
||||
xserver-xorg-extension-dbe \
|
||||
xf86-input-mouse \
|
||||
xf86-input-keyboard \
|
||||
xf86-input-evdev \
|
||||
|
||||
@@ -6,7 +6,7 @@ PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
|
||||
XSERVER ?= "xserver-xorg \
|
||||
xf86-input-evdev \
|
||||
xf86-input-mouse \
|
||||
xf86-video-omap \
|
||||
xf86-video-omapfb \
|
||||
xf86-input-keyboard"
|
||||
|
||||
# Ship all kernel modules by default
|
||||
|
||||
@@ -19,6 +19,7 @@ PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
|
||||
XSERVER ?= "xserver-xorg \
|
||||
xserver-xorg-extension-extmod \
|
||||
xf86-input-evdev \
|
||||
xf86-video-fbdev"
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ PREFERRED_VERSION_linux-yocto ?= "3.4%"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
|
||||
XSERVER ?= "xserver-xorg \
|
||||
xserver-xorg-extension-extmod \
|
||||
xf86-input-evdev \
|
||||
xf86-video-fbdev"
|
||||
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
QT_GLFLAGS_atom-pc = "-opengl"
|
||||
QT_GLFLAGS_mpc8315e-rdb = "-opengl"
|
||||
@@ -10,7 +10,3 @@ BBLAYERS ?= " \
|
||||
##COREBASE##/meta-yocto \
|
||||
##COREBASE##/meta-yocto-bsp \
|
||||
"
|
||||
BBLAYERS_NON_REMOVABLE ?= " \
|
||||
##COREBASE##/meta \
|
||||
##COREBASE##/meta-yocto \
|
||||
"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -24,15 +24,10 @@
|
||||
#
|
||||
RECIPE_UPSTREAM_VERSION_pn-acpid = "1.0.10"
|
||||
RECIPE_UPSTREAM_DATE_pn-acpid = "Apr 22, 2009"
|
||||
CHECK_DATE_pn-acpid = "Nov 09, 2012"
|
||||
CHECK_DATE_pn-acpid = "Aug 27, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-adt-installer = "1.1"
|
||||
CHECK_DATE_pn-adt-installer = "Sep 11, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-alsa-utils = "1.0.26"
|
||||
RECIPE_UPSTREAM_DATE_pn-alsa-utils = "Jan 25, 2012"
|
||||
CHECK_DATE_pn-alsa-utils = "Nov 08, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-alsa-lib = "1.0.26"
|
||||
RECIPE_UPSTREAM_DATE_pn-alsa-lib = "Jan 25, 2012"
|
||||
CHECK_DATE_pn-alsa-lib = "Nov 08, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-alsa-utils="Jan 25, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-apmd = "3.2.2-14"
|
||||
RECIPE_UPSTREAM_DATE_pn-apmd = "Jul 01, 2009"
|
||||
CHECK_DATE_pn-apmd = "Aug 27, 2012"
|
||||
@@ -67,7 +62,7 @@ RECIPE_UPSTREAM_DATE_pn-bdwc = "Aug 15, 2012"
|
||||
CHECK_DATE_pn-bdwgc = "Aug 27, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-beecrypt = "4.2.1"
|
||||
RECIPE_UPSTREAM_DATE_pn-beecrypt = "Jul 12, 2009"
|
||||
CHECK_DATE_pn-beecrypt = "Nov 09, 2012"
|
||||
CHECK_DATE_pn-beecrypt = "Aug 27, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-bigreqsproto= "1.1.1"
|
||||
RECIPE_UPSTREAM_DATE_pn-bigreqsproto= "Feb 25, 2011"
|
||||
CHECK_DATE_pn-bigreqsproto= "Aug 27, 2012"
|
||||
@@ -91,7 +86,7 @@ RECIPE_UPSTREAM_VERSION_pn-bluez4="4.101"
|
||||
RECIPE_UPSTREAM_DATE_pn-bluez4="Jun 22, 2012"
|
||||
CHECK_DATE_pn-bluez4 = "Aug 27, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-boost = "1.51.0"
|
||||
CHECK_DATE_pn-boost = "Nov 02, 2012"
|
||||
CHECK_DATE_pn-boost = "Aug 27, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-boost = "Aug 20, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-btrfs-tools="git"
|
||||
RECIPE_UPSTREAM_VERSION_pn-busybox = "1.20.2"
|
||||
@@ -137,12 +132,12 @@ RECIPE_UPSTREAM_VERSION_pn-compositeproto = "0.4.2"
|
||||
RECIPE_UPSTREAM_DATE_pn-compositeproto = "Oct 29, 2010"
|
||||
CHECK_DATE_pn-compositeproto = "Aug 28, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-connman-gnome="Aug 28, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-connman = "1.9"
|
||||
RECIPE_UPSTREAM_DATE_pn-connman="Oct 26, 2012"
|
||||
CHECK_DATE_pn-connman = "Nov 27, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-connman = "1.6"
|
||||
RECIPE_UPSTREAM_DATE_pn-connman="Aug 22, 2012"
|
||||
CHECK_DATE_pn-connman = "Aug 28, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-console-tools = "0.3.2"
|
||||
RECIPE_UPSTREAM_DATE_pn-console-tools = "Feb 18, 2002"
|
||||
CHECK_DATE_pn-console-tools = "Nov 02, 2012"
|
||||
CHECK_DATE_pn-console-tools = "Aug 28, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-consolekit = "0.4.5"
|
||||
RECIPE_UPSTREAM_DATE_pn-consolekit = "May 2, 2011"
|
||||
CHECK_DATE_pn-consolekit = "Aug 28, 2012"
|
||||
@@ -154,7 +149,7 @@ RECIPE_UPSTREAM_VERSION_pn-cpio = "2.11"
|
||||
RECIPE_UPSTREAM_DATE_pn-cpio = "Mar 01, 2010"
|
||||
CHECK_DATE_pn-cpio = "Aug 28, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-cracklib="2.8.19"
|
||||
CHECK_DATE_pn-cracklib = "Nov 02, 2012"
|
||||
CHECK_DATE_pn-cracklib = "Aug 28, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-cracklib = "May 18, 2010"
|
||||
RECIPE_UPSTREAM_VERSION_pn-createrepo = "0.9.9"
|
||||
RECIPE_NO_UPDATE_REASON_pn-createrepo = "Versions after 0.9.* use YUM, so we hold at 0.4.11"
|
||||
@@ -170,7 +165,7 @@ RECIPE_UPSTREAM_DATE_pn-curl = "Jul 27, 2012"
|
||||
CHECK_DATE_pn-curl = "Aug 28, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-cwautomacros = "20110201"
|
||||
RECIPE_UPSTREAM_DATE_pn-cwautomacros = "Feb 01, 2011"
|
||||
CHECK_DATE_pn-cwautomacros = "Nov 08, 2012"
|
||||
CHECK_DATE_pn-cwautomacros = "Aug 28, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-damageproto = "1.2.1"
|
||||
RECIPE_UPSTREAM_DATE_pn-damageproto = "Oct 29, 2010"
|
||||
CHECK_DATE_pn-damageproto = "Aug 28, 2012"
|
||||
@@ -188,14 +183,14 @@ RECIPE_UPSTREAM_VERSION_pn-diffstat="1.55"
|
||||
RECIPE_UPSTREAM_DATE_pn-diffstat = "Jan 03, 2012"
|
||||
CHECK_DATE_pn-diffstat = "Aug 28, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-diffutils = "3.2"
|
||||
RECIPE_UPSTREAM_DATE_pn-diffutils = "Sep 3, 2011"
|
||||
RECIPE_UPSTREAM_DATE_pn-diffutils = "Sept 3, 2011"
|
||||
CHECK_DATE_pn-diffutils = "Aug 28, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-direcfb = "Jun 29, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-directfb = "1.6.1"
|
||||
CHECK_DATE_pn-directfb = "Aug 28, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-distcc="3.1.1"
|
||||
RECIPE_UPSTREAM_DATE_pn-distcc="Dec 10, 2008"
|
||||
CHECK_DATE_pn-distcc="Nov 8, 2012"
|
||||
CHECK_DATE_pn-distcc="Aug 28, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-dmxproto = "2.3.1"
|
||||
RECIPE_UPSTREAM_DATE_pn-dmxproto = "Jan 5, 2011"
|
||||
CHECK_DATE_pn-dmxproto = "Aug 28, 2012"
|
||||
@@ -267,11 +262,11 @@ RECIPE_UPSTREAM_VERSION_pn-fixesproto = "5.0"
|
||||
RECIPE_UPSTREAM_DATE_pn-fixesproto = "Mar 8, 2011"
|
||||
CHECK_DATE_pn-fixesproto = "Aug 28, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-flac="1.2.1"
|
||||
CHECK_DATE_pn-flac = "Nov 08, 2012"
|
||||
CHECK_DATE_pn-flac = "Aug 28, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-flac="Sep 16, 2007"
|
||||
RECIPE_UPSTREAM_VERSION_pn-flex = "2.5.37"
|
||||
RECIPE_UPSTREAM_DATE_pn-flex = "Aug 08, 2012"
|
||||
CHECK_DATE_pn-flex = "Nov 8, 2012"
|
||||
CHECK_DATE_pn-flex = "Aug 28, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-font-alias = "Oct 01, 2009"
|
||||
RECIPE_UPSTREAM_VERSION_pn-fontcacheproto = "0.1.3"
|
||||
RECIPE_UPSTREAM_DATE_pn-fontcacheproto = "Oct 01, 2009"
|
||||
@@ -325,19 +320,19 @@ CHECK_DATE_pn-gdbm = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-gdk-pixbuf-csource-native = "May 01, 2010"
|
||||
RECIPE_UPSTREAM_VERSION_pn-genext2fs = "1.4.1"
|
||||
RECIPE_UPSTREAM_DATE_pn-genext2fs = "Apr 01, 2007"
|
||||
CHECK_DATE_pn-genext2fs = "Nov 8, 2012"
|
||||
CHECK_DATE_pn-genext2fs = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-gettext = "0.18.1.1"
|
||||
RECIPE_UPSTREAM_DATE_pn-gettext = "Jun 06, 2010"
|
||||
CHECK_DATE_pn-gettext = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-ghostscript = "9.06"
|
||||
RECIPE_UPSTREAM_DATE_pn-ghostscript = "Aug 8, 2012"
|
||||
CHECK_DATE_pn-ghostscript = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_VERION_pn-git = "1.8.0"
|
||||
RECIPE_UPSTREAM_DATE_pn-git = "unknown"
|
||||
CHECK_DATE_pn-git = "Nov 8, 2012"
|
||||
RECIPE_UPSTREAM_VERION_pn-git = "1.7.12"
|
||||
RECIPE_UPSTREAM_DATE_pn-git = "Aug 20, 2012"
|
||||
CHECK_DATE_pn-git = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-glew = "1.9.0"
|
||||
RECIPE_UPSTREAM_DATE_pn-glew = "Jun 08, 2012"
|
||||
CHECK_DATE_pn-glew = "Nov 02, 2012"
|
||||
CHECK_DATE_pn-glew = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-glib-2.0 = "Nov 11, 2011"
|
||||
RECIPE_UPSTREAM_VERSION_pn-glibc = "2.11.2"
|
||||
RECIPE_UPSTREAM_DATE_pn-glibc = "May 01, 2010"
|
||||
@@ -372,9 +367,9 @@ CHECK_DATE_pn-groff = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-grub = "0.97"
|
||||
RECIPE_UPSTREAM_DATE_pn-grub = "Dec 01, 2005"
|
||||
RECIPE_NO_UPDATE_REASON_pn-grub="grub2 is a different thing"
|
||||
RECIPE_UPSTREAM_VERSION_pn-gssdp = "0.12.2"
|
||||
RECIPE_UPSTREAM_DATE_pn-gssdp="Aug 19, 2012"
|
||||
CHECK_DATE_pn-gssdp = "Nov 08, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-gssdp = "0.10.0"
|
||||
RECIPE_UPSTREAM_DATE_pn-gssdp="Apr 07, 2011"
|
||||
CHECK_DATE_pn-gssdp = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-gst-meta-base="n/a"
|
||||
RECIPE_NO_UPDATE_REASON_pn-gst-plugins-base = "not compatible with gst-fluendo 0.10.x"
|
||||
RECIPE_UPSTREAM_VERSION_pn-gst-plugins-base = "0.11.90"
|
||||
@@ -405,13 +400,10 @@ RECIPE_UPSTREAM_DATE_pn-guile = "Jul 07, 2012"
|
||||
CHECK_DATE_pn-guile = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-gupnp-av = "0.10.3"
|
||||
RECIPE_UPSTREAM_DATE_pn-gupnp-av= "Aug 19, 2012"
|
||||
CHECK_DATE_pn-gupnp-av = "Nov 08, 2012"
|
||||
CHECK_DATE_pn-gupnp-av = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-gupnp = "0.18.4"
|
||||
RECIPE_UPSTREAM_DATE_pn-gupnp= "Aug 19, 2012"
|
||||
CHECK_DATE_pn-gupnp = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-gupnp-tools = "0.8.4"
|
||||
RECIPE_UPSTREAM_DATE_pn-gupnp-tools = "Dec 12, 2011"
|
||||
CHECK_DATE_pn-gupnp-tools = "Nov 08, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-gypsy="0.9"
|
||||
RECIPE_UPSTREAM_DATE_pn-gypsy="Aug 28, 2012"
|
||||
CHECK_DATE_pn-gypsy = "Aug 29, 2012"
|
||||
@@ -426,7 +418,7 @@ RECIPE_UPSTREAM_DATE_pn-hal = "Nov 01, 2009"
|
||||
CHECK_DATE_pn-hal = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-hdparm = "9.39"
|
||||
RECIPE_UPSTREAM_DATE_pn-hdparm = "Feb 03, 2012"
|
||||
CHECK_DATE_pn-hdparm = "Nov 09, 2012"
|
||||
CHECK_DATE_pn-hdparm = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-hicolor-icon-theme = "0.12"
|
||||
RECIPE_UPSTREAM_DATE_pn-hicolor-icon-theme = "Jan 13, 2010"
|
||||
CHECK_DATE_pn-hicolor-icon-theme = "Aug 29, 2012"
|
||||
@@ -451,7 +443,7 @@ CHECK_DATE_pn-insserv = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-insserv = "unknown"
|
||||
RECIPE_UPSTREAM_VERSION_pn-intltool="0.50.2"
|
||||
RECIPE_UPSTREAM_DATE_pn-intltool = "Feb 26, 2012"
|
||||
CHECK_DATE_pn-intltool = "Nov 8, 2012"
|
||||
CHECK_DATE_pn-intltool = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-iproute2 = "3.5.1"
|
||||
RECIPE_UPSTREAM_DATE_pn-iproute2 = "Aug 13, 2012"
|
||||
CHECK_DATE_pn-iproute2 = "Aug 29, 2012"
|
||||
@@ -463,7 +455,7 @@ RECIPE_UPSTREAM_DATE_pn-iputils = "Oct 06, 2010"
|
||||
CHECK_DATE_pn-iputils = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-irda-utils = "0.9.18"
|
||||
RECIPE_UPSTREAM_DATE_pn-irda-utils="Jul 10, 2006"
|
||||
CHECK_DATE_pn-irda-utils = "Nov 08, 2012"
|
||||
CHECK_DATE_pn-irda-utils = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-iso-codes = "3.38"
|
||||
RECIPE_UPSTREAM_DATE_pn-iso-codes = "Aug 08, 2012"
|
||||
CHECK_DATE_pn-iso-codes = "Aug 29, 2012"
|
||||
@@ -479,9 +471,9 @@ CHECK_DATE_pn-json-glib = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-kbproto = "1.0.6"
|
||||
RECIPE_UPSTREAM_DATE_pn-kbproto = "Mar 23, 2012"
|
||||
CHECK_DATE_pn-kbproto = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-kconfig-frontends = "3.6.0"
|
||||
RECIPE_UPSTREAM_DATE_pn-kconfig-frontends = "Oct 06, 2012"
|
||||
CHECK_DATE_pn-kconfig-frontends = "Nov 02, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-kconfig-frontends = "3.5.0"
|
||||
RECIPE_UPSTREAM_DATE_pn-kconfig-frontends = "Jul 22, 2012"
|
||||
CHECK_DATE_pn-kconfig-frontends = "Sep 11, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-kern-tools-native = "check"
|
||||
RECIPE_UPSTREAM_VERSION_pn-kernelshark = "0.2"
|
||||
RECIPE_NO_UPDATE_REASON_pn-kernelshark = "0.2 is the latest version."
|
||||
@@ -500,16 +492,16 @@ RECIPE_UPSTREAM_VERSION_pn-lame = "3.99.5"
|
||||
RECIPE_UPSTREAM_DATE_pn-lame = "Feb 28, 2012"
|
||||
CHECK_DATE_pn-lame = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-latencytop = "0.5"
|
||||
CHECK_DATE_pn-latencytop = "Nov 8, 2012"
|
||||
CHECK_DATE_pn-latencytop = "Aug 29, 2011"
|
||||
RECIPE_UPSTREAM_DATE_pn-latencytop = "Apr 28, 2009"
|
||||
RECIPE_UPSTREAM_VERSION_pn-leafpad = "0.8.18.1"
|
||||
RECIPE_UPSTREAM_DATE_pn-leafpad = "Dec 01, 2010"
|
||||
RECIPE_UPSTREAM_VERSION_pn-less = "451"
|
||||
RECIPE_UPSTREAM_DATE_pn-less = "Sep 04, 2012"
|
||||
CHECK_DATE_pn-less = "Nov 02, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-less = "444"
|
||||
CHECK_DATE_pn-less = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-less = "Jun 9, 2011"
|
||||
RECIPE_UPSTREAM_VERSION_pn-liba52="0.7.4"
|
||||
CHECK_DATE_pn-liba52 = "Aug 29, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-liba52="Jul 27, 2002"
|
||||
CHECK_DATE_pn-liba52 = "Nov 08, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libacpi = "0.2"
|
||||
RECIPE_UPSTREAM_DATE_pn-libacpi = "unknown"
|
||||
CHECK_DATE_pn-libacpi = "Aug 29, 2012"
|
||||
@@ -534,10 +526,10 @@ CHECK_DATE_pn-libcap = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-libcap = "Jan 01, 2010"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libcgroup = "0.38-1"
|
||||
RECIPE_UPSTREAM_DATE_pn-libcgroup = "Jun 06, 2012"
|
||||
CHECK_DATE_pn-libcgroup = "Nov 2, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libcheck = "0.9.9"
|
||||
RECIPE_UPSTREAM_DATE_pn-libcheck = "Oct 22, 2009"
|
||||
CHECK_DATE_pn-libcheck = "Nov 02, 2012"
|
||||
CHECK_DATE_pn-libcgroup = "Sep 11, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libcheck = "0.9.8"
|
||||
CHECK_DATE_pn-libcheck = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-libcheck = "Sep 23, 2009"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libconvert-asn1-perl="0.22"
|
||||
RECIPE_UPSTREAM_DATE_pn-libconvert-asn1-perl = "Apr 16, 2008"
|
||||
CHECK_DATE_pn-libconvert-asn1-perl = "Aug 30, 2012"
|
||||
@@ -566,7 +558,7 @@ CHECK_DATE_pn-libevent = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-libevent = "Aug 23, 2011"
|
||||
RECIPE_UPSTREAM_DATE_pn-libexif = "Jul 07, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libexif = "0.6.21"
|
||||
CHECK_DATE_pn-libexif = "Nov 02, 2012"
|
||||
CHECK_DATE_pn-libexif = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libfakekey = "0.0+svnr2031"
|
||||
RECIPE_UPSTREAM_DATE_pn-libfakekey = "Jul 01, 2006"
|
||||
CHECK_DATE_pn-libfakekey = "Aug 30, 2012"
|
||||
@@ -623,7 +615,7 @@ RECIPE_UPSTREAM_DATE_pn-libgtkstylus = "Jun 1, 2012"
|
||||
CHECK_DATE_pn-libgtkstylus = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libical = "0.48"
|
||||
RECIPE_UPSTREAM_DATE_pn-libical ="Dec 13, 2011"
|
||||
CHECK_DATE_pn-libical = "Nov 08, 2012"
|
||||
CHECK_DATE_pn-libical = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libice = "1.0.8"
|
||||
RECIPE_UPSTREAM_DATE_pn-libice = "Mar 02, 2012"
|
||||
CHECK_DATE_pn-libice = "Aug 30, 2012"
|
||||
@@ -632,7 +624,7 @@ RECIPE_UPSTREAM_DATE_pn-libiconv = "Aug 07, 2011"
|
||||
CHECK_DATE_pn-libiconv = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libid3tag="0.15.1b"
|
||||
RECIPE_UPSTREAM_DATE_pn-libid3tag="Feb 18, 2004"
|
||||
CHECK_DATE_pn-libid3tag = "Nov 08, 2012"
|
||||
CHECK_DATE_pn-libid3tag = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libidn = "1.25"
|
||||
RECIPE_UPSTREAM_DATE_pn-libidn = "May 23, 2012"
|
||||
CHECK_DATE_pn-libidn = "Aug 30, 2012"
|
||||
@@ -642,15 +634,15 @@ CHECK_DATE_pn-libjson = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-liblbxutil = "1.1.0"
|
||||
RECIPE_UPSTREAM_DATE_pn-liblbxutil = "Dec 4, 2009"
|
||||
CHECK_DATE_pn-liblbuxutil = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libmad = "0.15.1b"
|
||||
RECIPE_UPSTREAM_DATE_pn-libmad = "Feb 18, 2004"
|
||||
CHECK_DATE_pn-libmad = "Nov 02, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libmad = "0.15.2b"
|
||||
CHECK_DATE_pn-libmad = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-libmad = "Apr 04, 2004"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libmatchbox = "1.9"
|
||||
RECIPE_UPSTREAM_DATE_pn-libmatchbox = "Aug 01, 2006"
|
||||
CHECK_DATE_pn-libmatchbox = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libmpc="1.0.1"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libmpc="0.9"
|
||||
RECIPE_UPSTREAM_DATE_pn-libmpc = "unknown"
|
||||
CHECK_DATE_pn-libmpc = "Nov 8, 2012"
|
||||
CHECK_DATE_pn-libmpc = "Jan 25, 2011"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libmusicbrainz="5.0.1"
|
||||
RECIPE_UPSTREAM_DATE_pn-libmusicbrainz="unknown"
|
||||
CHECK_DATE_pn-libmusicbrainz = "Aug 30, 2012"
|
||||
@@ -677,7 +669,7 @@ RECIPE_UPSTREAM_DATE_pn-liboil = "Feb 01, 2010"
|
||||
CHECK_DATE_pn-liboil = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libomxil = "0.9.3"
|
||||
RECIPE_UPSTREAM_DATE_pn-libomxil = "May 20, 2011"
|
||||
CHECK_DATE_pn-libomxil = "Nov 08, 2012"
|
||||
CHECK_DATE_pn-libomxil = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libopensync-plugin-evolution2 = "0.39"
|
||||
RECIPE_UPSTREAM_DATE_pn-libopensyc-plugin-evolution2 = "Aug 26, 2011"
|
||||
CHECK_DATE_pn-libopensync-plugin-evolution2 = "Aug 30, 2012"
|
||||
@@ -693,20 +685,19 @@ CHECK_DATE_pn-libpam = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-libpam = "Oct 25, 2011"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libpcap="4.3.0"
|
||||
RECIPE_UPSTREAM_DATE_pn-libpcap="Jun 12, 2012"
|
||||
CHECK_DATE_pn-libpcap = "Nov 08, 2012"
|
||||
CHECK_DATE_pn-libpcap = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libpciaccess = "0.13.1"
|
||||
RECIPE_UPSTREAM_DATE_pn-libpciaccess = "Apr 09, 2012"
|
||||
CHECK_DATE_pn-libpciaccess = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libpcre = "8.31"
|
||||
RECIPE_UPSTREAM_DATE_pn-libpcre = "Jul 23, 2012"
|
||||
CHECK_DATE_pn-libpcre = "Nov 8, 2012"
|
||||
CHECK_DATE_pn-libpcre = "Aug 30, 2012"
|
||||
RECIPE_NO_UPDATE_REASON_pn-libpng = "1.4.3 and later changes the API and breaks libmatchbox. Sticking with the 1.2.x series instead"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libpng = "1.5.11"
|
||||
RECIPE_UPSTREAM_DATE_pn-libpng = "Jun 14, 2012"
|
||||
CHECK_DATE_pn-libpng = "Jul 05, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libproxy = "0.4.10"
|
||||
RECIPE_UPSTREAM_DATE_pn-libproxy = "Oct 15, 2012"
|
||||
CHECK_DATE_pn-libproxy = "Nov 08, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libproxy="0.4.7"
|
||||
CHECK_DATE_pn-libproxy = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-libproxy="Jun 01, 2011"
|
||||
RECIPE_UPSTREAM_DATE_pn-libpthread-stubs = "Oct 14, 2009"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libpthread-stubs = "0.3"
|
||||
@@ -716,7 +707,7 @@ RECIPE_UPSTREAM_DATE_pn-librsvg = "Aug 19, 2012"
|
||||
CHECK_DATE_pn-librsvg = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libsamplerate0 = "0.1.8"
|
||||
RECIPE_UPSTREAM_DATE_pn-libsamplerate0 = "Aug 15, 2011"
|
||||
CHECK_DATE_pn-libsamplerate0 = "Nov 08, 2012"
|
||||
CHECK_DATE_pn-libsamplerate0 = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libsdl = "1.2.15"
|
||||
CHECK_DATE_pn-libsdl = "Mar 14, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libsm = "1.2.1"
|
||||
@@ -741,7 +732,7 @@ CHECK_DATE_pn-libtheora = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libtimedate-perl = "1.20"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libtirpc = "0.2.2"
|
||||
RECIPE_UPSTREAM_DATE_pn-libtirpc = "May 02, 2011"
|
||||
CHECK_DATE_pn-libtirpc = "Nov 08, 2012"
|
||||
CHECK_DATE_pn-libtirpc = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libtool="2.4.2"
|
||||
CHECK_DATE_pn-libtool = "Aug 30, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-libunique = "2.91.4"
|
||||
@@ -914,7 +905,7 @@ RECIPE_UPSTREAM_DATE_pn-loudmouth = "Mar 27, 2012"
|
||||
CHECK_DATE_pn-loudmouth = "Aug 31, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-lrzsz="0.12.20"
|
||||
RECIPE_UPSTREAM_DATE_pn-lrzsz="Dec 31, 1998"
|
||||
CHECK_DATE_pn-lrzsz = "Nov 08, 2012"
|
||||
CHECK_DATE_pn-lrzsz = "Aug 31, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-lsb = "4.1"
|
||||
CHECK_DATE_pn-lsb = "Sep 5, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-lsb = "Jan 04, 2001"
|
||||
@@ -926,7 +917,7 @@ CHECK_DATE_pn-lsof = "Aug 31, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-lsof = "Apr 10, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-ltp = "20120903"
|
||||
RECIPE_UPSTREAM_DATE_pn-ltp = "Sep 3, 2012"
|
||||
CHECK_DATE_pn-ltp = "Nov 27, 2012"
|
||||
CHECK_DATE_pn-ltp = "Sep 5, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-lttng-ust = "Dec 15, 2011"
|
||||
RECIPE_UPSTREAM_VERSION_pn-lzo = "2.06"
|
||||
RECIPE_UPSTREAM_DATE_pn-lzo = "Aug 12, 2011"
|
||||
@@ -960,7 +951,7 @@ RECIPE_UPSTREAM_DATE_pn-menu-cache = "May 20, 2012"
|
||||
CHECK_DATE_pn-menu-cache = "Aug 31, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-minicom = "2.6.1"
|
||||
RECIPE_UPSTREAM_DATE_pn-minicom = "Mar 29, 2012"
|
||||
CHECK_DATE_pn-minicom = "Nov 08, 2012"
|
||||
CHECK_DATE_pn-minicom = "Aug 31, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-mesa-dri = "8.0.3"
|
||||
RECIPE_UPSTREAM_DATE_pn-mesa-dri="May 18, 2012"
|
||||
CHECK_DATE_pn-mesa-dri = "Aug 31, 2012"
|
||||
@@ -994,7 +985,7 @@ CHECK_DATE_pn-mpeg2dec = "Aug 31, 2012"
|
||||
RECIPE_NO_UPDATE_REASON_pn-mpeg2dec = "Why are we currently at 0.4.1?"
|
||||
RECIPE_UPSTREAM_VERSION_pn-mpfr="3.1.1"
|
||||
RECIPE_UPSTREAM_DATE_pn-mpfr = "Jul 04, 2012"
|
||||
CHECK_DATE_pn-mpfr = "Nov 8, 2012"
|
||||
CHECK_DATE_pn-mpfr = "Aug 31, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-msynctool = "0.38"
|
||||
RECIPE_UPSTREAM_DATE_pn-msynctool = "Nov 11, 2008"
|
||||
CHECK_DATE_pn-msynctool = "Aug 31, 2012"
|
||||
@@ -1025,7 +1016,7 @@ CHECK_DATE_pn-nfs-utils = "Aug 31, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-nfs-utils = "May 14, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-ocf-linux = "Jan 27, 2012"
|
||||
RECIPE_UPSTREA_VERSION_pn-ocf-linux = "20120107"
|
||||
CHECK_DATE_pn-ocf-linux = "Nov 09, 2012"
|
||||
CHECK_DATE_pn-ocf-linux = "Aug 31, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-ofono = "1.6"
|
||||
RECIPE_UPSTREAM_DATE_pn-ofono="Apr 20, 2012"
|
||||
CHECK_DATE_pn-ofono = "Aug 31, 2012"
|
||||
@@ -1058,7 +1049,7 @@ RECIPE_UPSTREAM_DATE_pn-opkg_nogpg = "Feb 01, 2010"
|
||||
CHECK_DATE_pn-opkg_nogpg = "Aug 31, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-oprofile = "0.9.8"
|
||||
RECIPE_UPSTREAM_DATE_pn-oprofile = "Aug 27, 2011"
|
||||
CHECK_DATE_pn-oprofile = "Nov 8, 2012"
|
||||
CHECK_DATE_pn-oprofile = "Aug 31, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-oprofileui = "0.0+git0+82ecf8c6b53b84f80682a8312f9defa83a95f2a3"
|
||||
CHECK_DATE_pn-oprofileui = "Aug 31, 2011"
|
||||
RECIPE_UPSTREAM_DATE_pn-oprofileui = "Nov 14, 2011"
|
||||
@@ -1121,8 +1112,8 @@ RECIPE_UPSTREAM_VERSION_pn-portmap = "6.0"
|
||||
RECIPE_UPSTREAM_DATE_pn-portmap = "May 01, 2007"
|
||||
CHECK_DATE_pn-portmap = "Aug 31, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-postinsts="1.0"
|
||||
RECIPE_UPSTREAM_VERSION_pn-powertop = "2.1"
|
||||
CHECK_DATE_pn-powertop = "Nov 8, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-powertop = "1.97"
|
||||
CHECK_DATE_pn-powertop = "Aug 31, 2012"
|
||||
RECIPE_NO_UPDATE_REASON_pn-powertop = "Do not upgrade to version 1.97 since it's a beta release of the comming PowerTOP 2.0"
|
||||
RECIPE_UPSTREAM_DATE_pn-powertop = "Jan 5, 2011"
|
||||
RECIPE_UPSTREAM_VERSION_pn-ppp-dialin = "check"
|
||||
@@ -1139,9 +1130,9 @@ RECIPE_UPSTREAM_DATE_pn-procps = "unknown"
|
||||
CHECK_DATE_pn-procps = "Aug 31, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-pseudo = "1.2"
|
||||
CHECK_DATE_pn-pseudo = "Aug 31, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-psmisc = "22.20"
|
||||
RECIPE_UPSTREAM_DATE_pn-psmisc = "Sep 20, 2012"
|
||||
CHECK_DATE_pn-psmisc = "Nov 02, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-psmisc = "22.19"
|
||||
CHECK_DATE_pn-psmisc = "Aug 31, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-psmisc = "Jun 22, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-psplash = "0.0+svnr424"
|
||||
RECIPE_UPSTREAM_DATE_pn-psplash = "May 01, 2009"
|
||||
CHECK_DATE_pn-psplash = "Aug 31, 2012"
|
||||
@@ -1158,7 +1149,7 @@ RECIPE_UPSTREAM_VERSION_pn-python-pycurl = "7.19.0"
|
||||
CHECK_DATE_pn-python-pycurl = "Aug 31, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-python-scons = "2.2.0"
|
||||
RECIPE_UPSTREAM_DATE_pn-python-scons = "Aug 05, 2012"
|
||||
CHECK_DATE_pn-python-scons = "Nov 8, 2012"
|
||||
CHECK_DATE_pn-python-scons = "Sep 11, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-python="3.2.3"
|
||||
RECIPE_UPSTREAM_DATE_pn-python = "Apr 10, 2012"
|
||||
CHECK_DATE_pn-python = "Aug 31, 2012"
|
||||
@@ -1184,7 +1175,7 @@ RECIPE_UPSTREAM_DATE_pn-quilt = "Feb 29, 2012"
|
||||
CHECK_DATE_pn-quilt = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-quota = "4.00"
|
||||
RECIPE_UPSTREAM_DATE_pn-quota = "Aug 17, 2011"
|
||||
CHECK_DATE_pn-quota = "Nov 08, 2012"
|
||||
CHECK_DATE_pn-quota = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-randrproto = "1.4.0"
|
||||
RECIPE_UPSTREAM_DATE_pn-randrproto = "Jul 12, 2012"
|
||||
CHECK_DATE_pn-randrproto = "Sep 03, 2012"
|
||||
@@ -1205,7 +1196,7 @@ RECIPE_UPSTREAM_DATE_pn-resourceproto = "May 27, 2011"
|
||||
CHECK_DATE_pn-resourceproto = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-rpcbind = "0.2.0"
|
||||
RECIPE_UPSTREAM_DATE_pn-rpcbind = "May 29, 2009"
|
||||
CHECK_DATE_pn-rpcbind = "Nov 08, 2012"
|
||||
CHECK_DATE_pn-rpcbind = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-rpm = "5.4.10"
|
||||
RECIPE_UPSTREAM_DATE_pn-rpm = "Jul 06, 2012"
|
||||
CHECK_DATE_pn-rpm = "Sep 03, 2012"
|
||||
@@ -1235,7 +1226,7 @@ RECIPE_UPSTREAM_VERSION_pn-sed = "4.2"
|
||||
CHECK_DATE_pn-sed = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-sed = "Apr 30, 2009"
|
||||
RECIPE_UPSTREAM_VERSION_pn-setserial = "2.17"
|
||||
CHECK_DATE_pn-setserial = "Nov 09, 2012"
|
||||
CHECK_DATE_pn-setserial = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-setserial = "Feb 09, 2000"
|
||||
RECIPE_UPSTREAM_VERSION_pn-settings-daemon = "3.4.2"
|
||||
RECIPE_UPSTREAM_DATE_pn-settings-daemon = "May 15, 2012"
|
||||
@@ -1262,12 +1253,12 @@ RECIPE_UPSTREAM_DATE_pn-socat = "Aug 07, 2011"
|
||||
RECIPE_UPSTREAM_VERSION_pn-speex="1.2rc1"
|
||||
RECIPE_UPSTREAM_DATE_pn-speex="Jul 24, 2008"
|
||||
CHECK_DATE_pn-speex = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-sqlite3 = "3.7.14.1"
|
||||
RECIPE_UPSTREAM_DATE_pn-sqlite3 = "Oct 22, 2012"
|
||||
CHECK_DATE_pn-sqlite3= "Nov 02, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-sqlite3 = "3.7.13"
|
||||
RECIPE_UPSTREAM_DATE_pn-sqlite3 = "Jun 11, 2012"
|
||||
CHECK_DATE_pn-sqlite3= "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-squashfs-tools = "4.2"
|
||||
RECIPE_UPSTREAM_DATE_pn-squashfs-tools = "Feb 28, 2011"
|
||||
CHECK_DATE_pn-squashfs-tools = "Nov 09, 2012"
|
||||
CHECK_DATE_pn-squashfs-tools = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-startup-notification = "May 16, 2011"
|
||||
RECIPE_UPSTREAM_VERSION_pn-startup-notification = "0.12"
|
||||
CHECK_DATE_pn-startup-notification = "Sep 03, 2012"
|
||||
@@ -1275,7 +1266,7 @@ RECIPE_UPSTREAM_VERSION_pn-stat = "3.3"
|
||||
CHECK_DATE_pn-stat = "Dec 30, 2011"
|
||||
RECIPE_UPSTREAM_VERSION_pn-strace = "4.7"
|
||||
RECIPE_UPSTREAM_DATE_pn-strace = "May 02, 2012"
|
||||
CHECK_DATE_pn-strace = "Nov 8, 2012"
|
||||
CHECK_DATE_pn-strace = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-subversion = "1.7.6"
|
||||
RECIPE_UPSTREAM_DATE_pn-subversion = "Aug 15, 2012"
|
||||
CHECK_DATE_pn-subversion = "Sep 03, 2012"
|
||||
@@ -1283,7 +1274,7 @@ RECIPE_UPSTREAM_VERSION_pn-sudo = "1.8.5p3"
|
||||
RECIPE_UPSTREAM_DATE_pn-sudo = "Aug 13, 2012"
|
||||
CHECK_DATE_pn-sudo = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-sysfsutils = "2.1.0"
|
||||
CHECK_DATE_pn-sysfsutils = "Nov 02, 2012"
|
||||
CHECK_DATE_pn-sysfsutils = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-sysfsutils = "Aug 23, 2006"
|
||||
RECIPE_UPSTREAM_VERSION_pn-sysklogd = "1.5"
|
||||
RECIPE_UPSTREAM_DATE_pn-sysklogd = "Oct 25, 2010"
|
||||
@@ -1295,16 +1286,16 @@ RECIPE_UPSTREAM_VERSION_pn-sysprof = "1.1.8"
|
||||
RECIPE_UPSTREAM_VERSION_pn-sysprof = "6b5b8432711ef5c747f8375073cd9af88922d3c6"
|
||||
RECIPE_UPSTREAM_DATE_pn-sysprof = "Dec 01, 2010"
|
||||
CHECK_DATE_pn-sysprof = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-sysstat = "10.1.2"
|
||||
RECIPE_UPSTREAM_DATE_pn-sysstat = "Oct 06, 2012"
|
||||
CHECK_DATE_pn-sysstat = "Nov 02, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-sysstat = "10.1.1"
|
||||
CHECK_DATE_pn-sysstat = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-sysstat = "Jul 07, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-sysvinit = "2.86"
|
||||
RECIPE_UPSTREAM_DATE_pn-sysvinit = "Oct 10, 2006"
|
||||
CHECK_DATE_pn-sysvinit = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-table = "d42a44938699ee30a998fc42bc149aebf69389db"
|
||||
RECIPE_UPSTREAM_VERSION_pn-taglib = "1.8"
|
||||
RECIPE_UPSTREAM_DATE_pn-taglib = "Sep 05, 2012"
|
||||
CHECK_DATE_pn-taglib = "Nov 08, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-taglib = "1.7.2"
|
||||
RECIPE_UPSTREAM_DATE_pn-taglib = "Apr 19, 2010"
|
||||
CHECK_DATE_pn-taglib = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-talloc = "2.0.7"
|
||||
RECIPE_UPSTREAM_DATE_pn-talloc = "Sep 16, 2011"
|
||||
CHECK_DATE_pn-talloc = "Sep 03, 2012"
|
||||
@@ -1315,7 +1306,7 @@ RECIPE_UPSTREAM_DATE_pn-task-base="n/a"
|
||||
RECIPE_UPSTREAM_DATE_pn-tcf-agent = "Jul 07, 2011"
|
||||
RECIPE_UPSTREAM_VERSION_pn-tcl="8.5.12"
|
||||
RECIPE_UPSTREAM_DATE_pn-tcl = "Jul 27, 2012"
|
||||
CHECK_DATE_pn-tcl = "Nov 8, 2012"
|
||||
CHECK_DATE_pn-tcl = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-tcp-wrappers = "Apr 08, 1997"
|
||||
RECIPE_UPSTREAM_DATE_pn-telepathy-glib = "Aug 31, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-telepathy-glib = "0.19.8"
|
||||
@@ -1353,7 +1344,7 @@ RECIPE_UPSTREAM_DATE_pn-trapproto = "Jan 01, 2006"
|
||||
CHECK_DATE_pn-trapproto = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-tremor="20120122"
|
||||
RECIPE_UPSTREAM_DATE_pn-tremor="Jan 22, 2012"
|
||||
CHECK_DATE_pn-tremor = "Nov 08, 2012"
|
||||
CHECK_DATE_pn-tremor = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-tslib = "1.0"
|
||||
RECIPE_UPSTREAM_DATE_pn-tslib ="Sep 09, 2006"
|
||||
CHECK_DATE_pn-tslib = "Sep 03, 2012"
|
||||
@@ -1399,7 +1390,7 @@ RECIPE_UPSTREAM_DATE_pn-vte="May 30, 2012"
|
||||
CHECK_DATE_pn-vte = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-watchdog = "5.12"
|
||||
RECIPE_UPSTREAM_DATE_pn-watchdog = "Apr 05, 2012"
|
||||
CHECK_DATE_pn-watchdog = "Nov 09, 2012"
|
||||
CHECK_DATE_pn-watchdog = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-wbxml2 = "0.10.8"
|
||||
RECIPE_UPSTREAM_DATE_pn-wbxml2 = "Jul 06, 2010"
|
||||
CHECK_DATE_pn-wbxml2 = "Sep 03, 2012"
|
||||
@@ -1415,7 +1406,7 @@ RECIPE_UPSTREAM_DATE_pn-which = "Aug 01, 2008"
|
||||
CHECK_DATE_pn-which = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_VERSION_pn-wireless-tools = "29"
|
||||
RECIPE_UPSTREAM_DATE_pn-wireless-tools="Sep 18, 2007"
|
||||
CHECK_DATE_pn-wireless-tools = "Nov 08, 2012"
|
||||
CHECK_DATE_pn-wireless-tools = "Sep 03, 2012"
|
||||
RECIPE_UPSTREAM_DATE_pn-wpa-supplicant="Sep 07, 2010"
|
||||
RECIPE_UPSTREAM_VERSION_pn-wpa-supplicant = "1.0"
|
||||
CHECK_DATE_pn-wpa-supplicant = "Sep 03, 2012"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
DISTRO = "poky"
|
||||
DISTRO_NAME = "Poky 8.0 (Yocto Project 1.3 Reference Distro)"
|
||||
DISTRO_VERSION = "1.3+snapshot-${DATE}"
|
||||
DISTRO_VERSION = "1.3"
|
||||
SDK_VENDOR = "-pokysdk"
|
||||
SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
|
||||
SDK_VERSION := "${DISTRO_VERSION}"
|
||||
|
||||
MAINTAINER = "Poky <poky@yoctoproject.org>"
|
||||
|
||||
@@ -11,7 +11,7 @@ TARGET_VENDOR = "-poky"
|
||||
LOCALCONF_VERSION = "1"
|
||||
LAYER_CONF_VERSION ?= "6"
|
||||
|
||||
DISTRO_FEATURES_append = " largefile opengl multiarch"
|
||||
DISTRO_FEATURES_append = " largefile opengl"
|
||||
|
||||
PREFERRED_VERSION_linux-yocto ?= "3.4%"
|
||||
PREFERRED_VERSION_linux-yocto_qemux86 ?= "3.4%"
|
||||
@@ -69,8 +69,8 @@ CONNECTIVITY_CHECK_URIS ?= " \
|
||||
http://bugzilla.yoctoproject.org/report.cgi"
|
||||
|
||||
SANITY_TESTED_DISTROS ?= " \
|
||||
Yocto (Built by Poky 8.0) 1.2 \n \
|
||||
Yocto (Built by Poky 7.0) 1.2 \n \
|
||||
Yocto (Built by Poky 8.0) 1.3 \n \
|
||||
Poky 7.0 (Yocto Project 1.2 Reference Distro) 1.2 \n \
|
||||
Poky 8.0 (Yocto Project 1.3 Reference Distro) 1.3 \n \
|
||||
Ubuntu 10.04.4 LTS \n \
|
||||
@@ -105,6 +105,6 @@ OELAYOUT_ABI = "8"
|
||||
INHERIT += "poky-sanity"
|
||||
|
||||
#WARN_QA = "unsafe-references-in-binaries unsafe-references-in-scripts"
|
||||
WARN_QA = "textrel"
|
||||
WARN_QA = ""
|
||||
ERROR_QA = "dev-so debug-deps dev-deps debug-files arch la2 pkgconfig la perms useless-rpaths rpaths staticdev ldflags"
|
||||
|
||||
|
||||
@@ -205,22 +205,6 @@ USER_CLASSES ?= "buildstats image-mklibs image-prelink"
|
||||
# By default disable interactive patch resolution (tasks will just fail instead):
|
||||
PATCHRESOLVE = "noop"
|
||||
|
||||
#
|
||||
# Disk Space Monitoring during the build
|
||||
#
|
||||
# Monitor the disk space during the build. If there is less that 1GB of space or less
|
||||
# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully
|
||||
# shutdown the build. If there is less that 100MB or 1K inodes, perform a hard abort
|
||||
# of the build. The reason for this is that running completely out of space can corrupt
|
||||
# files and damages the build in ways which may not be easily recoverable.
|
||||
BB_DISKMON_DIRS = "\
|
||||
STOPTASKS,${TMPDIR},1G,100K \
|
||||
STOPTASKS,${DL_DIR},1G,100K \
|
||||
STOPTASKS,${SSTATE_DIR},1G,100K \
|
||||
ABORT,${TMPDIR},100M,1K \
|
||||
ABORT,${DL_DIR},100M,1K \
|
||||
ABORT,${SSTATE_DIR},100M,1K"
|
||||
|
||||
#
|
||||
# Shared-state files from other locations
|
||||
#
|
||||
|
||||
@@ -4,25 +4,21 @@
|
||||
|
||||
PACKAGE_ARCH = "all"
|
||||
|
||||
python () {
|
||||
# Allow this class to be included but overridden - only set
|
||||
# the values if we're still "all" package arch.
|
||||
if d.getVar("PACKAGE_ARCH") == "all":
|
||||
# No need for virtual/libc or a cross compiler
|
||||
d.setVar("INHIBIT_DEFAULT_DEPS","1")
|
||||
# No need for virtual/libc or a cross compiler
|
||||
INHIBIT_DEFAULT_DEPS = "1"
|
||||
|
||||
# Set these to a common set of values, we shouldn't be using them other that for WORKDIR directory
|
||||
# naming anyway
|
||||
d.setVar("TARGET_ARCH", "allarch")
|
||||
d.setVar("TARGET_OS", "linux")
|
||||
d.setVar("TARGET_CC_ARCH", "none")
|
||||
d.setVar("TARGET_LD_ARCH", "none")
|
||||
d.setVar("TARGET_AS_ARCH", "none")
|
||||
d.setVar("PACKAGE_EXTRA_ARCHS", "")
|
||||
# Set these to a common set of values, we shouldn't be using them other that for WORKDIR directory
|
||||
# naming anyway
|
||||
TARGET_ARCH = "allarch"
|
||||
TARGET_OS = "linux"
|
||||
TARGET_CC_ARCH = "none"
|
||||
TARGET_LD_ARCH = "none"
|
||||
TARGET_AS_ARCH = "none"
|
||||
PACKAGE_EXTRA_ARCHS = ""
|
||||
|
||||
# No need to do shared library processing or debug symbol handling
|
||||
d.setVar("EXCLUDE_FROM_SHLIBS", "1")
|
||||
d.setVar("INHIBIT_PACKAGE_DEBUG_SPLIT", "1")
|
||||
d.setVar("INHIBIT_PACKAGE_STRIP", "1")
|
||||
}
|
||||
# No need to do shared library processing or debug symbol handling
|
||||
EXCLUDE_FROM_SHLIBS = "1"
|
||||
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
||||
INHIBIT_PACKAGE_STRIP = "1"
|
||||
|
||||
do_package[stamp-extra-info] = ""
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
ARCHIVE_EXCLUDE_FROM ?= ".pc autom4te.cache"
|
||||
ARCHIVE_TYPE ?= "tar srpm"
|
||||
DISTRO ?= "poky"
|
||||
PATCHES_ARCHIVE_WITH_SERIES = 'yes'
|
||||
SOURCE_ARCHIVE_LOG_WITH_SCRIPTS ?= '${@d.getVarFlag('ARCHIVER_MODE', 'log_type') \
|
||||
if d.getVarFlag('ARCHIVER_MODE', 'log_type') != 'none' else 'logs_with_scripts'}'
|
||||
@@ -490,7 +491,7 @@ def create_diff_gz(d):
|
||||
f.close()
|
||||
|
||||
s=d.getVar('S', True)
|
||||
distro = d.getVar('DISTRO',True) or ""
|
||||
distro = d.getVar('DISTRO',True)
|
||||
dest = s + '/' + distro + '/files'
|
||||
if not os.path.exists(dest):
|
||||
bb.mkdirhier(dest)
|
||||
|
||||
@@ -34,21 +34,6 @@ EXTRA_AUTORECONF = "--exclude=autopoint"
|
||||
|
||||
export lt_cv_sys_lib_dlsearch_path_spec = "${libdir} ${base_libdir}"
|
||||
|
||||
# When building tools for use at build-time it's recommended for the build
|
||||
# system to use these variables when cross-compiling.
|
||||
# (http://sources.redhat.com/autobook/autobook/autobook_270.html)
|
||||
export CPP_FOR_BUILD = "${BUILD_CPP}"
|
||||
export CPPFLAGS_FOR_BUILD = "${BUILD_CPPFLAGS}"
|
||||
|
||||
export CC_FOR_BUILD = "${BUILD_CC}"
|
||||
export CFLAGS_FOR_BUILD = "${BUILD_CFLAGS}"
|
||||
|
||||
export CXX_FOR_BUILD = "${BUILD_CXX}"
|
||||
export CXXFLAGS_FOR_BUILD="${BUILD_CXXFLAGS}"
|
||||
|
||||
export LD_FOR_BUILD = "${BUILD_LD}"
|
||||
export LDFLAGS_FOR_BUILD = "${BUILD_LDFLAGS}"
|
||||
|
||||
def autotools_set_crosscompiling(d):
|
||||
if not bb.data.inherits_class('native', d):
|
||||
return " cross_compiling=yes"
|
||||
@@ -142,11 +127,10 @@ autotools_do_configure() {
|
||||
cd ${S}
|
||||
# Remove any previous copy of the m4 macros
|
||||
rm -rf ${B}/aclocal-copy/
|
||||
ACLOCAL="aclocal --system-acdir=${B}/aclocal-copy/"
|
||||
if [ x"${acpaths}" = xdefault ]; then
|
||||
acpaths=
|
||||
for i in `find ${S} -maxdepth 2 -name \*.m4|grep -v 'aclocal.m4'| \
|
||||
grep -v 'acinclude.m4' | grep -v 'aclocal-copy' | sed -e 's,\(.*/\).*$,\1,'|sort -u`; do
|
||||
grep -v 'acinclude.m4' | sed -e 's,\(.*/\).*$,\1,'|sort -u`; do
|
||||
acpaths="$acpaths -I $i"
|
||||
done
|
||||
else
|
||||
@@ -156,19 +140,16 @@ autotools_do_configure() {
|
||||
automake --version
|
||||
echo "AUTOV is $AUTOV"
|
||||
if [ -d ${STAGING_DATADIR_NATIVE}/aclocal-$AUTOV ]; then
|
||||
ACLOCAL="$ACLOCAL --automake-acdir=${STAGING_DATADIR_NATIVE}/aclocal-$AUTOV"
|
||||
acpaths="$acpaths -I${STAGING_DATADIR_NATIVE}/aclocal-$AUTOV"
|
||||
fi
|
||||
# The aclocal directory could get modified by other processes
|
||||
# uninstalling data from the sysroot. See Yocto #861 for details.
|
||||
# We avoid this by taking a copy here and then files cannot disappear.
|
||||
# We copy native first, then target. This avoids certain races since cp-noerror
|
||||
# won't overwrite existing files.
|
||||
mkdir -p ${B}/aclocal-copy/
|
||||
if [ -d ${STAGING_DATADIR_NATIVE}/aclocal ]; then
|
||||
cp-noerror ${STAGING_DATADIR_NATIVE}/aclocal/ ${B}/aclocal-copy/
|
||||
fi
|
||||
if [ -d ${STAGING_DATADIR}/aclocal -a "${STAGING_DATADIR_NATIVE}/aclocal" != "${STAGING_DATADIR}/aclocal" ]; then
|
||||
cp-noerror ${STAGING_DATADIR}/aclocal/ ${B}/aclocal-copy/
|
||||
if [ -d ${STAGING_DATADIR}/aclocal ]; then
|
||||
# for scratch build this directory can be empty
|
||||
# so avoid cp's no files to copy error
|
||||
cp-noerror ${STAGING_DATADIR}/aclocal ${B}/aclocal-copy/
|
||||
acpaths="$acpaths -I ${B}/aclocal-copy/"
|
||||
fi
|
||||
# autoreconf is too shy to overwrite aclocal.m4 if it doesn't look
|
||||
# like it was auto-generated. Work around this by blowing it away
|
||||
@@ -181,24 +162,21 @@ autotools_do_configure() {
|
||||
else
|
||||
CONFIGURE_AC=configure.ac
|
||||
fi
|
||||
if grep "^[[:space:]]*AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
|
||||
if grep "sed.*POTFILES" $CONFIGURE_AC >/dev/null; then
|
||||
: do nothing -- we still have an old unmodified configure.ac
|
||||
else
|
||||
bbnote Executing glib-gettextize --force --copy
|
||||
echo "no" | glib-gettextize --force --copy
|
||||
fi
|
||||
else if grep "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
|
||||
# We'd call gettextize here if it wasn't so broken...
|
||||
cp ${STAGING_DATADIR_NATIVE}/gettext/config.rpath ${AUTOTOOLS_AUXDIR}/
|
||||
if [ -d ${S}/po/ ]; then
|
||||
cp ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/po/
|
||||
if ! echo ${EXTRA_OECONF} | grep -q "\-\-disable-nls"; then
|
||||
if grep "^[[:space:]]*AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
|
||||
if grep "sed.*POTFILES" $CONFIGURE_AC >/dev/null; then
|
||||
: do nothing -- we still have an old unmodified configure.ac
|
||||
else
|
||||
bbnote Executing glib-gettextize --force --copy
|
||||
echo "no" | glib-gettextize --force --copy
|
||||
fi
|
||||
else if grep "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
|
||||
# We'd call gettextize here if it wasn't so broken...
|
||||
cp ${STAGING_DATADIR}/gettext/config.rpath ${AUTOTOOLS_AUXDIR}/
|
||||
if [ -d ${S}/po/ -a ! -e ${S}/po/Makefile.in.in ]; then
|
||||
cp ${STAGING_DATADIR}/gettext/po/Makefile.in.in ${S}/po/
|
||||
fi
|
||||
fi
|
||||
for i in gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 nls.m4 po.m4 progtest.m4; do
|
||||
for j in `find ${S} -name $i | grep -v aclocal-copy`; do
|
||||
rm $j
|
||||
done
|
||||
done
|
||||
fi
|
||||
fi
|
||||
mkdir -p m4
|
||||
@@ -206,8 +184,8 @@ autotools_do_configure() {
|
||||
bbnote Executing intltoolize --copy --force --automake
|
||||
intltoolize --copy --force --automake
|
||||
fi
|
||||
bbnote Executing ACLOCAL=\"$ACLOCAL\" autoreconf --verbose --install --force ${EXTRA_AUTORECONF} $acpaths
|
||||
ACLOCAL="$ACLOCAL" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || bbfatal "autoreconf execution failed."
|
||||
bbnote Executing autoreconf --verbose --install --force ${EXTRA_AUTORECONF} $acpaths
|
||||
autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || bbfatal "autoreconf execution failed."
|
||||
cd $olddir
|
||||
fi
|
||||
if [ -e ${S}/configure ]; then
|
||||
|
||||
@@ -80,7 +80,7 @@ BASEDEPENDS = "${@base_dep_prepend(d)}"
|
||||
|
||||
DEPENDS_prepend="${BASEDEPENDS} "
|
||||
|
||||
FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}"
|
||||
FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", "${FILE_DIRNAME}/${P}", "${FILE_DIRNAME}/${PN}", "${FILE_DIRNAME}/${BP}", "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files", "${FILE_DIRNAME}" ], d)}"
|
||||
# THISDIR only works properly with imediate expansion as it has to run
|
||||
# in the context of the location its used (:=)
|
||||
THISDIR = "${@os.path.dirname(d.getVar('FILE', True))}"
|
||||
@@ -183,8 +183,6 @@ def preferred_ml_updates(d):
|
||||
providers.append(v)
|
||||
|
||||
for pkg, reason in blacklists.items():
|
||||
if pkg.endswith(("-native", "-crosssdk")) or pkg.startswith("nativesdk-") or 'cross-canadian' in pkg:
|
||||
continue
|
||||
for p in prefixes:
|
||||
newpkg = p + "-" + pkg
|
||||
if not d.getVarFlag('PNBLACKLIST', newpkg, True):
|
||||
@@ -193,18 +191,7 @@ def preferred_ml_updates(d):
|
||||
for v in versions:
|
||||
val = d.getVar(v, False)
|
||||
pkg = v.replace("PREFERRED_VERSION_", "")
|
||||
if pkg.endswith(("-native", "-crosssdk")) or pkg.startswith("nativesdk-"):
|
||||
continue
|
||||
if 'cross-canadian' in pkg:
|
||||
for p in prefixes:
|
||||
localdata = bb.data.createCopy(d)
|
||||
override = ":virtclass-multilib-" + p
|
||||
localdata.setVar("OVERRIDES", localdata.getVar("OVERRIDES", False) + override)
|
||||
bb.data.update_data(localdata)
|
||||
newname = localdata.expand(v)
|
||||
if newname != v:
|
||||
newval = localdata.getVar(v, True)
|
||||
d.setVar(newname, newval)
|
||||
if pkg.endswith("-native") or pkg.startswith("nativesdk-"):
|
||||
continue
|
||||
for p in prefixes:
|
||||
newname = "PREFERRED_VERSION_" + p + "-" + pkg
|
||||
@@ -214,38 +201,16 @@ def preferred_ml_updates(d):
|
||||
for prov in providers:
|
||||
val = d.getVar(prov, False)
|
||||
pkg = prov.replace("PREFERRED_PROVIDER_", "")
|
||||
if pkg.endswith(("-native", "-crosssdk")) or pkg.startswith("nativesdk-"):
|
||||
continue
|
||||
if 'cross-canadian' in pkg:
|
||||
for p in prefixes:
|
||||
localdata = bb.data.createCopy(d)
|
||||
override = ":virtclass-multilib-" + p
|
||||
localdata.setVar("OVERRIDES", localdata.getVar("OVERRIDES", False) + override)
|
||||
bb.data.update_data(localdata)
|
||||
newname = localdata.expand(prov)
|
||||
if newname != prov:
|
||||
newval = localdata.expand(val)
|
||||
d.setVar(newname, newval)
|
||||
if pkg.endswith("-native") or pkg.startswith("nativesdk-"):
|
||||
continue
|
||||
virt = ""
|
||||
if pkg.startswith("virtual/"):
|
||||
pkg = pkg.replace("virtual/", "")
|
||||
virt = "virtual/"
|
||||
for p in prefixes:
|
||||
newname = "PREFERRED_PROVIDER_" + virt + p + "-" + pkg
|
||||
if pkg != "kernel":
|
||||
val = p + "-" + val
|
||||
|
||||
# implement variable keys
|
||||
localdata = bb.data.createCopy(d)
|
||||
override = ":virtclass-multilib-" + p
|
||||
localdata.setVar("OVERRIDES", localdata.getVar("OVERRIDES", False) + override)
|
||||
bb.data.update_data(localdata)
|
||||
newname = localdata.expand(prov)
|
||||
if newname != prov:
|
||||
d.setVar(newname, localdata.expand(val))
|
||||
|
||||
# implement alternative multilib name
|
||||
newname = localdata.expand("PREFERRED_PROVIDER_" + virt + p + "-" + pkg)
|
||||
if not d.getVar(newname, False):
|
||||
d.setVar(newname, val)
|
||||
|
||||
@@ -253,7 +218,7 @@ def preferred_ml_updates(d):
|
||||
mp = (d.getVar("MULTI_PROVIDER_WHITELIST", True) or "").split()
|
||||
extramp = []
|
||||
for p in mp:
|
||||
if p.endswith(("-native", "-crosssdk")) or p.startswith("nativesdk-") or 'cross-canadian' in p:
|
||||
if p.endswith("-native") or p.startswith("nativesdk-"):
|
||||
continue
|
||||
virt = ""
|
||||
if p.startswith("virtual/"):
|
||||
@@ -369,38 +334,6 @@ do_build () {
|
||||
:
|
||||
}
|
||||
|
||||
def set_packagetriplet(d):
|
||||
archs = []
|
||||
tos = []
|
||||
tvs = []
|
||||
|
||||
archs.append(d.getVar("PACKAGE_ARCHS", True).split())
|
||||
tos.append(d.getVar("TARGET_OS", True))
|
||||
tvs.append(d.getVar("TARGET_VENDOR", True))
|
||||
|
||||
def settriplet(d, varname, archs, tos, tvs):
|
||||
triplets = []
|
||||
for i in range(len(archs)):
|
||||
for arch in archs[i]:
|
||||
triplets.append(arch + tvs[i] + "-" + tos[i])
|
||||
triplets.reverse()
|
||||
d.setVar(varname, " ".join(triplets))
|
||||
|
||||
settriplet(d, "PKGTRIPLETS", archs, tos, tvs)
|
||||
|
||||
variants = d.getVar("MULTILIB_VARIANTS", True) or ""
|
||||
for item in variants.split():
|
||||
localdata = bb.data.createCopy(d)
|
||||
overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item
|
||||
localdata.setVar("OVERRIDES", overrides)
|
||||
bb.data.update_data(localdata)
|
||||
|
||||
archs.append(localdata.getVar("PACKAGE_ARCHS", True).split())
|
||||
tos.append(localdata.getVar("TARGET_OS", True))
|
||||
tvs.append(localdata.getVar("TARGET_VENDOR", True))
|
||||
|
||||
settriplet(d, "PKGMLTRIPLETS", archs, tos, tvs)
|
||||
|
||||
python () {
|
||||
import exceptions, string, re
|
||||
|
||||
@@ -588,8 +521,6 @@ python () {
|
||||
if ".zip" in srcuri:
|
||||
d.appendVarFlag('do_unpack', 'depends', ' unzip-native:do_populate_sysroot')
|
||||
|
||||
set_packagetriplet(d)
|
||||
|
||||
# 'multimachine' handling
|
||||
mach_arch = d.getVar('MACHINE_ARCH', True)
|
||||
pkg_arch = d.getVar('PACKAGE_ARCH', True)
|
||||
|
||||
@@ -403,9 +403,9 @@ END
|
||||
fi
|
||||
# Check if there are new/changed files to commit (other than metadata-revs)
|
||||
repostatus=`git status --porcelain | grep -v " metadata-revs$"`
|
||||
HOSTNAME=`hostname 2>/dev/null || echo unknown`
|
||||
if [ "$repostatus" != "" ] ; then
|
||||
git add .
|
||||
HOSTNAME=`hostname 2>/dev/null || echo unknown`
|
||||
# porcelain output looks like "?? packages/foo/bar"
|
||||
# Ensure we commit metadata-revs with the first commit
|
||||
for entry in `echo "$repostatus" | awk '{print $2}' | awk -F/ '{print $1}' | sort | uniq` ; do
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
DEPENDS_prepend = "cmake-native "
|
||||
DEPENDS += " cmake-native "
|
||||
|
||||
# We need to unset CCACHE otherwise cmake gets too confused
|
||||
CCACHE = ""
|
||||
|
||||
@@ -39,13 +39,8 @@ def is_target(d):
|
||||
return "yes"
|
||||
return "no"
|
||||
|
||||
PERLLIBDIRS := "${@perl_get_libdirs(d)}"
|
||||
PERLVERSION := "${@get_perl_version(d)}"
|
||||
PERLLIBDIRS = "${@perl_get_libdirs(d)}"
|
||||
|
||||
FILES_${PN}-dbg += "${PERLLIBDIRS}/auto/*/.debug \
|
||||
${PERLLIBDIRS}/auto/*/*/.debug \
|
||||
${PERLLIBDIRS}/auto/*/*/*/.debug \
|
||||
${PERLLIBDIRS}/vendor_perl/${PERLVERSION}/auto/*/.debug \
|
||||
${PERLLIBDIRS}/vendor_perl/${PERLVERSION}/auto/*/*/.debug \
|
||||
${PERLLIBDIRS}/vendor_perl/${PERLVERSION}/auto/*/*/*/.debug \
|
||||
"
|
||||
${PERLLIBDIRS}/auto/*/*/*/.debug"
|
||||
|
||||
@@ -23,9 +23,8 @@ cpan_build_do_configure () {
|
||||
if [ ${@is_target(d)} == "yes" ]; then
|
||||
# build for target
|
||||
. ${STAGING_LIBDIR}/perl/config.sh
|
||||
fi
|
||||
|
||||
perl Build.PL --installdirs vendor \
|
||||
perl Build.PL --installdirs vendor \
|
||||
--destdir ${D} \
|
||||
--install_path lib="${datadir}/perl" \
|
||||
--install_path arch="${libdir}/perl" \
|
||||
@@ -33,6 +32,10 @@ cpan_build_do_configure () {
|
||||
--install_path bin=${bindir} \
|
||||
--install_path bindoc=${mandir}/man1 \
|
||||
--install_path libdoc=${mandir}/man3
|
||||
else
|
||||
# build for host
|
||||
perl Build.PL --installdirs site --destdir ${D}
|
||||
fi
|
||||
}
|
||||
|
||||
cpan_build_do_compile () {
|
||||
|
||||
@@ -90,7 +90,7 @@ export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${layout_libdir}/pkgconfig"
|
||||
export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}"
|
||||
|
||||
# Cross-canadian packages need to pull in nativesdk dynamic libs
|
||||
SHLIBSDIRS = "${TMPDIR}/pkgdata/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}/shlibs/ ${TMPDIR}/pkgdata/all-${HOST_VENDOR}-${HOST_OS}/shlibs/"
|
||||
SHLIBSDIR = "${TMPDIR}/pkgdata/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}/shlibs/"
|
||||
SHLIBSDIR = "${STAGING_DIR}/${SDK_ARCH}-nativesdk${SDK_VENDOR}-${BUILD_OS}/shlibs"
|
||||
|
||||
do_populate_sysroot[stamp-extra-info] = ""
|
||||
do_package[stamp-extra-info] = ""
|
||||
|
||||
@@ -7,7 +7,7 @@ EXCLUDE_FROM_WORLD = "1"
|
||||
CLASSOVERRIDE = "class-cross"
|
||||
PACKAGES = ""
|
||||
PACKAGES_DYNAMIC = ""
|
||||
PACKAGES_DYNAMIC_class-native = ""
|
||||
PACKAGES_DYNAMIC_virtclass-native = ""
|
||||
|
||||
HOST_ARCH = "${BUILD_ARCH}"
|
||||
HOST_VENDOR = "${BUILD_VENDOR}"
|
||||
@@ -54,7 +54,7 @@ base_sbindir = "${bindir}"
|
||||
libdir = "${exec_prefix}/lib/${CROSS_TARGET_SYS_DIR}"
|
||||
libexecdir = "${exec_prefix}/libexec/${CROSS_TARGET_SYS_DIR}"
|
||||
|
||||
do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}/${STAGING_DIR_NATIVE}/"
|
||||
do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}/${STAGING_DIR_NATIVE}"
|
||||
|
||||
python cross_virtclass_handler () {
|
||||
if not isinstance(e, bb.event.RecipePreFinalise):
|
||||
|
||||
@@ -27,6 +27,7 @@ target_exec_prefix = "${SDKPATHNATIVE}${exec_prefix_nativesdk}"
|
||||
baselib = "lib"
|
||||
|
||||
do_populate_sysroot[stamp-extra-info] = ""
|
||||
do_package[stamp-extra-info] = ""
|
||||
|
||||
# Need to force this to ensure consitency accross architectures
|
||||
EXTRA_OECONF_FPU = ""
|
||||
|
||||
@@ -5,13 +5,10 @@ EXTRA_OEMAKE = ""
|
||||
export STAGING_INCDIR
|
||||
export STAGING_LIBDIR
|
||||
|
||||
PACKAGES = "${PN}-staticdev ${PN}-dev ${PN}-dbg ${PN}-doc ${PN}"
|
||||
PACKAGES = "${PN}-dev ${PN}-dbg ${PN}-doc ${PN}"
|
||||
|
||||
FILES_${PN} = "${bindir}/* ${libdir}/* ${libdir}/${PYTHON_DIR}/*"
|
||||
|
||||
FILES_${PN}-staticdev += "\
|
||||
${PYTHON_SITEPACKAGES_DIR}/*.a \
|
||||
"
|
||||
FILES_${PN}-dev += "\
|
||||
${datadir}/pkgconfig \
|
||||
${libdir}/pkgconfig \
|
||||
|
||||
@@ -7,7 +7,7 @@ GNOME_COMPRESS_TYPE ?= "bz2"
|
||||
SECTION ?= "x11/gnome"
|
||||
SRC_URI = "${GNOME_MIRROR}/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive"
|
||||
|
||||
DEPENDS += "gnome-common-native"
|
||||
DEPENDS += "gnome-common"
|
||||
|
||||
FILES_${PN} += "${datadir}/application-registry \
|
||||
${datadir}/mime-info \
|
||||
|
||||
@@ -15,5 +15,5 @@ EXTRA_OECONF_append = "\
|
||||
"
|
||||
|
||||
do_configure_prepend () {
|
||||
( cd ${S} && gtkdocize )
|
||||
gtkdocize
|
||||
}
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
# This class will update the inputmethod module cache for virtual keyboards
|
||||
#
|
||||
# Usage: Set GTKIMMODULES_PACKAGES to the packages that needs to update the inputmethod modules
|
||||
|
||||
gtk_immodule_cache_postinst() {
|
||||
if [ "x$D" != "x" ]; then
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -z `which gtk-query-immodules-2.0` ]; then
|
||||
gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules
|
||||
fi
|
||||
if [ ! -z `which gtk-query-immodules-3.0` ]; then
|
||||
gtk-query-immodules-3.0 > /etc/gtk-3.0/gtk.immodules
|
||||
fi
|
||||
}
|
||||
|
||||
gtk_immodule_cache_postrm() {
|
||||
if [ "x$D" != "x" ]; then
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -z `which gtk-query-immodules-2.0` ]; then
|
||||
gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules
|
||||
fi
|
||||
if [ ! -z `which gtk-query-immodules-3.0` ]; then
|
||||
gtk-query-immodules-3.0 > /etc/gtk-3.0/gtk.immodules
|
||||
fi
|
||||
}
|
||||
|
||||
python populate_packages_append () {
|
||||
gtkimmodules_pkgs = d.getVar('GTKIMMODULES_PACKAGES', True).split()
|
||||
|
||||
for pkg in gtkimmodules_pkgs:
|
||||
bb.note("adding gtk-immodule-cache postinst and postrm scripts to %s" % pkg)
|
||||
|
||||
postinst = d.getVar('pkg_postinst_%s' % pkg, True) or d.getVar('pkg_postinst', True)
|
||||
if not postinst:
|
||||
postinst = '#!/bin/sh\n'
|
||||
postinst += d.getVar('gtk_immodule_cache_postinst', True)
|
||||
d.setVar('pkg_postinst_%s' % pkg, postinst)
|
||||
|
||||
postrm = d.getVar('pkg_postrm_%s' % pkg, True) or d.getVar('pkg_postrm', True)
|
||||
if not postrm:
|
||||
postrm = '#!/bin/sh\n'
|
||||
postrm += d.getVar('gtk_immodule_cache_postrm', True)
|
||||
d.setVar('pkg_postrm_%s' % pkg, postrm)
|
||||
}
|
||||
|
||||
python __anonymous() {
|
||||
if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d):
|
||||
gtkimmodules_check = d.getVar('GTKIMMODULES_PACKAGES')
|
||||
if not gtkimmodules_check:
|
||||
bb_filename = d.getVar('FILE')
|
||||
raise bb.build.FuncFailed, "\n\n\nERROR: %s inherits gtk-immodule-cache but doesn't set GTKIMMODULES_PACKAGE" % bb_filename
|
||||
}
|
||||
|
||||
@@ -10,6 +10,6 @@ LABELS_append = " ${SYSLINUX_LABELS} "
|
||||
ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_BASENAME}-${MACHINE}.ext3"
|
||||
|
||||
do_bootimg[depends] += "${INITRD_IMAGE}:do_rootfs"
|
||||
do_bootimg[depends] += "${PN}:do_rootfs"
|
||||
do_bootimg[depends] += "${IMAGE_BASENAME}:do_rootfs"
|
||||
|
||||
inherit bootimg
|
||||
|
||||
@@ -26,6 +26,7 @@ PARALLEL_MAKE_pn-m4 = ""
|
||||
PARALLEL_MAKE_pn-opkg = ""
|
||||
PARALLEL_MAKE_pn-pkgconfig = ""
|
||||
PARALLEL_MAKE_pn-prelink = ""
|
||||
PARALLEL_MAKE_pn-qemugl = ""
|
||||
PARALLEL_MAKE_pn-rpm = ""
|
||||
PARALLEL_MAKE_pn-tcl = ""
|
||||
PARALLEL_MAKE_pn-beecrypt = ""
|
||||
|
||||
@@ -8,7 +8,7 @@ SYSLINUX_LABELS = "boot"
|
||||
LABELS_append = " ${SYSLINUX_LABELS} "
|
||||
|
||||
# need to define the dependency and the ROOTFS for directdisk
|
||||
do_bootdirectdisk[depends] += "${PN}:do_rootfs"
|
||||
do_bootdirectdisk[depends] += "${IMAGE_BASENAME}:do_rootfs"
|
||||
ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_BASENAME}-${MACHINE}.ext3"
|
||||
|
||||
# creating VMDK relies on having a live hddimg so ensure we
|
||||
|
||||
@@ -84,7 +84,6 @@ LDCONFIGDEPEND_libc-uclibc = ""
|
||||
|
||||
do_rootfs[depends] += "makedevs-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot ${LDCONFIGDEPEND}"
|
||||
do_rootfs[depends] += "virtual/update-alternatives-native:do_populate_sysroot update-rc.d-native:do_populate_sysroot"
|
||||
do_rootfs[recrdeptask] += "do_package"
|
||||
|
||||
IMAGE_TYPE_live = '${@base_contains("IMAGE_FSTYPES", "live", "live", "empty", d)}'
|
||||
inherit image-${IMAGE_TYPE_live}
|
||||
|
||||
@@ -17,15 +17,20 @@
|
||||
# files under exec_prefix
|
||||
|
||||
|
||||
#
|
||||
# We need to have the scanelf utility as soon as
|
||||
# possible and this is contained within the pax-utils-native.
|
||||
# The package.bbclass can help us here.
|
||||
#
|
||||
inherit package
|
||||
PACKAGE_DEPENDS += "${QADEPENDS}"
|
||||
PACKAGE_DEPENDS += "pax-utils-native ${QADEPENDS}"
|
||||
PACKAGEFUNCS += " do_package_qa "
|
||||
|
||||
# unsafe-references-in-binaries requires prelink-rtld from
|
||||
# prelink-native, but we don't want this DEPENDS for -native builds
|
||||
QADEPENDS = "prelink-native"
|
||||
QADEPENDS_class-native = ""
|
||||
QADEPENDS_class-nativesdk = ""
|
||||
QADEPENDS_virtclass-native = ""
|
||||
QADEPENDS_virtclass-nativesdk = ""
|
||||
|
||||
#
|
||||
# dictionary for elf headers
|
||||
@@ -39,7 +44,6 @@ def package_qa_get_machine_dict():
|
||||
"arm" : (40, 0, 0, True, 32),
|
||||
},
|
||||
"linux" : {
|
||||
"aarch64" : (183, 0, 0, True, 64),
|
||||
"arm" : (40, 97, 0, True, 32),
|
||||
"armeb": (40, 97, 0, False, 32),
|
||||
"powerpc": (20, 0, 0, False, 32),
|
||||
@@ -105,15 +109,11 @@ def package_qa_get_machine_dict():
|
||||
"linux-gnux32" : {
|
||||
"x86_64": (62, 0, 0, True, 32),
|
||||
},
|
||||
"linux-gnun32" : {
|
||||
"mips64": ( 8, 0, 0, False, 32),
|
||||
"mipsel64": ( 8, 0, 0, True, 32),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
# Currently not being used by default "desktop"
|
||||
WARN_QA ?= "ldflags useless-rpaths rpaths staticdev libdir xorg-driver-abi textrel"
|
||||
WARN_QA ?= "ldflags useless-rpaths rpaths unsafe-references-in-binaries unsafe-references-in-scripts staticdev libdir"
|
||||
ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch la2 pkgconfig la perms dep-cmp"
|
||||
|
||||
ALL_QA = "${WARN_QA} ${ERROR_QA}"
|
||||
@@ -139,20 +139,6 @@ def package_qa_handle_error(error_class, error_msg, d):
|
||||
bb.warn("QA Issue: %s" % error_msg)
|
||||
return True
|
||||
|
||||
QAPATHTEST[libexec] = "package_qa_check_libexec"
|
||||
def package_qa_check_libexec(path,name, d, elf, messages):
|
||||
|
||||
# Skip the case where the default is explicitly /usr/libexec
|
||||
libexec = d.getVar('libexecdir', True)
|
||||
if libexec == "/usr/libexec":
|
||||
return True
|
||||
|
||||
if 'libexec' in path.split(os.path.sep):
|
||||
messages.append("%s: %s is using libexec please relocate to %s" % (name, package_qa_clean_path(path, d), libexec))
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
QAPATHTEST[rpaths] = "package_qa_check_rpath"
|
||||
def package_qa_check_rpath(file,name, d, elf, messages):
|
||||
"""
|
||||
@@ -161,26 +147,21 @@ def package_qa_check_rpath(file,name, d, elf, messages):
|
||||
if not elf:
|
||||
return
|
||||
|
||||
if os.path.islink(file):
|
||||
return
|
||||
|
||||
scanelf = os.path.join(d.getVar('STAGING_BINDIR_NATIVE',True),'scanelf')
|
||||
bad_dirs = [d.getVar('TMPDIR', True) + "/work", d.getVar('STAGING_DIR_TARGET', True)]
|
||||
bad_dir_test = d.getVar('TMPDIR', True)
|
||||
if not os.path.exists(scanelf):
|
||||
bb.fatal("Can not check RPATH, scanelf (part of pax-utils-native) not found")
|
||||
|
||||
if not bad_dirs[0] in d.getVar('WORKDIR', True):
|
||||
bb.fatal("This class assumed that WORKDIR is ${TMPDIR}/work... Not doing any check")
|
||||
|
||||
phdrs = elf.run_objdump("-p", d)
|
||||
|
||||
import re
|
||||
rpath_re = re.compile("\s+RPATH\s+(.*)")
|
||||
for line in phdrs.split("\n"):
|
||||
m = rpath_re.match(line)
|
||||
if m:
|
||||
rpath = m.group(1)
|
||||
for dir in bad_dirs:
|
||||
if dir in rpath:
|
||||
messages.append("package %s contains bad RPATH %s in file %s" % (name, rpath, file))
|
||||
output = os.popen("%s -B -F%%r#F '%s'" % (scanelf,file))
|
||||
txt = output.readline().split()
|
||||
for line in txt:
|
||||
for dir in bad_dirs:
|
||||
if dir in line:
|
||||
messages.append("package %s contains bad RPATH %s in file %s" % (name, line, file))
|
||||
|
||||
QAPATHTEST[useless-rpaths] = "package_qa_check_useless_rpaths"
|
||||
def package_qa_check_useless_rpaths(file, name, d, elf, messages):
|
||||
@@ -193,17 +174,15 @@ def package_qa_check_useless_rpaths(file, name, d, elf, messages):
|
||||
if not elf:
|
||||
return
|
||||
|
||||
if os.path.islink(file):
|
||||
return
|
||||
objdump = d.getVar('OBJDUMP', True)
|
||||
env_path = d.getVar('PATH', True)
|
||||
|
||||
libdir = d.getVar("libdir", True)
|
||||
base_libdir = d.getVar("base_libdir", True)
|
||||
|
||||
phdrs = elf.run_objdump("-p", d)
|
||||
|
||||
import re
|
||||
rpath_re = re.compile("\s+RPATH\s+(.*)")
|
||||
for line in phdrs.split("\n"):
|
||||
for line in os.popen("LC_ALL=C PATH=%s %s -p '%s' 2> /dev/null" % (env_path, objdump, file), "r"):
|
||||
m = rpath_re.match(line)
|
||||
if m:
|
||||
rpath = m.group(1)
|
||||
@@ -446,30 +425,6 @@ def package_qa_check_desktop(path, name, d, elf, messages):
|
||||
for l in output:
|
||||
messages.append("Desktop file issue: " + l.strip())
|
||||
|
||||
QAPATHTEST[textrel] = "package_qa_textrel"
|
||||
def package_qa_textrel(path, name, d, elf, messages):
|
||||
"""
|
||||
Check if the binary contains relocations in .text
|
||||
"""
|
||||
|
||||
if not elf:
|
||||
return
|
||||
|
||||
if os.path.islink(path):
|
||||
return
|
||||
|
||||
phdrs = elf.run_objdump("-p", d)
|
||||
sane = True
|
||||
|
||||
import re
|
||||
textrel_re = re.compile("\s+TEXTREL\s+")
|
||||
for line in phdrs.split("\n"):
|
||||
if textrel_re.match(line):
|
||||
sane = False
|
||||
|
||||
if not sane:
|
||||
messages.append("ELF binary '%s' has relocations in .text" % path)
|
||||
|
||||
QAPATHTEST[ldflags] = "package_qa_hash_style"
|
||||
def package_qa_hash_style(path, name, d, elf, messages):
|
||||
"""
|
||||
@@ -488,13 +443,14 @@ def package_qa_hash_style(path, name, d, elf, messages):
|
||||
if not gnu_hash:
|
||||
return
|
||||
|
||||
objdump = d.getVar('OBJDUMP', True)
|
||||
env_path = d.getVar('PATH', True)
|
||||
|
||||
sane = False
|
||||
has_syms = False
|
||||
|
||||
phdrs = elf.run_objdump("-p", d)
|
||||
|
||||
# If this binary has symbols, we expect it to have GNU_HASH too.
|
||||
for line in phdrs.split("\n"):
|
||||
for line in os.popen("LC_ALL=C PATH=%s %s -p '%s' 2> /dev/null" % (env_path, objdump, path), "r"):
|
||||
if "SYMTAB" in line:
|
||||
has_syms = True
|
||||
if "GNU_HASH" in line:
|
||||
@@ -524,24 +480,6 @@ def package_qa_check_buildpaths(path, name, d, elf, messages):
|
||||
if tmpdir in file_content:
|
||||
messages.append("File %s in package contained reference to tmpdir" % package_qa_clean_path(path,d))
|
||||
|
||||
|
||||
QAPATHTEST[xorg-driver-abi] = "package_qa_check_xorg_driver_abi"
|
||||
def package_qa_check_xorg_driver_abi(path, name, d, elf, messages):
|
||||
"""
|
||||
Check that all packages containing Xorg drivers have ABI dependencies
|
||||
"""
|
||||
|
||||
# Skip dev, dbg or nativesdk packages
|
||||
if name.endswith("-dev") or name.endswith("-dbg") or name.startswith("nativesdk-"):
|
||||
return
|
||||
|
||||
driverdir = d.expand("${libdir}/xorg/modules/drivers/")
|
||||
if driverdir in path and path.endswith(".so"):
|
||||
for rdep in bb.utils.explode_deps(d.getVar('RDEPENDS_' + name, True) or ""):
|
||||
if rdep.startswith("xorg-abi-"):
|
||||
return
|
||||
messages.append("Package %s contains Xorg driver (%s) but no xorg-abi- dependencies" % (name, os.path.basename(path)))
|
||||
|
||||
def package_qa_check_license(workdir, d):
|
||||
"""
|
||||
Check for changes in the license files
|
||||
@@ -781,9 +719,6 @@ python do_package_qa () {
|
||||
return
|
||||
|
||||
testmatrix = d.getVarFlags("QAPATHTEST")
|
||||
import re
|
||||
# The package name matches the [a-z0-9.+-]+ regular expression
|
||||
pkgname_pattern = re.compile("^[a-z0-9.+-]+$")
|
||||
|
||||
g = globals()
|
||||
walk_sane = True
|
||||
@@ -807,11 +742,6 @@ python do_package_qa () {
|
||||
errorchecks.append(g[testmatrix[e]])
|
||||
|
||||
bb.note("Checking Package: %s" % package)
|
||||
# Check package name
|
||||
if not pkgname_pattern.match(package):
|
||||
package_qa_handle_error("pkgname",
|
||||
"%s doesn't match the [a-z0-9.+-]+ regex\n" % package, d)
|
||||
|
||||
path = "%s/%s" % (pkgdest, package)
|
||||
if not package_qa_walk(path, warnchecks, errorchecks, skip, package, d):
|
||||
walk_sane = False
|
||||
|
||||
@@ -8,7 +8,7 @@ valid_archs = "alpha cris ia64 \
|
||||
i386 x86 \
|
||||
m68knommu m68k ppc powerpc powerpc64 ppc64 \
|
||||
sparc sparc64 \
|
||||
arm aarch64 \
|
||||
arm \
|
||||
m32r mips \
|
||||
sh sh64 um h8300 \
|
||||
parisc s390 v850 \
|
||||
@@ -22,7 +22,6 @@ def map_kernel_arch(a, d):
|
||||
|
||||
if re.match('(i.86|athlon|x86.64)$', a): return 'x86'
|
||||
elif re.match('armeb$', a): return 'arm'
|
||||
elif re.match('aarch64$', a): return 'arm64'
|
||||
elif re.match('mips(el|64|64el)$', a): return 'mips'
|
||||
elif re.match('p(pc|owerpc)(|64)', a): return 'powerpc'
|
||||
elif re.match('sh(3|4)$', a): return 'sh'
|
||||
|
||||
@@ -130,9 +130,8 @@ do_kernel_checkout() {
|
||||
echo "WARNING. ${WORKDIR}/git is not a bare clone."
|
||||
echo "Ensure that the SRC_URI includes the 'bareclone=1' option."
|
||||
|
||||
# We can fix up the kernel repository even if it wasn't a bare clone.
|
||||
# If KMETA is defined, the branch must exist, but a machine branch
|
||||
# can be missing since it may be created later by the tools.
|
||||
# we can fix up the kernel repository, but at the least the meta
|
||||
# branch must be present. The machine branch may be created later.
|
||||
mv ${WORKDIR}/git/.git ${S}
|
||||
rm -rf ${WORKDIR}/git/
|
||||
cd ${S}
|
||||
|
||||
@@ -24,9 +24,9 @@ python __anonymous () {
|
||||
|
||||
inherit kernel-arch deploy
|
||||
|
||||
PACKAGES_DYNAMIC += "^kernel-module-.*"
|
||||
PACKAGES_DYNAMIC += "^kernel-image-.*"
|
||||
PACKAGES_DYNAMIC += "^kernel-firmware-.*"
|
||||
PACKAGES_DYNAMIC += "kernel-module-*"
|
||||
PACKAGES_DYNAMIC += "kernel-image-*"
|
||||
PACKAGES_DYNAMIC += "kernel-firmware-*"
|
||||
|
||||
export OS = "${TARGET_OS}"
|
||||
export CROSS_COMPILE = "${TARGET_PREFIX}"
|
||||
@@ -85,6 +85,7 @@ KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.g
|
||||
|
||||
kernel_do_compile() {
|
||||
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
|
||||
oe_runmake include/linux/version.h CC="${KERNEL_CC}" LD="${KERNEL_LD}"
|
||||
oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}"
|
||||
if test "${KERNEL_IMAGETYPE_FOR_MAKE}.gz" = "${KERNEL_IMAGETYPE}"; then
|
||||
gzip -9c < "${KERNEL_IMAGETYPE_FOR_MAKE}" > "${KERNEL_OUTPUT}"
|
||||
@@ -244,11 +245,11 @@ do_savedefconfig[nostamp] = "1"
|
||||
addtask savedefconfig after do_configure
|
||||
|
||||
pkg_postinst_kernel-base () {
|
||||
update-alternatives --install /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} ${KERNEL_PRIORITY} || true
|
||||
cd /${KERNEL_IMAGEDEST}; update-alternatives --install /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} ${KERNEL_PRIORITY} || true
|
||||
}
|
||||
|
||||
pkg_postrm_kernel-base () {
|
||||
update-alternatives --remove ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} || true
|
||||
cd /${KERNEL_IMAGEDEST}; update-alternatives --remove ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} || true
|
||||
}
|
||||
|
||||
inherit cml1
|
||||
@@ -257,12 +258,11 @@ EXPORT_FUNCTIONS do_compile do_install do_configure
|
||||
|
||||
# kernel-base becomes kernel-${KERNEL_VERSION}
|
||||
# kernel-image becomes kernel-image-${KERNEL_VERISON}
|
||||
PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev kernel-modules"
|
||||
PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev"
|
||||
FILES = ""
|
||||
FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*"
|
||||
FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config* ${KERNEL_SRC_PATH}"
|
||||
FILES_kernel-vmlinux = "/boot/vmlinux*"
|
||||
FILES_kernel-modules = ""
|
||||
RDEPENDS_kernel = "kernel-base"
|
||||
# Allow machines to override this dependency if kernel image files are
|
||||
# not wanted in images as standard
|
||||
@@ -273,8 +273,6 @@ RPROVIDES_kernel-base += "kernel-${KERNEL_VERSION}"
|
||||
ALLOW_EMPTY_kernel = "1"
|
||||
ALLOW_EMPTY_kernel-base = "1"
|
||||
ALLOW_EMPTY_kernel-image = "1"
|
||||
ALLOW_EMPTY_kernel-modules = "1"
|
||||
DESCRIPTION_kernel-modules = "Kernel modules meta package"
|
||||
|
||||
pkg_postinst_kernel-image () {
|
||||
if [ ! -e "$D/lib/modules/${KERNEL_VERSION}" ]; then
|
||||
@@ -400,12 +398,10 @@ python populate_packages_prepend () {
|
||||
|
||||
dvar = d.getVar('PKGD', True)
|
||||
|
||||
use_update_modules = oe.utils.contains('DISTRO_FEATURES', 'update-modules', True, False, d)
|
||||
|
||||
# If autoloading is requested, output /etc/modules-load.d/<name>.conf and append
|
||||
# appropriate modprobe commands to the postinst
|
||||
autoload = d.getVar('module_autoload_%s' % basename, True)
|
||||
if autoload and use_update_modules:
|
||||
if autoload:
|
||||
name = '%s/etc/modules-load.d/%s.conf' % (dvar, basename)
|
||||
f = open(name, 'w')
|
||||
for m in autoload.split():
|
||||
@@ -419,16 +415,15 @@ python populate_packages_prepend () {
|
||||
|
||||
# Write out any modconf fragment
|
||||
modconf = d.getVar('module_conf_%s' % basename, True)
|
||||
if modconf and use_update_modules:
|
||||
if modconf:
|
||||
name = '%s/etc/modprobe.d/%s.conf' % (dvar, basename)
|
||||
f = open(name, 'w')
|
||||
f.write("%s\n" % modconf)
|
||||
f.close()
|
||||
|
||||
if use_update_modules:
|
||||
files = d.getVar('FILES_%s' % pkg, True)
|
||||
files = "%s /etc/modules-load.d/%s.conf /etc/modprobe.d/%s.conf" % (files, basename, basename)
|
||||
d.setVar('FILES_%s' % pkg, files)
|
||||
files = d.getVar('FILES_%s' % pkg, True)
|
||||
files = "%s /etc/modules-load.d/%s.conf /etc/modprobe.d/%s.conf" % (files, basename, basename)
|
||||
d.setVar('FILES_%s' % pkg, files)
|
||||
|
||||
if vals.has_key("description"):
|
||||
old_desc = d.getVar('DESCRIPTION_' + pkg, True) or ""
|
||||
@@ -444,17 +439,12 @@ python populate_packages_prepend () {
|
||||
module_regex = '^(.*)\.k?o$'
|
||||
module_pattern = 'kernel-module-%s'
|
||||
|
||||
use_update_modules = oe.utils.contains('DISTRO_FEATURES', 'update-modules', True, False, d)
|
||||
if use_update_modules:
|
||||
postinst = d.getVar('pkg_postinst_modules', True)
|
||||
postrm = d.getVar('pkg_postrm_modules', True)
|
||||
else:
|
||||
postinst = None
|
||||
postrm = None
|
||||
postinst = d.getVar('pkg_postinst_modules', True)
|
||||
postrm = d.getVar('pkg_postrm_modules', True)
|
||||
do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.bin$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='')
|
||||
do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.fw$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='')
|
||||
do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.cis$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='')
|
||||
do_split_packages(d, root='/lib/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='%skernel-%s' % (['', 'update-modules '][use_update_modules], d.getVar("KERNEL_VERSION", True)))
|
||||
do_split_packages(d, root='/lib/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='update-modules kernel-%s' % d.getVar("KERNEL_VERSION", True))
|
||||
|
||||
# If modules-load.d and modprobe.d are empty at this point, remove them to
|
||||
# avoid warnings. removedirs only raises an OSError if an empty
|
||||
@@ -466,6 +456,8 @@ python populate_packages_prepend () {
|
||||
|
||||
import re
|
||||
metapkg = "kernel-modules"
|
||||
d.setVar('ALLOW_EMPTY_' + metapkg, "1")
|
||||
d.setVar('FILES_' + metapkg, "")
|
||||
blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux' ]
|
||||
for l in module_deps.values():
|
||||
for i in l:
|
||||
@@ -477,6 +469,9 @@ python populate_packages_prepend () {
|
||||
if not pkg in blacklist and not pkg in metapkg_rdepends:
|
||||
metapkg_rdepends.append(pkg)
|
||||
d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends))
|
||||
d.setVar('DESCRIPTION_' + metapkg, 'Kernel modules meta package')
|
||||
packages.append(metapkg)
|
||||
d.setVar('PACKAGES', ' '.join(packages))
|
||||
}
|
||||
|
||||
# Support checking the kernel size since some kernels need to reside in partitions
|
||||
|
||||
@@ -4,7 +4,6 @@ do_install() {
|
||||
h=`echo $r|sed -e's,\.x$,.h,'`
|
||||
install -m 0644 ${S}/sunrpc/rpcsvc/$h ${D}/${includedir}/rpcsvc/
|
||||
done
|
||||
install -d ${D}/${sysconfdir}/
|
||||
install -m 0644 ${WORKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/
|
||||
install -d ${D}${localedir}
|
||||
make -f ${WORKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED"
|
||||
|
||||
@@ -246,7 +246,7 @@ python package_do_split_gconvs () {
|
||||
def output_locale_binary_rdepends(name, pkgname, locale, encoding):
|
||||
m = re.match("(.*)\.(.*)", name)
|
||||
if m:
|
||||
libc_name = "%s.%s" % (m.group(1), m.group(2).lower())
|
||||
libc_name = "%s.%s" % (m.group(1), m.group(2).lower().replace("-",""))
|
||||
else:
|
||||
libc_name = name
|
||||
d.setVar('RDEPENDS_%s' % pkgname, legitimize_package_name('%s-binary-localedata-%s' \
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
LICENSE_DIRECTORY ??= "${DEPLOY_DIR}/licenses"
|
||||
LICSSTATEDIR = "${WORKDIR}/license-destdir/"
|
||||
|
||||
addtask populate_lic after do_patch before do_build
|
||||
addtask populate_lic after do_patch before do_package
|
||||
do_populate_lic[dirs] = "${LICSSTATEDIR}/${PN}"
|
||||
do_populate_lic[cleandirs] = "${LICSSTATEDIR}"
|
||||
|
||||
@@ -97,9 +97,9 @@ python do_populate_lic() {
|
||||
|
||||
pn = d.getVar('PN', True)
|
||||
for package in d.getVar('PACKAGES', True):
|
||||
if d.getVar('LICENSE_' + package, True):
|
||||
if d.getVar('LICENSE_' + pn + '-' + package, True):
|
||||
license_types = license_types + ' & ' + \
|
||||
d.getVar('LICENSE_' + package, True)
|
||||
d.getVar('LICENSE_' + pn + '-' + package, True)
|
||||
|
||||
#If we get here with no license types, then that means we have a recipe
|
||||
#level license. If so, we grab only those.
|
||||
|
||||
@@ -26,14 +26,3 @@ KERNEL_AR = "${HOST_PREFIX}ar${KERNEL_ARSUFFIX} ${HOST_AR_KERNEL_ARCH}"
|
||||
|
||||
# kernel modules are generally machine specific
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
#
|
||||
# Ensure the hostprogs are available for module compilation. Modules that
|
||||
# inherit this recipe and override do_compile() should be sure to call
|
||||
# do_make_scripts() or ensure the scripts are built independently.
|
||||
#
|
||||
do_make_scripts() {
|
||||
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
|
||||
oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \
|
||||
-C ${STAGING_KERNEL_DIR} scripts
|
||||
}
|
||||
|
||||
@@ -1,8 +1,19 @@
|
||||
RDEPENDS_${PN} += "kernel-image ${@oe.utils.contains('DISTRO_FEATURES', 'update-modules', 'update-modules', '', d)}"
|
||||
RDEPENDS += "kernel-image update-modules"
|
||||
DEPENDS += "virtual/kernel"
|
||||
|
||||
inherit module-base
|
||||
|
||||
#
|
||||
# Ensure the hostprogs are available for module compilation. Modules that
|
||||
# inherit this recipe and override do_compile() should be sure to call
|
||||
# do_make_scripts() or ensure the scripts are built independently.
|
||||
#
|
||||
do_make_scripts() {
|
||||
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
|
||||
oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \
|
||||
-C ${STAGING_KERNEL_DIR} scripts
|
||||
}
|
||||
|
||||
addtask make_scripts before do_compile
|
||||
do_make_scripts[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
|
||||
do_make_scripts[deptask] = "do_populate_sysroot"
|
||||
|
||||
@@ -18,17 +18,10 @@ python multilib_virtclass_handler () {
|
||||
e.data.setVar("PN", variant + "-" + e.data.getVar("PN", False))
|
||||
return
|
||||
|
||||
if bb.data.inherits_class('cross-canadian', e.data):
|
||||
e.data.setVar("MLPREFIX", variant + "-")
|
||||
override = ":virtclass-multilib-" + variant
|
||||
e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + override)
|
||||
bb.data.update_data(e.data)
|
||||
return
|
||||
|
||||
if bb.data.inherits_class('native', e.data):
|
||||
raise bb.parse.SkipPackage("We can't extend native recipes")
|
||||
|
||||
if bb.data.inherits_class('nativesdk', e.data) or bb.data.inherits_class('crosssdk', e.data):
|
||||
if bb.data.inherits_class('nativesdk', e.data):
|
||||
raise bb.parse.SkipPackage("We can't extend nativesdk recipes")
|
||||
|
||||
save_var_name=e.data.getVar("MULTILIB_SAVE_VARNAME", True) or ""
|
||||
@@ -73,20 +66,16 @@ python __anonymous () {
|
||||
clsextend.map_depends_variable("TOOLCHAIN_TARGET_TASK")
|
||||
clsextend.map_depends_variable("TOOLCHAIN_TARGET_TASK_ATTEMPTONLY")
|
||||
|
||||
if bb.data.inherits_class('image', d):
|
||||
return
|
||||
|
||||
clsextend.map_depends_variable("DEPENDS")
|
||||
clsextend.map_variable("PROVIDES")
|
||||
|
||||
if bb.data.inherits_class('cross-canadian', d):
|
||||
if bb.data.inherits_class('image', d) or bb.data.inherits_class('populate_sdk_base', d):
|
||||
return
|
||||
|
||||
clsextend.rename_packages()
|
||||
clsextend.rename_package_variables((d.getVar("PACKAGEVARS", True) or "").split())
|
||||
|
||||
clsextend.map_depends_variable("DEPENDS")
|
||||
clsextend.map_packagevars()
|
||||
clsextend.map_regexp_variable("PACKAGES_DYNAMIC")
|
||||
clsextend.map_variable("PROVIDES")
|
||||
clsextend.map_variable("PACKAGES_DYNAMIC")
|
||||
clsextend.map_variable("PACKAGE_INSTALL")
|
||||
clsextend.map_variable("INITSCRIPT_PACKAGES")
|
||||
}
|
||||
@@ -101,7 +90,7 @@ python do_package_qa_multilib() {
|
||||
for i in values:
|
||||
if i.startswith('virtual/'):
|
||||
i = i[len('virtual/'):]
|
||||
if (not i.startswith('kernel-module')) and (not i.startswith(mlprefix)) and (not 'cross-canadian' in i) and (not i.startswith("nativesdk-")):
|
||||
if (not i.startswith('kernel-module')) and (not i.startswith(mlprefix)):
|
||||
candidates.append(i)
|
||||
if len(candidates) > 0:
|
||||
bb.warn("Multilib QA Issue: %s package %s - suspicious values '%s' in %s"
|
||||
@@ -120,3 +109,4 @@ python do_package_qa_multilib() {
|
||||
check_mlprefix(pkg, 'RREPLACES', ml)
|
||||
check_mlprefix(pkg, 'RCONFLICTS', ml)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,29 +1,16 @@
|
||||
inherit siteinfo
|
||||
|
||||
# If applicable on the architecture, this routine will rename the header and
|
||||
# add a unique identifier to the name for the ABI/bitsize that is being used.
|
||||
# A wrapper will be generated for the architecture that knows how to call
|
||||
# all of the ABI variants for that given architecture.
|
||||
# If applicable on the architecture, this routine will rename the header and add
|
||||
# a unique identifier to the name for the ABI/bitsize that is being used. A wrapper will
|
||||
# be generated for the architecture that knows how to call all of the ABI variants for that
|
||||
# given architecture.
|
||||
#
|
||||
# TODO: mips64 n32 is not yet recognized in this code
|
||||
# when that is identified the name of the wrapped item should be "n32" and appropriately
|
||||
# determined int he if coding...
|
||||
#
|
||||
oe_multilib_header() {
|
||||
# We use
|
||||
# For ARM: We don't support multilib builds.
|
||||
# For MIPS: "n32" is a special case, which needs to be
|
||||
# distinct from both 64-bit and 32-bit.
|
||||
case ${TARGET_ARCH} in
|
||||
arm*) return
|
||||
;;
|
||||
mips*) case "${MIPSPKGSFX_ABI}" in
|
||||
"-n32")
|
||||
ident=n32
|
||||
;;
|
||||
*)
|
||||
ident=${SITEINFO_BITS}
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*) ident=${SITEINFO_BITS}
|
||||
esac
|
||||
# Do nothing on ARM, only one ABI is supported at once
|
||||
if echo ${TARGET_ARCH} | grep -q arm; then
|
||||
return
|
||||
fi
|
||||
@@ -33,6 +20,7 @@ oe_multilib_header() {
|
||||
continue
|
||||
fi
|
||||
stem=$(echo $each_header | sed 's#\.h$##')
|
||||
ident=${SITEINFO_BITS}
|
||||
# if mips64/n32 set ident to n32
|
||||
mv ${D}/${includedir}/$each_header ${D}/${includedir}/${stem}-${ident}.h
|
||||
|
||||
|
||||
@@ -6,14 +6,14 @@ inherit relocatable
|
||||
EXCLUDE_FROM_WORLD = "1"
|
||||
|
||||
PACKAGES = ""
|
||||
PACKAGES_class-native = ""
|
||||
PACKAGES_virtclass-native = ""
|
||||
PACKAGES_DYNAMIC = ""
|
||||
PACKAGES_DYNAMIC_class-native = ""
|
||||
PACKAGES_DYNAMIC_virtclass-native = ""
|
||||
PACKAGE_ARCH = "${BUILD_ARCH}"
|
||||
|
||||
# used by cmake class
|
||||
OECMAKE_RPATH = "${libdir}"
|
||||
OECMAKE_RPATH_class-native = "${libdir}"
|
||||
OECMAKE_RPATH_virtclass-native = "${libdir}"
|
||||
|
||||
# When this class has packaging enabled, setting
|
||||
# RPROVIDES becomes unnecessary.
|
||||
@@ -82,12 +82,13 @@ bindir .= "${NATIVE_PACKAGE_PATH_SUFFIX}"
|
||||
libdir .= "${NATIVE_PACKAGE_PATH_SUFFIX}"
|
||||
libexecdir .= "${NATIVE_PACKAGE_PATH_SUFFIX}"
|
||||
|
||||
do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}/${STAGING_DIR_NATIVE}/"
|
||||
do_populate_sysroot[sstate-outputdirs] = "${STAGING_DIR_NATIVE}/"
|
||||
do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}/${STAGING_DIR_NATIVE}"
|
||||
do_populate_sysroot[sstate-outputdirs] = "${STAGING_DIR_NATIVE}"
|
||||
|
||||
# Since we actually install these into situ there is no staging prefix
|
||||
STAGING_DIR_HOST = ""
|
||||
STAGING_DIR_TARGET = ""
|
||||
SHLIBSDIR = "${STAGING_DIR_NATIVE}/shlibs"
|
||||
PKG_CONFIG_DIR = "${libdir}/pkgconfig"
|
||||
|
||||
EXTRA_NATIVE_PKGCONFIG_PATH ?= ""
|
||||
@@ -156,3 +157,4 @@ do_package_write_deb[noexec] = "1"
|
||||
do_package_write_rpm[noexec] = "1"
|
||||
|
||||
do_populate_sysroot[stamp-extra-info] = ""
|
||||
do_package[stamp-extra-info] = ""
|
||||
|
||||
@@ -91,3 +91,4 @@ python () {
|
||||
addhandler nativesdk_virtclass_handler
|
||||
|
||||
do_populate_sysroot[stamp-extra-info] = ""
|
||||
do_package[stamp-extra-info] = ""
|
||||
|
||||
@@ -232,7 +232,7 @@ def splitfile(file, debugfile, debugsrcdir, d):
|
||||
objcopy = d.getVar("OBJCOPY", True)
|
||||
debugedit = d.expand("${STAGING_LIBDIR_NATIVE}/rpm/bin/debugedit")
|
||||
workdir = d.getVar("WORKDIR", True)
|
||||
workparentdir = d.getVar("DEBUGSRC_OVERRIDE_PATH", True) or os.path.dirname(os.path.dirname(workdir))
|
||||
workparentdir = d.getVar("DEBUGSRC_OVERRIDE_PATH", True) or os.path.dirname(workdir)
|
||||
sourcefile = d.expand("${WORKDIR}/debugsources.list")
|
||||
|
||||
# We ignore kernel modules, we don't generate debug info files.
|
||||
@@ -277,8 +277,8 @@ def splitfile2(debugsrcdir, d):
|
||||
objcopy = d.getVar("OBJCOPY", True)
|
||||
debugedit = d.expand("${STAGING_LIBDIR_NATIVE}/rpm/bin/debugedit")
|
||||
workdir = d.getVar("WORKDIR", True)
|
||||
workparentdir = os.path.dirname(os.path.dirname(workdir))
|
||||
workbasedir = os.path.basename(os.path.dirname(workdir)) + "/" + os.path.basename(workdir)
|
||||
workparentdir = os.path.dirname(workdir)
|
||||
workbasedir = os.path.basename(workdir)
|
||||
|
||||
nosuchdir = []
|
||||
basepath = dvar
|
||||
@@ -292,7 +292,7 @@ def splitfile2(debugsrcdir, d):
|
||||
# We need to ignore files that are not actually ours
|
||||
# we do this by only paying attention to items from this package
|
||||
processdebugsrc += "fgrep -z '%s' | "
|
||||
processdebugsrc += "(cd '%s' ; cpio -pd0mlL --no-preserve-owner '%s%s' 2>/dev/null)"
|
||||
processdebugsrc += "(cd '%s' ; cpio -pd0mL --no-preserve-owner '%s%s' 2>/dev/null)"
|
||||
|
||||
subprocess.call(processdebugsrc % (sourcefile, workbasedir, workparentdir, dvar, debugsrcdir), shell=True)
|
||||
|
||||
@@ -451,7 +451,7 @@ python package_do_split_locales() {
|
||||
pkg = pn + '-locale-' + ln
|
||||
packages.append(pkg)
|
||||
d.setVar('FILES_' + pkg, os.path.join(datadir, 'locale', l))
|
||||
d.setVar('RRECOMMENDS_' + pkg, '%s%svirtual-locale-%s' % (pndep, mlprefix, ln))
|
||||
d.setVar('RDEPENDS_' + pkg, '%s%svirtual-locale-%s' % (pndep, mlprefix, ln))
|
||||
d.setVar('RPROVIDES_' + pkg, '%s-locale %s%s-translation' % (pn, mlprefix, ln))
|
||||
d.setVar('SUMMARY_' + pkg, '%s - %s translations' % (summary, l))
|
||||
d.setVar('DESCRIPTION_' + pkg, '%s This package contains language translation files for the %s locale.' % (description, l))
|
||||
@@ -1292,17 +1292,8 @@ python package_do_filedeps() {
|
||||
d.setVar("FILERPROVIDESFLIST_" + pkg, " ".join(provides_files))
|
||||
}
|
||||
|
||||
def getshlibsdirs(d):
|
||||
dirs = []
|
||||
triplets = (d.getVar("PKGTRIPLETS") or "").split()
|
||||
for t in triplets:
|
||||
dirs.append("${TMPDIR}/pkgdata/" + t + "/shlibs/")
|
||||
return " ".join(dirs)
|
||||
getshlibsdirs[vardepsexclude] = "PKGTRIPLETS"
|
||||
|
||||
SHLIBSDIRS = "${@getshlibsdirs(d)}"
|
||||
SHLIBSDIR = "${TMPDIR}/pkgdata/${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}/shlibs"
|
||||
SHLIBSWORKDIR = "${PKGDESTWORK}/shlibs"
|
||||
SHLIBSDIR = "${STAGING_DIR_HOST}/shlibs"
|
||||
SHLIBSWORKDIR = "${WORKDIR}/shlibs"
|
||||
|
||||
python package_do_shlibs() {
|
||||
import re, pipes
|
||||
@@ -1327,7 +1318,7 @@ python package_do_shlibs() {
|
||||
|
||||
pkgdest = d.getVar('PKGDEST', True)
|
||||
|
||||
shlibs_dirs = d.getVar('SHLIBSDIRS', True).split()
|
||||
shlibs_dir = d.getVar('SHLIBSDIR', True)
|
||||
shlibswork_dir = d.getVar('SHLIBSWORKDIR', True)
|
||||
|
||||
# Take shared lock since we're only reading, not writing
|
||||
@@ -1481,7 +1472,7 @@ python package_do_shlibs() {
|
||||
d.setVar('pkg_postinst_%s' % pkg, postinst)
|
||||
|
||||
list_re = re.compile('^(.*)\.list$')
|
||||
for dir in shlibs_dirs:
|
||||
for dir in [shlibs_dir]:
|
||||
if not os.path.exists(dir):
|
||||
continue
|
||||
for file in os.listdir(dir):
|
||||
@@ -1552,7 +1543,7 @@ python package_do_pkgconfig () {
|
||||
workdir = d.getVar('WORKDIR', True)
|
||||
pkgdest = d.getVar('PKGDEST', True)
|
||||
|
||||
shlibs_dirs = d.getVar('SHLIBSDIRS', True).split()
|
||||
shlibs_dir = d.getVar('SHLIBSDIR', True)
|
||||
shlibswork_dir = d.getVar('SHLIBSWORKDIR', True)
|
||||
|
||||
pc_re = re.compile('(.*)\.pc$')
|
||||
@@ -1603,7 +1594,7 @@ python package_do_pkgconfig () {
|
||||
f.write('%s\n' % p)
|
||||
f.close()
|
||||
|
||||
for dir in shlibs_dirs:
|
||||
for dir in [shlibs_dir]:
|
||||
if not os.path.exists(dir):
|
||||
continue
|
||||
for file in os.listdir(dir):
|
||||
@@ -1862,9 +1853,10 @@ SSTATETASKS += "do_package"
|
||||
do_package[sstate-name] = "package"
|
||||
do_package[cleandirs] = "${PKGDESTWORK}"
|
||||
do_package[sstate-plaindirs] = "${PKGD} ${PKGDEST}"
|
||||
do_package[sstate-inputdirs] = "${PKGDESTWORK}"
|
||||
do_package[sstate-outputdirs] = "${PKGDATA_DIR}"
|
||||
do_package[sstate-inputdirs] = "${PKGDESTWORK} ${SHLIBSWORKDIR}"
|
||||
do_package[sstate-outputdirs] = "${PKGDATA_DIR} ${SHLIBSDIR}"
|
||||
do_package[sstate-lockfile-shared] = "${PACKAGELOCK}"
|
||||
do_package[stamp-extra-info] = "${MACHINE}"
|
||||
do_package_setscene[dirs] = "${STAGING_DIR}"
|
||||
|
||||
python do_package_setscene () {
|
||||
|
||||
@@ -13,7 +13,7 @@ PACKAGES = "${PN}"
|
||||
# By default, packagegroup packages do not depend on a certain architecture.
|
||||
# Only if dependencies are modified by MACHINE_FEATURES, packages
|
||||
# need to be set to MACHINE_ARCH after inheriting packagegroup.bbclass
|
||||
inherit allarch
|
||||
PACKAGE_ARCH = "all"
|
||||
|
||||
# This automatically adds -dbg and -dev flavours of all PACKAGES
|
||||
# to the list. Their dependencies (RRECOMMENDS) are handled as usual
|
||||
|
||||
@@ -1,2 +1,7 @@
|
||||
DEPENDS_prepend = "pkgconfig-native "
|
||||
|
||||
PKGCONFIGRDEP = "pkgconfig"
|
||||
PKGCONFIGRDEP_virtclass-native = ""
|
||||
PKGCONFIGRDEP_virtclass-nativesdk = "nativesdk-pkgconfig"
|
||||
|
||||
RDEPENDS_${PN}-dev += "${PKGCONFIGRDEP}"
|
||||
|
||||
@@ -7,7 +7,7 @@ SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
|
||||
|
||||
SDKTARGETSYSROOT = "${SDKPATH}/sysroots/${MULTIMACH_TARGET_SYS}"
|
||||
|
||||
TOOLCHAIN_HOST_TASK ?= "nativesdk-packagegroup-sdk-host packagegroup-cross-canadian-${@' packagegroup-cross-canadian-'.join(all_multilib_tune_values(d, 'TRANSLATED_TARGET_ARCH').split())}"
|
||||
TOOLCHAIN_HOST_TASK ?= "nativesdk-packagegroup-sdk-host packagegroup-cross-canadian-${TRANSLATED_TARGET_ARCH}"
|
||||
TOOLCHAIN_HOST_TASK_ATTEMPTONLY ?= ""
|
||||
TOOLCHAIN_TARGET_TASK ?= "packagegroup-core-standalone-sdk-target packagegroup-core-standalone-sdk-target-dbg"
|
||||
TOOLCHAIN_TARGET_TASK_ATTEMPTONLY ?= ""
|
||||
@@ -24,8 +24,6 @@ PID = "${@os.getpid()}"
|
||||
|
||||
EXCLUDE_FROM_WORLD = "1"
|
||||
|
||||
SDK_PACKAGING_FUNC ?= "create_shar"
|
||||
|
||||
python () {
|
||||
# If we don't do this we try and run the mapping hooks while parsing which is slow
|
||||
# bitbake should really provide something to let us know this...
|
||||
@@ -58,7 +56,7 @@ fakeroot python do_populate_sdk() {
|
||||
|
||||
bb.build.exec_func("tar_sdk", d)
|
||||
|
||||
bb.build.exec_func(d.getVar("SDK_PACKAGING_FUNC", True), d)
|
||||
bb.build.exec_func("create_shar", d)
|
||||
}
|
||||
|
||||
fakeroot populate_sdk_image() {
|
||||
@@ -118,16 +116,7 @@ fakeroot create_shar() {
|
||||
cat << "EOF" > ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
|
||||
#!/bin/bash
|
||||
|
||||
INST_ARCH=$(uname -m | sed -e "s/i[3-6]86/ix86/" -e "s/x86[-_]64/x86_64/")
|
||||
SDK_ARCH=$(echo ${SDK_ARCH} | sed -e "s/i[5-6]86/ix86/")
|
||||
|
||||
if [ "$INST_ARCH" != "$SDK_ARCH" ]; then
|
||||
echo "Error: Installation machine not supported!"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
DEFAULT_INSTALL_DIR="${SDKPATH}"
|
||||
COMPONENTS_LEN=$(echo ".${SDKPATH}" | sed "s/\// /g" | wc -w)
|
||||
|
||||
printf "Enter target directory for SDK (default: $DEFAULT_INSTALL_DIR): "
|
||||
read target_sdk_dir
|
||||
@@ -164,14 +153,13 @@ fi
|
||||
payload_offset=$(($(grep -na -m1 "^MARKER:$" $0|cut -d':' -f1) + 1))
|
||||
|
||||
printf "Extracting SDK..."
|
||||
tail -n +$payload_offset $0| tar xj --strip-components=$COMPONENTS_LEN -C $target_sdk_dir
|
||||
tail -n +$payload_offset $0| tar xj --strip-components=4 -C $target_sdk_dir
|
||||
echo "done"
|
||||
|
||||
printf "Setting it up..."
|
||||
# fix environment paths
|
||||
for env_setup_script in `ls $target_sdk_dir/environment-setup-*`; do
|
||||
sed -e "s:$DEFAULT_INSTALL_DIR:$target_sdk_dir:g" -i $env_setup_script
|
||||
done
|
||||
env_setup_script=$(find $target_sdk_dir/ -name "environment-setup-${REAL_MULTIMACH_TARGET_SYS}")
|
||||
sed -e "s:$DEFAULT_INSTALL_DIR:$target_sdk_dir:g" -i $env_setup_script
|
||||
|
||||
# fix dynamic loader paths in all ELF SDK binaries
|
||||
native_sysroot=$(cat $env_setup_script |grep OECORE_NATIVE_SYSROOT|cut -d'=' -f2|tr -d '"')
|
||||
|
||||
@@ -13,7 +13,7 @@ def bad_runtime_vars(cfgdata, d):
|
||||
__note("%s should be %s_${PN}" % (var, var), d)
|
||||
|
||||
__recipe_sanity_reqvars = "DESCRIPTION"
|
||||
__recipe_sanity_reqdiffvars = ""
|
||||
__recipe_sanity_reqdiffvars = "LICENSE"
|
||||
def req_vars(cfgdata, d):
|
||||
for var in d.getVar("__recipe_sanity_reqvars", True).split():
|
||||
if not d.getVar(var, 0):
|
||||
@@ -23,6 +23,11 @@ def req_vars(cfgdata, d):
|
||||
val = d.getVar(var, 0)
|
||||
cfgval = cfgdata.get(var)
|
||||
|
||||
# Hardcoding is bad, but I'm lazy. We don't care about license being
|
||||
# unset if the recipe has no sources!
|
||||
if var == "LICENSE" and d.getVar("SRC_URI", True) == cfgdata.get("SRC_URI"):
|
||||
continue
|
||||
|
||||
if not val:
|
||||
__note("%s should be set" % var, d)
|
||||
elif val == cfgval:
|
||||
@@ -88,7 +93,7 @@ def can_remove_FILESDIR(cfgdata, d):
|
||||
expanded == d.expand(expected))
|
||||
|
||||
def can_remove_others(p, cfgdata, d):
|
||||
for k in ["S", "PV", "PN", "DESCRIPTION", "DEPENDS",
|
||||
for k in ["S", "PV", "PN", "DESCRIPTION", "LICENSE", "DEPENDS",
|
||||
"SECTION", "PACKAGES", "EXTRA_OECONF", "EXTRA_OEMAKE"]:
|
||||
#for k in cfgdata:
|
||||
unexpanded = d.getVar(k, 0)
|
||||
|
||||
@@ -14,9 +14,9 @@ do_rootfs[recrdeptask] += "do_package_write_ipk"
|
||||
|
||||
do_rootfs[lockfiles] += "${WORKDIR}/ipk.lock"
|
||||
|
||||
IPKG_ARGS = "-f ${IPKGCONF_TARGET} -o ${IMAGE_ROOTFS} --force-overwrite --force_postinstall --prefer-arch-to-version"
|
||||
IPKG_ARGS = "-f ${IPKGCONF_TARGET} -o ${IMAGE_ROOTFS} --force-overwrite --prefer-arch-to-version"
|
||||
# The _POST version also works when constructing the matching SDK
|
||||
IPKG_ARGS_POST = "-f ${IPKGCONF_TARGET} -o $INSTALL_ROOTFS_IPK --force-overwrite --force_postinstall --prefer-arch-to-version"
|
||||
IPKG_ARGS_POST = "-f ${IPKGCONF_TARGET} -o $INSTALL_ROOTFS_IPK --force-overwrite --prefer-arch-to-version"
|
||||
|
||||
OPKG_PREPROCESS_COMMANDS = "package_update_index_ipk; package_generate_ipkg_conf"
|
||||
|
||||
@@ -111,11 +111,11 @@ fakeroot rootfs_ipk_do_rootfs () {
|
||||
fi
|
||||
|
||||
# Also delete the status files
|
||||
remove_packaging_data_files
|
||||
rm -rf ${IMAGE_ROOTFS}${opkglibdir}
|
||||
fi
|
||||
fi
|
||||
set +x
|
||||
log_check rootfs
|
||||
log_check rootfs
|
||||
}
|
||||
|
||||
rootfs_ipk_write_manifest() {
|
||||
@@ -134,8 +134,8 @@ rootfs_ipk_write_manifest() {
|
||||
|
||||
remove_packaging_data_files() {
|
||||
rm -rf ${IMAGE_ROOTFS}${opkglibdir}
|
||||
# We need the directory for the package manager lock
|
||||
mkdir ${IMAGE_ROOTFS}${opkglibdir}
|
||||
# We need the directory for the package manager lock
|
||||
mkdir ${IMAGE_ROOTFS}${opkglibdir}
|
||||
}
|
||||
|
||||
list_installed_packages() {
|
||||
|
||||
@@ -81,9 +81,7 @@ fakeroot rootfs_rpm_do_rootfs () {
|
||||
|
||||
# Report delayed package scriptlets
|
||||
for i in ${IMAGE_ROOTFS}/etc/rpm-postinsts/*; do
|
||||
if [ -f $i ]; then
|
||||
echo "Delayed package scriptlet: `head -n 3 $i | tail -n 1`"
|
||||
fi
|
||||
echo "Delayed package scriptlet: `head -n 3 $i | tail -n 1`"
|
||||
done
|
||||
|
||||
install -d ${IMAGE_ROOTFS}/${sysconfdir}/rcS.d
|
||||
|
||||
@@ -605,8 +605,6 @@ def check_sanity(sanity_data):
|
||||
f.write(current_abi)
|
||||
elif abi == "7" and current_abi == "8":
|
||||
messages = messages + "Your configuration is using stamp files including the sstate hash but your build directory was built with stamp files that do not include this.\nTo continue, either rebuild or switch back to the OEBasic signature handler with BB_SIGNATURE_HANDLER = 'OEBasic'.\n"
|
||||
elif (abi != current_abi and current_abi == "9"):
|
||||
messages = messages + "The layout of the TMPDIR STAMPS directory has changed. Please clean out TMPDIR and rebuild (sstate will be still be valid and reused)\n"
|
||||
elif (abi != current_abi):
|
||||
# Code to convert from one ABI to another could go here if possible.
|
||||
messages = messages + "Error, TMPDIR has changed its layout version number (%s to %s) and you need to either rebuild, revert or adjust it at your own risk.\n" % (abi, current_abi)
|
||||
@@ -641,9 +639,6 @@ python check_sanity_eventhandler() {
|
||||
sanity_data.setVar("SANITY_USE_EVENTS", "1")
|
||||
check_sanity(sanity_data)
|
||||
bb.event.fire(bb.event.SanityCheckPassed(), e.data)
|
||||
elif bb.event.getName(e) == "NetworkTest":
|
||||
sanity_data = copy_data(e)
|
||||
bb.event.fire(bb.event.NetworkTestFailed() if check_connectivity(sanity_data) else bb.event.NetworkTestPassed(), e.data)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
def siteinfo_data(d):
|
||||
archinfo = {
|
||||
"allarch": "endian-little bit-32", # bogus, but better than special-casing the checks below for allarch
|
||||
"aarch64": "endian-little bit-64 arm-common",
|
||||
"arm": "endian-little bit-32 arm-common",
|
||||
"armeb": "endian-big bit-32 arm-common",
|
||||
"avr32": "endian-big bit-32 avr32-common",
|
||||
@@ -51,7 +50,6 @@ def siteinfo_data(d):
|
||||
"linux": "common-linux common-glibc",
|
||||
"linux-gnu": "common-linux common-glibc",
|
||||
"linux-gnux32": "common-linux common-glibc",
|
||||
"linux-gnun32": "common-linux common-glibc",
|
||||
"linux-gnueabi": "common-linux common-glibc",
|
||||
"linux-gnuspe": "common-linux common-glibc",
|
||||
"linux-uclibc": "common-linux common-uclibc",
|
||||
@@ -62,15 +60,10 @@ def siteinfo_data(d):
|
||||
"mingw32": "common-mingw",
|
||||
}
|
||||
targetinfo = {
|
||||
"aarch64-linux-gnu": "aarch64-linux",
|
||||
"arm-linux-gnueabi": "arm-linux",
|
||||
"arm-linux-uclibceabi": "arm-linux-uclibc",
|
||||
"armeb-linux-gnueabi": "armeb-linux",
|
||||
"armeb-linux-uclibceabi": "armeb-linux-uclibc",
|
||||
"mips-linux-gnun32": "mips-linux",
|
||||
"mipsel-linux-gnun32": "mipsel-linux",
|
||||
"mips64-linux-gnun32": "mips-linux",
|
||||
"mips64el-linux-gnun32": "mipsel-linux",
|
||||
"powerpc-linux": "powerpc32-linux",
|
||||
"powerpc-linux-uclibc": "powerpc-linux powerpc32-linux",
|
||||
"powerpc-linux-gnuspe": "powerpc-linux powerpc32-linux",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
SSTATE_VERSION = "3"
|
||||
SSTATE_VERSION = "2"
|
||||
|
||||
SSTATE_MANIFESTS ?= "${TMPDIR}/sstate-control"
|
||||
SSTATE_MANFILEBASE = "${SSTATE_MANIFESTS}/manifest-${SSTATE_MANMACH}-"
|
||||
@@ -17,10 +17,15 @@ SSTATE_EXTRAPATH = ""
|
||||
SSTATE_EXTRAPATHWILDCARD = ""
|
||||
SSTATE_PATHSPEC = "${SSTATE_DIR}/${SSTATE_EXTRAPATHWILDCARD}*/${SSTATE_PKGSPEC}"
|
||||
|
||||
SSTATE_DUPWHITELIST = "${DEPLOY_DIR_IMAGE}/ ${DEPLOY_DIR}/licenses/"
|
||||
# In theory we should be using:
|
||||
# SSTATE_DUPWHITELIST = "${DEPLOY_DIR_IMAGE}/ ${DEPLOY_DIR}/licenses/ ${DEPLOY_DIR_IPK}/all/ ${DEPLOY_DIR_RPM}/all ${DEPLOY_DIR_DEB}/all/ ${TMPDIR}/pkgdata/all${TARGET_VENDOR}-${TARGET_OS}"
|
||||
# However until do_package is not machine specific, we'll have to make do with all of deploy/pkgdata.
|
||||
SSTATE_DUPWHITELIST = "${DEPLOY_DIR}/ ${TMPDIR}/pkgdata/"
|
||||
# Also need to make cross recipes append to ${PN} and install once for any given PACAGE_ARCH so
|
||||
# can avoid multiple installs (e.g. routerstationpro+qemumips both using mips32)
|
||||
SSTATE_DUPWHITELIST += "${STAGING_LIBDIR_NATIVE}/${MULTIMACH_TARGET_SYS} ${STAGING_DIR_NATIVE}/usr/libexec/${MULTIMACH_TARGET_SYS} ${STAGING_BINDIR_NATIVE}/${MULTIMACH_TARGET_SYS} ${STAGING_DIR_NATIVE}${includedir_native}/gcc-build-internal-${MULTIMACH_TARGET_SYS}"
|
||||
# Also avoid python issues until we fix the python recipe
|
||||
SSTATE_DUPWHITELIST += "${STAGING_LIBDIR}/python2.7/config/Makefile ${STAGING_LIBDIR}/libpython2.7 ${STAGING_INCDIR}/python2.7/pyconfig.h"
|
||||
# Avoid docbook/sgml catalog warnings for now
|
||||
SSTATE_DUPWHITELIST += "${STAGING_ETCDIR_NATIVE}/sgml ${STAGING_DATADIR_NATIVE}/sgml"
|
||||
|
||||
@@ -46,10 +51,11 @@ python () {
|
||||
d.setVar('SSTATE_PKGARCH', d.expand("${SDK_ARCH}"))
|
||||
elif bb.data.inherits_class('cross-canadian', d):
|
||||
d.setVar('SSTATE_PKGARCH', d.expand("${SDK_ARCH}_${PACKAGE_ARCH}"))
|
||||
elif bb.data.inherits_class('allarch', d) and d.getVar("PACKAGE_ARCH", True) == "all":
|
||||
elif bb.data.inherits_class('allarch', d):
|
||||
d.setVar('SSTATE_PKGARCH', "allarch")
|
||||
d.setVar('SSTATE_MANMACH', d.expand("allarch_${MACHINE}"))
|
||||
else:
|
||||
d.setVar('SSTATE_MANMACH', d.expand("${PACKAGE_ARCH}"))
|
||||
d.setVar('SSTATE_MANMACH', d.expand("${MACHINE}"))
|
||||
|
||||
if bb.data.inherits_class('native', d) or bb.data.inherits_class('crosssdk', d) or bb.data.inherits_class('cross', d):
|
||||
d.setVar('SSTATE_EXTRAPATH', "${NATIVELSBSTRING}/")
|
||||
@@ -108,27 +114,17 @@ def sstate_state_fromvars(d, task = None):
|
||||
return ss
|
||||
|
||||
def sstate_add(ss, source, dest, d):
|
||||
if not source.endswith("/"):
|
||||
source = source + "/"
|
||||
if not dest.endswith("/"):
|
||||
dest = dest + "/"
|
||||
source = os.path.normpath(source)
|
||||
dest = os.path.normpath(dest)
|
||||
srcbase = os.path.basename(source)
|
||||
ss['dirs'].append([srcbase, source, dest])
|
||||
return ss
|
||||
|
||||
def sstate_install(ss, d):
|
||||
import oe.path
|
||||
import subprocess
|
||||
|
||||
sharedfiles = []
|
||||
shareddirs = []
|
||||
bb.mkdirhier(d.expand("${SSTATE_MANIFESTS}"))
|
||||
manifest = d.expand("${SSTATE_MANFILEPREFIX}.%s" % ss['name'])
|
||||
extrainf = d.getVarFlag("do_" + ss['task'], 'stamp-extra-info', True)
|
||||
if extrainf:
|
||||
manifest = manifest + "." + extrainf
|
||||
|
||||
if os.access(manifest, os.R_OK):
|
||||
bb.fatal("Package already staged (%s)?!" % manifest)
|
||||
@@ -168,13 +164,8 @@ def sstate_install(ss, d):
|
||||
break
|
||||
if realmatch:
|
||||
match.append(f)
|
||||
sstate_search_cmd = "grep -rl %s %s --exclude=master.list | sed -e 's:^.*/::' -e 's:\.populate-sysroot::'" % (f, d.expand("${SSTATE_MANIFESTS}"))
|
||||
cmd_array = sstate_search_cmd.split(' ')
|
||||
search_output = subprocess.Popen(cmd_array, stdout=subprocess.PIPE).communicate()[0]
|
||||
if search_output != None:
|
||||
match.append("Matched in %s" % search_output.rstrip())
|
||||
if match:
|
||||
bb.warn("The recipe %s is trying to install files into a shared area when those files already exist. Those files and their manifest location are:\n %s\nPlease verify which package should provide the above files." % (d.getVar('PN', True), "\n ".join(match)))
|
||||
bb.warn("The recipe is trying to install files into a shared area when those files already exist. Those files are:\n %s" % "\n ".join(match))
|
||||
|
||||
# Write out the manifest
|
||||
f = open(manifest, "w")
|
||||
@@ -316,9 +307,6 @@ def sstate_clean(ss, d):
|
||||
import oe.path
|
||||
|
||||
manifest = d.expand("${SSTATE_MANFILEPREFIX}.%s" % ss['name'])
|
||||
extrainf = d.getVarFlag("do_" + ss['task'], 'stamp-extra-info', True)
|
||||
if extrainf:
|
||||
manifest = manifest + "." + extrainf
|
||||
|
||||
if os.path.exists(manifest):
|
||||
locks = []
|
||||
@@ -333,6 +321,7 @@ def sstate_clean(ss, d):
|
||||
bb.utils.unlockfile(lock)
|
||||
|
||||
stfile = d.getVar("STAMP", True) + ".do_" + ss['task']
|
||||
extrainf = d.getVarFlag("do_" + ss['task'], 'stamp-extra-info', True)
|
||||
oe.path.remove(stfile)
|
||||
oe.path.remove(stfile + "_setscene")
|
||||
if extrainf:
|
||||
@@ -555,7 +544,7 @@ sstate_create_package () {
|
||||
sstate_unpack_package () {
|
||||
mkdir -p ${SSTATE_INSTDIR}
|
||||
cd ${SSTATE_INSTDIR}
|
||||
tar -xmvzf ${SSTATE_PKG}
|
||||
tar -xvzf ${SSTATE_PKG}
|
||||
}
|
||||
|
||||
# Need to inject information about classes not in the global configuration scope
|
||||
@@ -620,66 +609,3 @@ def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d):
|
||||
|
||||
return ret
|
||||
|
||||
BB_SETSCENE_DEPVALID = "setscene_depvalid"
|
||||
|
||||
def setscene_depvalid(task, taskdependees, notneeded, d):
|
||||
# taskdependees is a dict of tasks which depend on task, each being a 3 item list of [PN, TASKNAME, FILENAME]
|
||||
# task is included in taskdependees too
|
||||
|
||||
bb.debug(2, "Considering setscene task: %s" % (str(taskdependees[task])))
|
||||
|
||||
def isNative(x):
|
||||
return x.endswith("-native")
|
||||
def isNativeCross(x):
|
||||
return x.endswith("-native") or x.endswith("-cross") or x.endswith("-cross-initial")
|
||||
def isSafeDep(x):
|
||||
if x in ["quilt-native", "autoconf-native", "automake-native", "gnu-config-native", "libtool-native", "pkgconfig-native", "gcc-cross", "binutils-cross", "gcc-cross-initial"]:
|
||||
return True
|
||||
return False
|
||||
|
||||
# We can skip these "safe" dependencies since the aren't runtime dependencies, just build time
|
||||
if isSafeDep(taskdependees[task][0]) and taskdependees[task][1] == "do_populate_sysroot":
|
||||
return True
|
||||
|
||||
# We only need to trigger populate_lic through direct dependencies
|
||||
if taskdependees[task][1] == "do_populate_lic":
|
||||
return True
|
||||
|
||||
for dep in taskdependees:
|
||||
bb.debug(2, " considering dependency: %s" % (str(taskdependees[dep])))
|
||||
if task == dep:
|
||||
continue
|
||||
if dep in notneeded:
|
||||
continue
|
||||
# do_package_write_* and do_package doesn't need do_package
|
||||
if taskdependees[task][1] == "do_package" and taskdependees[dep][1] in ['do_package', 'do_package_write_deb', 'do_package_write_ipk', 'do_package_write_rpm']:
|
||||
continue
|
||||
# do_package_write_* and do_package doesn't need do_populate_sysroot
|
||||
if taskdependees[task][1] == "do_populate_sysroot" and taskdependees[dep][1] in ['do_package', 'do_package_write_deb', 'do_package_write_ipk', 'do_package_write_rpm']:
|
||||
continue
|
||||
# Native/Cross packages don't exist and are noexec anyway
|
||||
if isNativeCross(taskdependees[dep][0]) and taskdependees[dep][1] in ['do_package_write_deb', 'do_package_write_ipk', 'do_package_write_rpm']:
|
||||
continue
|
||||
|
||||
# Consider sysroot depending on sysroot tasks
|
||||
if taskdependees[task][1] == 'do_populate_sysroot' and taskdependees[dep][1] == 'do_populate_sysroot':
|
||||
# Nothing need depend on libc-initial/gcc-cross-initial
|
||||
if taskdependees[task][0].endswith("-initial"):
|
||||
continue
|
||||
# Native/Cross populate_sysroot need their dependencies
|
||||
if isNativeCross(taskdependees[task][0]) and isNativeCross(taskdependees[dep][0]):
|
||||
return False
|
||||
# Target populate_sysroot depended on by cross tools need to be installed
|
||||
if isNativeCross(taskdependees[dep][0]):
|
||||
return False
|
||||
# Native/cross tools depended upon by target sysroot are not needed
|
||||
if isNativeCross(taskdependees[task][0]):
|
||||
continue
|
||||
# Target populate_sysroot need their dependencies
|
||||
return False
|
||||
|
||||
# Safe fallthrough default
|
||||
bb.debug(2, " Default setscene dependency fall through due to dependency: %s" % (str(taskdependees[dep])))
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ OE_TERMINAL[choices] = 'auto none \
|
||||
${@" ".join(o.name \
|
||||
for o in oe.terminal.prioritized())}'
|
||||
|
||||
OE_TERMINAL_EXPORTS += 'XAUTHORITY SHELL DBUS_SESSION_BUS_ADDRESS DISPLAY EXTRA_OEMAKE SCREENDIR'
|
||||
OE_TERMINAL_EXPORTS = 'XAUTHORITY SHELL DBUS_SESSION_BUS_ADDRESS DISPLAY EXTRA_OEMAKE SCREENDIR'
|
||||
OE_TERMINAL_EXPORTS[type] = 'list'
|
||||
|
||||
XAUTHORITY ?= "${HOME}/.Xauthority"
|
||||
@@ -15,23 +15,17 @@ def oe_terminal(command, title, d):
|
||||
import oe.data
|
||||
import oe.terminal
|
||||
|
||||
env = dict()
|
||||
|
||||
for v in os.environ:
|
||||
env[v] = os.environ[v]
|
||||
|
||||
for export in oe.data.typed_value('OE_TERMINAL_EXPORTS', d):
|
||||
value = d.getVar(export, True)
|
||||
if value is not None:
|
||||
os.environ[export] = str(value)
|
||||
env[export] = str(value)
|
||||
|
||||
terminal = oe.data.typed_value('OE_TERMINAL', d).lower()
|
||||
if terminal == 'none':
|
||||
bb.fatal('Devshell usage disabled with OE_TERMINAL')
|
||||
elif terminal != 'auto':
|
||||
try:
|
||||
oe.terminal.spawn(terminal, command, title, env, d)
|
||||
oe.terminal.spawn(terminal, command, title, None, d)
|
||||
return
|
||||
except oe.terminal.UnsupportedTerminal:
|
||||
bb.warn('Unsupported terminal "%s", defaulting to "auto"' %
|
||||
@@ -40,7 +34,7 @@ def oe_terminal(command, title, d):
|
||||
bb.fatal('Unable to spawn terminal %s: %s' % (terminal, exc))
|
||||
|
||||
try:
|
||||
oe.terminal.spawn_preferred(command, title, env, d)
|
||||
oe.terminal.spawn_preferred(command, title, None, d)
|
||||
except oe.terminal.NoSupportedTerminals:
|
||||
bb.fatal('No valid terminal found, unable to open devshell')
|
||||
except oe.terminal.ExecutionError as exc:
|
||||
|
||||
@@ -3,8 +3,8 @@ UPDATERCPN ?= "${PN}"
|
||||
DEPENDS_append = " update-rc.d-native"
|
||||
UPDATERCD = "update-rc.d"
|
||||
UPDATERCD_virtclass-cross = ""
|
||||
UPDATERCD_class-native = ""
|
||||
UPDATERCD_class-nativesdk = ""
|
||||
UPDATERCD_virtclass-native = ""
|
||||
UPDATERCD_virtclass-nativesdk = ""
|
||||
|
||||
RDEPENDS_${UPDATERCPN}_append = " ${UPDATERCD}"
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
DEPENDS_append = "${USERADDDEPENDS}"
|
||||
USERADDDEPENDS = " base-passwd shadow-native shadow-sysroot shadow"
|
||||
USERADDDEPENDS_virtclass-cross = ""
|
||||
USERADDDEPENDS_class-native = ""
|
||||
USERADDDEPENDS_class-nativesdk = ""
|
||||
USERADDDEPENDS_virtclass-native = ""
|
||||
USERADDDEPENDS_virtclass-nativesdk = ""
|
||||
|
||||
# This preinstall function can be run in four different contexts:
|
||||
#
|
||||
@@ -138,18 +138,18 @@ useradd_sysroot_sstate () {
|
||||
do_install[prefuncs] += "${SYSROOTFUNC}"
|
||||
SYSROOTFUNC = "useradd_sysroot"
|
||||
SYSROOTFUNC_virtclass-cross = ""
|
||||
SYSROOTFUNC_class-native = ""
|
||||
SYSROOTFUNC_class-nativesdk = ""
|
||||
SYSROOTFUNC_virtclass-native = ""
|
||||
SYSROOTFUNC_virtclass-nativesdk = ""
|
||||
SSTATEPREINSTFUNCS += "${SYSROOTPOSTFUNC}"
|
||||
SYSROOTPOSTFUNC = "useradd_sysroot_sstate"
|
||||
SYSROOTPOSTFUNC_virtclass-cross = ""
|
||||
SYSROOTPOSTFUNC_class-native = ""
|
||||
SYSROOTPOSTFUNC_class-nativesdk = ""
|
||||
SYSROOTPOSTFUNC_virtclass-native = ""
|
||||
SYSROOTPOSTFUNC_virtclass-nativesdk = ""
|
||||
|
||||
USERADDSETSCENEDEPS = "${MLPREFIX}base-passwd:do_populate_sysroot_setscene shadow-native:do_populate_sysroot_setscene ${MLPREFIX}shadow-sysroot:do_populate_sysroot_setscene"
|
||||
USERADDSETSCENEDEPS_virtclass-cross = ""
|
||||
USERADDSETSCENEDEPS_class-native = ""
|
||||
USERADDSETSCENEDEPS_class-nativesdk = ""
|
||||
USERADDSETSCENEDEPS_virtclass-native = ""
|
||||
USERADDSETSCENEDEPS_virtclass-nativesdk = ""
|
||||
do_package_setscene[depends] = "${USERADDSETSCENEDEPS}"
|
||||
|
||||
# Recipe parse-time sanity checks
|
||||
|
||||
@@ -246,12 +246,12 @@ oe_machinstall() {
|
||||
}
|
||||
|
||||
create_cmdline_wrapper () {
|
||||
# Create a wrapper script where commandline options are needed
|
||||
# Create a wrapper script
|
||||
#
|
||||
# These are useful to work around relocation issues, by passing extra options
|
||||
# to a program
|
||||
# These are useful to work around relocation issues, by setting environment
|
||||
# variables which point to paths in the filesystem.
|
||||
#
|
||||
# Usage: create_cmdline_wrapper FILENAME <extra-options>
|
||||
# Usage: create_wrapper FILENAME [[VAR=VALUE]..]
|
||||
|
||||
cmd=$1
|
||||
shift
|
||||
@@ -269,7 +269,7 @@ END
|
||||
}
|
||||
|
||||
create_wrapper () {
|
||||
# Create a wrapper script where extra environment variables are needed
|
||||
# Create a wrapper script
|
||||
#
|
||||
# These are useful to work around relocation issues, by setting environment
|
||||
# variables which point to paths in the filesystem.
|
||||
@@ -308,10 +308,10 @@ def base_set_filespath(path, d):
|
||||
if extrapaths != "":
|
||||
path = extrapaths.split(":") + path
|
||||
# The ":" ensures we have an 'empty' override
|
||||
overrides = ((d.getVar("OVERRIDES", True) or "") + ":").split(":")
|
||||
overrides = (d.getVar("OVERRIDES", True) or "") + ":"
|
||||
for p in path:
|
||||
if p != "":
|
||||
for o in overrides:
|
||||
for o in overrides.split(":"):
|
||||
filespath.append(os.path.join(p, o))
|
||||
return ":".join(filespath)
|
||||
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
# that breaks the format and have been previously discussed on the mailing list
|
||||
# with general agreement from the core team.
|
||||
#
|
||||
OELAYOUT_ABI = "9"
|
||||
OELAYOUT_ABI = "8"
|
||||
|
||||
@@ -31,15 +31,15 @@ export localstatedir = "${base_prefix}/var"
|
||||
export infodir = "${datadir}/info"
|
||||
export mandir = "${datadir}/man"
|
||||
export docdir = "${datadir}/doc"
|
||||
export systemd_unitdir = "/lib/systemd"
|
||||
|
||||
# Architecture dependent paths
|
||||
export bindir = "${exec_prefix}/bin"
|
||||
export sbindir = "${exec_prefix}/sbin"
|
||||
export libexecdir = "${exec_prefix}/libexec"
|
||||
export libdir = "${exec_prefix}/${baselib}"
|
||||
export libexecdir = "${libdir}/${BPN}"
|
||||
export includedir = "${exec_prefix}/include"
|
||||
export oldincludedir = "${exec_prefix}/include"
|
||||
export systemd_unitdir = "${base_libdir}/systemd"
|
||||
localedir = "${libdir}/locale"
|
||||
|
||||
# Linkage between native/cross/nativesdk layouts
|
||||
@@ -51,7 +51,6 @@ bindir_native = "${prefix_native}/bin"
|
||||
sbindir_native = "${prefix_native}/sbin"
|
||||
includedir_native = "${prefix_native}/include"
|
||||
libdir_native = "${prefix_native}/lib"
|
||||
libexecdir_native = "${libdir_native}/${BPN}"
|
||||
base_libdir_native = "/lib"
|
||||
datadir_native = "${prefix_native}/share"
|
||||
bindir_cross = "/bin"
|
||||
@@ -99,7 +98,6 @@ HOST_EXEEXT = ""
|
||||
|
||||
TUNE_ARCH ??= "INVALID"
|
||||
TUNE_CCARGS ??= ""
|
||||
TUNE_CCARGS[vardepvalue] = "${TUNE_CCARGS}"
|
||||
TUNE_LDARGS ??= ""
|
||||
TUNE_ASARGS ??= ""
|
||||
TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
|
||||
@@ -269,14 +267,13 @@ SOLIBSDEV_darwin9 = ".dylib"
|
||||
|
||||
PACKAGE_BEFORE_PN ?= ""
|
||||
PACKAGES = "${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}"
|
||||
PACKAGES_DYNAMIC = "^${PN}-locale-.*"
|
||||
PACKAGES_DYNAMIC = "${PN}-locale-*"
|
||||
FILES = ""
|
||||
|
||||
FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*${SOLIBS} \
|
||||
${sysconfdir} ${sharedstatedir} ${localstatedir} \
|
||||
${base_bindir}/* ${base_sbindir}/* \
|
||||
${base_libdir}/*${SOLIBS} \
|
||||
${base_prefix}/lib/udev/rules.d ${prefix}/lib/udev/rules.d \
|
||||
${datadir}/${BPN} ${libdir}/${BPN}/* \
|
||||
${datadir}/pixmaps ${datadir}/applications \
|
||||
${datadir}/idl ${datadir}/omf ${datadir}/sounds \
|
||||
@@ -320,6 +317,7 @@ FILES_${PN}-locale = "${datadir}/locale"
|
||||
FILE_DIRNAME = "${@os.path.dirname(d.getVar('FILE'))}"
|
||||
# FILESPATH is set in base.bbclass
|
||||
#FILESPATH = "${FILE_DIRNAME}/${PF}:${FILE_DIRNAME}/${P}:${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/${BP}:${FILE_DIRNAME}/${BPN}:${FILE_DIRNAME}/files:${FILE_DIRNAME}"
|
||||
FILESDIR = "${@bb.which(d.getVar('FILESPATH', True), '.')}"
|
||||
|
||||
##################################################################
|
||||
# General work and output directories for the build system.
|
||||
@@ -337,9 +335,9 @@ GITDIR = "${CO_DIR}/git2"
|
||||
BZRDIR = "${CO_DIR}/bzr"
|
||||
HGDIR = "${CO_DIR}/hg"
|
||||
|
||||
STAMP = "${TMPDIR}/stamps/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
|
||||
STAMPCLEAN = "${TMPDIR}/stamps/${MULTIMACH_TARGET_SYS}/${PN}/*-*"
|
||||
WORKDIR = "${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
|
||||
STAMP = "${TMPDIR}/stamps/${MULTIMACH_TARGET_SYS}/${PN}-${EXTENDPE}${PV}-${PR}"
|
||||
STAMPCLEAN = "${TMPDIR}/stamps/${MULTIMACH_TARGET_SYS}/${PN}-[0-9]*-*"
|
||||
WORKDIR = "${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PF}"
|
||||
T = "${WORKDIR}/temp"
|
||||
D = "${WORKDIR}/image"
|
||||
S = "${WORKDIR}/${BP}"
|
||||
@@ -352,7 +350,6 @@ STAGING_BINDIR_NATIVE = "${STAGING_DIR_NATIVE}${bindir_native}"
|
||||
STAGING_BINDIR_CROSS = "${STAGING_BINDIR}/crossscripts"
|
||||
STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}"
|
||||
STAGING_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${libdir_native}"
|
||||
STAGING_LIBEXECDIR_NATIVE = "${STAGING_DIR_NATIVE}${libexecdir_native}"
|
||||
STAGING_BASE_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${base_libdir_native}"
|
||||
STAGING_INCDIR_NATIVE = "${STAGING_DIR_NATIVE}${includedir_native}"
|
||||
STAGING_ETCDIR_NATIVE = "${STAGING_DIR_NATIVE}${sysconfdir_native}"
|
||||
@@ -361,7 +358,6 @@ STAGING_DATADIR_NATIVE = "${STAGING_DIR_NATIVE}${datadir_native}"
|
||||
STAGING_DIR_HOST = "${STAGING_DIR}/${MACHINE}"
|
||||
STAGING_BINDIR = "${STAGING_DIR_HOST}${bindir}"
|
||||
STAGING_LIBDIR = "${STAGING_DIR_HOST}${libdir}"
|
||||
STAGING_LIBEXECDIR = "${STAGING_DIR_HOST}${libexecdir}"
|
||||
STAGING_BASELIBDIR = "${STAGING_DIR_HOST}${base_libdir}"
|
||||
STAGING_INCDIR = "${STAGING_DIR_HOST}${includedir}"
|
||||
STAGING_DATADIR = "${STAGING_DIR_HOST}${datadir}"
|
||||
@@ -631,7 +627,7 @@ export PATCH_GET="0"
|
||||
|
||||
# Pre-build configuration output
|
||||
BUILDCFG_HEADER = "Build Configuration:"
|
||||
BUILDCFG_VARS = "BB_VERSION BUILD_SYS NATIVELSBSTRING TARGET_SYS MACHINE DISTRO DISTRO_VERSION TUNE_FEATURES TARGET_FPU"
|
||||
BUILDCFG_VARS = "BB_VERSION TARGET_ARCH TARGET_OS MACHINE DISTRO DISTRO_VERSION TUNE_FEATURES TARGET_FPU"
|
||||
BUILDCFG_VARS[type] = "list"
|
||||
BUILDCFG_NEEDEDVARS = "TARGET_ARCH TARGET_OS"
|
||||
BUILDCFG_NEEDEDVARS[type] = "list"
|
||||
@@ -731,7 +727,7 @@ MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
|
||||
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
|
||||
IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}"
|
||||
|
||||
DISTRO_FEATURES_BACKFILL = "pulseaudio update-modules"
|
||||
DISTRO_FEATURES_BACKFILL = "pulseaudio"
|
||||
DISTRO_FEATURES_append = "${@oe.utils.features_backfill("DISTRO_FEATURES",d)}"
|
||||
|
||||
MACHINE_FEATURES_BACKFILL = "rtc"
|
||||
@@ -771,20 +767,12 @@ BB_CONSOLELOG ?= "${LOG_DIR}/cooker/${MACHINE}/${DATETIME}.log"
|
||||
|
||||
# Setup our default hash policy
|
||||
BB_SIGNATURE_HANDLER ?= "OEBasicHash"
|
||||
BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \
|
||||
SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM \
|
||||
USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \
|
||||
PRSERV_PORT PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \
|
||||
CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE"
|
||||
BB_HASHCONFIG_WHITELIST ?= "${BB_HASHBASE_WHITELIST} DATE TIME SESSION_MANAGER \
|
||||
DBUS_SESSION_BUS_ADDRESS SSH_AGENT_PID XDG_SESSION_COOKIE SSH_AUTH_SOCK \
|
||||
XAUTHORITY PSEUDO_BUILD BB_ENV_EXTRAWHITE DISABLE_SANITY_CHECKS \
|
||||
PARALLEL_MAKE BB_NUMBER_THREADS"
|
||||
BB_SIGNATURE_EXCLUDE_FLAGS ?= "doc defaultval _append _prepend deps depends \
|
||||
lockfiles type vardepsexclude vardeps vardepvalue file-checksums python \
|
||||
func task export unexport noexec nostamp dirs cleandirs \
|
||||
sstate-lockfile-shared prefuncs postfuncs export_func deptask rdeptask \
|
||||
recrdeptask nodeprrecs stamp-base stamp-extra-info"
|
||||
BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST PRSERV_PORT PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE"
|
||||
BB_HASHCONFIG_WHITELIST ?= "${BB_HASHBASE_WHITELIST} DATE TIME SESSION_MANAGER DBUS_SESSION_BUS_ADDRESS SSH_AGENT_PID XDG_SESSION_COOKIE SSH_AUTH_SOCK XAUTHORITY PSEUDO_BUILD BB_ENV_EXTRAWHITE DISABLE_SANITY_CHECKS PARALLEL_MAKE BB_NUMBER_THREADS"
|
||||
BB_SIGNATURE_EXCLUDE_FLAGS ?= "doc defaultval _append _prepend deps depends lockfiles type vardepsexclude \
|
||||
vardeps vardepvalue file-checksums python func task export unexport noexec \
|
||||
nostamp dirs cleandirs sstate-lockfile-shared prefuncs postfuncs export_func \
|
||||
deptask rdeptask recrdeptask nodeprrecs stamp-base stamp-extra-info"
|
||||
|
||||
MLPREFIX ??= ""
|
||||
MULTILIB_VARIANTS ??= ""
|
||||
|
||||
@@ -18,7 +18,7 @@ DISTRO_FEATURES_LIBC_DEFAULT ?= "ipv4 ipv6 libc-backtrace libc-big-macros libc-b
|
||||
libc-utmp libc-utmpx libc-wordexp libc-posix-clang-wchar libc-posix-regexp libc-posix-regexp-glibc \
|
||||
libc-posix-wchar-io"
|
||||
DISTRO_FEATURES_LIBC ?= "${DISTRO_FEATURES_LIBC_DEFAULT}"
|
||||
DISTRO_FEATURES_LIBC_class-nativesdk = "${DISTRO_FEATURES_LIBC_DEFAULT}"
|
||||
DISTRO_FEATURES_LIBC_virtclass-nativesdk = "${DISTRO_FEATURES_LIBC_DEFAULT}"
|
||||
DISTRO_FEATURES ?= "alsa argp bluetooth ext2 irda largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g x11 ${DISTRO_FEATURES_LIBC}"
|
||||
|
||||
IMAGE_FEATURES ?= ""
|
||||
|
||||
@@ -36,4 +36,3 @@ PREFERRED_PROVIDER_opkg-native ?= "opkg-native"
|
||||
PREFERRED_PROVIDER_nativesdk-opkg ?= "nativesdk-opkg"
|
||||
PREFERRED_PROVIDER_console-tools ?= "kbd"
|
||||
PREFERRED_PROVIDER_gzip-native ?= "pigz-native"
|
||||
PREFERRED_PROVIDER_make ?= "make"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
TUNEVALID[bigendian] = "Enable big-endian mode."
|
||||
|
||||
ARMPKGARCH = "${ARMPKGARCH_tune-${DEFAULTTUNE}}"
|
||||
ARMPKGARCH ??= "arm"
|
||||
ARMPKGSFX_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "b", "", d)}"
|
||||
ARMPKGSFX_FPU ??= ""
|
||||
ARMPKGSFX_DSP ??= ""
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
DEFAULTTUNE ?= "armv4"
|
||||
|
||||
ARMPKGARCH ?= "armv4"
|
||||
|
||||
TUNEVALID[armv4] = "Enable instructions for ARMv4"
|
||||
TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv4", "-march=armv4${ARMPKGSFX_THUMB}", "", d)}"
|
||||
TARGET_LD_KERNEL_ARCH += "${@bb.utils.contains("TUNE_FEATURES", "armv4", "--fix-v4bx", "", d)}"
|
||||
@@ -10,8 +12,6 @@ require conf/machine/include/arm/feature-arm-thumb.inc
|
||||
|
||||
# Little Endian
|
||||
AVAILTUNES += "armv4 armv4t"
|
||||
ARMPKGARCH_tune-armv4 ?= "armv4"
|
||||
ARMPKGARCH_tune-armv4t ?= "armv4"
|
||||
TUNE_FEATURES_tune-armv4 ?= "armv4"
|
||||
TUNE_FEATURES_tune-armv4t ?= "armv4 thumb"
|
||||
PACKAGE_EXTRA_ARCHS_tune-armv4 = "arm armv4"
|
||||
@@ -19,8 +19,6 @@ PACKAGE_EXTRA_ARCHS_tune-armv4t = "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv4t"
|
||||
|
||||
# Big Endian
|
||||
AVAILTUNES += "armv4b armv4tb"
|
||||
ARMPKGARCH_tune-armv4b ?= "armv4"
|
||||
ARMPKGARCH_tune-armv4tb ?= "armv4"
|
||||
TUNE_FEATURES_tune-armv4b ?= "${TUNE_FEATURES_tune-armv4} bigendian"
|
||||
TUNE_FEATURES_tune-armv4tb ?= "${TUNE_FEATURES_tune-armv4t} bigendian"
|
||||
PACKAGE_EXTRA_ARCHS_tune-armv4b = "armeb armv4b"
|
||||
|
||||
@@ -5,8 +5,6 @@ require conf/machine/include/arm/arch-armv5.inc
|
||||
|
||||
# Little Endian
|
||||
AVAILTUNES += "armv5e armv5te"
|
||||
ARMPKGARCH_tune-armv5e ?= "armv5"
|
||||
ARMPKGARCH_tune-armv5te ?= "armv5"
|
||||
TUNE_FEATURES_tune-armv5e ?= "armv5 dsp"
|
||||
TUNE_FEATURES_tune-armv5te ?= "armv5 dsp thumb"
|
||||
PACKAGE_EXTRA_ARCHS_tune-armv5e = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5e"
|
||||
@@ -14,10 +12,6 @@ PACKAGE_EXTRA_ARCHS_tune-armv5te = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5e ar
|
||||
|
||||
# Little Endian + VFP/DSP
|
||||
AVAILTUNES += "armv5e-vfp armv5te-vfp armv5ehf-vfp armv5tehf-vfp"
|
||||
ARMPKGARCH_tune-armv5e-vfp ?= "armv5"
|
||||
ARMPKGARCH_tune-armv5te-vfp ?= "armv5"
|
||||
ARMPKGARCH_tune-armv5ehf-vfp ?= "armv5"
|
||||
ARMPKGARCH_tune-armv5tehf-vfp ?= "armv5"
|
||||
TUNE_FEATURES_tune-armv5e-vfp ?= "armv5 vfp dsp"
|
||||
TUNE_FEATURES_tune-armv5te-vfp ?= "armv5 vfp dsp thumb"
|
||||
TUNE_FEATURES_tune-armv5ehf-vfp ?= "${TUNE_FEATURES_tune-armv5e-vfp} callconvention-hard"
|
||||
@@ -29,8 +23,6 @@ PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5thf-vf
|
||||
|
||||
# Big Endian
|
||||
AVAILTUNES += "armv5eb armv5teb"
|
||||
ARMPKGARCH_tune-armv5eb ?= "armv5"
|
||||
ARMPKGARCH_tune-armv5teb ?= "armv5"
|
||||
TUNE_FEATURES_tune-armv5eb ?= "${TUNE_FEATURES_tune-armv5e} bigendian"
|
||||
TUNE_FEATURES_tune-armv5teb ?= "${TUNE_FEATURES_tune-armv5te} bigendian"
|
||||
PACKAGE_EXTRA_ARCHS_tune-armv5eb = "${PACKAGE_EXTRA_ARCHS_tune-armv5b} armv5eb"
|
||||
@@ -38,10 +30,6 @@ PACKAGE_EXTRA_ARCHS_tune-armv5teb = "${PACKAGE_EXTRA_ARCHS_tune-armv5tb} armv5eb
|
||||
|
||||
# Big Endian + VFP/DSP
|
||||
AVAILTUNES += "armv5eb-vfp armv5teb-vfp armv5ehfb-vfp armv5tehfb-vfp"
|
||||
ARMPKGARCH_tune-armv5eb-vfp ?= "armv5"
|
||||
ARMPKGARCH_tune-armv5teb-vfp ?= "armv5"
|
||||
ARMPKGARCH_tune-armv5ehfb-vfp ?= "armv5"
|
||||
ARMPKGARCH_tune-armv5tehfb-vfp ?= "armv5"
|
||||
TUNE_FEATURES_tune-armv5eb-vfp ?= "${TUNE_FEATURES_tune-armv5e-vfp} bigendian"
|
||||
TUNE_FEATURES_tune-armv5teb-vfp ?= "${TUNE_FEATURES_tune-armv5te-vfp} bigendian"
|
||||
TUNE_FEATURES_tune-armv5ehfb-vfp ?= "${TUNE_FEATURES_tune-armv5eb-vfp} callconvention-hard"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
DEFAULTTUNE ?= "armv5"
|
||||
|
||||
ARMPKGARCH ?= "armv5"
|
||||
|
||||
TUNEVALID[armv5] = "Enable instructions for ARMv5"
|
||||
TUNECONFLICTS[armv5] = "armv4"
|
||||
TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv5", "-march=armv5${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}", "", d)}"
|
||||
@@ -12,8 +14,6 @@ require conf/machine/include/arm/feature-arm-vfp.inc
|
||||
|
||||
# Little Endian
|
||||
AVAILTUNES += "armv5 armv5t"
|
||||
ARMPKGARCH_tune-armv5 ?= "armv5"
|
||||
ARMPKGARCH_tune-armv5t ?= "armv5"
|
||||
TUNE_FEATURES_tune-armv5 ?= "armv5"
|
||||
TUNE_FEATURES_tune-armv5t ?= "armv5 thumb"
|
||||
PACKAGE_EXTRA_ARCHS_tune-armv5 = "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv5"
|
||||
@@ -21,10 +21,6 @@ PACKAGE_EXTRA_ARCHS_tune-armv5t = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} armv5 armv
|
||||
|
||||
# Little Endian + VFP/DSP
|
||||
AVAILTUNES += "armv5-vfp armv5t-vfp armv5hf-vfp armv5thf-vfp"
|
||||
ARMPKGARCH_tune-armv5-vfp ?= "armv5"
|
||||
ARMPKGARCH_tune-armv5t-vfp ?= "armv5"
|
||||
ARMPKGARCH_tune-armv5hf-vfp ?= "armv5"
|
||||
ARMPKGARCH_tune-armv5thf-vfp ?= "armv5"
|
||||
TUNE_FEATURES_tune-armv5-vfp ?= "armv5 vfp"
|
||||
TUNE_FEATURES_tune-armv5t-vfp ?= "armv5 vfp"
|
||||
TUNE_FEATURES_tune-armv5hf-vfp ?= "${TUNE_FEATURES_tune-armv5-vfp} callconvention-hard"
|
||||
@@ -37,8 +33,6 @@ PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5thf-vf
|
||||
|
||||
# Big Endian
|
||||
AVAILTUNES += "armv5b armv5tb"
|
||||
ARMPKGARCH_tune-armv5b ?= "armv5"
|
||||
ARMPKGARCH_tune-armv5tb ?= "armv5"
|
||||
TUNE_FEATURES_tune-armv5b ?= "${TUNE_FEATURES_tune-armv5} bigendian"
|
||||
TUNE_FEATURES_tune-armv5tb ?= "${TUNE_FEATURES_tune-armv5t} bigendian"
|
||||
PACKAGE_EXTRA_ARCHS_tune-armv5b = "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv5b"
|
||||
@@ -46,10 +40,6 @@ PACKAGE_EXTRA_ARCHS_tune-armv5tb = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} armv5b ar
|
||||
|
||||
# Big Endian + VFP/DSP
|
||||
AVAILTUNES += "armv5b-vfp armv5tb-vfp armv5hfb-vfp armv5thfb-vfp"
|
||||
ARMPKGARCH_tune-armv5b-vfp ?= "armv5"
|
||||
ARMPKGARCH_tune-armv5tb-vfp ?= "armv5"
|
||||
ARMPKGARCH_tune-armv5hfb-vfp ?= "armv5"
|
||||
ARMPKGARCH_tune-armv5thfb-vfp ?= "armv5"
|
||||
TUNE_FEATURES_tune-armv5b-vfp ?= "${TUNE_FEATURES_tune-armv5-vfp} bigendian"
|
||||
TUNE_FEATURES_tune-armv5tb-vfp ?= "${TUNE_FEATURES_tune-armv5t-vfp} bigendian"
|
||||
TUNE_FEATURES_tune-armv5hfb-vfp ?= "${TUNE_FEATURES_tune-armv5b-vfp} callconvention-hard"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
DEFAULTTUNE ?= "armv6"
|
||||
|
||||
ARMPKGARCH ?= "armv6"
|
||||
|
||||
TUNEVALID[armv6] = "Enable instructions for ARMv6"
|
||||
TUNECONFLICTS[armv6] = "armv4 armv5"
|
||||
TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv6", "-march=armv6", "", d)}"
|
||||
@@ -9,10 +11,6 @@ require conf/machine/include/arm/arch-armv5-dsp.inc
|
||||
|
||||
# Little Endian
|
||||
AVAILTUNES += "armv6 armv6t armv6hf armv6thf"
|
||||
ARMPKGARCH_tune-armv6 ?= "armv6"
|
||||
ARMPKGARCH_tune-armv6t ?= "armv6"
|
||||
ARMPKGARCH_tune-armv6hf ?= "armv6"
|
||||
ARMPKGARCH_tune-armv6thf ?= "armv6"
|
||||
TUNE_FEATURES_tune-armv6 ?= "armv6 vfp"
|
||||
TUNE_FEATURES_tune-armv6t ?= "armv6 vfp thumb"
|
||||
TUNE_FEATURES_tune-armv6hf ?= "${TUNE_FEATURES_tune-armv6} callconvention-hard"
|
||||
@@ -24,10 +22,6 @@ PACKAGE_EXTRA_ARCHS_tune-armv6thf = "${PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp} a
|
||||
|
||||
# Big Endian
|
||||
AVAILTUNES += "armv6b armv6tb armv6hfb armv6thfb"
|
||||
ARMPKGARCH_tune-armv6b ?= "armv6"
|
||||
ARMPKGARCH_tune-armv6tb ?= "armv6"
|
||||
ARMPKGARCH_tune-armv6hfb ?= "armv6"
|
||||
ARMPKGARCH_tune-armv6thfb ?= "armv6"
|
||||
TUNE_FEATURES_tune-armv6b ?= "${TUNE_FEATURES_tune-armv6} bigendian"
|
||||
TUNE_FEATURES_tune-armv6tb ?= "${TUNE_FEATURES_tune-armv6t} bigendian"
|
||||
TUNE_FEATURES_tune-armv6hfb ?= "${TUNE_FEATURES_tune-armv6b} callconvention-hard"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
DEFAULTTUNE ?= "armv7a"
|
||||
|
||||
ARMPKGARCH ?= "armv7a"
|
||||
|
||||
TUNEVALID[armv7a] = "Enable instructions for ARMv7-a"
|
||||
TUNECONFLICTS[armv7a] = "armv4 armv5 armv6 armv7"
|
||||
TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "armv7a", "-march=armv7-a", "", d)}"
|
||||
@@ -10,10 +12,6 @@ require conf/machine/include/arm/feature-arm-neon.inc
|
||||
|
||||
# Little Endian base configs
|
||||
AVAILTUNES += "armv7a armv7at armv7a-neon armv7at-neon"
|
||||
ARMPKGARCH_tune-armv7a ?= "armv7a"
|
||||
ARMPKGARCH_tune-armv7at ?= "armv7a"
|
||||
ARMPKGARCH_tune-armv7a-neon?= "armv7a"
|
||||
ARMPKGARCH_tune-armv7at-neon ?= "armv7a"
|
||||
TUNE_FEATURES_tune-armv7a ?= "armv7a vfp"
|
||||
TUNE_FEATURES_tune-armv7at ?= "armv7a vfp thumb"
|
||||
TUNE_FEATURES_tune-armv7a-neon ?= "armv7a vfp neon"
|
||||
@@ -25,10 +23,6 @@ PACKAGE_EXTRA_ARCHS_tune-armv7at-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} arm
|
||||
|
||||
# VFP Tunes
|
||||
AVAILTUNES += "armv7ahf armv7athf armv7ahf-neon armv7athf-neon"
|
||||
ARMPKGARCH_tune-armv7ahf ?= "armv7a"
|
||||
ARMPKGARCH_tune-armv7athf ?= "armv7a"
|
||||
ARMPKGARCH_tune-armv7ahf-neon?= "armv7a"
|
||||
ARMPKGARCH_tune-armv7athf-neon ?= "armv7a"
|
||||
TUNE_FEATURES_tune-armv7ahf ?= "${TUNE_FEATURES_tune-armv7a} callconvention-hard"
|
||||
TUNE_FEATURES_tune-armv7athf ?= "${TUNE_FEATURES_tune-armv7at} callconvention-hard"
|
||||
TUNE_FEATURES_tune-armv7ahf-neon ?= "${TUNE_FEATURES_tune-armv7a-neon} callconvention-hard"
|
||||
@@ -40,10 +34,6 @@ PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf}
|
||||
|
||||
# Big Endian
|
||||
AVAILTUNES += "armv7ab armv7atb armv7ab-neon armv7atb-neon"
|
||||
ARMPKGARCH_tune-armv7ab ?= "armv7a"
|
||||
ARMPKGARCH_tune-armv7atb ?= "armv7a"
|
||||
ARMPKGARCH_tune-armv7ab-neon?= "armv7a"
|
||||
ARMPKGARCH_tune-armv7atb-neon ?= "armv7a"
|
||||
TUNE_FEATURES_tune-armv7ab ?= "${TUNE_FEATURES_tune-armv7a} bigendian"
|
||||
TUNE_FEATURES_tune-armv7atb ?= "${TUNE_FEATURES_tune-armv7at} bigendian"
|
||||
TUNE_FEATURES_tune-armv7ab-neon ?= "${TUNE_FEATURES_tune-armv7a-neon} bigendian"
|
||||
@@ -55,10 +45,6 @@ PACKAGE_EXTRA_ARCHS_tune-armv7atb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} ar
|
||||
|
||||
# Big Endian + VFP
|
||||
AVAILTUNES += "armv7ahfb armv7athfb armv7ahfb-neon armv7athfb-neon"
|
||||
ARMPKGARCH_tune-armv7ahfb ?= "armv7a"
|
||||
ARMPKGARCH_tune-armv7athfb ?= "armv7a"
|
||||
ARMPKGARCH_tune-armv7ahfb-neon?= "armv7a"
|
||||
ARMPKGARCH_tune-armv7athfb-neon ?= "armv7a"
|
||||
TUNE_FEATURES_tune-armv7ahfb ?= "${TUNE_FEATURES_tune-armv7ab} callconvention-hard"
|
||||
TUNE_FEATURES_tune-armv7athfb ?= "${TUNE_FEATURES_tune-armv7atb} callconvention-hard"
|
||||
TUNE_FEATURES_tune-armv7ahfb-neon ?= "${TUNE_FEATURES_tune-armv7ab-neon} callconvention-hard"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user